mirror of
https://github.com/hedge-dev/UnleashedRecomp.git
synced 2026-04-27 12:51:42 +00:00
Add more embedded sounds.
This commit is contained in:
parent
0f17ad23f9
commit
b79e92d07a
2 changed files with 37 additions and 12 deletions
|
|
@ -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")
|
||||
|
||||
|
|
|
|||
|
|
@ -5,12 +5,18 @@
|
|||
|
||||
#include <res/sounds/sys_worldmap_cursor.wav.h>
|
||||
#include <res/sounds/sys_worldmap_finaldecide.wav.h>
|
||||
#include <res/sounds/sys_actstg_pausecursor.wav.h>
|
||||
#include <res/sounds/sys_actstg_pausedecide.wav.h>
|
||||
#include <res/sounds/sys_actstg_pausewinopen.wav.h>
|
||||
|
||||
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<EmbeddedSoundData, EmbeddedSoundCount> g_embeddedSoundData = {};
|
||||
static std::array<EmbeddedSoundData, size_t(EmbeddedSound::Count)> g_embeddedSoundData = {};
|
||||
static const std::unordered_map<std::string, EmbeddedSound> 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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue