mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-04-26 00:32:20 -05:00
Finish documenting Sound_PlayBGM
This commit is contained in:
parent
69f1ec4b14
commit
e013edd202
|
|
@ -24,6 +24,7 @@ enum SoundHeapState {
|
|||
|
||||
enum SoundSystemState {
|
||||
SOUND_SYSTEM_STATE_IDLE = 0,
|
||||
SOUND_SYSTEM_STATE_PLAY = 1, // Start playing a sound
|
||||
};
|
||||
|
||||
enum SoundHandleType {
|
||||
|
|
@ -46,6 +47,8 @@ enum SoundSystemParam {
|
|||
SOUND_SYSTEM_PARAM_CURRENT_BGM = 10,
|
||||
SOUND_SYSTEM_PARAM_NEXT_BGM,
|
||||
|
||||
SOUND_SYSTEM_PARAM_FIELD_BGM_BANK_STATE = 19,
|
||||
|
||||
SOUND_SYSTEM_PARAM_MAIN_SCENE = 21,
|
||||
SOUND_SYSTEM_PARAM_SUB_SCENE,
|
||||
SOUND_SYSTEM_PARAM_HEAP_STATE_EMPTY,
|
||||
|
|
@ -53,6 +56,8 @@ enum SoundSystemParam {
|
|||
SOUND_SYSTEM_PARAM_HEAP_STATE_BGM_BANK,
|
||||
SOUND_SYSTEM_PARAM_HEAP_STATE_SFX,
|
||||
SOUND_SYSTEM_PARAM_HEAP_STATE_BGM,
|
||||
|
||||
SOUND_SYSTEM_PARAM_FIELD_BGM = 32,
|
||||
};
|
||||
|
||||
typedef struct SoundSystem {
|
||||
|
|
@ -79,14 +84,14 @@ typedef struct SoundSystem {
|
|||
u8 unk_BCD61;
|
||||
u8 unk_BCD62;
|
||||
u8 unk_BCD63;
|
||||
u8 unk_BCD64;
|
||||
u8 fieldBGMBankState;
|
||||
u8 unk_BCD65;
|
||||
u8 mainScene;
|
||||
u8 subScene;
|
||||
int heapStates[SOUND_HEAP_STATE_COUNT];
|
||||
u8 unk_BCD84;
|
||||
u8 unk_BCD85;
|
||||
u16 unk_BCD86;
|
||||
u16 currentFieldBGM;
|
||||
const SNDWaveData *unk_BCD88;
|
||||
void *unk_BCD8C;
|
||||
int unk_BCD90;
|
||||
|
|
|
|||
|
|
@ -9,34 +9,38 @@
|
|||
#include "struct_defs/struct_02004CB4.h"
|
||||
|
||||
|
||||
#define FIELD_BGM_BANK_STATE_IDLE 0
|
||||
#define FIELD_BGM_BANK_STATE_SWITCH 1
|
||||
|
||||
|
||||
void Sound_SetBGMFixed(u8 fixed);
|
||||
u8 Sound_IsBGMFixed(void);
|
||||
void Sound_SetCurrentBGM(u16 bgmID);
|
||||
u16 Sound_GetCurrentBGM();
|
||||
void Sound_SetNextBGM(u16 bgmID);
|
||||
u16 Sound_GetNextBGM();
|
||||
void sub_02004224(u16 param0);
|
||||
void Sound_SetFieldBGM(u16 param0);
|
||||
void Sound_SetScene(u8 scene);
|
||||
void Sound_SetSubScene(u8 scene);
|
||||
int Sound_LoadSoundEffectsForScene(u8 param0);
|
||||
BOOL sub_02004550(u8 param0, u16 param1, int param2);
|
||||
void sub_020047E8(u16 param0, u16 param1);
|
||||
void Sound_LoadSoundDataForFieldBGM(u16 param0, u16 param1);
|
||||
void sub_02004950(u16 param0);
|
||||
void sub_02004964(void);
|
||||
int Sound_GetHeapState(enum SoundHeapState state);
|
||||
void sub_020049F4(u8 param0, BOOL param1);
|
||||
void sub_02004A3C();
|
||||
void sub_02004A54(int param0, int param1, int param2);
|
||||
void sub_02004A68(int param0, int param1);
|
||||
void Sound_SetInitialVolumeForHandle(enum SoundHandleType param0, int param1);
|
||||
void sub_02004A84(int param0);
|
||||
void sub_02004AA0(int param0, int param1);
|
||||
void Sound_AdjustVolumeForVoiceChat(int param0, enum SoundHandleType param1);
|
||||
void sub_02004AD4(u16 param0, int param1);
|
||||
BOOL sub_02004AE8(int param0, int param1, u16 param2);
|
||||
int sub_02004B04(int param0);
|
||||
u8 Sound_GetPlayerForSequence(u16 param0);
|
||||
int Sound_GetSequenceFromSoundHandle(NNSSndHandle *param0);
|
||||
int Sound_GetSequenceIDFromSoundHandle(NNSSndHandle *param0);
|
||||
const NNSSndArcBankInfo *sub_02004B3C(int param0);
|
||||
u16 sub_02004B48(int param0);
|
||||
u16 Sound_GetBankIDFromSequenceID(int param0);
|
||||
MICResult sub_02004B5C(MICAutoParam *param0);
|
||||
MICResult sub_02004B64(void);
|
||||
MICResult sub_02004B70(MICSamplingType param0, void *param1, MICCallback param2, void *param3);
|
||||
|
|
@ -68,7 +72,7 @@ void sub_02004FDC(int param0);
|
|||
int sub_02004FEC(void);
|
||||
void sub_0200500C(int param0);
|
||||
void *sub_02005014(void);
|
||||
void sub_0200501C(int param0);
|
||||
void Sound_SetFieldBGMBankState(int param0);
|
||||
BOOL sub_0200502C(u8 param0, u16 param1, int param2, int param3, u8 param4, void *param5);
|
||||
BOOL sub_02005068(u8 param0, u16 param1, int param2, int param3, int param4, u8 param5, void *param6);
|
||||
const u8 *sub_020050E0(const SNDWaveData *param0);
|
||||
|
|
|
|||
|
|
@ -916,7 +916,7 @@ int ov65_0222E548(OverlayManager *param0, int *param1)
|
|||
}
|
||||
|
||||
if (ov65_02231A54() == 1) {
|
||||
sub_02004A68(0, 120);
|
||||
Sound_SetInitialVolumeForHandle(SOUND_HANDLE_TYPE_FIELD_BGM, 120);
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
|
|
|||
|
|
@ -1246,7 +1246,7 @@ static void ov65_02237520(UnkStruct_ov65_022367A8 *param0)
|
|||
static void ov65_02237534(UnkStruct_ov65_022367A8 *param0)
|
||||
{
|
||||
if (ov65_02237504(param0)) {
|
||||
sub_02004A68(0, 120);
|
||||
Sound_SetInitialVolumeForHandle(SOUND_HANDLE_TYPE_FIELD_BGM, 120);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ int ov73_021D3280 (OverlayManager * param0, int * param1)
|
|||
if (v0->unk_24) {
|
||||
v0->unk_24--;
|
||||
} else {
|
||||
sub_02004224(1030);
|
||||
Sound_SetFieldBGM(1030);
|
||||
sub_02004550(4, 1030, 1);
|
||||
|
||||
v0->unk_24 = 3 * 30;
|
||||
|
|
|
|||
|
|
@ -195,8 +195,8 @@ void *SoundSystem_GetParam(enum SoundSystemParam param)
|
|||
return &soundSys->unk_BCD62;
|
||||
case 18:
|
||||
return &soundSys->unk_BCD63;
|
||||
case 19:
|
||||
return &soundSys->unk_BCD64;
|
||||
case SOUND_SYSTEM_PARAM_FIELD_BGM_BANK_STATE:
|
||||
return &soundSys->fieldBGMBankState;
|
||||
case 20:
|
||||
return &soundSys->unk_BCD65;
|
||||
case SOUND_SYSTEM_PARAM_MAIN_SCENE:
|
||||
|
|
@ -221,8 +221,8 @@ void *SoundSystem_GetParam(enum SoundSystemParam param)
|
|||
return &soundSys->unk_BCD84;
|
||||
case 31:
|
||||
return &soundSys->unk_BCD85;
|
||||
case 32:
|
||||
return &soundSys->unk_BCD86;
|
||||
case SOUND_SYSTEM_PARAM_FIELD_BGM:
|
||||
return &soundSys->currentFieldBGM;
|
||||
case 33:
|
||||
return &soundSys->unk_BCD88;
|
||||
case 34:
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ void Sound_SetCurrentBGM(u16 param0);
|
|||
u16 Sound_GetCurrentBGM(void);
|
||||
void Sound_SetNextBGM(u16 param0);
|
||||
u16 Sound_GetNextBGM(void);
|
||||
void sub_02004224(u16 param0);
|
||||
void Sound_SetFieldBGM(u16 param0);
|
||||
void sub_02004964(void);
|
||||
int Sound_GetHeapState(enum SoundHeapState state);
|
||||
void Sound_SetScene(u8 param0);
|
||||
|
|
@ -26,7 +26,7 @@ BOOL sub_02004550(u8 param0, u16 param1, int param2);
|
|||
static void Sound_LoadSoundEffectsForSceneWithState(u8 param0);
|
||||
static void sub_020046F8(u16 param0, int param1);
|
||||
static void sub_0200478C(u16 param0, u16 param1);
|
||||
void sub_020047E8(u16 param0, u16 param1);
|
||||
void Sound_LoadSoundDataForFieldBGM(u16 param0, u16 param1);
|
||||
static void sub_02004874(u16 param0, int param1);
|
||||
static void sub_020048AC(u16 param0, int param1);
|
||||
static void sub_020048CC(u16 param0, int param1);
|
||||
|
|
@ -37,16 +37,16 @@ void sub_02004950(u16 param0);
|
|||
void sub_020049F4(u8 param0, BOOL param1);
|
||||
void sub_02004A3C(void);
|
||||
void sub_02004A54(int param0, int param1, int param2);
|
||||
void sub_02004A68(int param0, int param1);
|
||||
void Sound_SetInitialVolumeForHandle(enum SoundHandleType param0, int param1);
|
||||
void sub_02004A84(int param0);
|
||||
void sub_02004AA0(int param0, int param1);
|
||||
void Sound_AdjustVolumeForVoiceChat(int param0, enum SoundHandleType param1);
|
||||
void sub_02004AD4(u16 param0, int param1);
|
||||
BOOL sub_02004AE8(int param0, int param1, u16 param2);
|
||||
int sub_02004B04(int param0);
|
||||
u8 Sound_GetPlayerForSequence(u16 param0);
|
||||
int Sound_GetSequenceFromSoundHandle(NNSSndHandle *param0);
|
||||
int Sound_GetSequenceIDFromSoundHandle(NNSSndHandle *param0);
|
||||
const NNSSndArcBankInfo *sub_02004B3C(int param0);
|
||||
u16 sub_02004B48(int param0);
|
||||
u16 Sound_GetBankIDFromSequenceID(int param0);
|
||||
MICResult sub_02004B5C(MICAutoParam *param0);
|
||||
MICResult sub_02004B64(void);
|
||||
NNSSndWaveOutHandle *sub_02004B78(u32 param0);
|
||||
|
|
@ -78,7 +78,7 @@ void sub_02004FDC(int param0);
|
|||
int sub_02004FEC(void);
|
||||
void sub_0200500C(int param0);
|
||||
void *sub_02005014(void);
|
||||
void sub_0200501C(int param0);
|
||||
void Sound_SetFieldBGMBankState(int param0);
|
||||
BOOL sub_0200502C(u8 param0, u16 param1, int param2, int param3, u8 param4, void *param5);
|
||||
BOOL sub_02005068(u8 param0, u16 param1, int param2, int param3, int param4, u8 param5, void *param6);
|
||||
static void sub_020050A4(u8 param0, u16 param1, int param2, int param3, u8 param4, void *param5);
|
||||
|
|
@ -134,12 +134,10 @@ u16 Sound_GetNextBGM(void)
|
|||
return *param;
|
||||
}
|
||||
|
||||
void sub_02004224(u16 param0)
|
||||
void Sound_SetFieldBGM(u16 bgmID)
|
||||
{
|
||||
u16 *v0 = SoundSystem_GetParam(32);
|
||||
|
||||
*v0 = param0;
|
||||
return;
|
||||
u16 *param = SoundSystem_GetParam(SOUND_SYSTEM_PARAM_FIELD_BGM);
|
||||
*param = bgmID;
|
||||
}
|
||||
|
||||
void Sound_SetScene(u8 scene)
|
||||
|
|
@ -417,7 +415,7 @@ static void sub_020046F8(u16 param0, int param1)
|
|||
int *v4 = SoundSystem_GetParam(24);
|
||||
u16 *v5 = SoundSystem_GetParam(32);
|
||||
|
||||
v1 = Sound_GetSequenceFromSoundHandle(SoundSystem_GetSoundHandle(0));
|
||||
v1 = Sound_GetSequenceIDFromSoundHandle(SoundSystem_GetSoundHandle(0));
|
||||
|
||||
if (*v3 == 0) {
|
||||
if (v1 == param0) {
|
||||
|
|
@ -427,7 +425,7 @@ static void sub_020046F8(u16 param0, int param1)
|
|||
}
|
||||
}
|
||||
|
||||
sub_0200501C(1);
|
||||
Sound_SetFieldBGMBankState(FIELD_BGM_BANK_STATE_SWITCH);
|
||||
sub_020056D4();
|
||||
|
||||
if (v1 != param0) {
|
||||
|
|
@ -456,7 +454,7 @@ static void sub_020046F8(u16 param0, int param1)
|
|||
static void sub_0200478C(u16 param0, u16 param1)
|
||||
{
|
||||
u16 *v0 = SoundSystem_GetParam(32);
|
||||
u16 v1 = sub_02004B48(*v0);
|
||||
u16 v1 = Sound_GetBankIDFromSequenceID(*v0);
|
||||
|
||||
if ((v1 != 701) && (v1 != 703)) {
|
||||
SoundSystem_LoadSequenceEx(param0, NNS_SND_ARC_LOAD_WAVE);
|
||||
|
|
@ -468,35 +466,33 @@ static void sub_0200478C(u16 param0, u16 param1)
|
|||
SoundSystem_SaveHeapState(SoundSystem_GetParam(27));
|
||||
sub_020049F4(1, 0);
|
||||
sub_0200560C(127, 40, 0);
|
||||
sub_0200501C(0);
|
||||
Sound_SetFieldBGMBankState(FIELD_BGM_BANK_STATE_IDLE);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void sub_020047E8(u16 param0, u16 param1)
|
||||
void Sound_LoadSoundDataForFieldBGM(u16 seqID, u16 currentBankID)
|
||||
{
|
||||
u16 v0;
|
||||
u8 *v1 = SoundSystem_GetParam(19);
|
||||
u16 *v2 = SoundSystem_GetParam(32);
|
||||
u16 *newFieldBGM = SoundSystem_GetParam(SOUND_SYSTEM_PARAM_FIELD_BGM);
|
||||
|
||||
if ((*v1 == 1) || (param1 == 0)) {
|
||||
if (*v1 == 1 || currentBankID == 0) {
|
||||
SoundSystem_LoadHeapState(Sound_GetHeapState(SOUND_HEAP_STATE_PERSISTENT));
|
||||
Sound_SetSubScene(0);
|
||||
SoundSystem_LoadSequenceEx(*v2, NNS_SND_ARC_LOAD_BANK);
|
||||
SoundSystem_SaveHeapState(SoundSystem_GetParam(25));
|
||||
SoundSystem_LoadSequenceEx(*newFieldBGM, NNS_SND_ARC_LOAD_BANK);
|
||||
SoundSystem_SaveHeapState(SoundSystem_GetParam(SOUND_SYSTEM_PARAM_HEAP_STATE_BGM_BANK));
|
||||
Sound_LoadSoundEffectsForScene(4);
|
||||
SoundSystem_SaveHeapState(SoundSystem_GetParam(26));
|
||||
SoundSystem_SaveHeapState(SoundSystem_GetParam(SOUND_SYSTEM_PARAM_HEAP_STATE_SFX));
|
||||
|
||||
v0 = sub_02004B48(*v2);
|
||||
|
||||
if ((v0 != 701) && (v0 != 703)) {
|
||||
SoundSystem_LoadSequenceEx(param0, NNS_SND_ARC_LOAD_WAVE);
|
||||
u16 newBankID = Sound_GetBankIDFromSequenceID(*newFieldBGM);
|
||||
if (newBankID != BANK_BGM_FIELD && newBankID != BANK_BGM_DUNGEON) {
|
||||
SoundSystem_LoadSequenceEx(seqID, NNS_SND_ARC_LOAD_WAVE);
|
||||
GF_ASSERT(FALSE);
|
||||
} else {
|
||||
SoundSystem_LoadSequenceEx(*v2, NNS_SND_ARC_LOAD_WAVE);
|
||||
SoundSystem_LoadSequenceEx(*newFieldBGM, NNS_SND_ARC_LOAD_WAVE);
|
||||
}
|
||||
|
||||
SoundSystem_SaveHeapState(SoundSystem_GetParam(27));
|
||||
SoundSystem_SaveHeapState(SoundSystem_GetParam(SOUND_SYSTEM_PARAM_HEAP_STATE_BGM));
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
@ -510,7 +506,7 @@ static void sub_02004874(u16 param0, int param1)
|
|||
SoundSystem_LoadHeapState(Sound_GetHeapState(SOUND_HEAP_STATE_BGM_BANK));
|
||||
Sound_LoadSoundEffectsForScene(5);
|
||||
SoundSystem_SaveHeapState(SoundSystem_GetParam(26));
|
||||
sub_0200501C(1);
|
||||
Sound_SetFieldBGMBankState(FIELD_BGM_BANK_STATE_SWITCH);
|
||||
Sound_PlayBGM(param0);
|
||||
|
||||
return;
|
||||
|
|
@ -534,7 +530,7 @@ void sub_020048CC(u16 param0, int param1)
|
|||
|
||||
Sound_StopAll();
|
||||
Sound_LoadSoundEffectsForSceneWithState(6);
|
||||
sub_0200501C(1);
|
||||
Sound_SetFieldBGMBankState(FIELD_BGM_BANK_STATE_SWITCH);
|
||||
Sound_PlayBGM(param0);
|
||||
|
||||
return;
|
||||
|
|
@ -546,7 +542,7 @@ void sub_020048F0(u16 param0, int param1)
|
|||
|
||||
Sound_StopAll();
|
||||
Sound_LoadSoundEffectsForSceneWithState(7);
|
||||
sub_0200501C(1);
|
||||
Sound_SetFieldBGMBankState(FIELD_BGM_BANK_STATE_SWITCH);
|
||||
Sound_PlayBGM(param0);
|
||||
|
||||
return;
|
||||
|
|
@ -642,7 +638,7 @@ void sub_020049F4(u8 param0, BOOL param1)
|
|||
}
|
||||
|
||||
if (param1 == 0) {
|
||||
Sound_SetCurrentBGM(Sound_GetSequenceFromSoundHandle(SoundSystem_GetSoundHandle(v0)));
|
||||
Sound_SetCurrentBGM(Sound_GetSequenceIDFromSoundHandle(SoundSystem_GetSoundHandle(v0)));
|
||||
}
|
||||
|
||||
NNS_SndPlayerPause(SoundSystem_GetSoundHandle(v0), param1);
|
||||
|
|
@ -668,18 +664,17 @@ void sub_02004A54(int param0, int param1, int param2)
|
|||
return;
|
||||
}
|
||||
|
||||
void sub_02004A68(int param0, int param1)
|
||||
void Sound_SetInitialVolumeForHandle(enum SoundHandleType handleType, int volume)
|
||||
{
|
||||
if (param1 < 0) {
|
||||
param1 = 0;
|
||||
if (volume < 0) {
|
||||
volume = 0;
|
||||
}
|
||||
|
||||
if (param1 > 127) {
|
||||
param1 = 127;
|
||||
if (volume > 127) {
|
||||
volume = 127;
|
||||
}
|
||||
|
||||
NNS_SndPlayerSetInitialVolume(SoundSystem_GetSoundHandle(param0), param1);
|
||||
return;
|
||||
NNS_SndPlayerSetInitialVolume(SoundSystem_GetSoundHandle(handleType), volume);
|
||||
}
|
||||
|
||||
void sub_02004A84(int param0)
|
||||
|
|
@ -687,31 +682,32 @@ void sub_02004A84(int param0)
|
|||
u8 v0 = Sound_GetPlayerForSequence(param0);
|
||||
int v1 = SoundSystem_GetSoundHandleTypeFromPlayerID(v0);
|
||||
|
||||
sub_02004AA0(param0, v1);
|
||||
Sound_AdjustVolumeForVoiceChat(param0, v1);
|
||||
return;
|
||||
}
|
||||
|
||||
void sub_02004AA0(int param0, int param1)
|
||||
void Sound_AdjustVolumeForVoiceChat(int seqID, enum SoundHandleType handleType)
|
||||
{
|
||||
u8 v0;
|
||||
const NNSSndSeqParam *v1 = NNS_SndArcGetSeqParam(param0);
|
||||
u8 volume;
|
||||
const NNSSndSeqParam *param = NNS_SndArcGetSeqParam(seqID);
|
||||
|
||||
switch (param1) {
|
||||
case 1:
|
||||
switch (handleType) {
|
||||
case SOUND_HANDLE_TYPE_POKEMON_CRY:
|
||||
case 8:
|
||||
v0 = 127;
|
||||
volume = 127;
|
||||
break;
|
||||
|
||||
default:
|
||||
if (v1 == NULL) {
|
||||
if (param == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
v0 = v1->volume;
|
||||
volume = param->volume;
|
||||
break;
|
||||
}
|
||||
|
||||
if (sub_02036314() == 1) {
|
||||
sub_02004A68(param1, (v0 / 5));
|
||||
if (sub_02036314() == TRUE) {
|
||||
Sound_SetInitialVolumeForHandle(handleType, (volume / 5));
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
@ -722,7 +718,7 @@ void sub_02004AD4(u16 param0, int param1)
|
|||
u8 v0 = Sound_GetPlayerForSequence(param0);
|
||||
int v1 = SoundSystem_GetSoundHandleTypeFromPlayerID(v0);
|
||||
|
||||
sub_02004A68(v1, param1);
|
||||
Sound_SetInitialVolumeForHandle(v1, param1);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -754,14 +750,14 @@ u8 Sound_GetPlayerForSequence(u16 seqID)
|
|||
return param->playerNo;
|
||||
}
|
||||
|
||||
int Sound_GetSequenceFromSoundHandle(NNSSndHandle *handle)
|
||||
int Sound_GetSequenceIDFromSoundHandle(NNSSndHandle *handle)
|
||||
{
|
||||
return NNS_SndPlayerGetSeqNo(handle);
|
||||
}
|
||||
|
||||
const NNSSndArcBankInfo *sub_02004B3C(int param0)
|
||||
{
|
||||
const NNSSndArcBankInfo *v0 = NNS_SndArcGetBankInfo(sub_02004B48(param0));
|
||||
const NNSSndArcBankInfo *v0 = NNS_SndArcGetBankInfo(Sound_GetBankIDFromSequenceID(param0));
|
||||
|
||||
if (v0 == NULL) {
|
||||
(void)0;
|
||||
|
|
@ -770,15 +766,14 @@ const NNSSndArcBankInfo *sub_02004B3C(int param0)
|
|||
return v0;
|
||||
}
|
||||
|
||||
u16 sub_02004B48(int param0)
|
||||
u16 Sound_GetBankIDFromSequenceID(int seqID)
|
||||
{
|
||||
const NNSSndSeqParam *v0 = NNS_SndArcGetSeqParam(param0);
|
||||
|
||||
if (v0 == NULL) {
|
||||
const NNSSndSeqParam *param = NNS_SndArcGetSeqParam(seqID);
|
||||
if (param == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return v0->bankNo;
|
||||
return param->bankNo;
|
||||
}
|
||||
|
||||
MICResult sub_02004B5C(MICAutoParam *param0)
|
||||
|
|
@ -1214,12 +1209,12 @@ void *sub_02005014(void)
|
|||
return &Unk_021BEBA0[0];
|
||||
}
|
||||
|
||||
void sub_0200501C(int param0)
|
||||
// Needs to be set to FIELD_BGM_BANK_STATE_SWITCH before calling
|
||||
// Sound_PlayBGM, if the bank needs to be switched
|
||||
void Sound_SetFieldBGMBankState(int state)
|
||||
{
|
||||
u8 *v0 = SoundSystem_GetParam(19);
|
||||
|
||||
*v0 = param0;
|
||||
return;
|
||||
u8 *param = SoundSystem_GetParam(SOUND_SYSTEM_PARAM_FIELD_BGM_BANK_STATE);
|
||||
*param = state;
|
||||
}
|
||||
|
||||
BOOL sub_0200502C(u8 param0, u16 param1, int param2, int param3, u8 param4, void *param5)
|
||||
|
|
@ -1255,7 +1250,7 @@ static void sub_020050A4(u8 param0, u16 param1, int param2, int param3, u8 param
|
|||
sub_02004FDC(param3);
|
||||
|
||||
*v0 = sub_02004B3C(param1);
|
||||
sub_0200501C(param4);
|
||||
Sound_SetFieldBGMBankState(param4);
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
@ -1536,7 +1531,7 @@ void sub_020053CC(int param0)
|
|||
|
||||
static void sub_0200540C(void)
|
||||
{
|
||||
if ((Sound_CheckFade() == 0) && (Sound_GetSequenceFromSoundHandle(SoundSystem_GetSoundHandle(0)) != -1) && (Sound_GetCurrentBGM() != 1150)) {
|
||||
if ((Sound_CheckFade() == 0) && (Sound_GetSequenceIDFromSoundHandle(SoundSystem_GetSoundHandle(0)) != -1) && (Sound_GetCurrentBGM() != 1150)) {
|
||||
sub_020056D4();
|
||||
sub_020049F4(1, 1);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -22,9 +22,9 @@ typedef struct {
|
|||
|
||||
BOOL sub_02005474(u16 param0);
|
||||
BOOL Sound_PlayBGM(u16 param0);
|
||||
static void sub_020054EC(u16 param0, int param1);
|
||||
static BOOL Sound_PlayRegularBGM(u16 seqID, u8 playerID, enum SoundHandleType handleType);
|
||||
static BOOL Sound_PlayFieldBGM(u16 seqID, u8 playerID, enum SoundHandleType handleType);
|
||||
static void Sound_Impl_HandleBGMChange(u16 param0, enum SoundHandleType param1);
|
||||
static BOOL Sound_Impl_PlayBGM(u16 seqID, u8 playerID, enum SoundHandleType handleType);
|
||||
static BOOL Sound_Impl_PlayFieldBGM(u16 seqID, u8 playerID, enum SoundHandleType handleType);
|
||||
BOOL sub_02005588(u8 param0, u16 param1);
|
||||
void sub_020055D0(u16 param0, int param1);
|
||||
static void sub_020055F4(void);
|
||||
|
|
@ -71,41 +71,40 @@ BOOL sub_02005474(u16 param0)
|
|||
(void)0;
|
||||
}
|
||||
|
||||
sub_020054EC(param0, v2);
|
||||
Sound_Impl_HandleBGMChange(param0, v2);
|
||||
return v0;
|
||||
}
|
||||
|
||||
BOOL Sound_PlayBGM(u16 seqID)
|
||||
BOOL Sound_PlayBGM(u16 bgmID)
|
||||
{
|
||||
int result;
|
||||
u8 player = Sound_GetPlayerForSequence(seqID);
|
||||
u8 player = Sound_GetPlayerForSequence(bgmID);
|
||||
enum SoundHandleType handleType = SoundSystem_GetSoundHandleTypeFromPlayerID(player);
|
||||
|
||||
if (player == PLAYER_BGM) {
|
||||
result = Sound_PlayRegularBGM(seqID, player, handleType);
|
||||
result = Sound_Impl_PlayBGM(bgmID, player, handleType);
|
||||
} else if (player == PLAYER_FIELD) {
|
||||
result = Sound_PlayFieldBGM(seqID, player, handleType);
|
||||
result = Sound_Impl_PlayFieldBGM(bgmID, player, handleType);
|
||||
} else {
|
||||
GF_ASSERT(FALSE);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sub_0200501C(0);
|
||||
// Field BGM Bank may or may not have been switched, so set it to idle
|
||||
Sound_SetFieldBGMBankState(FIELD_BGM_BANK_STATE_IDLE);
|
||||
|
||||
sub_020054EC(seqID, handleType);
|
||||
Sound_Impl_HandleBGMChange(bgmID, handleType);
|
||||
return result;
|
||||
}
|
||||
|
||||
static void sub_020054EC(u16 param0, int param1)
|
||||
static void Sound_Impl_HandleBGMChange(u16 seqID, enum SoundHandleType handleType)
|
||||
{
|
||||
Sound_SetCurrentBGM(param0);
|
||||
sub_02004AA0(param0, param1);
|
||||
SoundSystem_SetState(1);
|
||||
|
||||
return;
|
||||
Sound_SetCurrentBGM(seqID);
|
||||
Sound_AdjustVolumeForVoiceChat(seqID, handleType);
|
||||
SoundSystem_SetState(SOUND_SYSTEM_STATE_PLAY);
|
||||
}
|
||||
|
||||
static BOOL Sound_PlayRegularBGM(u16 seqID, u8 playerID, enum SoundHandleType handleType)
|
||||
static BOOL Sound_Impl_PlayBGM(u16 seqID, u8 playerID, enum SoundHandleType handleType)
|
||||
{
|
||||
SoundSystem_LoadHeapState(Sound_GetHeapState(SOUND_HEAP_STATE_SFX));
|
||||
SoundSystem_LoadSequence(seqID);
|
||||
|
|
@ -114,15 +113,21 @@ static BOOL Sound_PlayRegularBGM(u16 seqID, u8 playerID, enum SoundHandleType ha
|
|||
return NNS_SndArcPlayerStartSeq(SoundSystem_GetSoundHandle(handleType), seqID);
|
||||
}
|
||||
|
||||
static BOOL Sound_PlayFieldBGM(u16 seqID, u8 playerID, enum SoundHandleType handleType)
|
||||
static BOOL Sound_Impl_PlayFieldBGM(u16 seqID, u8 playerID, enum SoundHandleType handleType)
|
||||
{
|
||||
u8 *v1 = SoundSystem_GetParam(19);
|
||||
u16 *v2 = SoundSystem_GetParam(32);
|
||||
u16 *newFieldBGM = SoundSystem_GetParam(SOUND_SYSTEM_PARAM_FIELD_BGM);
|
||||
|
||||
int v0 = Sound_GetSequenceFromSoundHandle(SoundSystem_GetSoundHandle(SOUND_HANDLE_TYPE_FIELD_BGM));
|
||||
sub_020047E8(seqID, sub_02004B48(v0));
|
||||
int currentSeqID = Sound_GetSequenceIDFromSoundHandle(SoundSystem_GetSoundHandle(SOUND_HANDLE_TYPE_FIELD_BGM));
|
||||
Sound_LoadSoundDataForFieldBGM(seqID, Sound_GetBankIDFromSequenceID(currentSeqID));
|
||||
|
||||
return NNS_SndArcPlayerStartSeqEx(SoundSystem_GetSoundHandle(handleType), -1, sub_02004B48(*v2), -1, seqID);
|
||||
return NNS_SndArcPlayerStartSeqEx(
|
||||
SoundSystem_GetSoundHandle(handleType),
|
||||
-1,
|
||||
Sound_GetBankIDFromSequenceID(*newFieldBGM),
|
||||
-1,
|
||||
seqID
|
||||
);
|
||||
}
|
||||
|
||||
BOOL sub_02005588(u8 param0, u16 param1)
|
||||
|
|
@ -292,7 +297,7 @@ BOOL Sound_PlayEffect(u16 sdatID)
|
|||
int v0 = SoundSystem_GetSoundHandleTypeFromPlayerID(Sound_GetPlayerForSequence(sdatID));
|
||||
int v1 = NNS_SndArcPlayerStartSeq(SoundSystem_GetSoundHandle(v0), sdatID);
|
||||
|
||||
sub_02004AA0(sdatID, v0);
|
||||
Sound_AdjustVolumeForVoiceChat(sdatID, v0);
|
||||
|
||||
return v1;
|
||||
}
|
||||
|
|
@ -302,7 +307,7 @@ BOOL sub_02005770(u16 param0, int param1)
|
|||
int v0 = SoundSystem_GetSoundHandleTypeFromPlayerID(param1);
|
||||
int v1 = NNS_SndArcPlayerStartSeqEx(SoundSystem_GetSoundHandle(v0), param1, -1, -1, param0);
|
||||
|
||||
sub_02004AA0(param0, v0);
|
||||
Sound_AdjustVolumeForVoiceChat(param0, v0);
|
||||
|
||||
if (v1 == 0) {
|
||||
(void)0;
|
||||
|
|
@ -403,10 +408,10 @@ BOOL sub_02005844(u16 species, u8 form)
|
|||
}
|
||||
|
||||
v1 = NNS_SndArcPlayerStartSeqEx(SoundSystem_GetSoundHandle(1), -1, species, -1, 2);
|
||||
sub_02004AA0(species, 1);
|
||||
Sound_AdjustVolumeForVoiceChat(species, 1);
|
||||
} else {
|
||||
v1 = NNS_SndArcPlayerStartSeqEx(SoundSystem_GetSoundHandle(8), -1, species, -1, 2);
|
||||
sub_02004AA0(species, 8);
|
||||
Sound_AdjustVolumeForVoiceChat(species, 8);
|
||||
}
|
||||
|
||||
Sound_FlagDefaultChatotCry(FALSE);
|
||||
|
|
@ -661,8 +666,8 @@ BOOL Sound_PlayPokemonCry(enum PokemonCryMod cryMod, u16 species, int param2, in
|
|||
|
||||
static void sub_02005E4C(u16 param0, int param1, int param2)
|
||||
{
|
||||
sub_02004A68(param1, param2);
|
||||
sub_02004AA0(param0, param1);
|
||||
Sound_SetInitialVolumeForHandle(param1, param2);
|
||||
Sound_AdjustVolumeForVoiceChat(param0, param1);
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
@ -894,7 +899,7 @@ BOOL sub_02006150(u16 param0)
|
|||
v2 = SoundSystem_LoadSequenceEx(param0, (NNS_SND_ARC_LOAD_SEQ | NNS_SND_ARC_LOAD_BANK));
|
||||
v2 = NNS_SndArcPlayerStartSeq(SoundSystem_GetSoundHandle(2), param0);
|
||||
|
||||
sub_02004AA0(param0, 2);
|
||||
Sound_AdjustVolumeForVoiceChat(param0, 2);
|
||||
|
||||
return v2;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -319,7 +319,7 @@ void Sound_PlayMapBGM(FieldSystem *fieldSystem, int param1)
|
|||
|
||||
v0 = sub_020554A4(fieldSystem, param1);
|
||||
|
||||
sub_02004224(v0);
|
||||
Sound_SetFieldBGM(v0);
|
||||
sub_02004550(4, v0, 1);
|
||||
}
|
||||
|
||||
|
|
@ -327,6 +327,6 @@ void sub_020556A0(FieldSystem *fieldSystem, int param1)
|
|||
{
|
||||
u16 v0 = sub_02055428(fieldSystem, param1);
|
||||
|
||||
sub_02004224(sub_020554A4(fieldSystem, param1));
|
||||
Sound_SetFieldBGM(sub_020554A4(fieldSystem, param1));
|
||||
sub_02004550(4, v0, 1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -322,7 +322,7 @@ static BOOL sub_0208BC8C(UnkStruct_0208BC3C *param0, int heapID)
|
|||
|
||||
v1 = sub_02055428(param0->fieldSystem, param0->fieldSystem->location->mapId);
|
||||
|
||||
sub_02004224(sub_020554A4(param0->fieldSystem, param0->fieldSystem->location->mapId));
|
||||
Sound_SetFieldBGM(sub_020554A4(param0->fieldSystem, param0->fieldSystem->location->mapId));
|
||||
sub_02004550(4, v1, 1);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user