{-# LANGUAGE DeriveGeneric #-} --{-# LANGUAGE OverloadedStrings #-} module Dodge.Config.KeyConfig ( KeyConfigSDL (..) , defaultKeyConfigSDL , loadKeyConfig ) where --import Data.Aeson --import Foreign.C.Types import GHC.Generics --import qualified GHC.Int import qualified SDL --import qualified SDL.Internal.Numbered --import System.Directory data KeyConfigSDL = KeyConfigSDL { moveUpKey :: SDL.Scancode , moveDownKey :: SDL.Scancode , moveLeftKey :: SDL.Scancode , moveRightKey :: SDL.Scancode , pauseKey :: SDL.Scancode , escapeKey :: SDL.Scancode , dropItemKey :: SDL.Scancode , toggleMapKey :: SDL.Scancode , reloadKey :: SDL.Scancode , testEventKey :: SDL.Scancode , spaceActionKey :: SDL.Scancode , rotateCameraPlusKey :: SDL.Scancode , rotateCameraMinusKey :: SDL.Scancode , zoomInKey :: SDL.Scancode , zoomOutKey :: SDL.Scancode , newMapKey :: SDL.Scancode , modifierKey :: SDL.Scancode } deriving (Generic, Show) defaultKeyConfigSDL :: KeyConfigSDL defaultKeyConfigSDL = KeyConfigSDL { moveUpKey = SDL.ScancodeW , moveDownKey = SDL.ScancodeS , moveLeftKey = SDL.ScancodeA , moveRightKey = SDL.ScancodeD , pauseKey = SDL.ScancodeP , escapeKey = SDL.ScancodeEscape , dropItemKey = SDL.ScancodeF , toggleMapKey = SDL.ScancodeM , reloadKey = SDL.ScancodeR , testEventKey = SDL.ScancodeT , spaceActionKey = SDL.ScancodeSpace , rotateCameraPlusKey = SDL.ScancodeQ , rotateCameraMinusKey = SDL.ScancodeE , zoomInKey = SDL.ScancodeJ , zoomOutKey = SDL.ScancodeK , newMapKey = SDL.ScancodeN , modifierKey = SDL.ScancodeCapsLock } loadKeyConfig :: IO KeyConfigSDL loadKeyConfig = return defaultKeyConfigSDL