diff --git a/binaries/data/mods/public/gui/session_new/music.js b/binaries/data/mods/public/gui/session_new/music.js index d049f80615..091c732dd7 100644 --- a/binaries/data/mods/public/gui/session_new/music.js +++ b/binaries/data/mods/public/gui/session_new/music.js @@ -1,4 +1,7 @@ var g_CurrentMusic = null; +var g_CurrentAmbient = null; + +var g_MusicGain = 0.3; /* * At some point, this ought to be extended to do dynamic music selection and @@ -8,19 +11,33 @@ var g_CurrentMusic = null; function startMusic() { - var ambient1 = new Sound("audio/ambient/dayscape/day_temperate_gen_03.ogg"); - if (ambient1) + g_CurrentAmbient = new Sound("audio/ambient/dayscape/day_temperate_gen_03.ogg"); + if (g_CurrentAmbient) { - ambient1.loop(); - ambient1.setGain(0.8); + g_CurrentAmbient.loop(); + g_CurrentAmbient.setGain(0.8); } - var gain = 0.3; g_CurrentMusic = new Sound("audio/music/germanic_peace_1.ogg"); if (g_CurrentMusic) { g_CurrentMusic.loop(); - g_CurrentMusic.fade(0.0, gain, 10.0); + g_CurrentMusic.fade(0.0, g_MusicGain, 10.0); + } +} + +function switchMusic(track, fadeInPeriod) +{ + if (g_CurrentMusic) + g_CurrentMusic.fade(-1, 0.0, 5.0); + + g_CurrentMusic = new Sound("audio/music/" + track + ".ogg"); + + if (g_CurrentMusic) + { + g_CurrentMusic.loop(); + if (fadeInPeriod) + g_CurrentMusic.fade(0.0, g_MusicGain, fadeInPeriod); } } @@ -31,4 +48,10 @@ function stopMusic() g_CurrentMusic.fade(-1, 0.0, 5.0); g_CurrentMusic = null; } + + if (g_CurrentAmbient) + { + g_CurrentAmbient.fade(-1, 0.0, 5.0); + g_CurrentAmbient = null; + } } diff --git a/binaries/data/mods/public/gui/session_new/session.js b/binaries/data/mods/public/gui/session_new/session.js index 274b0b6edc..89904f28d0 100644 --- a/binaries/data/mods/public/gui/session_new/session.js +++ b/binaries/data/mods/public/gui/session_new/session.js @@ -163,12 +163,14 @@ function checkPlayerState() if (playerState.state == "defeated") { g_GameEnded = true; + switchMusic("loss_1", 0.0); messageBox(400, 200, "You have been defeated... Do you want to leave the game now?", "Defeat", 0, ["Yes", "No!"], [leaveGame, null]); } else if (playerState.state == "won") { g_GameEnded = true; + switchMusic("win_1", 0.0); messageBox(400, 200, "You have won the battle! Do you want to leave the game now?", "Victory", 0, ["Yes", "No!"], [leaveGame, null]); }