From b9353d40500dc27812a435d115fe9eaaed8a7cdc Mon Sep 17 00:00:00 2001 From: "Juan J. Martinez" Date: Fri, 3 Mar 2023 21:57:13 +0000 Subject: Better Gamepad support handling connection/disconnection --- src/Game.hs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src/Game.hs') diff --git a/src/Game.hs b/src/Game.hs index 1d93065..e93269e 100644 --- a/src/Game.hs +++ b/src/Game.hs @@ -13,8 +13,7 @@ import qualified Game.Hud as H import qualified Game.Map as M import qualified Game.Sprites as S import qualified Game.State as GS -import qualified Game.Utils as U -import SDL (($=), ($~)) +import SDL (($=)) import qualified SDL import qualified SDL.Image import SDL.Vect (V2 (..)) @@ -89,7 +88,7 @@ main = do map' <- M.load "data/map.json" tsTexture sprites <- S.load "data/sprites.json" ssTexture font <- BF.load "data/font.json" bfTexture - controls <- newIORef =<< C.init + controls <- newIORef C.init entities <- E.mkEntities sprites map' controls hud <- H.mkHud sprites gameLoop @@ -136,7 +135,7 @@ gameLoop e = do events <- map SDL.eventPayload <$> SDL.pollEvents -- F11 for fullscreen / windowed - env <- if fromMaybe False $ U.isPressed SDL.KeycodeF11 events then toggleFullscreen e else pure e + env <- if fromMaybe False $ C.isPressed SDL.KeycodeF11 events then toggleFullscreen e else pure e let renderer = env.renderer canvas = env.canvas @@ -145,10 +144,10 @@ gameLoop e = do state = env.state -- ESC or close the window to quit - let quit = fromMaybe False (U.isPressed SDL.KeycodeEscape events) || SDL.QuitEvent `elem` events + let quit = fromMaybe False (C.isPressed SDL.KeycodeEscape events) || SDL.QuitEvent `elem` events unless quit $ do -- update controls - controls $~ flip C.update events + writeIORef controls =<< (`C.update` events) =<< readIORef controls SDL.rendererRenderTarget renderer $= Just canvas SDL.clear renderer -- cgit v1.2.3