From 2459ea0e98c55ffbf212e4e61feb731d1f5caf92 Mon Sep 17 00:00:00 2001 From: scawful Date: Sun, 15 Dec 2024 16:13:57 -0500 Subject: [PATCH] Add MagicBean_BottleLogic fn --- Sprites/NPCs/bean_vendor.asm | 74 +++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 34 deletions(-) diff --git a/Sprites/NPCs/bean_vendor.asm b/Sprites/NPCs/bean_vendor.asm index f01309d..f727bdd 100644 --- a/Sprites/NPCs/bean_vendor.asm +++ b/Sprites/NPCs/bean_vendor.asm @@ -88,46 +88,17 @@ Sprite_BeanVendor_Main: RTS } - ; 0x01 - Liftable Magic Bean MagicBean: { %StartOnFrame(1) %PlayAnimation(1,1,1) - ; TODO: Finish bottle logic LDA.w SprMiscE, X : CMP.b #$01 : BEQ .not_lifting - LDA.w $0309 : CMP.b #$02 : BNE .not_lifting - - LDA.l $7EF35C : CMP.b #$02 : BEQ .bottle1_available - LDA.l $7EF35D : CMP.b #$02 : BEQ .bottle2_available - LDA.l $7EF35E : CMP.b #$02 : BEQ .bottle3_available - LDA.l $7EF35F : CMP.b #$02 : BEQ .bottle4_available - - %ShowUnconditionalMessage($033) - JMP .not_lifting - - .bottle1_available - LDA.b #$09 : STA.l $7EF35C - %ShowUnconditionalMessage($034) - JMP .finish_storage - - .bottle2_available - LDA.b #$09 : STA.l $7EF35D - %ShowUnconditionalMessage($034) - JMP .finish_storage - - .bottle3_available - LDA.b #$09 : STA.l $7EF35E - %ShowUnconditionalMessage($034) - JMP .finish_storage - - .bottle4_available - LDA.b #$09 : STA.l $7EF35F - %ShowUnconditionalMessage($034) - .finish_storage - LDA.b #$01 : STA.w SprMiscE, X - STZ.w SprState, X - RTS + LDA.w $0309 : CMP.b #$02 : BNE .not_lifting + LDA.b $8A : BEQ + + JSR MagicBean_BottleLogic + + + RTS .not_lifting JSL Sprite_CheckIfLifted @@ -223,6 +194,41 @@ ReleaseMagicBean: RTL } +MagicBean_BottleLogic: +{ + LDA.l $7EF35C : CMP.b #$02 : BEQ .bottle1_available + LDA.l $7EF35D : CMP.b #$02 : BEQ .bottle2_available + LDA.l $7EF35E : CMP.b #$02 : BEQ .bottle3_available + LDA.l $7EF35F : CMP.b #$02 : BEQ .bottle4_available + + %ShowUnconditionalMessage($033) + JMP .return + + .bottle1_available + LDA.b #$09 : STA.l $7EF35C + %ShowUnconditionalMessage($034) + JMP .finish_storage + + .bottle2_available + LDA.b #$09 : STA.l $7EF35D + %ShowUnconditionalMessage($034) + JMP .finish_storage + + .bottle3_available + LDA.b #$09 : STA.l $7EF35E + %ShowUnconditionalMessage($034) + JMP .finish_storage + + .bottle4_available + LDA.b #$09 : STA.l $7EF35F + %ShowUnconditionalMessage($034) + .finish_storage + LDA.b #$01 : STA.w SprMiscE, X + STZ.w SprState, X + .return + RTS +} + ; ========================================================= Sprite_BeanVendor_Draw: