From f3461269763563c651500e481f86841ee60ec865 Mon Sep 17 00:00:00 2001 From: Allanis Date: Wed, 4 Jun 2014 21:14:14 +0100 Subject: [PATCH] [Add] Use combat music on combat. --- snd/music.lua | 14 +++++++++++--- src/pilot.c | 10 +++++++++- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/snd/music.lua b/snd/music.lua index 523c512..4760cc2 100644 --- a/snd/music.lua +++ b/snd/music.lua @@ -27,7 +27,7 @@ function choose(str) choose_ambient() elseif str == "combat" then - choose_battle() + choose_combat() elseif str == "idle" and last ~= "idle" then -- We'll play the same as last unless it was takeoff. @@ -174,8 +174,16 @@ function choose_ambient() end -- Battle songs. -function choose_battle() - music.load("galacticbattle") +function choose_combat() + -- Stop music first, but since it'll get saved it'll run this next. + if music.isPlaying() then + music.stop() + return + end + + combat = { "galacticbattle" } + + music.load(combat[rnd.int(1, #combat)]) music.play() end diff --git a/src/pilot.c b/src/pilot.c index 8797d00..ad53088 100644 --- a/src/pilot.c +++ b/src/pilot.c @@ -20,6 +20,7 @@ #include "map.h" #include "explosion.h" #include "escort.h" +#include "music.h" #include "pilot.h" #define XML_ID "Fleets" /**< XML document identifier. */ @@ -223,6 +224,9 @@ double pilot_face(Pilot* p, const double dir) { */ void pilot_setHostile(Pilot* p) { if(!pilot_isFlag(p, PILOT_HOSTILE)) { + /* Time to play combat music. */ + if(player_enemies == 0) + music_choose("combat"); player_enemies++; pilot_setFlag(p, PILOT_HOSTILE); } @@ -233,9 +237,13 @@ void pilot_setHostile(Pilot* p) { * @param p Pilot to mark as neutral. */ void pilot_rmHostile(Pilot* p) { - if(pilot_isFlag(p, PILOT_HOSTILE)) { + if(pilot_isFlag(p, PILOT_HOSTILE)) { player_enemies--; pilot_rmFlag(p, PILOT_HOSTILE); + + /* Change music back to ambient if no more enemies. */ + if(player_enemies == 0) + music_choose("ambient"); } }