Show bomb level on file select screen in bomb-only mode

This commit is contained in:
2021-11-07 19:32:27 -08:00
parent ae0a5c685a
commit 6565fbfd65
4 changed files with 70 additions and 6 deletions

View File

@@ -86,6 +86,7 @@ OnFileCreation:
TAX ; what we wrote over TAX ; what we wrote over
LDA StartingEquipment+$4C : STA $700340+$4C ; copy starting equipment swaps to file select screen LDA StartingEquipment+$4C : STA $700340+$4C ; copy starting equipment swaps to file select screen
LDA StartingEquipment+$4E : STA $700340+$4E LDA StartingEquipment+$4E : STA $700340+$4E
LDA StartingEquipment+$4F : STA $700340+$4F ; copy starting bomb level
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
!RNG_ITEM_LOCK_IN = "$7F5090" !RNG_ITEM_LOCK_IN = "$7F5090"
@@ -129,7 +130,7 @@ OnNewFile:
LDA.l StartingTime : STA $7EF454 LDA.l StartingTime : STA $7EF454
LDA.l StartingTime+2 : STA $7EF454+2 LDA.l StartingTime+2 : STA $7EF454+2
LDX.w #$004E : - ; copy over starting equipment LDX.w #$004F : - ; copy over starting equipment
LDA StartingEquipment, X : STA $7EF340, X LDA StartingEquipment, X : STA $7EF340, X
DEX : DEX DEX : DEX
BPL - BPL -

View File

