summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Hensley <hensley.derek58@gmail.com>2025-01-27 06:35:50 -0800
committerGitHub <noreply@github.com>2025-01-27 11:35:50 -0300
commitb9267f0550e4f408c93ac9d091332f51e9ea7838 (patch)
tree63c073ab4e190529cd3526f39f9f99609ad5602d
parent44d593f5f12967fced782b4392f842c2f637f3d6 (diff)
GCC Testing Vanilla bugs (#1789)
* doc desbreko draw damage effect bug * doc like like sfx bug * doc shellblade incorrect sfx id * document powder keg text incorrect sfx * Doc more sfx bugs with shellblade
-rw-r--r--src/overlays/actors/ovl_En_Go/z_en_go.c2
-rw-r--r--src/overlays/actors/ovl_En_Pr/z_en_pr.c3
-rw-r--r--src/overlays/actors/ovl_En_Rr/z_en_rr.c2
-rw-r--r--src/overlays/actors/ovl_En_Sb/z_en_sb.c17
-rw-r--r--src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c11
5 files changed, 29 insertions, 6 deletions
diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c
index ea6833152..9e54d8bc4 100644
--- a/src/overlays/actors/ovl_En_Go/z_en_go.c
+++ b/src/overlays/actors/ovl_En_Go/z_en_go.c
@@ -362,6 +362,8 @@ static MsgScript sMsgScriptGoronMedigoron[] = {
/* 0x0014 0x01 */ MSCRIPT_CMD_DONE(),
/* 0x0015 0x05 */ MSCRIPT_CMD_CHECK_WEEK_EVENT_REG(WEEKEVENTREG_18_40, 0x0037 - 0x001A),
+ //! @bug Incorrect sfx
+ //! The text associated with 0x0C80 makes use of an incorrect pop sound (`NA_SE_EN_SLIME_BREAK`)
/* 0x001A 0x03 */ MSCRIPT_CMD_BEGIN_TEXT(0x0C80),
/* 0x001D 0x01 */ MSCRIPT_CMD_AWAIT_TEXT(),
/* 0x001E 0x03 */ MSCRIPT_CMD_SET_WEEK_EVENT_REG(WEEKEVENTREG_18_40),
diff --git a/src/overlays/actors/ovl_En_Pr/z_en_pr.c b/src/overlays/actors/ovl_En_Pr/z_en_pr.c
index 42688c274..2bfb008f6 100644
--- a/src/overlays/actors/ovl_En_Pr/z_en_pr.c
+++ b/src/overlays/actors/ovl_En_Pr/z_en_pr.c
@@ -639,6 +639,9 @@ void EnPr_Draw(Actor* thisx, PlayState* play) {
}
if (this->drawDmgEffAlpha != 0) {
+ //! @bug: `this->drawDmgEffAlpha` is not decremented, so once active; the damage effect will remain until the
+ //! actor is killed. This only affects zora barrier as the only other damage effect, light arrows, kills in one
+ //! hit.
f32 drawDmgEffAlpha = this->drawDmgEffAlpha * 0.05f;
this->unk_238 = 0.8f;
diff --git a/src/overlays/actors/ovl_En_Rr/z_en_rr.c b/src/overlays/actors/ovl_En_Rr/z_en_rr.c
index 7e75c9325..3e8e56bb9 100644
--- a/src/overlays/actors/ovl_En_Rr/z_en_rr.c
+++ b/src/overlays/actors/ovl_En_Rr/z_en_rr.c
@@ -803,6 +803,8 @@ void EnRr_Update(Actor* thisx, PlayState* play) {
this->actionFunc(this, play);
if (this->actor.params == LIKE_LIKE_PARAM_2) {
+ //! @bug: Actor will constantly play an SFX every frame when player is close enough.
+ //! In `func_808FAF94` the check is if the actor has zero speed.
this->actor.speed = 0.0f;
} else {
Math_StepToF(&this->actor.speed, 0.0f, 0.1f);
diff --git a/src/overlays/actors/ovl_En_Sb/z_en_sb.c b/src/overlays/actors/ovl_En_Sb/z_en_sb.c
index ae3b8046b..4f10b78a4 100644
--- a/src/overlays/actors/ovl_En_Sb/z_en_sb.c
+++ b/src/overlays/actors/ovl_En_Sb/z_en_sb.c
@@ -153,6 +153,11 @@ void EnSb_SetupOpen(EnSb* this) {
ANIMMODE_ONCE, 0.0f);
this->state = SHELLBLADE_OPEN;
this->actionFunc = EnSb_Open;
+ //! @bug Incorrect sfx
+ //! In OoT, NA_SE_EN_SHELL_MOUTH is the value 0x3849
+ //! But in MM, certain sfxIds got reordered this was not updated:
+ //! In MM, NA_SE_EN_KUSAMUSHI_VIBE is the old value 0x3849
+ //! In MM, NA_SE_EN_SHELL_MOUTH does not exist
Actor_PlaySfx(&this->actor, NA_SE_EN_KUSAMUSHI_VIBE);
}
@@ -170,6 +175,11 @@ void EnSb_SetupLunge(EnSb* this) {
Animation_Change(&this->skelAnime, &object_sb_Anim_000124, playbackSpeed, 0.0f, endFrame, ANIMMODE_ONCE, 0);
this->state = SHELLBLADE_LUNGE;
this->actionFunc = EnSb_Lunge;
+ //! @bug Incorrect sfx
+ //! In OoT, NA_SE_EN_SHELL_MOUTH is the value 0x3849
+ //! But in MM, certain sfxIds got reordered this was not updated:
+ //! In MM, NA_SE_EN_KUSAMUSHI_VIBE is the old value 0x3849
+ //! In MM, NA_SE_EN_SHELL_MOUTH does not exist
Actor_PlaySfx(&this->actor, NA_SE_EN_KUSAMUSHI_VIBE);
}
@@ -341,7 +351,12 @@ void EnSb_UpdateDamage(EnSb* this, PlayState* play) {
}
this->isDead = true;
Enemy_StartFinishingBlow(play, &this->actor);
- SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 0x28, NA_SE_EN_BEE_FLY);
+ //! @bug Incorrect sfx
+ //! In OoT, NA_SE_EN_SHELL_DEAD is the value 0x384A
+ //! But in MM, certain sfxIds got reordered this was not updated:
+ //! In MM, NA_SE_EN_BEE_FLY is the old value 0x384A
+ //! In MM, NA_SE_EN_SHELL_DEAD does not exist
+ SoundSource_PlaySfxAtFixedWorldPos(play, &this->actor.world.pos, 40, NA_SE_EN_BEE_FLY);
return;
}
hitPoint.x = this->collider.elem.acDmgInfo.hitPos.x;
diff --git a/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c b/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c
index b52a025d0..757b3b2f4 100644
--- a/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c
+++ b/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c
@@ -269,11 +269,12 @@ void EnTuboTrap_FlyAtPlayer(EnTuboTrap* this, PlayState* play) {
f32 dY = this->originPos.y - this->actor.world.pos.y;
f32 dZ = this->originPos.z - this->actor.world.pos.z;
- //! @bug should be NA_SE_EN_TUBOOCK_FLY - SFX_FLAG
- // In OoT, NA_SE_EN_TUBOOCK_FLY is the value 0x3837
- // But in MM, certain sfxIds got reordered and devs forgot to update:
- // In MM, NA_SE_EN_MIZUBABA2_ATTACK is the old value 0x3837
- // In MM, NA_SE_EN_TUBOOCK_FLY is the new value 0x3AE0
+ //! @bug Incorrect sfx
+ //! This should be NA_SE_EN_TUBOOCK_FLY - SFX_FLAG
+ //! In OoT, NA_SE_EN_TUBOOCK_FLY is the value 0x3837
+ //! But in MM, certain sfxIds got reordered this was not updated:
+ //! In MM, NA_SE_EN_MIZUBABA2_ATTACK is the old value 0x3837
+ //! In MM, NA_SE_EN_TUBOOCK_FLY is the new value 0x3AE0
Actor_PlaySfx(&this->actor, NA_SE_EN_MIZUBABA2_ATTACK - SFX_FLAG);
if ((SQ(dX) + SQ(dY) + SQ(dZ) > SQ(240.0f))) {