Load window size from config into world
This commit is contained in:
+5
-11
@@ -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
|
||||
|
||||
@@ -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
@@ -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 ->
|
||||
|
||||
Reference in New Issue
Block a user