summaryrefslogtreecommitdiffstats
path: root/src/Player.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Player.hs')
-rw-r--r--src/Player.hs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/Player.hs b/src/Player.hs
index 59076dd..af7f543 100644
--- a/src/Player.hs
+++ b/src/Player.hs
@@ -12,7 +12,7 @@ import GLDriver (SomeEvent)
class Player a where
- playerUpdate :: a -> Tank -> (a, Maybe Micro, Bool, Maybe Micro, Bool)
+ playerUpdate :: a -> Tank -> IO (a, Maybe Micro, Bool, Maybe Micro, Bool)
handleEvent :: a -> SomeEvent -> a
handleEvent player _ = player
@@ -21,7 +21,7 @@ class Player a where
data SomePlayer = forall a. Player a => SomePlayer a
instance Player SomePlayer where
- playerUpdate (SomePlayer player) tank =
- let (p, angle, move, aangle, shoot) = playerUpdate player tank
- in (SomePlayer p, angle, move, aangle, shoot)
+ playerUpdate (SomePlayer player) tank = do
+ (p, angle, move, aangle, shoot) <- playerUpdate player tank
+ return (SomePlayer p, angle, move, aangle, shoot)
handleEvent (SomePlayer player) event = SomePlayer $ handleEvent player event