Merge in beta changes to pikit mode #4
@@ -33,7 +33,7 @@ DRHUD_DrawIndicators:
|
|||||||
DRHUD_BossIndicator:
|
DRHUD_BossIndicator:
|
||||||
LDA.w DungeonID : CMP.b #$FF : BNE .in_dungeon
|
LDA.w DungeonID : CMP.b #$FF : BNE .in_dungeon
|
||||||
LDA.w NpcItemIndicator : BEQ .early_exit
|
LDA.w NpcItemIndicator : BEQ .early_exit
|
||||||
LDA.l ShowLootInHUD : BEQ .early_exit
|
LDA.l HudItems_enabled : BEQ .early_exit
|
||||||
REP #$10
|
REP #$10
|
||||||
LDY.w #!NPCIcon : STY.w HUDMultiIndicator
|
LDY.w #!NPCIcon : STY.w HUDMultiIndicator
|
||||||
JMP DRHUD_Finished
|
JMP DRHUD_Finished
|
||||||
|
|||||||
+98
-17
@@ -1,18 +1,15 @@
|
|||||||
; A = room_id
|
; A = room_id
|
||||||
; out A = level of loot
|
; out A = level of loot
|
||||||
CheckLoot:
|
CheckMapLoot:
|
||||||
PHP
|
PHP
|
||||||
REP #$30
|
REP #$30
|
||||||
PHB : PHX : PHY
|
PHX
|
||||||
|
|
||||||
STA.b $CA
|
STA.b $CA
|
||||||
|
|
||||||
LDA.b $06 : PHA
|
|
||||||
LDA.b $0E : PHA
|
LDA.b $0E : PHA
|
||||||
|
|
||||||
STZ.b $02 ; best item class found
|
LDA.l MapItems_default
|
||||||
|
|
||||||
LDA.l ShowItems_default
|
|
||||||
AND.w #$00FF
|
AND.w #$00FF
|
||||||
STA.b $0E
|
STA.b $0E
|
||||||
|
|
||||||
@@ -24,7 +21,7 @@ CheckLoot:
|
|||||||
LDA.l SaveDataWRAM, X
|
LDA.l SaveDataWRAM, X
|
||||||
AND.w #$000F
|
AND.w #$000F
|
||||||
BEQ +
|
BEQ +
|
||||||
LDA.l ShowItems_visited_tile
|
LDA.l MapItems_visited_tile
|
||||||
AND.w #$00FF
|
AND.w #$00FF
|
||||||
CMP.b $0E
|
CMP.b $0E
|
||||||
BCC +
|
BCC +
|
||||||
@@ -40,7 +37,7 @@ CheckLoot:
|
|||||||
LDA.l MapField
|
LDA.l MapField
|
||||||
AND.l DungeonMask, X
|
AND.l DungeonMask, X
|
||||||
BEQ +
|
BEQ +
|
||||||
LDA.l ShowItems_have_map
|
LDA.l MapItems_have_map
|
||||||
AND.w #$00FF
|
AND.w #$00FF
|
||||||
CMP.b $0E
|
CMP.b $0E
|
||||||
BCC +
|
BCC +
|
||||||
@@ -49,7 +46,7 @@ CheckLoot:
|
|||||||
+ LDA.l CompassField
|
+ LDA.l CompassField
|
||||||
AND.l DungeonMask, X
|
AND.l DungeonMask, X
|
||||||
BEQ +
|
BEQ +
|
||||||
LDA.l ShowItems_have_compass
|
LDA.l MapItems_have_compass
|
||||||
AND.w #$00FF
|
AND.w #$00FF
|
||||||
CMP.b $0E
|
CMP.b $0E
|
||||||
BCC +
|
BCC +
|
||||||
@@ -57,6 +54,84 @@ CheckLoot:
|
|||||||
+
|
+
|
||||||
|
|
||||||
.skip_dungeon_checks
|
.skip_dungeon_checks
|
||||||
|
JMP GetLootLevelAndCleanUp
|
||||||
|
|
||||||
|
; A = room_id
|
||||||
|
; out A = level of loot
|
||||||
|
CheckHudLoot:
|
||||||
|
PHP
|
||||||
|
REP #$30
|
||||||
|
PHX
|
||||||
|
|
||||||
|
STA.b $CA
|
||||||
|
|
||||||
|
LDA.b $0E : PHA
|
||||||
|
|
||||||
|
+ LDA.w DungeonID
|
||||||
|
AND.w #$00FF
|
||||||
|
CMP.w #$00FF
|
||||||
|
BEQ .cave
|
||||||
|
|
||||||
|
TAX
|
||||||
|
|
||||||
|
LDA.l HudItems_default_dungeon
|
||||||
|
AND.w #$00FF
|
||||||
|
STA.b $0E
|
||||||
|
|
||||||
|
LDA.l MapField
|
||||||
|
AND.l DungeonMask, X
|
||||||
|
BEQ +
|
||||||
|
LDA.l HudItems_have_map
|
||||||
|
AND.w #$00FF
|
||||||
|
CMP.b $0E
|
||||||
|
BCC +
|
||||||
|
STA.b $0E
|
||||||
|
|
||||||
|
+ LDA.l CompassField
|
||||||
|
AND.l DungeonMask, X
|
||||||
|
BEQ +
|
||||||
|
LDA.l HudItems_have_compass
|
||||||
|
AND.w #$00FF
|
||||||
|
CMP.b $0E
|
||||||
|
BCC +
|
||||||
|
STA.b $0E
|
||||||
|
+
|
||||||
|
|
||||||
|
BRA GetLootLevelAndCleanUp
|
||||||
|
|
||||||
|
.cave
|
||||||
|
LDA.l HudItems_cave
|
||||||
|
AND.w #$00FF
|
||||||
|
STA.b $0E
|
||||||
|
; intentional fall-through
|
||||||
|
|
||||||
|
GetLootLevelAndCleanUp:
|
||||||
|
STZ.b $02
|
||||||
|
|
||||||
|
LDA.b $0E
|
||||||
|
AND.w #$00FF
|
||||||
|
BEQ +
|
||||||
|
JSL GetLootLevel
|
||||||
|
+
|
||||||
|
|
||||||
|
PLA : STA.b $0E
|
||||||
|
PLX
|
||||||
|
PLP
|
||||||
|
|
||||||
|
LDA.b $02
|
||||||
|
RTL
|
||||||
|
|
||||||
|
; $CA = room_id
|
||||||
|
; $0E = level of details to return
|
||||||
|
; (1 - presence, 2 - compass or presence, 3 - value)
|
||||||
|
; out $02 = level of loot
|
||||||
|
GetLootLevel:
|
||||||
|
PHP
|
||||||
|
REP #$30
|
||||||
|
PHB : PHX : PHY
|
||||||
|
LDA.b $06 : PHA
|
||||||
|
|
||||||
|
STZ.b $02 ; best item class found
|
||||||
|
|
||||||
LDA.l ItemSources : BIT.w #$0001 : BEQ +
|
LDA.l ItemSources : BIT.w #$0001 : BEQ +
|
||||||
JSR CheckChests
|
JSR CheckChests
|
||||||
@@ -82,11 +157,9 @@ CheckLoot:
|
|||||||
JSR CheckNpcs
|
JSR CheckNpcs
|
||||||
|
|
||||||
.done
|
.done
|
||||||
PLA : STA.b $0E
|
|
||||||
PLA : STA.b $06
|
PLA : STA.b $06
|
||||||
PLY : PLX : PLB
|
PLY : PLX : PLB
|
||||||
PLP
|
PLP
|
||||||
LDA.b $02
|
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
CheckChests:
|
CheckChests:
|
||||||
@@ -543,15 +616,19 @@ GetLootClass:
|
|||||||
CMP.w #$0080 : BNE .not_compass
|
CMP.w #$0080 : BNE .not_compass
|
||||||
|
|
||||||
.compass
|
.compass
|
||||||
LDA.l AlwaysShowCompass
|
LDA.b $0E
|
||||||
AND.w #$00FF
|
AND.w #$00FF
|
||||||
BNE .check_value
|
CMP.w #$0002
|
||||||
|
BEQ .check_value
|
||||||
|
|
||||||
.not_compass
|
.not_compass
|
||||||
LDA.b $0E
|
LDA.b $0E
|
||||||
BEQ .done
|
BEQ .done
|
||||||
CMP.w #$0001
|
CMP.w #$0003
|
||||||
BEQ .value_set
|
BCS .check_value
|
||||||
|
|
||||||
|
LDA.w #$0001
|
||||||
|
BRA .value_set
|
||||||
|
|
||||||
.check_value
|
.check_value
|
||||||
LDA.l LootTypeMapping, X
|
LDA.l LootTypeMapping, X
|
||||||
@@ -574,9 +651,13 @@ GetPotJunkClass:
|
|||||||
|
|
||||||
LDA.b $0E
|
LDA.b $0E
|
||||||
BEQ .done
|
BEQ .done
|
||||||
CMP.w #$0001
|
CMP.w #$0003
|
||||||
BEQ .value_set
|
BCS .check_value
|
||||||
|
|
||||||
|
LDA.w #$0001
|
||||||
|
BRA .value_set
|
||||||
|
|
||||||
|
.check_value
|
||||||
; hardcode as junk for now
|
; hardcode as junk for now
|
||||||
LDA.w #$0002
|
LDA.w #$0002
|
||||||
|
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ DrawFullRoomTile:
|
|||||||
RTL
|
RTL
|
||||||
|
|
||||||
DrawSingleRoomLoot:
|
DrawSingleRoomLoot:
|
||||||
LDA.l ShowLootOnMap : AND.w #$00FF : BNE +
|
LDA.l MapItems_enabled : AND.w #$00FF : BNE +
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
+ PHX : PHY
|
+ PHX : PHY
|
||||||
@@ -176,7 +176,7 @@ DrawSingleRoomLoot:
|
|||||||
|
|
||||||
LDA.b $CA
|
LDA.b $CA
|
||||||
AND.w #$F0FF
|
AND.w #$F0FF
|
||||||
JSL CheckLoot
|
JSL CheckMapLoot
|
||||||
|
|
||||||
ASL A : ASL A : ASL A
|
ASL A : ASL A : ASL A
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -32,7 +32,7 @@ DrawLoot:
|
|||||||
LDA.l DRMode
|
LDA.l DRMode
|
||||||
BNE .skip
|
BNE .skip
|
||||||
|
|
||||||
LDA.l ShowLootOnMap
|
LDA.l MapItems_enabled
|
||||||
BEQ .skip
|
BEQ .skip
|
||||||
|
|
||||||
REP #$30
|
REP #$30
|
||||||
@@ -128,7 +128,7 @@ DrawSingleFloorLoot:
|
|||||||
LDA.w #$0000
|
LDA.w #$0000
|
||||||
BRA +
|
BRA +
|
||||||
.valid_room
|
.valid_room
|
||||||
JSL CheckLoot
|
JSL CheckMapLoot
|
||||||
+
|
+
|
||||||
ASL A : ASL A : ASL A
|
ASL A : ASL A : ASL A
|
||||||
|
|
||||||
|
|||||||
+2
-18
@@ -45,7 +45,7 @@ UpdateLootHUD:
|
|||||||
PHX : PHY
|
PHX : PHY
|
||||||
SEP #$30
|
SEP #$30
|
||||||
|
|
||||||
LDA.l ShowLootInHUD : BEQ .setting_off
|
LDA.l HudItems_enabled : BEQ .setting_off
|
||||||
LDA.b IndoorsFlag : BEQ .done
|
LDA.b IndoorsFlag : BEQ .done
|
||||||
|
|
||||||
REP #$30
|
REP #$30
|
||||||
@@ -77,23 +77,7 @@ UpdateLootHUD:
|
|||||||
ASL A : ASL A : ASL A : ASL A
|
ASL A : ASL A : ASL A : ASL A
|
||||||
ORA.b RoomIndex
|
ORA.b RoomIndex
|
||||||
.check
|
.check
|
||||||
JSL CheckLoot
|
JSL CheckHudLoot
|
||||||
|
|
||||||
SEP #$30
|
|
||||||
CMP.l ShowItems_hud_cap
|
|
||||||
BCC +
|
|
||||||
LDA.l ShowItems_hud_cap
|
|
||||||
+
|
|
||||||
|
|
||||||
LDX.w DungeonID
|
|
||||||
CPX.b #$FF
|
|
||||||
BNE +
|
|
||||||
CMP.l ShowItems_cave_cap
|
|
||||||
BCC +
|
|
||||||
LDA.l ShowItems_cave_cap
|
|
||||||
+
|
|
||||||
|
|
||||||
REP #$30
|
|
||||||
|
|
||||||
ASL A : TAX
|
ASL A : TAX
|
||||||
LDA.l HUDLootTypeIcons, X
|
LDA.l HUDLootTypeIcons, X
|
||||||
|
|||||||
+33
-22
@@ -52,7 +52,7 @@ dw $2DCB, $6DCB, $ADCB, $EDCB ; 01 - unknown - dot
|
|||||||
dw $29EB, $69EB, $29FB, $69FB ; 02 - junk - pot
|
dw $29EB, $69EB, $29FB, $69FB ; 02 - junk - pot
|
||||||
dw $29CA, $69CA, $29DA, $29DB ; 03 - small key
|
dw $29CA, $69CA, $29DA, $29DB ; 03 - small key
|
||||||
dw $29E9, $69E9, $29F9, $69F9 ; 04 - triforce piece
|
dw $29E9, $69E9, $29F9, $69F9 ; 04 - triforce piece
|
||||||
dw $29DD, $69DD, $A9DD, $E9DD ; 05 - safety - plus
|
dw $29DD, $69DD, $A9DD, $E9DD ; 05 - health - plus
|
||||||
dw $29EC, $69EC, $29FC, $69FC ; 06 - less important item - small chest
|
dw $29EC, $69EC, $29FC, $69FC ; 06 - less important item - small chest
|
||||||
dw $29E8, $69E8, $29F8, $69F8 ; 07 - compass
|
dw $29E8, $69E8, $29F8, $69F8 ; 07 - compass
|
||||||
dw $29CE, $29CF, $29DE, $29DF ; 08 - map
|
dw $29CE, $29CF, $29DE, $29DF ; 08 - map
|
||||||
@@ -87,7 +87,7 @@ dw $10A4 : db $04 : dl HeartContainer_Trinexx
|
|||||||
|
|
||||||
dw $1073 : db $05 : dl BonkKey_Desert ; torch
|
dw $1073 : db $05 : dl BonkKey_Desert ; torch
|
||||||
dw $108C : db $05 : dl BonkKey_GTower ; torch
|
dw $108C : db $05 : dl BonkKey_GTower ; torch
|
||||||
dw $1087 : db $05 : dl StandingKey_Hera ; investigate
|
dw $1087 : db $05 : dl StandingKey_Hera
|
||||||
|
|
||||||
dw $10E1 : db $06 : dl HeartPiece_Forest_Thieves
|
dw $10E1 : db $06 : dl HeartPiece_Forest_Thieves
|
||||||
dw $10E2 : db $06 : dl HeartPiece_Lumberjack_Tree
|
dw $10E2 : db $06 : dl HeartPiece_Lumberjack_Tree
|
||||||
@@ -220,42 +220,53 @@ warnpc $B9FF08
|
|||||||
org $B9FF08
|
org $B9FF08
|
||||||
; $00 - do not show anything
|
; $00 - do not show anything
|
||||||
; $01 - show presence of unobtained items
|
; $01 - show presence of unobtained items
|
||||||
; $02 - show category of item
|
; $02 - show compass if presence, otherwise presence of unobtained items
|
||||||
ShowItems:
|
; $03 - show category of item
|
||||||
|
MapItems:
|
||||||
.default
|
.default
|
||||||
db $00
|
db $00
|
||||||
.have_map
|
.have_map
|
||||||
db $00
|
db $00
|
||||||
.have_compass
|
.have_compass
|
||||||
db $02
|
db $03
|
||||||
.visited_tile
|
.visited_tile
|
||||||
db $01
|
db $02
|
||||||
.reserved
|
.reserved
|
||||||
skip 2
|
skip 3
|
||||||
.hud_cap
|
.enabled
|
||||||
db $FF
|
|
||||||
.cave_cap
|
|
||||||
db $01
|
db $01
|
||||||
warnpc $B9FF10
|
warnpc $B9FF10
|
||||||
|
|
||||||
org $B9FF10
|
org $B9FF10
|
||||||
; ---P bepc
|
HudItems:
|
||||||
|
.cave
|
||||||
|
db $00
|
||||||
|
.default_dungeon
|
||||||
|
db $00
|
||||||
|
.have_map
|
||||||
|
db $01
|
||||||
|
.have_compass
|
||||||
|
db $03
|
||||||
|
.reserved
|
||||||
|
skip 3
|
||||||
|
.enabled
|
||||||
|
db $01
|
||||||
|
warnpc $B9FF18
|
||||||
|
|
||||||
|
org $B9FF20
|
||||||
|
; ---P sepc
|
||||||
; P - dungeon prizes
|
; P - dungeon prizes
|
||||||
; b - bosses (and torches in GT and desert, plus hera basement standing item)
|
; s - standing items (plus torches in GT and desert and bosses)
|
||||||
; e - enemy drops
|
; e - enemy drops
|
||||||
; p - pots
|
; p - pots
|
||||||
; c - chests
|
; c - chests
|
||||||
ItemSources:
|
ItemSources:
|
||||||
db $09
|
db $09
|
||||||
|
|
||||||
; $B9FF11
|
; B9FF21
|
||||||
AlwaysShowCompass:
|
; a--- --mv
|
||||||
db $01
|
; a - always
|
||||||
|
; m - have map
|
||||||
; $B9FF12
|
; v - have visited dungeon
|
||||||
ShowLootOnMap:
|
MapSwapping:
|
||||||
db $01
|
|
||||||
|
|
||||||
; $B9FF13
|
|
||||||
ShowLootInHUD:
|
|
||||||
db $01
|
db $01
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user