module Main where import Loop import EventHelper import Shaders import Shapes import Dodge.Prototypes import Dodge.Data import Dodge.Initialisation import Dodge.Rooms import Dodge.Layout import Dodge.LoadSound import Dodge.Update import Dodge.KeyEvents import Dodge.Rendering import Dodge.Menu import Picture import Picture.Render import Picture.Preload import Sound import Preload import Control.Concurrent import Control.Lens import System.Random import qualified SDL as SDL import qualified SDL.Mixer as Mix import Graphics.Rendering.OpenGL hiding (color,scale,translate,rotate) --Mix.openAudio Mix.defaultAudio 256 >> 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 setupLoop "windowName" 800 600 doPreload cleanUpPreload (initializeWorld $ generateFromTree lev1 $ initWorld) (-- \((bs:fs:ts:_),tes) w -> --do render setparams w egFade \preData w -> --do render setparams w egFade do renderPicture' (_renderData preData) (_cameraRot w) (_cameraZoom w) (_cameraPos w) (_windowX w,_windowY w) (wallsForGloom' w) (lightsForGloom' w) (draw blank w) playSoundQueue (_soundData preData) (_soundQueue w) newSoundData <- playAndUpdate (_sounds w) (_soundData preData) return $ preData {_soundData = newSoundData} --renderPicture' preData (_windowX w,_windowY w) (Circle 5) -- renderPicture' preData -- (pictures [scale 0.5 0.9 $ polygon [(0,0),(0,-0.5),(-0.5,-0.5),(-0.5,0.0)] -- ,scale 0.5 0.9 $ polygon [(0,0),(0,-0.5),(-0.5,-0.5),(-0.5,0.0)] -- ,color red $ scale 0.0005 0.0005 $ text "asdf" -- ] -- ) ) (flip $ menuEvents $ flip handleEvent) (\w -> Just $ update w) Mix.closeAudio