aboutsummaryrefslogtreecommitdiff
path: root/src/screens/gameScreen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/screens/gameScreen.c')
-rw-r--r--src/screens/gameScreen.c26
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);