From d6f3aee02b80d7ed105f3c962bc0c7cf3131ff32 Mon Sep 17 00:00:00 2001 From: Kara Alexandra Date: Sun, 18 Sep 2022 15:02:37 -0700 Subject: [PATCH] Remove non-progressive bomb/cane upgrades --- darkroomitems.asm | 6 +++--- inventory.asm | 29 ++++++++++++----------------- itemdowngrade.asm | 25 ------------------------- newitems.asm | 43 ++++++++++++++++--------------------------- 4 files changed, 31 insertions(+), 72 deletions(-) diff --git a/darkroomitems.asm b/darkroomitems.asm index a2d1474..679c5cc 100644 --- a/darkroomitems.asm +++ b/darkroomitems.asm @@ -1,13 +1,13 @@ CheckReceivedItemPropertiesBeforeLoad: LDA $A0 : BEQ .normalCode LDA $7EC005 : BNE .lightOff - .normalCode - LDA.l AddReceivedItemExpanded_properties, X ;Restore Rando Code +.normalCode + JSL LoadReceivedItemExpandedProperties ; get palette RTL .lightOff PHX : PHY : PHB - LDA.l AddReceivedItemExpanded_properties, X ; get palette + JSL LoadReceivedItemExpandedProperties ; get palette REP #$30 AND #$0007 ; mask out palette diff --git a/inventory.asm b/inventory.asm index 7e8d777..d68941c 100644 --- a/inventory.asm +++ b/inventory.asm @@ -557,14 +557,18 @@ AddInventory: CPY.b #$B0 : !BGE + JSR .incrementKey JMP .done - + CPY.b #$B1 : !BLT + ; Items $B1 - $B6 - Bomb Upgrades - CPY.b #$B7 : !BGE + - JSR .incrementBombLevel - JMP .done - + CPY.b #$B7 : !BLT + ; Items $B7 - $BC - Cane Upgrades - CPY.b #$BD : !BGE + - JSR .incrementCaneLevel - JMP .done + + CPY.b #$B6 : BNE + ; Item $B6 - Bomb Upgrade + JSR .stampSword ; update "first bomb" timestamp + LDA.l SpecialWeaponLevel ; get current bomb level + CMP #$05 : !BGE ++ ; check if already maxed + INC : STA.l SpecialWeaponLevel + ++ JMP .done + + CPY.b #$B7 : BNE + ; Item $B7 - Cane Upgrade + JSR .stampSword ; update "first cane" timestamp + LDA.l SpecialWeaponLevel ; get current cane level + CMP #$05 : !BGE ++ ; check if already maxed + INC : STA.l SpecialWeaponLevel + ++ JMP .done + .done PLP : PLX : PLA @@ -620,14 +624,6 @@ RTS + RTS -.incrementBombLevel - JSR .stampSword ; update "first bomb" timestamp -RTS - -.incrementCaneLevel - JSR .stampSword ; update "first cane" timestamp -RTS - .incrementShield LDA HighestShield INC : STA $04 : CPX $04 : !BLT + ; don't increment unless we're getting a better shield @@ -669,7 +665,6 @@ RTS RTS .incrementMail - LDA HighestMail INC : STA $04 : CPX $04 : !BLT + ; don't increment unless we're getting a better mail TXA : STA HighestMail diff --git a/itemdowngrade.asm b/itemdowngrade.asm index a31f7da..89b4e68 100644 --- a/itemdowngrade.asm +++ b/itemdowngrade.asm @@ -29,9 +29,6 @@ ItemDowngradeFixMain: CPY.b #$13 : BEQ .isShovel ; Shovel CPY.b #$29 : BEQ .isMushroom ; Mushroom - CPY.b #$B1 : !BLT + : CPY.b #$B6 : !BLT .isBombUpgrade : + - CPY.b #$B7 : !BLT + : CPY.b #$BC : !BLT .isCaneUpgrade : + - CPY.b #$00 : BEQ .isUncleSwordShield ; Fighter's Sword & Shield .done @@ -73,28 +70,6 @@ RTS JMP .done + PLA -JMP .done - .isBombUpgrade - PHA - TYA ; load bomb upgrade item - !SUB #$B0 ; convert to bomb level - CMP.l SpecialWeaponLevel : !BGE + ; skip if highest is lower (this is an upgrade) - LDA.l SpecialWeaponLevel : !ADD #$B0 ; convert to item id - TAY : PLA : LDA.l SpecialWeaponLevel ; put bomb level into the thing to write - JMP .done - + - PLA -JMP .done - .isCaneUpgrade - PHA - TYA ; load cane upgrade item - !SUB #$B6 ; convert to cane level - CMP.l SpecialWeaponLevel : !BGE + ; skip if highest is lower (this is an upgrade) - LDA.l SpecialWeaponLevel : !ADD #$B6 ; convert to item id - TAY : PLA : LDA.l SpecialWeaponLevel ; put cane level into the thing to write - JMP .done - + - PLA JMP .done .isUncleSwordShield PHA diff --git a/newitems.asm b/newitems.asm index 09449b9..2651b4d 100755 --- a/newitems.asm +++ b/newitems.asm @@ -441,9 +441,8 @@ AddReceivedItemExpandedGetItem: LDA.b #$05 : STA ArrowsFiller ; add 5 arrows BRA .done + CMP.b #$B6 : BNE + ; Bomb Upgrade - LDA.l SpecialWeapons : CMP #$01 : BNE .done - LDA #$01 : STA InfiniteBombsModifier ; infinite bombs - JMP .done + LDA #$01 : STA InfiniteBombsModifier ; infinite bombs + JMP .done + : CMP.b #$B7 : BNE + ; Cane Upgrade LDA.l SpecialWeapons : CMP #$03 : BEQ .blue_cane CMP #$04 : BEQ .red_cane @@ -599,30 +598,6 @@ AddReceivedItemExpanded: LDA !MULTIWORLD_ITEM_PLAYER_ID : BEQ +++ LDA.b #$0E : STA $02D8 : JMP .done ; Bee in a bottle +++ - ++ : CMP.b #$B6 : BNE ++ ; Progressive Bombs - LDA SpecialWeaponLevel - CMP.b #$00 : BNE + ; have no Bombs - LDA.b #$B1 : STA $02D8 : JMP .done - + : CMP.b #$01 : BNE + ; have L-1 Bombs - LDA.b #$B2 : STA $02D8 : JMP .done - + : CMP.b #$02 : BNE + ; have L-2 Bombs - LDA.b #$B3 : STA $02D8 : JMP .done - + : CMP.b #$03 : BNE + ; have L-3 Bombs - LDA.b #$B4 : STA $02D8 : JMP .done - + ; Everything Else - LDA.b #$B5 : STA $02D8 : JMP .done - ++ : CMP.b #$BC : BNE ++ ; Progressive Cane - LDA SpecialWeaponLevel - 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 @@ -1363,3 +1338,17 @@ MaybeFlagCompassTotalEntrance: .done RTL ;-------------------------------------------------------------------------------- +LoadReceivedItemExpandedProperties: +CPX.b #$B6 : BEQ .bomb_upgrade + LDA.l AddReceivedItemExpanded_properties, X ; load from table + RTL +.bomb_upgrade + LDA SpecialWeaponLevel + CMP.b #$01 : BNE + ; L1 Bombs + LDA.b #4 : RTL + + : CMP.b #$02 : BNE + ; L2 Bombs + LDA.b #2 : RTL + + : CMP.b #$03 : BNE + ; L3 Bombs + LDA.b #1 : RTL + + ; Everything Else + LDA.b #5 : RTL