Show boss kills if hud bit set in door rando
This commit is contained in:
@@ -138,7 +138,7 @@ DrHudDungeonItemsAdditions:
|
|||||||
inx #2 : cpx.w #$0008 : !BLT -
|
inx #2 : cpx.w #$0008 : !BLT -
|
||||||
|
|
||||||
lda.l HudFlag : and.w #$0020 : beq + : JMP ++ : +
|
lda.l HudFlag : and.w #$0020 : beq + : JMP ++ : +
|
||||||
lda.l HUDDungeonItems : and.w #$0007 : bne + : JMP ++ : +
|
lda.l HUDDungeonItems : and.w #$001F : bne + : JMP ++ : +
|
||||||
; bk symbols
|
; bk symbols
|
||||||
lda.w #$2811 : sta.w $1606 : sta.w $1610 : sta.w $161a : sta.w $1624
|
lda.w #$2811 : sta.w $1606 : sta.w $1610 : sta.w $161a : sta.w $1624
|
||||||
; sm symbols
|
; sm symbols
|
||||||
@@ -148,7 +148,8 @@ DrHudDungeonItemsAdditions:
|
|||||||
|
|
||||||
ldx.w #$0002
|
ldx.w #$0002
|
||||||
- lda.w #$0000 : !ADD.l RowOffsets,x : !ADD.l ColumnOffsets, x : tay
|
- lda.w #$0000 : !ADD.l RowOffsets,x : !ADD.l ColumnOffsets, x : tay
|
||||||
lda.l DungeonReminderTable, x : sta.w $1644, y : iny #2
|
JSR BossStatus : STA.w $1644, Y
|
||||||
|
INY #2
|
||||||
lda.w #$24f5 : sta.w $1644, y
|
lda.w #$24f5 : sta.w $1644, y
|
||||||
lda.l MapField : and.l DungeonMask, x : beq + ; must have map
|
lda.l MapField : and.l DungeonMask, x : beq + ; must have map
|
||||||
jsr BkStatus : sta.w $1644, y : bra .smallKey ; big key status
|
jsr BkStatus : sta.w $1644, y : bra .smallKey ; big key status
|
||||||
@@ -195,8 +196,8 @@ DrHudDungeonItemsAdditions:
|
|||||||
ldx.w #$0002
|
ldx.w #$0002
|
||||||
- lda.w #$0000 ; start of hud area
|
- lda.w #$0000 ; start of hud area
|
||||||
!ADD.l RowOffsets, x : !ADD.l ColumnOffsets, x : tay
|
!ADD.l RowOffsets, x : !ADD.l ColumnOffsets, x : tay
|
||||||
lda.l DungeonReminderTable, x : sta.w $1644, y
|
JSR BossStatus : STA.w $1644, Y
|
||||||
iny #2
|
INY #2
|
||||||
lda.w #$24f5 : sta.w $1644, y ; blank out map spot
|
lda.w #$24f5 : sta.w $1644, y ; blank out map spot
|
||||||
lda.l MapField : ora.l MapCountDisplay : ora.l MapOverlay
|
lda.l MapField : ora.l MapCountDisplay : ora.l MapOverlay
|
||||||
and.l DungeonMask, x : beq + ; must have map
|
and.l DungeonMask, x : beq + ; must have map
|
||||||
@@ -259,6 +260,40 @@ BkStatus:
|
|||||||
+ lda.w #$24f5 : rts ; black otherwise
|
+ lda.w #$24f5 : rts ; black otherwise
|
||||||
+++ lda.w #$2826 : rts ; check mark
|
+++ lda.w #$2826 : rts ; check mark
|
||||||
|
|
||||||
|
BossStatus:
|
||||||
|
LDA.l HUDDungeonItems : BIT.w #$0010 : BEQ .normal
|
||||||
|
PHX
|
||||||
|
LDA.l DungeonMapBossRooms, X
|
||||||
|
CMP.w #$000F
|
||||||
|
BEQ .no_boss
|
||||||
|
ASL A
|
||||||
|
TAX
|
||||||
|
LDA.l SaveDataWRAM, X
|
||||||
|
PLX
|
||||||
|
BIT.w #$0800
|
||||||
|
BEQ .boss_alive
|
||||||
|
|
||||||
|
.boss_dead
|
||||||
|
LDA.l HudFlag : BIT.w #$0020 : BNE .skull
|
||||||
|
; palette 3 - white
|
||||||
|
LDA.l DungeonReminderTable, X : AND.w #$E3FF : ORA.w #$0C00 : RTS
|
||||||
|
|
||||||
|
.skull
|
||||||
|
LDA.w #$280F : RTS
|
||||||
|
|
||||||
|
.no_boss
|
||||||
|
PLX
|
||||||
|
; palette 0 - light gray
|
||||||
|
LDA.l DungeonReminderTable, X : AND.w #$E3FF : RTS
|
||||||
|
|
||||||
|
.boss_alive
|
||||||
|
; palette 4 - gray
|
||||||
|
LDA.l DungeonReminderTable, X : AND.w #$E3FF : ORA.w #$1000 : RTS
|
||||||
|
|
||||||
|
.normal
|
||||||
|
; default palette 3 - white
|
||||||
|
LDA.l DungeonReminderTable, X : RTS
|
||||||
|
|
||||||
ConvertToDisplay:
|
ConvertToDisplay:
|
||||||
and.w #$00ff : cmp.w #$000a : !BLT +
|
and.w #$00ff : cmp.w #$000a : !BLT +
|
||||||
!ADD.w #$2519 : rts
|
!ADD.w #$2519 : rts
|
||||||
|
|||||||
Reference in New Issue
Block a user