mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-25 09:45:02 +00:00
Document Sequence Cutscene Effects (Sequence 109) (#1246)
* Seq 109 docs * Fix * Reorder function name
This commit is contained in:
parent
fa1ea37d54
commit
0a95d17aa8
12 changed files with 42 additions and 23 deletions
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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++;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue