diff --git a/UnleashedRecomp/CMakeLists.txt b/UnleashedRecomp/CMakeLists.txt index 4751e858..24362d72 100644 --- a/UnleashedRecomp/CMakeLists.txt +++ b/UnleashedRecomp/CMakeLists.txt @@ -402,3 +402,7 @@ BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/ga BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/images/game_icon_night.bmp" DEST_FILE "${RESOURCES_OUTPUT_PATH}/images/game_icon_night.bmp" ARRAY_NAME "g_game_icon_night") BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_worldmap_cursor.wav" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_worldmap_cursor.wav" ARRAY_NAME "g_sys_worldmap_cursor") BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_worldmap_finaldecide.wav" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_worldmap_finaldecide.wav" ARRAY_NAME "g_sys_worldmap_finaldecide") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_actstg_pausecursor.wav" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_actstg_pausecursor.wav" ARRAY_NAME "g_sys_actstg_pausecursor") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_actstg_pausedecide.wav" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_actstg_pausedecide.wav" ARRAY_NAME "g_sys_actstg_pausedecide") +BIN2C(TARGET_OBJ UnleashedRecomp SOURCE_FILE "${RESOURCES_SOURCE_PATH}/sounds/sys_actstg_pausewinopen.wav" DEST_FILE "${RESOURCES_OUTPUT_PATH}/sounds/sys_actstg_pausewinopen.wav" ARRAY_NAME "g_sys_actstg_pausewinopen") + diff --git a/UnleashedRecomp/apu/embedded_player.cpp b/UnleashedRecomp/apu/embedded_player.cpp index 80398c3d..cfb3308d 100644 --- a/UnleashedRecomp/apu/embedded_player.cpp +++ b/UnleashedRecomp/apu/embedded_player.cpp @@ -5,12 +5,18 @@ #include #include +#include +#include +#include -enum EmbeddedSound +enum class EmbeddedSound { - EmbeddedSoundSysWorldMapCursor, - EmbeddedSoundSysWorldMapFinalDecide, - EmbeddedSoundCount, + SysWorldMapCursor, + SysWorldMapFinalDecide, + SysActStgPauseCursor, + SysActStgPauseDecide, + SysActStgPauseWinOpen, + Count, }; struct EmbeddedSoundData @@ -23,16 +29,19 @@ struct EmbeddedSoundData static ma_engine g_audioEngine = {}; static bool g_audioEngineInitialized = false; -static std::array g_embeddedSoundData = {}; +static std::array g_embeddedSoundData = {}; static const std::unordered_map g_embeddedSoundMap = { - { "sys_worldmap_cursor", EmbeddedSoundSysWorldMapCursor }, - { "sys_worldmap_finaldecide", EmbeddedSoundSysWorldMapFinalDecide }, + { "sys_worldmap_cursor", EmbeddedSound::SysWorldMapCursor }, + { "sys_worldmap_finaldecide", EmbeddedSound::SysWorldMapFinalDecide }, + { "sys_actstg_pausecursor", EmbeddedSound::SysActStgPauseCursor }, + { "sys_actstg_pausedecide", EmbeddedSound::SysActStgPauseDecide }, + { "sys_actstg_pausewinopen", EmbeddedSound::SysActStgPauseWinOpen }, }; static void PlayEmbeddedSound(EmbeddedSound s) { - EmbeddedSoundData &data = g_embeddedSoundData[s]; + EmbeddedSoundData &data = g_embeddedSoundData[size_t(s)]; int pickedIndex = -1; for (int i = 0; (i < EmbeddedSoundData::SimultaneousLimit) && (pickedIndex < 0); i++) { @@ -43,14 +52,26 @@ static void PlayEmbeddedSound(EmbeddedSound s) size_t soundDataSize = 0; switch (s) { - case EmbeddedSoundSysWorldMapCursor: + case EmbeddedSound::SysWorldMapCursor: soundData = g_sys_worldmap_cursor; soundDataSize = sizeof(g_sys_worldmap_cursor); break; - case EmbeddedSoundSysWorldMapFinalDecide: + case EmbeddedSound::SysWorldMapFinalDecide: soundData = g_sys_worldmap_finaldecide; soundDataSize = sizeof(g_sys_worldmap_finaldecide); break; + case EmbeddedSound::SysActStgPauseCursor: + soundData = g_sys_actstg_pausecursor; + soundDataSize = sizeof(g_sys_actstg_pausecursor); + break; + case EmbeddedSound::SysActStgPauseDecide: + soundData = g_sys_actstg_pausedecide; + soundDataSize = sizeof(g_sys_actstg_pausedecide); + break; + case EmbeddedSound::SysActStgPauseWinOpen: + soundData = g_sys_actstg_pausewinopen; + soundDataSize = sizeof(g_sys_actstg_pausewinopen); + break; default: assert(false && "Unknown embedded sound."); return; @@ -61,7 +82,7 @@ static void PlayEmbeddedSound(EmbeddedSound s) res = ma_decoder_init_memory(soundData, soundDataSize, nullptr, data.decoders[i].get()); if (res != MA_SUCCESS) { - fprintf(stderr, "ma_decoder_init_memory failed with error code %d on embedded sound %d.\n", res, s); + fprintf(stderr, "ma_decoder_init_memory failed with error code %d.\n", res); return; } @@ -69,7 +90,7 @@ static void PlayEmbeddedSound(EmbeddedSound s) res = ma_sound_init_from_data_source(&g_audioEngine, data.decoders[i].get(), MA_SOUND_FLAG_DECODE, nullptr, data.sounds[i].get()); if (res != MA_SUCCESS) { - fprintf(stderr, "ma_sound_init_from_data_source failed with error code %d on embedded sound %d.\n", res, s); + fprintf(stderr, "ma_sound_init_from_data_source failed with error code %d.\n", res); return; }