Merge pull request #185 from cassidoxa/map_counts

Fix dungeon indexing for compass/map hud coutns
This commit is contained in:
Lexi Rose
2023-02-24 16:56:53 -06:00
committed by GitHub
2 changed files with 11 additions and 7 deletions

View File

@@ -5,9 +5,7 @@ DrawDungeonItemCounts:
LDA.w DungeonID : AND.w #$00FE : TAX ; force dungeon ID to be multiple of 2 LDA.w DungeonID : AND.w #$00FE : TAX ; force dungeon ID to be multiple of 2
PLA PLA
CPX.b #$1B : BCS .done ; Skip if not in a valid dungeon ID CPX.b #$1B : BCS .done ; Skip if not in a valid dungeon ID
TXA : LSR : TAX : BNE +
INC ; Count sewer as Hyrule Castle
+
JSR.w DrawCompassCounts JSR.w DrawCompassCounts
JSR.w DrawMapCounts JSR.w DrawMapCounts
.done .done
@@ -16,9 +14,12 @@ RTL
DrawCompassCounts: DrawCompassCounts:
PHX PHX
LDA.l CompassMode : BIT.w #$0002 : BNE + ; if CompassMode==2, we don't check for the compass LDA.l CompassMode : BIT.w #$0002 : BNE + ; if CompassMode==2, we don't check for the compass
LDA.l CompassField : AND.l DungeonItemMasks, X ; Load compass values to A, mask with dungeon item masks LDA.l CompassField : AND.w DungeonItemMasks, X ; Load compass values to A, mask with dungeon item masks
BEQ .done ; skip if we don't have compass BEQ .done ; skip if we don't have compass
+ +
TXA : LSR : TAX : BNE +
INC ; Count sewer as Hyrule Castle
+
LDA.l CompassTotalsWRAM, X : AND.w #$00FF LDA.l CompassTotalsWRAM, X : AND.w #$00FF
SEP #$20 SEP #$20
JSR HudHexToDec2Digit JSR HudHexToDec2Digit
@@ -41,9 +42,12 @@ RTS
DrawMapCounts: DrawMapCounts:
PHX PHX
LDA.l MapHUDMode : BIT.w #$0002 : BNE + ; if MapHUDMode==2, we don't check for map LDA.l MapHUDMode : BIT.w #$0002 : BNE + ; if MapHUDMode==2, we don't check for map
LDA.l MapField : AND.l DungeonItemMasks, X ; Load map values to A, mask with dungeon item masks LDA.l MapField : AND.w DungeonItemMasks, X ; Load map values to A, mask with dungeon item masks
BEQ .done ; skip if we don't have map BEQ .done ; skip if we don't have map
+ +
TXA : LSR : TAX : BNE +
INC ; Count sewer as Hyrule Castle
+
LDA.l MapTotalsWRAM, X : AND.w #$00FF LDA.l MapTotalsWRAM, X : AND.w #$00FF
SEP #$20 SEP #$20
JSR HudHexToDec2Digit JSR HudHexToDec2Digit

View File

@@ -1141,10 +1141,10 @@ FlagMapCount:
RTS RTS
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------
MaybeFlagMapTotalPickup: MaybeFlagMapTotalPickup:
LDA.l MapMode : AND.b #$0F : BEQ .done LDA.l MapHUDMode : AND.b #$0F : BEQ .done
LDA.w DungeonID : CMP.b #$FF : BEQ .done LDA.w DungeonID : CMP.b #$FF : BEQ .done
LSR : STA.b Scrap04 : LDA.b #$0F : !SUB Scrap04 ; Compute flag "index" LSR : STA.b Scrap04 : LDA.b #$0F : !SUB Scrap04 ; Compute flag "index"
CPY.b #$25 : BEQ .setFlag ; Set flag if it's a compass for this dungeon CPY.b #$33 : BEQ .setFlag ; Set flag if it's a compass for this dungeon
STA.b Scrap04 STA.b Scrap04
TYA : AND.b #$0F : CMP.b Scrap04 : BNE .done ; Check if map is for this dungeon TYA : AND.b #$0F : CMP.b Scrap04 : BNE .done ; Check if map is for this dungeon
.setFlag .setFlag