Do not show unknown connectors
This commit is contained in:
@@ -155,6 +155,33 @@ DrawSingleRoomLoot:
|
|||||||
|
|
||||||
DrawConnectedRooms:
|
DrawConnectedRooms:
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
|
|
||||||
|
LDA.l ShowRooms_default
|
||||||
|
AND.w #$00FF
|
||||||
|
STA.b $0A
|
||||||
|
|
||||||
|
LDX.w DungeonID
|
||||||
|
LDA.l MapField
|
||||||
|
AND.l DungeonMask, X
|
||||||
|
BEQ +
|
||||||
|
LDA.l ShowRooms_have_map
|
||||||
|
AND.w #$00FF
|
||||||
|
CMP.b $0A
|
||||||
|
BCC +
|
||||||
|
STA.b $0A
|
||||||
|
+
|
||||||
|
|
||||||
|
LDX.w DungeonID
|
||||||
|
LDA.l CompassField
|
||||||
|
AND.l DungeonMask, X
|
||||||
|
BEQ +
|
||||||
|
LDA.l ShowRooms_have_compass
|
||||||
|
AND.w #$00FF
|
||||||
|
CMP.b $0A
|
||||||
|
BCC +
|
||||||
|
STA.b $0A
|
||||||
|
+
|
||||||
|
|
||||||
LDA.l DisplayedRoomDoorIndex
|
LDA.l DisplayedRoomDoorIndex
|
||||||
TAX
|
TAX
|
||||||
STZ.b $00
|
STZ.b $00
|
||||||
@@ -228,6 +255,8 @@ CheckInRoomTable:
|
|||||||
RTS
|
RTS
|
||||||
|
|
||||||
GetConnection:
|
GetConnection:
|
||||||
|
LDA.b $02
|
||||||
|
STA.b $04
|
||||||
LDA.l DoorTable, X
|
LDA.l DoorTable, X
|
||||||
.found
|
.found
|
||||||
STA.b $08
|
STA.b $08
|
||||||
@@ -240,6 +269,10 @@ GetConnection:
|
|||||||
JSR GetWhichDoorPosition
|
JSR GetWhichDoorPosition
|
||||||
XBA
|
XBA
|
||||||
ORA.b $0C
|
ORA.b $0C
|
||||||
|
STA.b $0C
|
||||||
|
JSR CheckCanSeeConnector
|
||||||
|
BCC .nope
|
||||||
|
LDA.b $0C
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
.not_found
|
.not_found
|
||||||
@@ -248,10 +281,106 @@ GetConnection:
|
|||||||
BNE .found
|
BNE .found
|
||||||
JSR CheckInRoomTable
|
JSR CheckInRoomTable
|
||||||
CMP.w #$FFFF
|
CMP.w #$FFFF
|
||||||
BNE .found
|
BEQ .nope
|
||||||
|
LDA.w #$0003
|
||||||
|
STA.b $04
|
||||||
|
BRA .found
|
||||||
|
|
||||||
|
.nope
|
||||||
LDA.w #$FF0F
|
LDA.w #$FF0F
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
CheckCanSeeConnector:
|
||||||
|
LDA.b $0C : PHA
|
||||||
|
|
||||||
|
LDA.b $0A
|
||||||
|
CMP.w #$0003
|
||||||
|
BCS .yep
|
||||||
|
|
||||||
|
PHX
|
||||||
|
LDA.b $0C
|
||||||
|
AND.w #$00FF
|
||||||
|
ASL A
|
||||||
|
TAX
|
||||||
|
LDA.l SaveDataWRAM, X
|
||||||
|
AND.w #$00FF
|
||||||
|
XBA
|
||||||
|
ORA.b $00
|
||||||
|
EOR.w #$0002
|
||||||
|
XBA
|
||||||
|
STA.b $0E
|
||||||
|
PLX
|
||||||
|
|
||||||
|
JSR GetQuadrantMask
|
||||||
|
AND.b $0E
|
||||||
|
BEQ .nope
|
||||||
|
|
||||||
|
LDA.l CurrentDisplayedRoom
|
||||||
|
XBA
|
||||||
|
ORA.b $04
|
||||||
|
XBA
|
||||||
|
STA.b $0C
|
||||||
|
|
||||||
|
PHX
|
||||||
|
LDA.l CurrentDisplayedRoom
|
||||||
|
ASL A
|
||||||
|
TAX
|
||||||
|
LDA.l SaveDataWRAM, X
|
||||||
|
AND.w #$00FF
|
||||||
|
XBA
|
||||||
|
ORA.b $00
|
||||||
|
XBA
|
||||||
|
STA.b $0E
|
||||||
|
PLX
|
||||||
|
|
||||||
|
JSR GetQuadrantMask
|
||||||
|
AND.b $0E
|
||||||
|
BEQ .nope
|
||||||
|
|
||||||
|
.yep
|
||||||
|
PLA : STA.b $0C
|
||||||
|
SEC
|
||||||
|
RTS
|
||||||
|
.nope
|
||||||
|
PLA : STA.b $0C
|
||||||
|
CLC
|
||||||
|
RTS
|
||||||
|
|
||||||
|
; $0C - room id
|
||||||
|
; $0D - room connection position
|
||||||
|
; $0F - side
|
||||||
|
GetQuadrantMask:
|
||||||
|
LDA.b $0D
|
||||||
|
AND.w #$0003
|
||||||
|
CMP.w #$0003
|
||||||
|
BNE .normal
|
||||||
|
LDA.b $0C
|
||||||
|
AND.w #$00FF
|
||||||
|
CMP.w #$005E : BEQ .bottom_left
|
||||||
|
CMP.w #$007E : BEQ .bottom_left
|
||||||
|
CMP.w #$000B : BEQ .top_right
|
||||||
|
CMP.w #$001B : BEQ .top_right
|
||||||
|
.bottom_right
|
||||||
|
LDA.w #$0001
|
||||||
|
RTS
|
||||||
|
.bottom_left
|
||||||
|
LDA.w #$0002
|
||||||
|
RTS
|
||||||
|
.top_right
|
||||||
|
LDA.w #$0004
|
||||||
|
RTS
|
||||||
|
.normal
|
||||||
|
SEP #$20
|
||||||
|
CLC : ADC.b $0F : ADC.b $0F : ADC.b $0F
|
||||||
|
REP #$20
|
||||||
|
ASL A
|
||||||
|
PHX
|
||||||
|
TAX
|
||||||
|
LDA.l QuadrantMasks, X
|
||||||
|
PLX
|
||||||
|
RTS
|
||||||
|
|
||||||
|
|
||||||
print "DrawSide: ", pc
|
print "DrawSide: ", pc
|
||||||
; $00 - Side
|
; $00 - Side
|
||||||
; $02 - Door position number on side
|
; $02 - Door position number on side
|
||||||
@@ -345,7 +474,6 @@ DrawSide:
|
|||||||
|
|
||||||
|
|
||||||
DrawSingleConnectedRoom:
|
DrawSingleConnectedRoom:
|
||||||
STA.b $0A
|
|
||||||
AND.w #$00FF
|
AND.w #$00FF
|
||||||
STA.b $CA
|
STA.b $CA
|
||||||
LDA.w DoorSlotsBG2, Y
|
LDA.w DoorSlotsBG2, Y
|
||||||
|
|||||||
@@ -139,6 +139,16 @@ SingleEdgeCurrentRoomConnectors:
|
|||||||
dw $0300, $41D5, $01C5, $01C4, $41D4, $81C5 ; bottom -> middle
|
dw $0300, $41D5, $01C5, $01C4, $41D4, $81C5 ; bottom -> middle
|
||||||
dw $0300, $0300, $0300, $01C4, $01C4, $01C4 ; bottom -> bottom
|
dw $0300, $0300, $0300, $01C4, $01C4, $01C4 ; bottom -> bottom
|
||||||
|
|
||||||
|
QuadrantMasks:
|
||||||
|
; north
|
||||||
|
dw $0008, $000C, $0004
|
||||||
|
; west
|
||||||
|
dw $0008, $000A, $0002
|
||||||
|
; south
|
||||||
|
dw $0002, $0003, $0001
|
||||||
|
; east
|
||||||
|
dw $0004, $0005, $0001
|
||||||
|
|
||||||
MultiConnectorMapping:
|
MultiConnectorMapping:
|
||||||
.two
|
.two
|
||||||
db $02, $00
|
db $02, $00
|
||||||
|
|||||||
Reference in New Issue
Block a user