1
0
Fork 0
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:
engineer124 2022-06-02 17:49:10 +10:00 committed by GitHub
parent fa1ea37d54
commit 0a95d17aa8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 42 additions and 23 deletions

View file

@ -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);

View file

@ -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,

View file

@ -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;
}

View file

@ -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) {

View file

@ -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) {

View file

@ -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);
}
}

View file

@ -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;

View file

@ -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);
}
}

View file

@ -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++;

View file

@ -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,

View file

@ -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);
}
}

View file

@ -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);
}