Show B indicator in menu when can switch item to B button

This commit is contained in:
2023-09-03 18:22:25 -05:00
parent 754928b231
commit ae8020642b
4 changed files with 51 additions and 10 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -32,14 +32,8 @@ RTL
JSL.l ResetEquipment JSL.l ResetEquipment
RTL RTL
.b_pressed .b_pressed
PHX JSR CanPressB : BCC .b_error
LDA.l AllowedItemOnB : BEQ .b_error LDA.w ItemCursor : CMP.l ItemOnB : BNE .set_b
CMP.b #$FF : BEQ .skip_allow_check
CMP.w ItemCursor : BNE .b_error
.skip_allow_check
LDA.w ItemCursor : TAX
LDA.l ValidItemOnB, X : BNE .b_error
TXA : CMP.l ItemOnB : BNE .set_b
LDA.b #$00 LDA.b #$00
.set_b .set_b
STA.l ItemOnB STA.l ItemOnB
@@ -47,7 +41,6 @@ RTL
.b_error .b_error
LDA.b #$3C : STA.w SFX2 ; error sound LDA.b #$3C : STA.w SFX2 ; error sound
.b_done .b_done
PLX
SEC SEC
RTL RTL
.y_pressed ; Note: used as entry point by quickswap code. Must preserve X. .y_pressed ; Note: used as entry point by quickswap code. Must preserve X.
@@ -115,6 +108,27 @@ RTL
SEC SEC
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
CanPressB:
PHY : PHP : SEP #$30
LDA.l AllowedItemOnB : BEQ .no
CMP.b #$FF : BEQ .skip_allow_check
CMP.w ItemCursor : BNE .no
.skip_allow_check
PHX
LDA.w ItemCursor : TAX
LDA.l ValidItemOnB, X : BNE .plx_and_no
PLX
PLP : PLY
SEC
RTS
.plx_and_no
PLX
.no
PLP : PLY
CLC
RTS
;--------------------------------------------------------------------------------
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
;ProcessBottleMenu: ;ProcessBottleMenu:
@@ -415,6 +429,7 @@ AddYMarker:
+ CMP.w #$10 : BEQ .drawJarMarker + CMP.w #$10 : BEQ .drawJarMarker
.drawNormal .drawNormal
JSR CanPressB : BCS .drawBBubble
LDA.w #$7C60 LDA.w #$7C60
BRA .drawTile BRA .drawTile
@@ -422,12 +437,20 @@ AddYMarker:
LDA.w MenuBlink : AND.w #$0020 : BNE .drawXBubble LDA.w MenuBlink : AND.w #$0020 : BNE .drawXBubble
.drawYBubble .drawYBubble
JSR CanPressB : BCC .drawY
LDA.w MenuBlink : AND.w #$0020 : BNE .drawBBubble
.drawY
LDA.w #$3D4F LDA.w #$3D4F
BRA .drawTile BRA .drawTile
.drawXBubble .drawXBubble
JSR MakeCircleBlue JSR MakeCircleBlue
LDA.w #$2D3E LDA.w #$2D3E
BRA .drawTile
.drawBBubble
JSR MakeCircleRed
LDA.w #$293F
.drawTile .drawTile
STA.w $FFC4, Y STA.w $FFC4, Y
@@ -456,6 +479,24 @@ MakeCircleBlue:
LDA.w $0084, Y : AND.w #$EFFF : STA.w $0084, Y LDA.w $0084, Y : AND.w #$EFFF : STA.w $0084, Y
LDA.w $007E, Y : AND.w #$EFFF : STA.w $007E, Y LDA.w $007E, Y : AND.w #$EFFF : STA.w $007E, Y
RTS RTS
MakeCircleRed:
LDA.w $FFC0, Y : AND.w #$EBFF : STA.w $FFC0, Y
LDA.w $FFC2, Y : AND.w #$EBFF : STA.w $FFC2, Y
LDA.w $FFFE, Y : AND.w #$EBFF : STA.w $FFFE, Y
LDA.w $0004, Y : AND.w #$EBFF : STA.w $0004, Y
LDA.w $003E, Y : AND.w #$EBFF : STA.w $003E, Y
LDA.w $0044, Y : AND.w #$EBFF : STA.w $0044, Y
LDA.w $0080, Y : AND.w #$EBFF : STA.w $0080, Y
LDA.w $0082, Y : AND.w #$EBFF : STA.w $0082, Y
LDA.w $FFBE, Y : AND.w #$EBFF : STA.w $FFBE, Y
LDA.w $FFC4, Y : AND.w #$EBFF : STA.w $FFC4, Y
LDA.w $0084, Y : AND.w #$EBFF : STA.w $0084, Y
LDA.w $007E, Y : AND.w #$EBFF : STA.w $007E, Y
RTS
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------

View File

@@ -25,7 +25,7 @@ DrawBIndicator:
LDA.l ItemOnB : AND.w #$00FF : BEQ .done LDA.l ItemOnB : AND.w #$00FF : BEQ .done
DEC : ASL : TAX DEC : ASL : TAX
LDA.l ItemMenuLocations, X : TAX LDA.l ItemMenuLocations, X : TAX
LDA.w #$3D3F LDA.w #$3D3B
STA.w $0042, X STA.w $0042, X
.done ; what we wrote over .done ; what we wrote over