From 9fca6a76170cb66a5fe03e6eca6a39b53a8f4dee Mon Sep 17 00:00:00 2001 From: nek0 Date: Sat, 29 Aug 2020 05:19:47 +0200 Subject: [PATCH] finished episode 25 --- src/Main.hs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Main.hs b/src/Main.hs index 5f5429e..44cbdc6 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -119,6 +119,7 @@ main = do update sceneObject 0 render sceneObject else do + GL.clearColor $= GL.Color4 0 0 0 1 GL.clear [GL.ColorBuffer] -- Switch to different scene on keyboard presses F1 thourgh F? @@ -160,9 +161,15 @@ sceneSwitch curScene evs = mapM_ (switch . SDL.eventPayload) evs (SDL.Keysym _ code mod))) = when (SDL.toNumber mod == 0) $ case code of + SDL.KeycodeEscape -> do + isEmpty <- isEmptyMVar curScene + when (not isEmpty) $ + void $ tryTakeMVar curScene SDL.KeycodeF1 -> do - void $ tryTakeMVar curScene - putMVar curScene =<< scene1 + isEmpty <- isEmptyMVar curScene + when isEmpty $ do + void $ tryTakeMVar curScene + putMVar curScene =<< scene1 _ -> return () switch _ = return ()