Add cane-only modes

This commit is contained in:
2021-12-20 16:10:11 -08:00
parent 0ab9095222
commit 53792aea25
12 changed files with 193 additions and 79 deletions

View File

@@ -46,6 +46,12 @@
; #$B4 - L-4 Bombs
; #$B5 - L-5 Bombs
; #$B6 - Progressive Bombs
; #$B7 - L-1 Cane
; #$B8 - L-2 Cane
; #$B9 - L-3 Cane
; #$BA - L-4 Cane
; #$BB - L-5 Cane
; #$BC - Progressive Cane
; #$FE - Server Request (Asychronous Chest)
; #$FF - Null Chest
;--------------------------------------------------------------------------------
@@ -413,10 +419,20 @@ AddReceivedItemExpandedGetItem:
LDA.b #$79 : JSL Sprite_SpawnDynamically : BMI + ; DashBeeHive_SpawnBee
LDA $22 : STA $0D10, Y : LDA $23 : STA $0D30, Y ; from enemizer's Spawn_Bees
LDA $20 : STA $0D00, Y : LDA $21 : STA $0D20, Y
+ CMP.b #$B1 : !BLT + : CMP.b #$B6 : !BGE + ; Bomb Upgrades
LDA.l SpecialWeapons : CMP #$01 : BNE ++
+ CMP.b #$B1 : !BLT + : CMP.b #$B7 : !BGE + ; Bomb Upgrades
LDA.l SpecialWeapons : CMP #$01 : BNE .done
LDA #$01 : STA $7F50C9 ; infinite bombs
++
JMP .done
+ : CMP.b #$B7 : !BLT + : CMP.b #$BD : !BGE + ; Cane Upgrades
LDA.l SpecialWeapons : CMP #$03 : BEQ .blue_cane
CMP #$04 : BEQ .red_cane
BRA .done
.blue_cane
LDA #$01 : STA $7EF351
BRA .done
.red_cane
LDA #$01 : STA $7EF350
BRA .done
BRA .done
+
.done
@@ -556,17 +572,17 @@ AddReceivedItemExpanded:
JSL.l GetRNGItemSingle : STA $02D8
XBA : JSR.w MarkRNGItemSingle
LDA #$FF : STA !LOCK_IN ; clear lock-in
BRA .done
JMP .done
++ : CMP.b #$63 : BNE ++ ; RNG Item (Multi)
JSL.l GetRNGItemMulti : STA $02D8
LDA #$FF : STA !LOCK_IN ; clear lock-in
BRA .done
JMP .done
++ : CMP.b #$B0 : BNE ++ ; Bee Trap
LDA !MULTIWORLD_ITEM_PLAYER_ID : BEQ +++
LDA.b #$0E : STA $02D8 : BRA .done ; Bee in a bottle
LDA.b #$0E : STA $02D8 : JMP .done ; Bee in a bottle
+++
++ : CMP.b #$B6 : BNE ++ ; Progressive Bombs
LDA !BOMB_LEVEL
LDA !WEAPON_LEVEL
CMP.b #$00 : BNE + ; have no Bombs
LDA.b #$B1 : STA $02D8 : JMP .done
+ : CMP.b #$01 : BNE + ; have L-1 Bombs
@@ -577,6 +593,18 @@ AddReceivedItemExpanded:
LDA.b #$B4 : STA $02D8 : JMP .done
+ ; Everything Else
LDA.b #$B5 : STA $02D8 : JMP .done
++ : CMP.b #$BC : BNE ++ ; Progressive Cane
LDA !WEAPON_LEVEL
CMP.b #$00 : BNE + ; have no Cane
LDA.b #$B7 : STA $02D8 : JMP .done
+ : CMP.b #$01 : BNE + ; have L-1 Cane
LDA.b #$B8 : STA $02D8 : JMP .done
+ : CMP.b #$02 : BNE + ; have L-2 Cane
LDA.b #$B9 : STA $02D8 : JMP .done
+ : CMP.b #$03 : BNE + ; have L-3 Cane
LDA.b #$BA : STA $02D8 : JMP .done
+ ; Everything Else
LDA.b #$BB : STA $02D8 : JMP .done
++
.done
PLX : PLA
@@ -623,7 +651,8 @@ AddReceivedItemExpanded:
db -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4 ; Free Small Key
db -4 ; Bee Trap
db -4, -4, -4, -4, -4, -4 ; Bomb Upgrades
db -4, -4, -4, -4, -4, -4, -4, -4, -4 ; Unused
db -4, -4, -4, -4, -4, -4 ; Cane Upgrades
db -4, -4, -4 ; Unused
db -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4 ; Unused
db -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4 ; Unused
db -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4 ; Unused
@@ -664,8 +693,9 @@ AddReceivedItemExpanded:
;db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; *EVENT*
db 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ; Free Small Key
db 0 ; Bee Trap
db 0, 0, 0, 0, 0, 0; Bomb Upgrades
db 0, 0, 0, 0, 0, 0, 0, 0, 0 ; Unused
db 0, 0, 0, 0, 0, 0 ; Bomb Upgrades
db 4, 4, 4, 4, 4, 4 ; Cane Upgrades
db 0, 0, 0 ; Unused
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; Unused
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; Unused
db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; Unused
@@ -712,7 +742,8 @@ AddReceivedItemExpanded:
db $47 ; Bee Trap
db $13, $13, $13, $13, $13, $13 ; Bomb Upgrades
db $49, $49, $49, $49, $49, $49, $49, $49, $49 ; Unused
db $07, $07, $07, $07, $07, $07 ; Cane Upgrades
db $49, $49, $49 ; Unused
db $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49 ; Unused
db $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49 ; Unused
db $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49, $49 ; Unused
@@ -752,8 +783,9 @@ AddReceivedItemExpanded:
db $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02 ; Free Big Key
db $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; Free Small Key
db $02 ; Bee Trap
db $02, $02, $02, $02, $02, $02; Bomb Upgrades
db $02, $02, $02, $02, $02, $02, $02, $02, $02 ; Unused
db $02, $02, $02, $02, $02, $02 ; Bomb Upgrades
db $00, $00, $00, $00, $00, $00 ; Cane Upgrades
db $02, $02, $02 ; Unused
db $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02 ; Unused
db $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02 ; Unused
db $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02, $02 ; Unused
@@ -795,7 +827,8 @@ AddReceivedItemExpanded:
db 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ; Free Small Key
db 1 ; Bee Trap
db 4, 2, 1, 5, 5, 5 ; Bomb Upgrades
db 4, 4, 4, 4, 4, 4, 4, 4, 4 ; Unused
db 5, 5, 5, 5, 5, 5 ; Cane Upgrades
db 4, 4, 4 ; Unused
db 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ; Unused
db 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ; Unused
db 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ; Unused
@@ -838,7 +871,8 @@ AddReceivedItemExpanded:
dw $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A ; Free Small Key
dw $F36A ; Bee Trap
dw $F38F, $F38F, $F38F, $F38F, $F38F, $F38F ; Bomb Upgrades
dw $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A ; Unused
dw $F38F, $F38F, $F38F, $F38F, $F38F, $F38F ; Cane Upgrades
dw $F36A, $F36A, $F36A ; Unused
dw $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A ; Unused
dw $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A ; Unused
dw $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A, $F36A ; Unused
@@ -883,7 +917,8 @@ AddReceivedItemExpanded:
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; Free Small Key
db $FF ; Bee Trap
db $01, $02, $03, $04, $05, $FF ; Bomb Upgrades
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; Unused
db $01, $02, $03, $04, $05, $FF ; Cane Upgrades
db $FF, $FF, $FF ; Unused
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; Unused
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; Unused
db $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; Unused
@@ -971,7 +1006,8 @@ Link_ReceiveItemAlternatesExpanded:
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Free Small Key
db -1 ; Bee Trap
db -1, -1, -1, -1, -1, -1 ; Bomb Upgrades
db -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Unused
db -1, -1, -1, -1, -1, -1 ; Cane Upgrades
db -1, -1, -1 ; Unused
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Unused
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Unused
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Unused