mirror of
https://github.com/zeldaret/oot.git
synced 2025-02-18 04:45:24 +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 AudioDebug_ScrPrt(const s8* str, u16 num);
|
||||||
void func_800F3054(void);
|
void func_800F3054(void);
|
||||||
void Audio_SetSoundProperties(u8 bankId, u8 entryIdx, u8 channelIdx);
|
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 func_800F4010(Vec3f* pos, u16 sfxId, f32);
|
||||||
void Audio_PlaySoundRandom(Vec3f* pos, u16 baseSfxId, u8 randLim);
|
void Audio_PlaySoundRandom(Vec3f* pos, u16 baseSfxId, u8 randLim);
|
||||||
void func_800F4138(Vec3f* pos, u16 sfxId, f32);
|
void func_800F4138(Vec3f* pos, u16 sfxId, f32);
|
||||||
|
|
|
@ -112,7 +112,7 @@
|
||||||
#define NA_BGM_STAFF_4 0x6A // End Credits IV
|
#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_FIRE_BOSS 0x6B // King Dodongo & Volvagia Boss Battle "NA_BGM_BOSS01"
|
||||||
#define NA_BGM_TIMED_MINI_GAME 0x6C // Mini-Game
|
#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_NO_MUSIC 0x7F // No bgm music is played
|
||||||
#define NA_BGM_NATURE_SFX_RAIN 0x80 // Related to rain
|
#define NA_BGM_NATURE_SFX_RAIN 0x80 // Related to rain
|
||||||
#define NA_BGM_DISABLED 0xFFFF
|
#define NA_BGM_DISABLED 0xFFFF
|
||||||
|
@ -131,6 +131,25 @@ typedef enum {
|
||||||
/* 3 */ SEQ_MODE_IGNORE
|
/* 3 */ SEQ_MODE_IGNORE
|
||||||
} SequenceMode;
|
} 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 {
|
typedef enum {
|
||||||
/* 0x0 */ CHANNEL_IO_PORT_0,
|
/* 0x0 */ CHANNEL_IO_PORT_0,
|
||||||
/* 0x1 */ CHANNEL_IO_PORT_1,
|
/* 0x1 */ CHANNEL_IO_PORT_1,
|
||||||
|
|
|
@ -253,7 +253,7 @@ u8 sSeqFlags[0x6E] = {
|
||||||
0, // NA_BGM_STAFF_4
|
0, // NA_BGM_STAFF_4
|
||||||
0, // NA_BGM_FIRE_BOSS
|
0, // NA_BGM_FIRE_BOSS
|
||||||
0x8, // NA_BGM_TIMED_MINI_GAME
|
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 };
|
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;
|
sAudioCodeReverb = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_800F3F3C(u8 arg0) {
|
void Audio_PlayCutsceneEffectsSequence(u8 csEffectType) {
|
||||||
if (gSoundBankMuted[0] != 1) {
|
if (gSoundBankMuted[0] != 1) {
|
||||||
Audio_StartSeq(SEQ_PLAYER_BGM_SUB, 0, NA_BGM_VARIOUS_SFX);
|
Audio_StartSeq(SEQ_PLAYER_BGM_SUB, 0, NA_BGM_CUTSCENE_EFFECTS);
|
||||||
Audio_SeqCmd8(SEQ_PLAYER_BGM_SUB, 0, 0, arg0);
|
Audio_SeqCmd8(SEQ_PLAYER_BGM_SUB, 0, 0, csEffectType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5201,7 +5201,7 @@ void Audio_StartNatureAmbienceSequence(u16 playerIO, u16 channelMask) {
|
||||||
u8 channelIdx;
|
u8 channelIdx;
|
||||||
|
|
||||||
if (func_800FA0B4(SEQ_PLAYER_BGM_MAIN) == NA_BGM_WINDMILL) {
|
if (func_800FA0B4(SEQ_PLAYER_BGM_MAIN) == NA_BGM_WINDMILL) {
|
||||||
func_800F3F3C(0xF);
|
Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_RAINFALL);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -227,7 +227,7 @@ void func_80966E98(Demo6K* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (play->csCtx.frames == 342) {
|
if (play->csCtx.frames == 342) {
|
||||||
func_800F3F3C(2);
|
Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_SAGE_SEAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->timer1 == 39) {
|
if (this->timer1 == 39) {
|
||||||
|
|
|
@ -716,7 +716,7 @@ void DemoEffect_InitTimeWarp(DemoEffect* this, PlayState* play) {
|
||||||
void DemoEffect_UpdateTimeWarpPullMasterSword(DemoEffect* this, PlayState* play) {
|
void DemoEffect_UpdateTimeWarpPullMasterSword(DemoEffect* this, PlayState* play) {
|
||||||
if (Flags_GetEnv(play, 1)) {
|
if (Flags_GetEnv(play, 1)) {
|
||||||
if (!(this->effectFlags & 0x2)) {
|
if (!(this->effectFlags & 0x2)) {
|
||||||
func_800F3F3C(0);
|
Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_SWORD_GLOW);
|
||||||
this->effectFlags |= 0x2;
|
this->effectFlags |= 0x2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -879,7 +879,7 @@ void DemoEffect_UpdateLightRingShrinking(DemoEffect* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->lightRing.timer == 255) {
|
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);
|
Audio_PlayActorSound2(&this->actor, NA_SE_IT_DM_FLYING_GOD_DASH);
|
||||||
}
|
}
|
||||||
if (play->csCtx.frames == 80) {
|
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);
|
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) {
|
if (gSaveContext.entranceIndex == ENTR_HIRAL_DEMO_0) {
|
||||||
|
|
|
@ -487,7 +487,7 @@ void func_8097EF00(DemoGt* this, PlayState* play) {
|
||||||
u16 frames = play->csCtx.frames;
|
u16 frames = play->csCtx.frames;
|
||||||
|
|
||||||
if (frames == 527) {
|
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) &&
|
if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.npcActions[0] != NULL) &&
|
||||||
(play->csCtx.npcActions[0]->action != 1) && (play->csCtx.npcActions[0]->action == 2)) {
|
(play->csCtx.npcActions[0]->action != 1) && (play->csCtx.npcActions[0]->action == 2)) {
|
||||||
if (!(this->sfxFlag & 1)) {
|
if (!(this->sfxFlag & 1)) {
|
||||||
func_800F3F3C(0xC);
|
Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_DISPEL_BARRIER);
|
||||||
this->sfxFlag |= 1;
|
this->sfxFlag |= 1;
|
||||||
}
|
}
|
||||||
if (this->barrierScrollRate < 7.0f) {
|
if (this->barrierScrollRate < 7.0f) {
|
||||||
|
@ -208,7 +208,7 @@ void DemoKekkai_TrialBarrierDispel(Actor* thisx, PlayState* play) {
|
||||||
DemoKekkai* this = (DemoKekkai*)thisx;
|
DemoKekkai* this = (DemoKekkai*)thisx;
|
||||||
|
|
||||||
if (play->csCtx.frames == csFrames[this->actor.params]) {
|
if (play->csCtx.frames == csFrames[this->actor.params]) {
|
||||||
func_800F3F3C(0xA);
|
Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_TRIAL_WARP);
|
||||||
}
|
}
|
||||||
if (this->energyAlpha >= 0.05f) {
|
if (this->energyAlpha >= 0.05f) {
|
||||||
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) ||
|
if ((play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[0] != NULL) ||
|
||||||
(play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[1] != NULL)) {
|
(play->csCtx.state != CS_STATE_IDLE && play->csCtx.npcActions[1] != NULL)) {
|
||||||
if (play->csCtx.frames == 800) {
|
if (play->csCtx.frames == 800) {
|
||||||
func_800F3F3C(9);
|
Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_BONGO_EMERGES);
|
||||||
}
|
}
|
||||||
if (play->csCtx.frames == 1069) {
|
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) {
|
switch (play->csCtx.npcActions[2]->action) {
|
||||||
case 2:
|
case 2:
|
||||||
if (this->unk_14E == 0) {
|
if (this->unk_14E == 0) {
|
||||||
func_800F3F3C(6);
|
Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_LAVA_ERUPT);
|
||||||
SET_EVENTCHKINF(EVENTCHKINF_2F);
|
SET_EVENTCHKINF(EVENTCHKINF_2F);
|
||||||
}
|
}
|
||||||
this->unk_14E++;
|
this->unk_14E++;
|
||||||
|
|
|
@ -131,13 +131,13 @@ static u16 sBgmList[] = {
|
||||||
NA_BGM_SHADOW_TEMPLE,
|
NA_BGM_SHADOW_TEMPLE,
|
||||||
NA_BGM_WATER_TEMPLE,
|
NA_BGM_WATER_TEMPLE,
|
||||||
NA_BGM_BRIDGE_TO_GANONS,
|
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_OCARINA_OF_TIME,
|
NA_BGM_OCARINA_OF_TIME,
|
||||||
NA_BGM_GERUDO_VALLEY,
|
NA_BGM_GERUDO_VALLEY,
|
||||||
NA_BGM_POTION_SHOP,
|
NA_BGM_POTION_SHOP,
|
||||||
NA_BGM_KOTAKE_KOUME,
|
NA_BGM_KOTAKE_KOUME,
|
||||||
NA_BGM_VARIOUS_SFX,
|
NA_BGM_CUTSCENE_EFFECTS,
|
||||||
NA_BGM_ESCAPE,
|
NA_BGM_ESCAPE,
|
||||||
NA_BGM_UNDERGROUND,
|
NA_BGM_UNDERGROUND,
|
||||||
NA_BGM_GANONDORF_BOSS,
|
NA_BGM_GANONDORF_BOSS,
|
||||||
|
|
|
@ -1522,7 +1522,7 @@ void func_80B3FA08(EnXc* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_80B3FA2C(void) {
|
void func_80B3FA2C(void) {
|
||||||
func_800F3F3C(1);
|
Audio_PlayCutsceneEffectsSequence(SEQ_CS_EFFECTS_SHEIK_TRANSFORM);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnXc_PlayTriforceSFX(Actor* thisx, PlayState* play) {
|
void EnXc_PlayTriforceSFX(Actor* thisx, PlayState* play) {
|
||||||
|
@ -1759,7 +1759,7 @@ void EnXc_SetThrownAroundSFX(EnXc* this) {
|
||||||
|
|
||||||
void EnXc_PlayLinkScreamSFX(EnXc* this, PlayState* play) {
|
void EnXc_PlayLinkScreamSFX(EnXc* this, PlayState* play) {
|
||||||
if (play->csCtx.frames == 1455) {
|
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++) {
|
for (i = 0; i < 6; i++) {
|
||||||
if (play->csCtx.npcActions[i + 1] != NULL && play->csCtx.npcActions[i + 1]->action == 2) {
|
if (play->csCtx.npcActions[i + 1] != NULL && play->csCtx.npcActions[i + 1]->action == 2) {
|
||||||
if (this->effects[i].size == 0.1f) {
|
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);
|
Math_ApproachZeroF(&this->effects[i].size, 0.1f, 0.1f);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue