diff --git a/include/functions.h b/include/functions.h index 00caeec6a7..a45495e445 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1931,7 +1931,7 @@ void AudioDebug_Draw(GfxPrint* printer); void AudioDebug_ScrPrt(const s8* str, u16 num); void func_800F3054(void); void Audio_SetSoundProperties(u8 bankId, u8 entryIdx, u8 channelIdx); -void func_800F3F3C(u8); +void Audio_PlayCutsceneEffectsSequence(u8 csEffectType); void func_800F4010(Vec3f* pos, u16 sfxId, f32); void Audio_PlaySoundRandom(Vec3f* pos, u16 baseSfxId, u8 randLim); void func_800F4138(Vec3f* pos, u16 sfxId, f32); diff --git a/include/sequence.h b/include/sequence.h index 4112f74688..6093b464ad 100644 --- a/include/sequence.h +++ b/include/sequence.h @@ -112,7 +112,7 @@ #define NA_BGM_STAFF_4 0x6A // End Credits IV #define NA_BGM_FIRE_BOSS 0x6B // King Dodongo & Volvagia Boss Battle "NA_BGM_BOSS01" #define NA_BGM_TIMED_MINI_GAME 0x6C // Mini-Game -#define NA_BGM_VARIOUS_SFX 0x6D // A small collection of various sound effects +#define NA_BGM_CUTSCENE_EFFECTS 0x6D // A small collection of various cutscene sounds #define NA_BGM_NO_MUSIC 0x7F // No bgm music is played #define NA_BGM_NATURE_SFX_RAIN 0x80 // Related to rain #define NA_BGM_DISABLED 0xFFFF @@ -131,6 +131,25 @@ typedef enum { /* 3 */ SEQ_MODE_IGNORE } SequenceMode; +typedef enum { + /* 0x0 */ SEQ_CS_EFFECTS_SWORD_GLOW, // Master sword glow + /* 0x1 */ SEQ_CS_EFFECTS_SHEIK_TRANSFORM, // Sheik's transformation to Zelda + /* 0x2 */ SEQ_CS_EFFECTS_SAGE_SEAL, // Sages accumulating their power + /* 0x3 */ SEQ_CS_EFFECTS_FARORE_MAGIC, // Farore's magic creating life + /* 0x4 */ SEQ_CS_EFFECTS_NAYRU_MAGIC, // Nayru's magic establishing order + /* 0x5 */ SEQ_CS_EFFECTS_DIN_MAGIC, // Din's building of the earth + /* 0x6 */ SEQ_CS_EFFECTS_LAVA_ERUPT, // Lava erupting from Volvagia's pit + /* 0x7 */ SEQ_CS_EFFECTS_BONGO_HURL_LINK, // Link screaming while attacked by invisible Bongo Bongo + /* 0x8 */ SEQ_CS_EFFECTS_BONGO_HOVER, // Bongo Bongo hovering menacingly + /* 0x9 */ SEQ_CS_EFFECTS_BONGO_EMERGES, // Bongo Bongo emerging from the well + /* 0xA */ SEQ_CS_EFFECTS_TRIAL_WARP, // Warping from one of the trial barriers + /* 0xB */ SEQ_CS_EFFECTS_TRIAL_DESTROY, // Destroying one of the trial barriers + /* 0xC */ SEQ_CS_EFFECTS_DISPEL_BARRIER, // Dispelling the Tower barrier + /* 0xD */ SEQ_CS_EFFECTS_TOWER_COLLAPSE, // Ganon's Tower's collapse + /* 0xE */ SEQ_CS_EFFECTS_LINK_SCREAM, // Child Link screaming (unused) + /* 0xF */ SEQ_CS_EFFECTS_RAINFALL // Rain with thunder effects +} SequenceCutsceneEffects; + typedef enum { /* 0x0 */ CHANNEL_IO_PORT_0, /* 0x1 */ CHANNEL_IO_PORT_1, diff --git a/src/code/code_800EC960.c b/src/code/code_800EC960.c index 9e6309eb56..a1c2249083 100644 --- a/src/code/code_800EC960.c +++ b/src/code/code_800EC960.c @@ -253,7 +253,7 @@ u8 sSeqFlags[0x6E] = { 0, // NA_BGM_STAFF_4 0, // NA_BGM_FIRE_BOSS 0x8, // NA_BGM_TIMED_MINI_GAME - 0, // NA_BGM_VARIOUS_SFX + 0, // NA_BGM_CUTSCENE_EFFECTS }; s8 sSpecReverbs[20] = { 0, 0, 0, 0, 0, 0, 0, 40, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -4084,10 +4084,10 @@ void Audio_ResetSfxChannelState(void) { sAudioCodeReverb = 0; } -void func_800F3F3C(u8 arg0) { +void Audio_PlayCutsceneEffectsSequence(u8 csEffectType) { if (gSoundBankMuted[0] != 1) { - Audio_StartSeq(SEQ_PLAYER_BGM_SUB, 0, NA_BGM_VARIOUS_SFX); - Audio_SeqCmd8(SEQ_PLAYER_BGM_SUB, 0, 0, arg0); + Audio_StartSeq(SEQ_PLAYER_BGM_SUB, 0, NA_BGM_CUTSCENE_EFFECTS); + Audio_SeqCmd8(SEQ_PLAYER_BGM_SUB, 0, 0, csEffectType); } } @@ -5201,7 +5201,7 @@ void Audio_StartNatureAmbienceSequence(u16 playerIO, u16 channelMask) { u8 channelIdx; if (func_800FA0B4(SEQ_PLAYER_BGM_MAIN) == NA_BGM_WINDMILL) { - func_800F3F3C(0xF); + Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_RAINFALL); return; } diff --git a/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c b/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c index e7aae3f943..383ec84d27 100644 --- a/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c +++ b/src/overlays/actors/ovl_Demo_6K/z_demo_6k.c @@ -227,7 +227,7 @@ void func_80966E98(Demo6K* this, PlayState* play) { } if (play->csCtx.frames == 342) { - func_800F3F3C(2); + Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_SAGE_SEAL); } if (this->timer1 == 39) { diff --git a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c index 55a3bd52d6..27b9a538d1 100644 --- a/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c +++ b/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c @@ -716,7 +716,7 @@ void DemoEffect_InitTimeWarp(DemoEffect* this, PlayState* play) { void DemoEffect_UpdateTimeWarpPullMasterSword(DemoEffect* this, PlayState* play) { if (Flags_GetEnv(play, 1)) { if (!(this->effectFlags & 0x2)) { - func_800F3F3C(0); + Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_SWORD_GLOW); this->effectFlags |= 0x2; } @@ -879,7 +879,7 @@ void DemoEffect_UpdateLightRingShrinking(DemoEffect* this, PlayState* play) { } if (this->lightRing.timer == 255) { - func_800F3F3C(5); + Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_DIN_MAGIC); } } @@ -1232,7 +1232,7 @@ void DemoEffect_UpdateGodLgtNayru(DemoEffect* this, PlayState* play) { Audio_PlayActorSound2(&this->actor, NA_SE_IT_DM_FLYING_GOD_DASH); } if (play->csCtx.frames == 80) { - func_800F3F3C(4); + Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_NAYRU_MAGIC); } } } @@ -1262,7 +1262,7 @@ void DemoEffect_UpdateGodLgtFarore(DemoEffect* this, PlayState* play) { } Audio_PlayActorSound2(&this->actor, NA_SE_IT_DM_FLYING_GOD_DASH); - func_800F3F3C(3); + Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_FARORE_MAGIC); } if (gSaveContext.entranceIndex == ENTR_HIRAL_DEMO_0) { diff --git a/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c b/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c index 14abf5bae4..35012eb781 100644 --- a/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c +++ b/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c @@ -487,7 +487,7 @@ void func_8097EF00(DemoGt* this, PlayState* play) { u16 frames = play->csCtx.frames; if (frames == 527) { - func_800F3F3C(13); + Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_TOWER_COLLAPSE); } } diff --git a/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c b/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c index 3ba4dea6ed..5f4a3f38b7 100644 --- a/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c +++ b/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c @@ -161,7 +161,7 @@ void DemoKekkai_TowerBarrier(DemoKekkai* this, PlayState* play) { if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[0] != NULL) && (play->csCtx.npcActions[0]->action != 1) && (play->csCtx.npcActions[0]->action == 2)) { if (!(this->sfxFlag & 1)) { - func_800F3F3C(0xC); + Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_DISPEL_BARRIER); this->sfxFlag |= 1; } if (this->barrierScrollRate < 7.0f) { @@ -208,7 +208,7 @@ void DemoKekkai_TrialBarrierDispel(Actor* thisx, PlayState* play) { DemoKekkai* this = (DemoKekkai*)thisx; if (play->csCtx.frames == csFrames[this->actor.params]) { - func_800F3F3C(0xA); + Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_TRIAL_WARP); } if (this->energyAlpha >= 0.05f) { this->energyAlpha -= 0.05f; diff --git a/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c b/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c index ed0238f267..c38f3ed3b0 100644 --- a/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c +++ b/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c @@ -50,10 +50,10 @@ void func_80991298(DemoShd* this, PlayState* play) { if ((play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[0] != NULL) || (play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[1] != NULL)) { if (play->csCtx.frames == 800) { - func_800F3F3C(9); + Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_BONGO_EMERGES); } if (play->csCtx.frames == 1069) { - func_800F3F3C(8); + Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_BONGO_HOVER); } } diff --git a/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.c b/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.c index d0168efcce..8872b64cf0 100644 --- a/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.c +++ b/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.c @@ -78,7 +78,7 @@ void EfcErupc_UpdateAction(EfcErupc* this, PlayState* play) { switch (play->csCtx.npcActions[2]->action) { case 2: if (this->unk_14E == 0) { - func_800F3F3C(6); + Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_LAVA_ERUPT); SET_EVENTCHKINF(EVENTCHKINF_2F); } this->unk_14E++; diff --git a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c index 8a1c56e800..fb80ee68d4 100644 --- a/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c +++ b/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c @@ -131,13 +131,13 @@ static u16 sBgmList[] = { NA_BGM_SHADOW_TEMPLE, NA_BGM_WATER_TEMPLE, NA_BGM_BRIDGE_TO_GANONS, - NA_BGM_VARIOUS_SFX, + NA_BGM_CUTSCENE_EFFECTS, NA_BGM_OCARINA_OF_TIME, NA_BGM_OCARINA_OF_TIME, NA_BGM_GERUDO_VALLEY, NA_BGM_POTION_SHOP, NA_BGM_KOTAKE_KOUME, - NA_BGM_VARIOUS_SFX, + NA_BGM_CUTSCENE_EFFECTS, NA_BGM_ESCAPE, NA_BGM_UNDERGROUND, NA_BGM_GANONDORF_BOSS, diff --git a/src/overlays/actors/ovl_En_Xc/z_en_xc.c b/src/overlays/actors/ovl_En_Xc/z_en_xc.c index 4dd4e6d0ab..00a33f090d 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -1522,7 +1522,7 @@ void func_80B3FA08(EnXc* this, PlayState* play) { } void func_80B3FA2C(void) { - func_800F3F3C(1); + Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_SHEIK_TRANSFORM); } void EnXc_PlayTriforceSFX(Actor* thisx, PlayState* play) { @@ -1759,7 +1759,7 @@ void EnXc_SetThrownAroundSFX(EnXc* this) { void EnXc_PlayLinkScreamSFX(EnXc* this, PlayState* play) { if (play->csCtx.frames == 1455) { - func_800F3F3C(7); + Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_BONGO_HURL_LINK); } } diff --git a/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c b/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c index 45f59c6bee..41e60537ea 100644 --- a/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c +++ b/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c @@ -883,7 +883,7 @@ void ObjectKankyo_Beams(ObjectKankyo* this, PlayState* play) { for (i = 0; i < 6; i++) { if (play->csCtx.npcActions[i + 1] != NULL && play->csCtx.npcActions[i + 1]->action == 2) { if (this->effects[i].size == 0.1f) { - func_800F3F3C(11); + Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_TRIAL_DESTROY); } Math_ApproachZeroF(&this->effects[i].size, 0.1f, 0.1f); }