Fix dungeon indexing for compass/map hud
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user