aboutsummaryrefslogtreecommitdiff
path: root/src/game.c
diff options
context:
space:
mode:
authorJuan J. Martinez <jjm@usebox.net>2023-06-29 22:18:17 +0100
committerJuan J. Martinez <jjm@usebox.net>2023-06-29 22:18:17 +0100
commit623b1dfa54e77d3ca21fb64e200a32ee9a61c021 (patch)
tree85f09d8e3a74e56458bfb5c7a2b1a552d2506305 /src/game.c
parent10f11bb551897abc5f6978b3a6ee1b373b9341d2 (diff)
downloadgold-mine-run-623b1dfa54e77d3ca21fb64e200a32ee9a61c021.tar.gz
gold-mine-run-623b1dfa54e77d3ca21fb64e200a32ee9a61c021.zip
Add pause / resume
Diffstat (limited to 'src/game.c')
-rw-r--r--src/game.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/game.c b/src/game.c
index 4441cf0..0113fe1 100644
--- a/src/game.c
+++ b/src/game.c
@@ -40,6 +40,7 @@ static uint8_t stage;
static uint8_t time;
static uint8_t pickaxe;
static uint8_t gameover;
+static uint8_t pause;
static void wait_time(uint16_t frames)
{
@@ -121,6 +122,9 @@ static void run_gameover()
void run_game()
{
+ pause = 0;
+ gameover = 0;
+
lives = GAME_LIVES_START;
score = 0;
stage = 0;
@@ -164,6 +168,24 @@ void run_game()
if (hud)
hud_render();
+ if (keys[KEY_P])
+ {
+ /* pause / resume */
+ pause ^= 1;
+
+ /* wait for the key to be released */
+ while (keys[KEY_P])
+ wait_vsync();
+
+ if (pause)
+ timer_stop();
+ else
+ timer_resume();
+ }
+
+ if (pause)
+ continue;
+
/* erase first the last we draw */
player_erase();
entities_erase();