Merge in beta changes to pikit mode #4

Open
karafruit wants to merge 36 commits from pikit_mode_merge into pikit_mode
8 changed files with 138 additions and 62 deletions
Showing only changes of commit 04196daf5f - Show all commits
+1 -1
View File
@@ -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
View File
@@ -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
+2 -2
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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.