;-------------------------------------------------------------------------------- ; $7F5092 - Potion Animation Busy Flags (Health) ; $7F5093 - Potion Animation Busy Flags (Magic) ;-------------------------------------------------------------------------------- !BUSY_HEALTH = $7F5092 RefillHealth: ;STA $FFFFFF LDA.l PotionHealthRefill : CMP.b #$A0 : !BGE + LDA !BUSY_HEALTH : BNE ++ LDA.l PotionHealthRefill ; load refill amount !ADD $7EF36D ; add to current health CMP $7EF36C : !BLT +++ : LDA $7EF36C : +++ STA !BUSY_HEALTH ++ LDA $7EF36D : CMP.l !BUSY_HEALTH : !BLT ++ LDA.b #$00 : STA $7EF372 LDA $020A : BNE .notDone LDA.b #$00 : STA !BUSY_HEALTH SEC RTL ++ LDA.b #$08 : STA $7EF372 ; refill some health .notDone CLC RTL + ; Check goal health versus actual health. ; if(actual < goal) then branch. LDA $7EF36D : CMP $7EF36C : BCC .refillAllHealth LDA $7EF36C : STA $7EF36D LDA.b #$00 : STA $7EF372 ; ??? not sure what purpose this branch serves. LDA $020A : BNE .beta SEC RTL .refillAllHealth ; Fill up ze health. LDA.b #$A0 : STA $7EF372 .beta CLC RTL ;-------------------------------------------------------------------------------- !BUSY_MAGIC = $7F5093 RefillMagic: LDA.l PotionMagicRefill : CMP.b #$80 : !BGE + LDA !BUSY_MAGIC : BNE ++ LDA.l PotionMagicRefill ; load refill amount !ADD $7EF36E ; add to current magic CMP.b #$80 : !BLT +++ : LDA.b #$80 : +++ STA !BUSY_MAGIC ++ LDA $7EF36E : CMP.l !BUSY_MAGIC : !BLT ++ LDA.b #$00 : STA !BUSY_MAGIC SEC RTL ++ LDA.b #$01 : STA $7EF373 ; refill some magic CLC RTL + SEP #$30 ; Check if Link's magic meter is full LDA $7EF36E : CMP.b #$80 BCS .itsFull ; Tell the magic meter to fill up until it's full. LDA.b #$80 : STA $7EF373 SEP #$30 RTL .itsFull ; Set the carry, signifying we're done filling it. SEP #$31 RTL ;--------------------------------------------------------------------------------