summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorfig02 <fig02srl@gmail.com>2024-07-27 23:16:00 -0400
committerGitHub <noreply@github.com>2024-07-27 23:16:00 -0400
commitd905e08daf48db00a8383b6c8855277977a0f4d6 (patch)
tree3e50060e3b0fe19dcc3e0e38f2b349bf3382e101 /src
parent294da9e355b71a80987cf3b85388eadd5e94b8e7 (diff)
Document bottle color bug (#2000)
* bottle color bug * adjust wording * format * small thing * reword * missed a letter
Diffstat (limited to 'src')
-rw-r--r--src/code/z_player_lib.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c
index 80d4c210d..1c05d26f9 100644
--- a/src/code/z_player_lib.c
+++ b/src/code/z_player_lib.c
@@ -1522,6 +1522,11 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
func_80090A28(this, spE4);
func_800906D4(play, this, spE4);
} else if ((*dList != NULL) && (this->leftHandType == PLAYER_MODELTYPE_LH_BOTTLE)) {
+ //! @bug When Player is actively using shield, the `itemAction` value will be set to -1.
+ //! If shield is used at the same time a bottle is in hand, `Player_ActionToBottle` will
+ //! return -1, which results in an out of bounds access behind the `sBottleColors` array.
+ //! A value of -1 happens to access `gLinkChildBottleDL` (0x06018478). The last 3 bytes of
+ //! this pointer are read as a color, which results in a dark teal color used for the bottle.
Color_RGB8* bottleColor = &sBottleColors[Player_ActionToBottle(this, this->itemAction)];
OPEN_DISPS(play->state.gfxCtx, "../z_player_lib.c", 2710);