Codebase list raincat / 9466fb2d-ca9b-43c7-bbc1-94fa7874ca38/main src / Main.hs
9466fb2d-ca9b-43c7-bbc1-94fa7874ca38/main

Tree @9466fb2d-ca9b-43c7-bbc1-94fa7874ca38/main (Download .tar.gz)

Main.hs @9466fb2d-ca9b-43c7-bbc1-94fa7874ca38/mainraw · history · blame

module Main (main) where

import Graphics.UI.GLUT
import System.Exit
import Game.GameInput
import Game.GameInit
import World.World
import Settings.DisplaySettings as DisplaySettings
import qualified Nxt.Graphics as NG
import Data.IORef
import Program.Program

main :: IO ()
main = do
    NG.initWindow screenRes "Raincat"
    NG.initGraphics screenResWidth screenResHeight

    worldState <- gameInit
    worldStateRef <- newIORef worldState

    displayCallback $= programDraw worldStateRef

    keyboardMouseCallback $= Just (gameInput (keysStateRef worldState))
    motionCallback $= Just (gameMotion (mousePosRef worldState))
    passiveMotionCallback $= Just (gameMotion (mousePosRef worldState))

    addTimerCallback 1 (programMain worldStateRef)

    mainLoop

    exitWith ExitSuccess