30 lines
742 B
Haskell
30 lines
742 B
Haskell
{-# LANGUAGE DeriveGeneric #-}
|
|
{-# LANGUAGE OverloadedStrings #-}
|
|
module LoadConfig where
|
|
import Data.Aeson
|
|
--import Foreign.C.Types
|
|
import GHC.Generics
|
|
--import qualified GHC.Int
|
|
--import qualified SDL
|
|
--import System.Directory
|
|
|
|
data Configuration = Configuration
|
|
{ windowxsize :: Int,
|
|
windowysize :: Int
|
|
}
|
|
deriving (Generic, Show)
|
|
|
|
instance ToJSON Configuration where
|
|
toEncoding = genericToEncoding defaultOptions
|
|
|
|
instance FromJSON Configuration
|
|
|
|
loadConfig :: IO (Int, Int)
|
|
loadConfig = do
|
|
mayConfig <- decodeFileStrict "config.json"
|
|
case mayConfig of
|
|
Just config -> return (windowxsize config, windowysize config)
|
|
Nothing -> do
|
|
putStrLn "invalid config.json, loading default config"
|
|
return (800, 600)
|