@@ -272,15 +272,16 @@ DrawPlayerFileShared:
%fs_drawBottle($70035F,9,23) %fs_drawBottle($70035F,9,23)
; Sword ; Sword
LDA.l SpecialWeapons : AND.w #$00FF : CMP #$0001 : BEQ .bombSword
LDA.l $700359 : AND.w #$00FF : BNE + LDA.l $700359 : AND.w #$00FF : BNE +
%fs_drawItemGray(3,26,FileSelectItems_fighters_sword) %fs_drawItemGray(3,26,FileSelectItems_fighters_sword)
BRA ++ JMP ++
+ : DEC : BNE + + : DEC : BNE +
%fs_drawItem(3,26,FileSelectItems_fighters_sword) %fs_drawItem(3,26,FileSelectItems_fighters_sword)
BRA ++ JMP ++
+ : DEC : BNE + + : DEC : BNE +
%fs_drawItem(3,26,FileSelectItems_master_sword) %fs_drawItem(3,26,FileSelectItems_master_sword)
BRA ++ JMP ++
+ : DEC : BNE + + : DEC : BNE +
%fs_drawItem(3,26,FileSelectItems_tempered_sword) %fs_drawItem(3,26,FileSelectItems_tempered_sword)
BRA ++ BRA ++
@@ -290,6 +291,28 @@ DrawPlayerFileShared:
+ +
; a sword value above 4 is either corrupted or 0xFF (a.k.a. swordless) ; a sword value above 4 is either corrupted or 0xFF (a.k.a. swordless)
%fs_drawItemGray(3,26,FileSelectItems_fighters_sword) %fs_drawItemGray(3,26,FileSelectItems_fighters_sword)
.bombSword
LDA.l $70038F : AND.w #$00FF : BNE +
%fs_drawItemGray(3,26,FileSelectItems_fighters_bombs)
BRA ++
+ : DEC : BNE +
%fs_drawItem(3,26,FileSelectItems_fighters_bombs)
BRA ++
+ : DEC : BNE +
%fs_drawItem(3,26,FileSelectItems_master_bombs)
BRA ++
+ : DEC : BNE +
%fs_drawItem(3,26,FileSelectItems_tempered_bombs)
BRA ++
+ : DEC : BNE +
%fs_drawItem(3,26,FileSelectItems_gold_bombs)
BRA ++
+ : DEC : BNE +
%fs_drawItem(3,26,FileSelectItems_extra_gold_bombs)
BRA ++
+
; a bomb value above 5 is... who knows, let's just pretend it's 5
%fs_drawItem(3,26,FileSelectItems_extra_gold_bombs)
++ ++
; Shield ; Shield
@@ -560,6 +583,18 @@ FileSelectItems:
.good_bee_bottle .good_bee_bottle
dw #$0240|!FS_COLOR_BW, #$0241|!FS_COLOR_BW, #$0254|!FS_COLOR_YELLOW, #$0246|!FS_COLOR_YELLOW dw #$0240|!FS_COLOR_BW, #$0241|!FS_COLOR_BW, #$0254|!FS_COLOR_YELLOW, #$0246|!FS_COLOR_YELLOW
.fighters_bombs
dw #$020C|!FS_COLOR_GREEN, #$020D|!FS_COLOR_GREEN, #$021C|!FS_COLOR_GREEN, #$01B1|!FS_COLOR_GREEN
.master_bombs
dw #$020C|!FS_COLOR_BLUE, #$020D|!FS_COLOR_BLUE, #$021C|!FS_COLOR_RED, #$01B2|!FS_COLOR_BLUE
.tempered_bombs
dw #$020C|!FS_COLOR_RED, #$020D|!FS_COLOR_RED, #$021C|!FS_COLOR_GREEN, #$01B3|!FS_COLOR_RED
.gold_bombs
dw #$020C|!FS_COLOR_YELLOW, #$020D|!FS_COLOR_YELLOW, #$021C|!FS_COLOR_BLUE, #$01B4|!FS_COLOR_YELLOW
.extra_gold_bombs
dw #$020C|!FS_COLOR_YELLOW, #$020D|!FS_COLOR_YELLOW, #$021C|!FS_COLOR_BLUE, #$01B5|!FS_COLOR_YELLOW
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
FileSelectDrawHudBar: FileSelectDrawHudBar:
LDA #$029B|!FS_COLOR_GREEN : %fs_draw16x8(0,10) LDA #$029B|!FS_COLOR_GREEN : %fs_draw16x8(0,10)
@@ -570,11 +605,29 @@ FileSelectDrawHudBar:
LDA $7F5006 : AND.w #$00FF : !ADD.w #$210+!FS_COLOR_BW : %fs_draw8x8(1,11) LDA $7F5006 : AND.w #$00FF : !ADD.w #$210+!FS_COLOR_BW : %fs_draw8x8(1,11)
LDA $7F5007 : AND.w #$00FF : !ADD.w #$210+!FS_COLOR_BW : %fs_draw8x8(1,12) LDA $7F5007 : AND.w #$00FF : !ADD.w #$210+!FS_COLOR_BW : %fs_draw8x8(1,12)
LDA SpecialWeapons : AND.w #$00FF : CMP #$0001 : BEQ .colorBombs
LDA #$028B|!FS_COLOR_BLUE : %fs_draw16x8(0,14) LDA #$028B|!FS_COLOR_BLUE : %fs_draw16x8(0,14)
LDA $700343 : AND.w #$00FF LDA $700343 : AND.w #$00FF
JSL.l HexToDec JSL.l HexToDec
LDA $7F5006 : AND.w #$00FF : !ADD.w #$210+!FS_COLOR_BW : %fs_draw8x8(1,14) LDA $7F5006 : AND.w #$00FF : !ADD.w #$210+!FS_COLOR_BW : %fs_draw8x8(1,14)
LDA $7F5007 : AND.w #$00FF : !ADD.w #$210+!FS_COLOR_BW : %fs_draw8x8(1,15) LDA $7F5007 : AND.w #$00FF : !ADD.w #$210+!FS_COLOR_BW : %fs_draw8x8(1,15)
BRA ++
.colorBombs
LDA $70038F : AND.w #$00FF : BNE +
; no bombs, draw no icon
BRA ++
+ : DEC : BNE +
LDA #$028B|!FS_COLOR_GREEN : %fs_draw16x8(0,14)
BRA ++
+ : DEC : BNE +
LDA #$028B|!FS_COLOR_BLUE : %fs_draw16x8(0,14)
BRA ++
+ : DEC : BNE +
LDA #$028B|!FS_COLOR_RED : %fs_draw16x8(0,14)
BRA ++
+
LDA #$028B|!FS_COLOR_YELLOW : %fs_draw16x8(0,14)
++
LDA.l !FS_INVENTORY_SWAP_2 : AND.w #$0040 : BEQ + LDA.l !FS_INVENTORY_SWAP_2 : AND.w #$0040 : BEQ +
LDA #$0299|!FS_COLOR_RED : %fs_draw16x8(0,17) LDA #$0299|!FS_COLOR_RED : %fs_draw16x8(0,17)

