diff --git a/darkworldspawn.asm b/darkworldspawn.asm index 3ec0293..f83a094 100644 --- a/darkworldspawn.asm +++ b/darkworldspawn.asm @@ -131,19 +131,18 @@ RefreshRainAmmo: RTL ;-------------------------------------------------------------------------------- !INFINITE_ARROWS = "$7F50C8" -!INFINITE_BOMBS = "$7F50C9" !INFINITE_MAGIC = "$7F50CA" SetEscapeAssist: LDA ProgressIndicator : CMP.b #$01 : BNE .no_train ; check if we're in rain state .rain LDA.l EscapeAssist BIT.b #$04 : BEQ + : STA !INFINITE_MAGIC : + - BIT.b #$02 : BEQ + : STA !INFINITE_BOMBS : + + BIT.b #$02 : BEQ + : STA InfiniteBombs : + BIT.b #$01 : BEQ + : STA !INFINITE_ARROWS : + BRA ++ .no_train ; choo choo LDA.l EscapeAssist : BIT.b #$04 : BEQ + : LDA.b #$00 : STA !INFINITE_MAGIC : + - LDA.l EscapeAssist : BIT.b #$02 : BEQ + : LDA.b #$00 : STA !INFINITE_BOMBS : + + LDA.l EscapeAssist : BIT.b #$02 : BEQ + : LDA.b #$00 : STA InfiniteBombs : + LDA.l EscapeAssist : BIT.b #$01 : BEQ + : LDA.b #$00 : STA !INFINITE_ARROWS : + ++ RTL diff --git a/events.asm b/events.asm index e2988ff..7d9f6a6 100644 --- a/events.asm +++ b/events.asm @@ -60,7 +60,7 @@ OnUncleItemGet: LDA.l EscapeAssist BIT.b #$04 : BEQ + : STA !INFINITE_MAGIC : + - BIT.b #$02 : BEQ + : STA !INFINITE_BOMBS : + + BIT.b #$02 : BEQ + : STA InfiniteBombs : + BIT.b #$01 : BEQ + : STA !INFINITE_ARROWS : + PLA diff --git a/newhud.asm b/newhud.asm index 6b78fa8..db4d144 100644 --- a/newhud.asm +++ b/newhud.asm @@ -3,10 +3,9 @@ SEP #$30 ;================================================================================ ; Draw bomb count !BOMBCOUNT_DRAW_ADDRESS = "$7EC75A" -!INFINITE_BOMBS = "$7F50C9" ;================================================================================ - LDA !INFINITE_BOMBS : BNE .infinite_bombs + LDA.l InfiniteBombs : BNE .infinite_bombs .finite_bombs LDA.l BombsEquipment ; bombs JSR HudHexToDec2Digit ;requires 8 bit registers! diff --git a/quickswap.asm b/quickswap.asm index 1331614..a69f7ce 100644 --- a/quickswap.asm +++ b/quickswap.asm @@ -11,6 +11,7 @@ QuickSwap: LDA.l QuickSwapFlag : BEQ .done LDA.w $0202 : BEQ .done ; Skip everything if we don't have any items + LDY.b #$14 PHX XBA ; restore the stashed value CMP.b #$30 : BNE + @@ -58,8 +59,10 @@ RCode: - + CPX.b #$14 : BNE + : LDX.b #$00 ;will wrap around to 1 + INX + DEY : BEQ + .nextItem JSL.l IsItemAvailable : BEQ - + + RTS LCode: @@ -73,6 +76,17 @@ LCode: - + CPX.b #$01 : BNE + : LDX.b #$15 ; will wrap around to $14 + DEX + DEY : BEQ + .nextItem JSL.l IsItemAvailable : BEQ - + + RTS + +IsItemAvailable: + LDA.l InfiniteBombs : BEQ .finite + .infinite + CPX.b #$04 : BNE .finite + LDA.b #$01 : RTL + .finite + LDA.l EquipmentWRAM-1, X +RTL diff --git a/ram.asm b/ram.asm index 3510b8f..efaa68b 100644 --- a/ram.asm +++ b/ram.asm @@ -6,6 +6,7 @@ ;-------------------------------------------------------------------------------- ; Placeholder and for compass item max count allocations, still WIP ;-------------------------------------------------------------------------------- +InfiniteBombs = $7F50C9 CompassTotalsWRAM = $7F5410 ;================================================================================ @@ -15,4 +16,5 @@ macro assertRAM(label, address) assert