diff options
Diffstat (limited to 'src/screens/gameScreen.c')
-rw-r--r-- | src/screens/gameScreen.c | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/screens/gameScreen.c b/src/screens/gameScreen.c index de650c5..8fe141a 100644 --- a/src/screens/gameScreen.c +++ b/src/screens/gameScreen.c @@ -198,7 +198,23 @@ void drawGameScreenGui(Game * game) { drawRadar(game, &gameScreen->radar); } +void resetGame(Game * game, GameScreen * gameScreen) { + gameScreen->gameOver = false; + gameScreen->lastLevel = 0; + gameScreen->levelComplete = false; + gameScreen->gameComplete = false; + resetKillLog(&game->killLog); + + startLevel(game, &game->levels, 0); +} + void handleGameScreenInput(Game * game, GameScreen * gameScreen) { + if (IsKeyPressed(KEY_E)) { + resetGame(game, gameScreen); + closeGameScreen(game); + game->screenId = SCREEN_MAIN_MENU; + } + switch(GetKeyPressed()) { case KEY_ONE: gameScreen->mainCamera = FIRST_PERSON_CAMERA; @@ -385,16 +401,6 @@ void drawGameOverGameScreen(Game * game, GameScreen * gameScreen) { DrawText(gameOverMsg, position.x, position.y, GAME_SCREEN_GAME_OVER_FONT_SIZE, GREEN); } -void resetGame(Game * game, GameScreen * gameScreen) { - gameScreen->gameOver = false; - gameScreen->lastLevel = 0; - gameScreen->levelComplete = false; - gameScreen->gameComplete = false; - resetKillLog(&game->killLog); - - startLevel(game, &game->levels, 0); -} - bool handleGameOver(Game * game, GameScreen * gameScreen) { Entity * player = getEntityFromWorld(game->world, 0); |