diff --git a/music/briefing/The 9th Circle V2.ogg b/music/end/The 9th Circle V2.ogg similarity index 100% rename from music/briefing/The 9th Circle V2.ogg rename to music/end/The 9th Circle V2.ogg diff --git a/music/briefing/The 9th Circle V2.txt b/music/end/The 9th Circle V2.txt similarity index 100% rename from music/briefing/The 9th Circle V2.txt rename to music/end/The 9th Circle V2.txt diff --git a/music/lose/CrashedShip.ogg b/music/lose/CrashedShip.ogg new file mode 100644 index 00000000..55dae5b3 Binary files /dev/null and b/music/lose/CrashedShip.ogg differ diff --git a/music/lose/CrashedShip.txt b/music/lose/CrashedShip.txt new file mode 100644 index 00000000..ab518c1a --- /dev/null +++ b/music/lose/CrashedShip.txt @@ -0,0 +1,4 @@ +Reencoded from Sci-Fi Ambient - Crashed Ship by Ted Kerr +https://opengameart.org/content/sci-fi-ambient-crashed-ship + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/music/lose/Epic Fall.ogg b/music/lose/Epic Fall.ogg new file mode 100644 index 00000000..aa0bf5bd Binary files /dev/null and b/music/lose/Epic Fall.ogg differ diff --git a/music/lose/Epic Fall.txt b/music/lose/Epic Fall.txt new file mode 100644 index 00000000..b4714048 --- /dev/null +++ b/music/lose/Epic Fall.txt @@ -0,0 +1,5 @@ +Reencoded from Epic Fall by Alexandr Zhelanov +Alexandr Zhelanov https://soundcloud.com/alexandr-zhelanov +https://opengameart.org/content/epic-fall + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/music/victory/Party Sector.ogg b/music/victory/Party Sector.ogg new file mode 100644 index 00000000..107f1c39 Binary files /dev/null and b/music/victory/Party Sector.ogg differ diff --git a/music/victory/Party Sector.txt b/music/victory/Party Sector.txt new file mode 100644 index 00000000..4e57cce3 --- /dev/null +++ b/music/victory/Party Sector.txt @@ -0,0 +1,5 @@ +Reencoded from Party Sector by Joth +Joth https://soundcloud.com/user-215083110 +https://opengameart.org/content/party-sector + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/music/victory/low-fi.ogg b/music/victory/low-fi.ogg new file mode 100644 index 00000000..86fe4a37 Binary files /dev/null and b/music/victory/low-fi.ogg differ diff --git a/music/victory/low-fi.txt b/music/victory/low-fi.txt new file mode 100644 index 00000000..9718b6b4 --- /dev/null +++ b/music/victory/low-fi.txt @@ -0,0 +1,5 @@ +Reencoded from low-fi by Alexandr Zhelanov +https://soundcloud.com/alexandr-zhelanov +https://opengameart.org/content/low-fi + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/src/briefing_screens.c b/src/briefing_screens.c index 33747cb1..5b523415 100644 --- a/src/briefing_screens.c +++ b/src/briefing_screens.c @@ -403,11 +403,19 @@ GameLoopData *ScreenMissionSummary( if (completed) { MenuAddSubmenu(mData->ms.root, MenuCreateReturn("Continue", 0)); + + MusicPlayFromChunk( + &gSoundDevice.music, MUSIC_END, + &gCampaign.Setting.CustomSongs[MUSIC_END]); } else { MenuAddSubmenu(mData->ms.root, MenuCreateReturn("Replay mission", 0)); MenuAddSubmenu(mData->ms.root, MenuCreateReturn("Back to menu", 1)); + + MusicPlayFromChunk( + &gSoundDevice.music, MUSIC_LOSE, + &gCampaign.Setting.CustomSongs[MUSIC_LOSE]); } mData->ms.allowAborts = true; MenuAddExitType(&mData->ms, MENU_TYPE_RETURN); @@ -450,8 +458,6 @@ static void MissionSummaryOnEnter(GameLoopData *data) { MissionSummaryData *mData = data->Data; - MusicPlayGeneral(&gSoundDevice.music, MUSIC_BRIEFING); - if (mData->completed && CanLevelSelect(mData->c->Entry.Mode)) { AutosaveAdd(&gAutosave, &mData->c->Entry, mData->m->index, mData->m->NextMission, &gPlayerDatas); diff --git a/src/cdogs/mission.c b/src/cdogs/mission.c index 4eb6596e..34b8bc55 100644 --- a/src/cdogs/mission.c +++ b/src/cdogs/mission.c @@ -190,6 +190,8 @@ void MissionCopy(Mission *dst, const Mission *src) dst->Music = src->Music; switch (src->Music.Type) { + case MUSIC_SRC_GENERAL: + break; case MUSIC_SRC_DYNAMIC: CSTRDUP(dst->Music.Data.Filename, src->Music.Data.Filename); break; @@ -488,6 +490,9 @@ void MissionBegin(struct MissionOptions *m, const NGameBegin gb) m->state = MISSION_STATE_PLAY; switch (m->missionData->Music.Type) { + case MUSIC_SRC_GENERAL: + MusicPlayGeneral(&gSoundDevice.music, MUSIC_GAME); + break; case MUSIC_SRC_DYNAMIC: MusicPlayFile( &gSoundDevice.music, MUSIC_GAME, gCampaign.Entry.Path, diff --git a/src/cdogs/music.c b/src/cdogs/music.c index d888848c..de65361a 100644 --- a/src/cdogs/music.c +++ b/src/cdogs/music.c @@ -45,6 +45,9 @@ void MusicPlayerInit(MusicPlayer *mp) LoadMusic(&mp->generalTracks[MUSIC_MENU], "music/menu"); LoadMusic(&mp->generalTracks[MUSIC_BRIEFING], "music/briefing"); LoadMusic(&mp->generalTracks[MUSIC_GAME], "music/game"); + LoadMusic(&mp->generalTracks[MUSIC_END], "music/end"); + LoadMusic(&mp->generalTracks[MUSIC_LOSE], "music/lose"); + LoadMusic(&mp->generalTracks[MUSIC_VICTORY], "music/victory"); } static void LoadMusic(CArray *tracks, const char *path) { diff --git a/src/cdogs/music.h b/src/cdogs/music.h index 7b077b69..aebcc7bb 100644 --- a/src/cdogs/music.h +++ b/src/cdogs/music.h @@ -62,9 +62,9 @@ typedef enum MUSIC_MENU, MUSIC_BRIEFING, MUSIC_GAME, - // TODO: end music - // TODO: lose music - // TODO: victory music + MUSIC_END, + MUSIC_LOSE, + MUSIC_VICTORY, MUSIC_COUNT } MusicType; diff --git a/src/screens_end.c b/src/screens_end.c index 4ed0b775..3cde89fa 100644 --- a/src/screens_end.c +++ b/src/screens_end.c @@ -372,6 +372,9 @@ GameLoopData *ScreenVictory(Campaign *c) PlayerListNew(PlayerListUpdate, VictoryDraw, data, true, false); pl->pos.y = 75; pl->size.y -= pl->pos.y; + MusicPlayFromChunk( + &gSoundDevice.music, MUSIC_VICTORY, + &gCampaign.Setting.CustomSongs[MUSIC_VICTORY]); return PlayerListLoop(pl); } static void VictoryDraw(void *data)