View File

@@ -2777,6 +2777,7 @@ BRA + : NOP #8 : +
org $089EF8 ; ancilla_bomb@1438 (LDA.w #$04 : STA $0B) org $089EF8 ; ancilla_bomb@1438 (LDA.w #$04 : STA $0B)
JSL SetBombSpriteColor JSL SetBombSpriteColor
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
; icons with numbers
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
@@ -2784,6 +2785,15 @@ db $B2, $2C, $B3, $2C, $C2, $2C, $18, $2C
db $B2, $24, $B3, $24, $C2, $24, $19, $24 db $B2, $24, $B3, $24, $C2, $24, $19, $24
db $B2, $28, $B3, $28, $C2, $28, $1A, $28 db $B2, $28, $B3, $28, $C2, $28, $1A, $28
db $B2, $28, $B3, $28, $C2, $28, $1B, $28 db $B2, $28, $B3, $28, $C2, $28, $1B, $28
; icons without numbers
org $0DFC81
db $F5, $20, $F5, $20, $F5, $20, $F5, $20
db $B2, $3C, $B3, $3C, $C2, $3C, $C2, $7C
db $B2, $2C, $B3, $2C, $C2, $2C, $C2, $6C
db $B2, $24, $B3, $24, $C2, $24, $C2, $64
db $B2, $28, $B3, $28, $C2, $28, $C2, $68
db $B2, $28, $B3, $28, $C2, $28, $C2, $68
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
org $079CE6 ; Bank07.asm@4632 (LDA #$80 : TSB $3A) org $079CE6 ; Bank07.asm@4632 (LDA #$80 : TSB $3A)
JSL CheckDetonateBomb JSL CheckDetonateBomb

View File

@@ -265,7 +265,7 @@ DrawBombInMenu:
JSL LoadBombCount16 : AND.w #$00FF : BEQ .noBombs JSL LoadBombCount16 : AND.w #$00FF : BEQ .noBombs
LDA SpecialWeapons : AND.w #$00FF : CMP.w #$0001 : BNE .vanillaBombs LDA SpecialWeapons : AND.w #$00FF : CMP.w #$0001 : BNE .vanillaBombs
LDA.l !BOMB_LEVEL : AND.w #$00FF : BEQ .noBombs : STA $02 LDA.l !BOMB_LEVEL : AND.w #$00FF : BEQ .noBombs : STA $02
LDA.w #$FC51 : STA $04 LDA.w #$FC81 : STA $04
BRA .done BRA .done
.vanillaBombs .vanillaBombs
LDA.w #$0001 : STA $02 LDA.w #$0001 : STA $02
@@ -296,7 +296,7 @@ DrawSwordInMenu:
DrawBombInYBox: DrawBombInYBox:
CPX.w #$0004 : BNE .done CPX.w #$0004 : BNE .done
LDA SpecialWeapons : AND.w #$00FF : CMP.w #$0001 : BNE .vanilla LDA SpecialWeapons : AND.w #$00FF : CMP.w #$0001 : BNE .vanilla
LDA !BOMB_LEVEL : AND.w #$00FF : CLC : ADC.w #$00B7 : BRA .done LDA !BOMB_LEVEL : AND.w #$00FF : CLC : ADC.w #$00BD : BRA .done
.vanilla .vanilla
LDA.w #$0001 LDA.w #$0001
.done .done