From 77da136e7567dc6d224ba9fb4b88cb66b873c12f Mon Sep 17 00:00:00 2001 From: Steve Date: Sun, 3 Apr 2016 14:04:56 +0100 Subject: [PATCH] Time limit warning for challenges. --- README.md | 1 + sound/320181__dland__hint.ogg | Bin 0 -> 6745 bytes src/battle/battle.c | 5 +++++ src/battle/hud.c | 6 +++++- src/defs.h | 1 + src/system/sound.c | 1 + 6 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 sound/320181__dland__hint.ogg diff --git a/README.md b/README.md index d958f40..d8454c2 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ CC BY-NC-SA 3.0, with the following attribution: Copyright 2015-2016, Stephen J * 39030__wildweasel__d1clsstf.ogg - push_button_switch_07.wav, by joedeshon - https://freesound.org/people/joedeshon/sounds/139061/ * 254174__kwahmah-02__s.ogg - s.wav, by kwahmah_02 - https://freesound.org/people/kwahmah_02/sounds/254174/ * 172870__escortmarius__carbidexplosion.ogg - carbidexplosion.wav, by escortmarius - https://freesound.org/people/escortmarius/sounds/172870/ +* 320181__dland__hint.ogg - hint.wav, by dland - https://freesound.org/people/dland/sounds/320181/ ### MUSIC diff --git a/sound/320181__dland__hint.ogg b/sound/320181__dland__hint.ogg new file mode 100644 index 0000000000000000000000000000000000000000..363da5cadb43f44a14c27561a69468028914f133 GIT binary patch literal 6745 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 literal 0 HcmV?d00001 diff --git a/src/battle/battle.c b/src/battle/battle.c index a1c58ba..2228d7e 100644 --- a/src/battle/battle.c +++ b/src/battle/battle.c @@ -165,6 +165,11 @@ static void doBattle(void) if (battle.stats[STAT_TIME]++ % FPS == 0) { runScriptFunction("TIME %d", battle.stats[STAT_TIME] / FPS); + + if (game.currentMission->challengeData.timeLimit && game.currentMission->challengeData.timeLimit - battle.stats[STAT_TIME] < 11 * FPS) + { + playSound(SND_TIME_WARNING); + } } } } diff --git a/src/battle/hud.c b/src/battle/hud.c index 5873c15..22bf94a 100644 --- a/src/battle/hud.c +++ b/src/battle/hud.c @@ -406,6 +406,8 @@ static void drawNumFighters(void) static void drawObjectives(void) { + int timeRemaining; + if (!game.currentMission->challengeData.isChallenge) { blit(objectives, (SCREEN_WIDTH / 2) - 50, 14, 0); @@ -415,8 +417,10 @@ static void drawObjectives(void) { if (game.currentMission->challengeData.timeLimit) { + timeRemaining = game.currentMission->challengeData.timeLimit - battle.stats[STAT_TIME]; + blit(clock, (SCREEN_WIDTH / 2) - 50, 14, 0); - drawText(SCREEN_WIDTH / 2, 10, 16, TA_CENTER, colors.white, timeToString(game.currentMission->challengeData.timeLimit - battle.stats[STAT_TIME], 0)); + drawText(SCREEN_WIDTH / 2, 10, 16, TA_CENTER, (timeRemaining < 11 * FPS) ? colors.red : colors.white, timeToString(timeRemaining, 0)); } else { diff --git a/src/defs.h b/src/defs.h index a07cb3c..e485342 100644 --- a/src/defs.h +++ b/src/defs.h @@ -242,6 +242,7 @@ enum SND_BOOST, SND_RADIO, SND_MINE_WARNING, + SND_TIME_WARNING, SND_GUI_CLICK, SND_GUI_SELECT, SND_GUI_CLOSE, diff --git a/src/system/sound.c b/src/system/sound.c index a2c68d3..68d9431 100644 --- a/src/system/sound.c +++ b/src/system/sound.c @@ -119,6 +119,7 @@ static void loadSounds(void) sounds[SND_POWER_DOWN] = loadSound("sound/39030__wildweasel__d1clsstf.ogg"); sounds[SND_SELECT_WEAPON] = loadSound("sound/329359__bassoonrckr__reed-guillotine.ogg"); sounds[SND_MINE_WARNING] = loadSound("sound/254174__kwahmah-02__s.ogg"); + sounds[SND_TIME_WARNING] = loadSound("sound/320181__dland__hint.ogg"); sounds[SND_GUI_CLICK] = loadSound("sound/257786__xtrgamr__mouse-click.ogg"); sounds[SND_GUI_SELECT] = loadSound("sound/321104__nsstudios__blip2.ogg");