Merge pull request #90 from aerinon/ChestKeyCounter

Chest key counters
This commit is contained in:
KatDevsGames
2020-09-20 01:58:02 -04:00
committed by GitHub
4 changed files with 50 additions and 4 deletions

View File

@@ -58,9 +58,11 @@ GiveBonkItem:
PHY : LDY.b #$24 : JSL.l AddInventory : PLY ; do inventory processing for a small key PHY : LDY.b #$24 : JSL.l AddInventory : PLY ; do inventory processing for a small key
LDA $7EF36F : INC A : STA $7EF36F LDA $7EF36F : INC A : STA $7EF36F
LDA.b #$2F : JSL.l Sound_SetSfx3PanLong LDA.b #$2F : JSL.l Sound_SetSfx3PanLong
JSL CountBonkItem
RTL RTL
.notKey .notKey
PHY : TAY : JSL.l Link_ReceiveItem : PLY PHY : TAY : JSL.l Link_ReceiveItem : PLY
JSL CountBonkItem
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
LoadBonkItem: LoadBonkItem:

View File

@@ -126,6 +126,11 @@ OnNewFile:
DEX : DEX DEX : DEX
BPL - BPL -
LDX #$000E : -
LDA $7EF37C, X : STA $7EF4E0, X
DEX : DEX
BPL -
SEP #$20 ; set 8-bit accumulator SEP #$20 ; set 8-bit accumulator
;LDA #$FF : STA !RNG_ITEM_LOCK_IN ; reset rng item lock-in ;LDA #$FF : STA !RNG_ITEM_LOCK_IN ; reset rng item lock-in
LDA.l PreopenCurtains : BEQ + LDA.l PreopenCurtains : BEQ +

View File

@@ -2,6 +2,11 @@
; Item Downgrade Fix ; Item Downgrade Fix
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
ItemDowngradeFix: ItemDowngradeFix:
JSR ItemDowngradeFixMain
JSL CountChestKeyLong
RTL
ItemDowngradeFixMain:
JSL.l AddInventory JSL.l AddInventory
BMI .dontWrite ; thing we wrote over part 1 BMI .dontWrite ; thing we wrote over part 1
@@ -27,7 +32,7 @@ ItemDowngradeFix:
.done .done
STA [$00] ; thing we wrote over part 2 STA [$00] ; thing we wrote over part 2
.dontWrite .dontWrite
RTL RTS
.isPowerGloves .isPowerGloves
.isBlueShield .isBlueShield
.isRedShield .isRedShield
@@ -36,7 +41,7 @@ RTL
.isBowAndArrows .isBowAndArrows
CMP [$00] : !BGE .done ; finished if we're upgrading CMP [$00] : !BGE .done ; finished if we're upgrading
LDA [$00] ; reload old value LDA [$00] ; reload old value
RTL RTS
.isSilverArrowBow .isSilverArrowBow
.isRedBoomerang .isRedBoomerang
.isMagicPowder .isMagicPowder
@@ -47,10 +52,10 @@ RTL
LDA [$00] : BNE + ; don't upgrade if we already have the toggle for it LDA [$00] : BNE + ; don't upgrade if we already have the toggle for it
PLA PLA
STA [$00] STA [$00]
RTL RTS
+ +
PLA PLA
RTL RTS
.isFightersSword .isFightersSword
.isMasterSword .isMasterSword
.isTemperedSword .isTemperedSword

View File

@@ -257,6 +257,40 @@ DecrementSmallKeys:
JSL.l UpdateKeys JSL.l UpdateKeys
RTL RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
CountChestKeyLong: ; called from ItemDowngradeFix in itemdowngrade.asm
JSR CountChestKey
RTL
;--------------------------------------------------------------------------------
CountChestKey: ; called by neighbor functions
PHA : PHX
CPY #$24 : BEQ + ; small key for this dungeon - use $040C
CPY #$A0 : !BLT .end ; Ignore most items
CPY #$AE : !BGE .end ; Ignore reserved key and generic key
TYA : AND.B #$0F : BNE ++ ; If this is a sewers key, instead count it as an HC key
INC
++ TAX : BRA .count ; use Key id instead of $040C (Keysanity)
+ LDA $040C : LSR : TAX
.count
LDA $7EF4E0, X : INC : STA $7EF4E0, X
.end
PLX : PLA
RTS
;--------------------------------------------------------------------------------
CountBonkItem: ; called from GetBonkItem in bookofmudora.asm
LDA $A0 ; check room ID - only bonk keys in 2 rooms so we're just checking the lower byte
CMP #115 : BNE + ; Desert Bonk Key
LDA.L BonkKey_Desert : BRA ++
+ : CMP #140 : BNE + ; GTower Bonk Key
LDA.L BonkKey_GTower : BRA ++
+ LDA.B #$24 ; default to small key
++
CMP #$24 : BNE +
PHY
TAY : JSR CountChestKey
PLY
+
RTL
;--------------------------------------------------------------------------------
IncrementAgahnim2Sword: IncrementAgahnim2Sword:
PHA PHA
LDA !LOCK_STATS : BNE + LDA !LOCK_STATS : BNE +