module Dodge.Initialisation where -- imports {{{ import Dodge.Default import Dodge.Data import Dodge.Data.Menu import Dodge.Creature import Dodge.Base import Dodge.Floor import Dodge.Layout import System.Random import qualified Data.Set as S import qualified Data.IntMap.Strict as IM import qualified Data.Map as M import Foreign.ForeignPtr import Control.Concurrent import Data.Tree initializeWorld :: World -> World initializeWorld w = w firstWorld :: IO World firstWorld = do -- i <- randomRIO (0,5000) let i = 2 putStrLn $ "Seed for level generation: " ++ show ( i :: Int) return $ generateFromList levx $ initialWorld {_randGen = mkStdGen i} initialWorld :: World initialWorld = defaultWorld { _keys = S.empty , _cameraCenter = (0,0) , _cameraRot = 0 , _cameraZoom = 1 , _creatures = IM.fromList [(0,startCr)] , _projectiles = IM.empty , _walls = IM.empty , _forceFields = IM.empty , _floorItems = IM.empty , _randGen = mkStdGen 2 , _mousePos = (0,0) , _testString = [] , _yourID = 0 , _worldEvents = id , _pressPlates = IM.empty , _buttons = IM.empty , _soundQueue = [] , _sounds = M.empty , _decorations = IM.empty , _storedLevel = Nothing , _menuLayers = [LevelMenu 1] , _worldState = M.empty }