Quickswap: Fix consecutive special swaps
This commit is contained in:
@@ -23,7 +23,7 @@
|
|||||||
; -
|
; -
|
||||||
; -
|
; -
|
||||||
; -
|
; -
|
||||||
; -
|
; q = quickswap lock
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; ProcessMenuButtons:
|
; ProcessMenuButtons:
|
||||||
; out: Carry - 0 = No Button, 1 = Yes Button
|
; out: Carry - 0 = No Button, 1 = Yes Button
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ QuickSwap:
|
|||||||
BRA .store
|
BRA .store
|
||||||
|
|
||||||
.special_swap
|
.special_swap
|
||||||
|
LDA !INVENTORY_SWAP_2 : ORA #$01 : STA !INVENTORY_SWAP_2
|
||||||
CPX.b #$02 : BEQ + ; boomerang
|
CPX.b #$02 : BEQ + ; boomerang
|
||||||
CPX.b #$01 : BEQ + ; bow
|
CPX.b #$01 : BEQ + ; bow
|
||||||
CPX.b #$05 : BEQ + ; powder
|
CPX.b #$05 : BEQ + ; powder
|
||||||
@@ -47,22 +48,14 @@ QuickSwap:
|
|||||||
LDA.b $F6 : AND.b #$40 ;what we wrote over
|
LDA.b $F6 : AND.b #$40 ;what we wrote over
|
||||||
RTL
|
RTL
|
||||||
RCode:
|
RCode:
|
||||||
LDA.w $0202 : TAX
|
LDX.w $0202
|
||||||
|
LDA.b $F2 : BIT #$20 : BNE ++ ; Still holding L from a previous frame
|
||||||
|
LDA !INVENTORY_SWAP_2 : AND #$FE : STA !INVENTORY_SWAP_2
|
||||||
|
BRA +
|
||||||
|
++
|
||||||
|
LDA !INVENTORY_SWAP_2 : BIT #$01 : BEQ +
|
||||||
|
RTS
|
||||||
-
|
-
|
||||||
; CPX.b #$0F : BNE + ; incrementing into bottle
|
|
||||||
; LDX.b #$00 : BRA ++
|
|
||||||
; + CPX.b #$10 : BNE + ; incrementing bottle
|
|
||||||
; LDA.l $7EF34F : TAX
|
|
||||||
; -- : ++
|
|
||||||
; CPX.b #$04 : BEQ .noMoreBottles
|
|
||||||
; INX
|
|
||||||
; LDA.l $7EF35B,X : BEQ --
|
|
||||||
; TXA : STA.l $7EF34F
|
|
||||||
; LDX #$10
|
|
||||||
; RTS
|
|
||||||
; .noMoreBottles
|
|
||||||
; LDX #$11
|
|
||||||
; BRA .nextItem
|
|
||||||
+ CPX.b #$14 : BNE + : LDX.b #$00 ;will wrap around to 1
|
+ CPX.b #$14 : BNE + : LDX.b #$00 ;will wrap around to 1
|
||||||
+ INX
|
+ INX
|
||||||
.nextItem
|
.nextItem
|
||||||
@@ -70,21 +63,14 @@ RCode:
|
|||||||
RTS
|
RTS
|
||||||
|
|
||||||
LCode:
|
LCode:
|
||||||
LDA.w $0202 : TAX
|
LDX.w $0202
|
||||||
|
LDA.b $F2 : BIT #$10 : BNE ++ ; Still holding R from a previous frame
|
||||||
|
LDA !INVENTORY_SWAP_2 : AND #$FE : STA !INVENTORY_SWAP_2
|
||||||
|
BRA +
|
||||||
|
++
|
||||||
|
LDA !INVENTORY_SWAP_2 : BIT #$01 : BEQ +
|
||||||
|
RTS
|
||||||
-
|
-
|
||||||
; CPX.b #$11 : BNE + ; decrementing into bottle
|
|
||||||
; LDX.b #$05 : BRA ++
|
|
||||||
; + CPX.b #$10 : BNE + ; decrementing bottle
|
|
||||||
; LDA.l $7EF34F : TAX
|
|
||||||
; -- : ++
|
|
||||||
; CPX.b #$01 : BEQ .noMoreBottles
|
|
||||||
; DEX
|
|
||||||
; LDA.l $7EF35B,X : BEQ --
|
|
||||||
; TXA : STA.l $7EF34F
|
|
||||||
; LDX.b #$10
|
|
||||||
; RTS
|
|
||||||
; .noMoreBottles
|
|
||||||
; LDX.b #$0F : BRA .nextItem
|
|
||||||
+ CPX.b #$01 : BNE + : LDX.b #$15 ; will wrap around to $14
|
+ CPX.b #$01 : BNE + : LDX.b #$15 ; will wrap around to $14
|
||||||
+ DEX
|
+ DEX
|
||||||
.nextItem
|
.nextItem
|
||||||
|
|||||||
Reference in New Issue
Block a user