Unify handling of bomb colors in bomb-only mode

This commit is contained in:
2021-11-07 00:28:28 -07:00
parent 0c6ba20470
commit 2b241b2340
4 changed files with 60 additions and 6 deletions

View File

@@ -367,9 +367,6 @@ JSL.l LoadBombCount
org $098133 ; <- 48133 - ancilla_init.asm : 211 (STA $7EF343 : BNE .bombs_left_over) org $098133 ; <- 48133 - ancilla_init.asm : 211 (STA $7EF343 : BNE .bombs_left_over)
JSL.l StoreBombCount JSL.l StoreBombCount
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $0DE4BF ; <- 6E4BF - equipment.asm : 1249 (LDA $7EF343 : AND.w #$00FF : BEQ .gotNoBombs)
JSL.l LoadBombCount16
;--------------------------------------------------------------------------------
org $0DDEB3 ; <- 6DEB3 - equipment.asm : 328 (LDA $7EF33F, X) org $0DDEB3 ; <- 6DEB3 - equipment.asm : 328 (LDA $7EF33F, X)
JSL.l IsItemAvailable JSL.l IsItemAvailable
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
@@ -2830,6 +2827,14 @@ org $06892F ; sprite_prep.asm@548 (LDA $0D00, X : SUB #$0C : STA $0D00, X : ...)
JSL AllowBombingBarrier JSL AllowBombingBarrier
RTS : NOP #7 RTS : NOP #7
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $0DE4BF ; equipment.asm@1247 (LDA $7EF343 : AND.w #$00FF : BEQ .gotNoBombs : ...)
JSL DrawBombInMenu
BRA + : NOP #13 : +
;--------------------------------------------------------------------------------
org $0DFB6A ; headsup_display@727 (CPX #$0004 : BNE .bombsNotEquipped : LDA #$0001)
JSL DrawBombInYBox
BRA + : NOP #2 : +
;--------------------------------------------------------------------------------
org $0DEE05 ; equipment.asm@2065 (LDA $7EF359 : AND.w #$00FF : CMP.w #$00FF : ...) org $0DEE05 ; equipment.asm@2065 (LDA $7EF359 : AND.w #$00FF : CMP.w #$00FF : ...)
JSL DrawSwordInMenu JSL DrawSwordInMenu
BRA + : NOP #16 : + BRA + : NOP #16 : +
@@ -2838,6 +2843,9 @@ org $0DFA92 ; headsup_display.asm@622 (PDB : LDA.w #$0149 : ...)
JSL DrawBombOnHud JSL DrawBombOnHud
BRA + : NOP #8 : + BRA + : NOP #8 : +
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $089EF8 ; ancilla_bomb@1438 (LDA.w #$04 : STA $0B)
JSL SetBombSpriteColor
;--------------------------------------------------------------------------------
org $0DFC51 ; is this being used? I hope not! let's find out if anything breaks! org $0DFC51 ; is this being used? I hope not! let's find out if anything breaks!
db $F5, $20, $F5, $20, $F5, $20, $F5, $20 db $F5, $20, $F5, $20, $F5, $20, $F5, $20
db $B2, $3C, $B3, $3C, $C2, $3C, $17, $3C db $B2, $3C, $B3, $3C, $C2, $3C, $17, $3C

View File

@@ -794,7 +794,7 @@ AddReceivedItemExpanded:
db 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ; Free Big Key db 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ; Free Big Key
db 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ; Free Small Key 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 1 ; Bee Trap
db 5, 5, 5, 5, 5, 5 ; Bomb Upgrades db 4, 2, 1, 5, 5, 5 ; Bomb Upgrades
db 4, 4, 4, 4, 4, 4, 4, 4, 4 ; Unused db 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
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

View File

@@ -261,6 +261,22 @@ AllowBombingBarrier:
.no_disable_projectiles .no_disable_projectiles
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
DrawBombInMenu:
JSL LoadBombCount16 : AND.w #$00FF : BEQ .noBombs
LDA SpecialWeapons : AND.w #$00FF : CMP.w #$0001 : BNE .vanillaBombs
LDA.l !BOMB_LEVEL : AND.w #$00FF : BEQ .noBombs : STA $02
LDA.w #$FC51 : STA $04
BRA .done
.vanillaBombs
LDA.w #$0001 : STA $02
LDA.w #$F699 : STA $04
BRA .done
.noBombs
LDA.w #$0000 : STA $02
LDA.w #$F699 : STA $04
.done
RTL
;--------------------------------------------------------------------------------
DrawSwordInMenu: DrawSwordInMenu:
LDA SpecialWeapons : AND.w #$00FF : CMP.w #$0001 : BEQ .bombSword LDA SpecialWeapons : AND.w #$00FF : CMP.w #$0001 : BEQ .bombSword
LDA $7EF359 : AND.w #$00FF : CMP.w #$00FF : BEQ .noSword LDA $7EF359 : AND.w #$00FF : CMP.w #$00FF : BEQ .noSword
@@ -277,6 +293,15 @@ DrawSwordInMenu:
LDA.w #$FC51 : STA $04 LDA.w #$FC51 : STA $04
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
DrawBombInYBox:
CPX.w #$0004 : BNE .done
LDA SpecialWeapons : AND.w #$00FF : CMP.w #$0001 : BNE .vanilla
LDA !BOMB_LEVEL : AND.w #$00FF : CLC : ADC.w #$00B7 : BRA .done
.vanilla
LDA.w #$0001
.done
RTL
;--------------------------------------------------------------------------------
BombIcon: BombIcon:
dw $207F, $207F, $3C88, $3C89, $2C88, $2C89, $2488, $2489, $2888, $2889,$2888, $2889 dw $207F, $207F, $3C88, $3C89, $2C88, $2C89, $2488, $2489, $2888, $2889,$2888, $2889
DrawBombOnHud: DrawBombOnHud:
@@ -294,6 +319,17 @@ DrawBombOnHud:
.regularBombs .regularBombs
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
BombSpriteColor:
db $04, $08, $04, $02, $0A, $0A
SetBombSpriteColor:
PHX
LDA.l !BOMB_LEVEL
TAX
LDA.l BombSpriteColor, X
STA $0B
PLX
RTL
;--------------------------------------------------------------------------------
StoreSwordDamage: StoreSwordDamage:
LDA.l SpecialWeapons : CMP #$02 : BEQ + LDA.l SpecialWeapons : CMP #$02 : BEQ +
LDA.l $06ED39, X : RTL LDA.l $06ED39, X : RTL

View File

@@ -193,7 +193,7 @@ GetSpritePalette:
;-------- ;--------
TAX : LDA.l .gfxPalettes, X ; look up item gfx TAX : LDA.l .gfxPalettes, X ; look up item gfx
PLB : PLX PLB : PLX
CMP.b #$F7 : !BGE .specialHandling CMP.b #$F6 : !BGE .specialHandling
RTL RTL
.specialHandling .specialHandling
CMP.b #$FD : BNE ++ ; Progressive Sword CMP.b #$FD : BNE ++ ; Progressive Sword
@@ -242,6 +242,16 @@ RTL
LDA.b #$08 : RTL LDA.b #$08 : RTL
+ ; Any Bow + ; Any Bow
LDA.b #$02 : RTL LDA.b #$02 : RTL
++ : CMP.b #$F7 : BNE ++ ; Progressive Bombs
LDA !BOMB_LEVEL
CMP.b #$00 : BNE + ; No Bombs
LDA.b #$08 : RTL
+ : CMP.b #$01 : BNE + ; L1 Bombs
LDA.b #$04 : RTL
+ : CMP.b #$02 : BNE + ; L2 Bombs
LDA.b #$02 : RTL
+ ; Everything Else
LDA.b #$0A : RTL
++ : CMP.b #$FA : BNE ++ ; RNG Item (Single) ++ : CMP.b #$FA : BNE ++ ; RNG Item (Single)
JSL.l GetRNGItemSingle : JMP GetSpritePalette JSL.l GetRNGItemSingle : JMP GetSpritePalette
++ : CMP.b #$FB : BNE ++ ; RNG Item (Multi) ++ : CMP.b #$FB : BNE ++ ; RNG Item (Multi)
@@ -288,7 +298,7 @@ RTL
db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Free Big Key db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Free Big Key
db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Free Small Key db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Free Small Key
db $04 ; Bee Trap db $04 ; Bee Trap
db $0A, $0A, $0A, $0A, $0A, $0A ; Bomb Upgrades db $08, $04, $02, $0A, $0A, $F7 ; Bomb Upgrades
db $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Unused db $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Unused
db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Unused db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Unused
db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Unused db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Unused