From 5bf486ede620c1980e9c4db275574152dc0ec681 Mon Sep 17 00:00:00 2001 From: Steve Date: Sat, 20 Feb 2016 15:04:15 +0000 Subject: [PATCH] Display all available weapons on HUD. --- README.md | 4 +++ .../329359__bassoonrckr__reed-guillotine.ogg | Bin 0 -> 9063 bytes src/battle/hud.c | 26 +++++++++++++----- src/battle/hud.h | 1 + src/battle/player.c | 11 +++++++- src/defs.h | 1 + src/system/sound.c | 1 + 7 files changed, 36 insertions(+), 8 deletions(-) create mode 100644 sound/329359__bassoonrckr__reed-guillotine.ogg diff --git a/README.md b/README.md index 259c2cd..022e726 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,10 @@ SOUND 321906__bruce965__walkie-talkie-roger-beep.ogg - Walkie Talkie - Roger Beep, by bruce965 - https://freesound.org/people/bruce965/sounds/321906/ 322603__clippysounds__glass-break.ogg - Glass Break, by clippysounds - https://freesound.org/people/clippysounds/sounds/322603/ 276912__pauldihor__transform.ogg - transform, by PaulDihor - https://freesound.org/people/PaulDihor/sounds/276912/ +329359__bassoonrckr__reed-guillotine.ogg - Bassoon Reed Making Tool Sounds, by Reed Guillotine.wav - https://freesound.org/people/bassoonrckr/sounds/329359/ +251431__onlytheghosts__fusion-gun-flash0-by-onlytheghosts.ogg - fusion-gun_flash0_by_OnlyTheGhosts.wav, by OnlyTheGhosts - https://freesound.org/people/OnlyTheGhosts/sounds/251431/ +172591__timbre__zapitydooda.ogg - d1clsstf.wav, by wildweasel - https://freesound.org/people/wildweasel/sounds/39030/ +39030__wildweasel__d1clsstf.ogg - push_button_switch_07.wav, by joedeshon - https://freesound.org/people/joedeshon/sounds/139061/ MUSIC diff --git a/sound/329359__bassoonrckr__reed-guillotine.ogg b/sound/329359__bassoonrckr__reed-guillotine.ogg new file mode 100644 index 0000000000000000000000000000000000000000..db975baf8fb79058d63a39bea3656b1375ff225a GIT binary patch literal 9063 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 literal 0 HcmV?d00001 diff --git a/src/battle/hud.c b/src/battle/hud.c index 0ce66d7..4a6ab56 100644 --- a/src/battle/hud.c +++ b/src/battle/hud.c @@ -45,7 +45,7 @@ static SDL_Texture *ecm; static SDL_Texture *boost; static SDL_Texture *nextGun; static int numMessages; -static char *gunName[] = {"", "Particle Cannon", "Plasma Cannon", "Laser Cannon", "Mag Cannon", "Rockets"}; +static char *gunName[] = {"", "Particle Cannon", "Plasma Cannon", "Laser Cannon", "Mag Cannon", "Rockets", "Missiles"}; void initHud(void) { @@ -273,19 +273,31 @@ static void drawBoostECMBar(int current, int max, int x, int y, int r, int g, in static void drawWeaponInfo(void) { - int w, h; + int i, y; if (!player->combinedGuns) { if (battle.numPlayerGuns) { - drawText(30, 70, 14, TA_LEFT, colors.white, gunName[player->selectedGunType]); + y = 70; - if (battle.numPlayerGuns > 1) + for (i = 0 ; i < BT_MAX ; i++) { - textSize(gunName[player->selectedGunType], 14, &w, &h); - - blit(nextGun, 24 + w, 81, 1); + if (playerHasGun(i)) + { + if (player->selectedGunType == i) + { + drawText(30, y, 14, TA_LEFT, colors.green, "%s", gunName[i]); + + blit(nextGun, 8, y + 5, 0); + } + else + { + drawText(30, y, 14, TA_LEFT, colors.darkGrey, "%s", gunName[i]); + } + + y += 20; + } } } else diff --git a/src/battle/hud.h b/src/battle/hud.h index 605c636..02b3e4f 100644 --- a/src/battle/hud.h +++ b/src/battle/hud.h @@ -32,6 +32,7 @@ extern void drawRadar(void); extern void drawRadarRangeWarning(void); extern int getPercent(float current, float total); extern void textSize(char *text, int size, int *w, int *h); +extern int playerHasGun(int type); extern App app; extern Battle battle; diff --git a/src/battle/player.c b/src/battle/player.c index 21418f8..39957d9 100644 --- a/src/battle/player.c +++ b/src/battle/player.c @@ -421,7 +421,11 @@ static void switchGuns(void) while (!availableGuns[i]); } - player->selectedGunType = i; + if (player->selectedGunType != i) + { + playSound(SND_SELECT_WEAPON); + player->selectedGunType = i; + } } static void selectTarget(void) @@ -526,3 +530,8 @@ static void cycleRadarZoom(void) battle.radarRange++; battle.radarRange %= 3; } + +int playerHasGun(int type) +{ + return availableGuns[type]; +} diff --git a/src/defs.h b/src/defs.h index ac77a62..aee7edf 100644 --- a/src/defs.h +++ b/src/defs.h @@ -195,6 +195,7 @@ enum SND_GET_ITEM, SND_MISSILE, SND_INCOMING, + SND_SELECT_WEAPON, SND_JUMP, SND_ECM, SND_MAG_HIT, diff --git a/src/system/sound.c b/src/system/sound.c index 142b94d..e0addbd 100644 --- a/src/system/sound.c +++ b/src/system/sound.c @@ -111,6 +111,7 @@ static void loadSounds(void) sounds[SND_ECM] = Mix_LoadWAV(getFileLocation("sound/251431__onlytheghosts__fusion-gun-flash0-by-onlytheghosts.ogg")); sounds[SND_MAG_HIT] = Mix_LoadWAV(getFileLocation("sound/172591__timbre__zapitydooda.ogg")); sounds[SND_POWER_DOWN] = Mix_LoadWAV(getFileLocation("sound/39030__wildweasel__d1clsstf.ogg")); + sounds[SND_SELECT_WEAPON] = Mix_LoadWAV(getFileLocation("sound/329359__bassoonrckr__reed-guillotine.ogg")); sounds[SND_GUI_CLICK] = Mix_LoadWAV(getFileLocation("sound/257786__xtrgamr__mouse-click.ogg")); sounds[SND_GUI_SELECT] = Mix_LoadWAV(getFileLocation("sound/321104__nsstudios__blip2.ogg"));