Show warning message and play sound when a missile is launched, targetting the player.
This commit is contained in:
parent
3bf5a0f057
commit
c224aff926
Binary file not shown.
|
@ -25,6 +25,7 @@ static void checkCollisions(Bullet *b);
|
||||||
|
|
||||||
static Bullet bulletDef[BT_MAX];
|
static Bullet bulletDef[BT_MAX];
|
||||||
static Bullet *bulletsToDraw[MAX_BULLETS_TO_DRAW];
|
static Bullet *bulletsToDraw[MAX_BULLETS_TO_DRAW];
|
||||||
|
static int incomingMissile;
|
||||||
|
|
||||||
void initBulletDefs(void)
|
void initBulletDefs(void)
|
||||||
{
|
{
|
||||||
|
@ -63,6 +64,8 @@ void doBullets(void)
|
||||||
Bullet *b;
|
Bullet *b;
|
||||||
Bullet *prev = &battle.bulletHead;
|
Bullet *prev = &battle.bulletHead;
|
||||||
|
|
||||||
|
incomingMissile = 0;
|
||||||
|
|
||||||
memset(bulletsToDraw, 0, sizeof(Bullet*) * MAX_BULLETS_TO_DRAW);
|
memset(bulletsToDraw, 0, sizeof(Bullet*) * MAX_BULLETS_TO_DRAW);
|
||||||
|
|
||||||
for (b = battle.bulletHead.next ; b != NULL ; b = b->next)
|
for (b = battle.bulletHead.next ; b != NULL ; b = b->next)
|
||||||
|
@ -75,6 +78,11 @@ void doBullets(void)
|
||||||
addMissileEngineEffect(b);
|
addMissileEngineEffect(b);
|
||||||
|
|
||||||
huntTarget(b);
|
huntTarget(b);
|
||||||
|
|
||||||
|
if (b->target == player && player != NULL && player->health > 0)
|
||||||
|
{
|
||||||
|
incomingMissile = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
checkCollisions(b);
|
checkCollisions(b);
|
||||||
|
@ -164,6 +172,11 @@ void drawBullets(void)
|
||||||
{
|
{
|
||||||
blitRotated(b->texture, b->x - battle.camera.x, b->y - battle.camera.y, b->angle);
|
blitRotated(b->texture, b->x - battle.camera.x, b->y - battle.camera.y, b->angle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (incomingMissile && battle.stats[STAT_TIME] % FPS < 40)
|
||||||
|
{
|
||||||
|
drawText(SCREEN_WIDTH / 2, SCREEN_HEIGHT - 60, 18, TA_CENTER, colors.red, "WARNING: INCOMING MISSILE!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void faceTarget(Bullet *b)
|
static void faceTarget(Bullet *b)
|
||||||
|
@ -302,6 +315,11 @@ void fireMissile(Entity *owner)
|
||||||
}
|
}
|
||||||
|
|
||||||
playBattleSound(b->sound, owner->x, owner->y);
|
playBattleSound(b->sound, owner->x, owner->y);
|
||||||
|
|
||||||
|
if (owner->target == player)
|
||||||
|
{
|
||||||
|
playSound(SND_INCOMING);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void destroyBulletDefs(void)
|
void destroyBulletDefs(void)
|
||||||
|
|
|
@ -41,6 +41,9 @@ extern void addMissileEngineEffect(Bullet *b);
|
||||||
extern int mod(int n, int x);
|
extern int mod(int n, int x);
|
||||||
extern void addMissileExplosion(Bullet *b);
|
extern void addMissileExplosion(Bullet *b);
|
||||||
extern Entity **getAllEntsWithin(int x, int y, int w, int h, Entity *ignore);
|
extern Entity **getAllEntsWithin(int x, int y, int w, int h, Entity *ignore);
|
||||||
|
extern void drawText(int x, int y, int size, int align, SDL_Color c, const char *format, ...);
|
||||||
|
extern void playSound(int id);
|
||||||
|
|
||||||
extern Battle battle;
|
extern Battle battle;
|
||||||
|
extern Colors colors;
|
||||||
extern Entity *player;
|
extern Entity *player;
|
||||||
|
|
|
@ -122,6 +122,6 @@ void drawRadarRangeWarning(void)
|
||||||
|
|
||||||
if (leaving && battle.stats[STAT_TIME] % FPS < 40)
|
if (leaving && battle.stats[STAT_TIME] % FPS < 40)
|
||||||
{
|
{
|
||||||
drawText(SCREEN_WIDTH / 2, SCREEN_HEIGHT - 50, 14, TA_CENTER, colors.red, "WARNING: Leaving battle area - turn around!");
|
drawText(SCREEN_WIDTH / 2, SCREEN_HEIGHT - 30, 14, TA_CENTER, colors.white, "Caution: Leaving battle area - turn around.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -157,6 +157,7 @@ enum
|
||||||
SND_EXPLOSION_4,
|
SND_EXPLOSION_4,
|
||||||
SND_GET_ITEM,
|
SND_GET_ITEM,
|
||||||
SND_MISSILE,
|
SND_MISSILE,
|
||||||
|
SND_INCOMING,
|
||||||
SND_BOOST,
|
SND_BOOST,
|
||||||
SND_GUI_CLICK,
|
SND_GUI_CLICK,
|
||||||
SND_GUI_SELECT,
|
SND_GUI_SELECT,
|
||||||
|
|
|
@ -98,6 +98,7 @@ static void loadSounds(void)
|
||||||
sounds[SND_MISSILE] = Mix_LoadWAV("sound/65787__iwilldstroyu__laserrocket.ogg");
|
sounds[SND_MISSILE] = Mix_LoadWAV("sound/65787__iwilldstroyu__laserrocket.ogg");
|
||||||
sounds[SND_BOOST] = Mix_LoadWAV("sound/18380__inferno__hvrl.ogg");
|
sounds[SND_BOOST] = Mix_LoadWAV("sound/18380__inferno__hvrl.ogg");
|
||||||
/*sounds[SND_ECM] = Mix_LoadWAV("sound/18380__inferno__hvrl.ogg");*/
|
/*sounds[SND_ECM] = Mix_LoadWAV("sound/18380__inferno__hvrl.ogg");*/
|
||||||
|
sounds[SND_INCOMING] = Mix_LoadWAV("sound/242856__plasterbrain__nuclear-alarm.ogg");
|
||||||
sounds[SND_GET_ITEM] = Mix_LoadWAV("sound/56246__q-k__latch-04.ogg");
|
sounds[SND_GET_ITEM] = Mix_LoadWAV("sound/56246__q-k__latch-04.ogg");
|
||||||
sounds[SND_EXPLOSION_1] = Mix_LoadWAV("sound/162265__qubodup__explosive.ogg");
|
sounds[SND_EXPLOSION_1] = Mix_LoadWAV("sound/162265__qubodup__explosive.ogg");
|
||||||
sounds[SND_EXPLOSION_2] = Mix_LoadWAV("sound/207322__animationisaac__short-explosion.ogg");
|
sounds[SND_EXPLOSION_2] = Mix_LoadWAV("sound/207322__animationisaac__short-explosion.ogg");
|
||||||
|
|
Loading…
Reference in New Issue