update vasu ring appraisal logic

This commit is contained in:
scawful
2024-07-09 16:30:54 -04:00
parent 346249e670
commit 29de97c3e2

View File

@@ -117,14 +117,40 @@ Sprite_Vasu_Main:
{
%PlayAnimation(0,1,20)
; Check if the player has any rings
LDA.l MAGICRINGS : BEQ .no_rings
; Check if the player has found any rings to appraise
LDA.l FOUNDRINGS : BEQ .no_rings
; Check if the player has any rings, if not give them one for free
LDA.l MAGICRINGS : BEQ .no_rings_yet
REP #$20
LDA.l $7EF360
CMP.w #$14 ; 20 rupees
SEP #$30
BCC .not_enough_rupees
; TODO: Subtract 20 rupees from the player's wallet
REP #$20
LDA.l $7EF360
SEC
SBC.w #$14 ; Subtract 20 rupees
STA.l $7EF360
SEP #$30
JMP .appraise_me
.not_enough_rupees
%ShowUnconditionalMessage($0189) ; 'You don't have enough rupees!'
%GotoAction(0)
RTS
.no_rings_yet
%ShowUnconditionalMessage($00AB) ; 'First one is free!'
JMP .appraise_me
.no_rings
%ShowUnconditionalMessage($00AB) ; 'First one is free!'
%ShowUnconditionalMessage($00AD) ; 'You don't have any rings!'
%GotoAction(0)
RTS
.appraise_me
; Check the found rings and set the saved rings
; Get the bit from found rings and set it in MAGICRINGS
LDA.l FOUNDRINGS