Show B indicator in menu when can switch item to B button
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -32,14 +32,8 @@ RTL
|
||||
JSL.l ResetEquipment
|
||||
RTL
|
||||
.b_pressed
|
||||
PHX
|
||||
LDA.l AllowedItemOnB : BEQ .b_error
|
||||
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
|
||||
JSR CanPressB : BCC .b_error
|
||||
LDA.w ItemCursor : CMP.l ItemOnB : BNE .set_b
|
||||
LDA.b #$00
|
||||
.set_b
|
||||
STA.l ItemOnB
|
||||
@@ -47,7 +41,6 @@ RTL
|
||||
.b_error
|
||||
LDA.b #$3C : STA.w SFX2 ; error sound
|
||||
.b_done
|
||||
PLX
|
||||
SEC
|
||||
RTL
|
||||
.y_pressed ; Note: used as entry point by quickswap code. Must preserve X.
|
||||
@@ -115,6 +108,27 @@ RTL
|
||||
SEC
|
||||
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:
|
||||
@@ -415,6 +429,7 @@ AddYMarker:
|
||||
+ CMP.w #$10 : BEQ .drawJarMarker
|
||||
|
||||
.drawNormal
|
||||
JSR CanPressB : BCS .drawBBubble
|
||||
LDA.w #$7C60
|
||||
BRA .drawTile
|
||||
|
||||
@@ -422,12 +437,20 @@ AddYMarker:
|
||||
LDA.w MenuBlink : AND.w #$0020 : BNE .drawXBubble
|
||||
|
||||
.drawYBubble
|
||||
JSR CanPressB : BCC .drawY
|
||||
LDA.w MenuBlink : AND.w #$0020 : BNE .drawBBubble
|
||||
.drawY
|
||||
LDA.w #$3D4F
|
||||
BRA .drawTile
|
||||
|
||||
.drawXBubble
|
||||
JSR MakeCircleBlue
|
||||
LDA.w #$2D3E
|
||||
BRA .drawTile
|
||||
|
||||
.drawBBubble
|
||||
JSR MakeCircleRed
|
||||
LDA.w #$293F
|
||||
|
||||
.drawTile
|
||||
STA.w $FFC4, Y
|
||||
@@ -456,6 +479,24 @@ MakeCircleBlue:
|
||||
LDA.w $0084, Y : AND.w #$EFFF : STA.w $0084, Y
|
||||
LDA.w $007E, Y : AND.w #$EFFF : STA.w $007E, Y
|
||||
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
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
|
||||
@@ -25,7 +25,7 @@ DrawBIndicator:
|
||||
LDA.l ItemOnB : AND.w #$00FF : BEQ .done
|
||||
DEC : ASL : TAX
|
||||
LDA.l ItemMenuLocations, X : TAX
|
||||
LDA.w #$3D3F
|
||||
LDA.w #$3D3B
|
||||
STA.w $0042, X
|
||||
|
||||
.done ; what we wrote over
|
||||
|
||||
Reference in New Issue
Block a user