Load window size from config into world

This commit is contained in:
jgk
2021-03-22 23:06:19 +01:00
parent e296e5d841
commit 257e60e4e8
3 changed files with 15 additions and 21 deletions
+5 -11
View File
@@ -34,25 +34,15 @@ import qualified SDL as SDL
import qualified SDL.Mixer as Mix
import Graphics.Rendering.OpenGL hiding (color,scale,translate,rotate)
initWorld = initialWorld
{ _randGen = mkStdGen 2
, _windowX = 800
, _windowY = 600
}
pps = [(0,0),(50,0),(0,25)]
ppt = [(0,0),(-0.50,0),(0.20,0.25)]
main :: IO ()
main = do
-- loadedSounds <- loadSounds
(sizex,sizey) <- loadConfig
setupLoop
"windowName"
sizex sizey
(doPreload >>= resizeSpareFBO sizex sizey)
cleanUpPreload
(initializeWorld $ generateFromTree lev1 $ initWorld)
(fmap (setWindowSize sizex sizey) firstWorld)
( \preData w -> do
startTicks <- SDL.ticks
(lightTicks,timeSpentPoking) <- renderPicture' (_renderData preData)
@@ -80,3 +70,7 @@ main = do
(flip $ menuEvents $ flip handleEvent)
(\w -> Just $ update w)
Mix.closeAudio
setWindowSize :: Int -> Int -> World -> World
setWindowSize x y w = w & windowX .~ fromIntegral x
& windowY .~ fromIntegral y
+7 -8
View File
@@ -4,6 +4,8 @@ import Dodge.Prototypes
import Dodge.Data
import Dodge.Critters
import Dodge.Base
import Dodge.Floor
import Dodge.Layout
import Data.List
import Data.Char
@@ -22,13 +24,6 @@ import qualified Data.Set as S
import qualified Data.IntMap.Strict as IM
import qualified Data.Map as M
--import Graphics.Gloss
--import Graphics.Gloss.Interface.IO.Game
--import Graphics.Gloss.Geometry.Angle
--import Graphics.Gloss.Geometry.Line
--import qualified Graphics.Gloss.Data.Point.Arithmetic as PA
--import Graphics.Gloss.Data.Vector
--import Graphics.Gloss.Data.Point
import Foreign.ForeignPtr
import Control.Concurrent
import Data.Tree
@@ -36,6 +31,10 @@ import Data.Tree
initializeWorld :: World -> World
initializeWorld w = w
firstWorld :: IO World
firstWorld = return $ generateFromTree lev1 $ initialWorld
initialWorld :: World
initialWorld = basicWorld
{ _keys = S.empty
, _cameraPos = (0,0)
@@ -61,7 +60,7 @@ initialWorld = basicWorld
, _menuState = LevelMenu 1
, _worldState = M.empty
, _windowX = 800
, _windowY = 840
, _windowY = 600
}
+3 -2
View File
@@ -31,13 +31,14 @@ setupLoop :: String
-> Int
-> IO (PreloadData a)
-> (PreloadData a -> IO ())
-> world
-> IO world
-> (PreloadData a -> world -> IO (PreloadData a))
-> (world -> Event -> Maybe world)
-> (world -> Maybe world)
-> IO ()
setupLoop wName xSize ySize
customInit initCleanup startWorld sideEffects eventFn worldFn = do
customInit initCleanup ioStartWorld sideEffects eventFn worldFn = do
startWorld <- ioStartWorld
initializeAll
bracket (createWindow (T.pack wName) (winConfig xSize ySize)) destroyWindow
(\window ->