Draw triple connections correctly

This commit is contained in:
2026-01-10 14:44:15 -06:00
parent 610607ece4
commit 1776daa43d
5 changed files with 56 additions and 2 deletions

View File

@@ -209,6 +209,7 @@ DrawSide:
BRA .done
.three
JSR DrawTripleConnectorRoot
JSR DrawTripleConnector
.done
@@ -270,6 +271,10 @@ GetWhichDoorPosition:
BMI .edge
AND.w #$0300
XBA
CMP.w #$0003
BNE +
LDA.w #$0002
+
RTS
.edge
@@ -389,6 +394,22 @@ DrawDoubleConnectorRoot:
PLY
RTS
DrawTripleConnectorRoot:
LDA.w #$0013
ASL A : ASL A
PHY
TAY
LDX.w #!CenterTile
LDA.b $00
BNE + : %Draw2TileConnector(-$40, -$3E, $0000, vertical) : BRA ++
+ DEC A : BNE + : %Draw2TileConnector(-$02, $3E, $0000, horizontal) : BRA ++
+ DEC A : BNE + : %Draw2TileConnector($80, $82, $8000, vertical) : BRA ++
+ DEC A : BNE + : %Draw2TileConnector($04, $44, $4000, horizontal) : BRA ++
+
++
PLY
RTS
DrawEastConnectors:
LDA.b $06 : DEC A
BNE +
@@ -511,6 +532,38 @@ DrawDoubleConnector:
RTS
DrawTripleConnector:
LDA.b $00
AND.w #$0001
TAY
LDA.w MultiConnectorTiles_increment, Y
AND.w #$00FF
STA.b $0C
LDA.b $00
ASL A
TAY
LDA.w MultiConnectorTiles_start_offset_three, Y
CLC : ADC.w #!CenterTile
TAX
LDY.b $00
LDA.w MultiConnectorTiles_direction_index, Y
AND.w #$00FF
TAY
LDA.w #$0005
STA.b $0E
-
LDA.w MultiConnectorTiles+8, Y
ORA.w #!ConnectorPalette
STA.l $7F0000, X
TXA
CLC : ADC.b $0C
TAX
INY : INY
DEC.b $0E
BPL -
RTS
DrawBlinkerFancyMode:

View File

@@ -23,7 +23,7 @@ DoorConnectionTiles:
.horizontal
dw $0300, $0300 ; $00
dw $01C4, $0300 ; $01 top -> top
dw $C1D5, $C1D4 ; $02 top -> middle
dw $C1D4, $C1D5 ; $02 top -> middle
dw $81C7, $41C7 ; $03 top -> bottom
dw $81D4, $81D5 ; $04 middle -> top
dw $01C5, $41C5 ; $05 middle -> middle
@@ -40,4 +40,4 @@ DoorConnectionTiles:
dw $C1D7, $01D7 ; $10 middle-bottom -> top-middle
dw $81D4, $C1D6 ; $11 middle-bottom -> top-bottom
dw $01C5, $01C6 ; $12 middle-bottom -> middle-bottom
dw $41C6, $01C6 ; $13 triple -> triple
dw $81C6, $01C6 ; $13 triple -> triple

View File

@@ -93,6 +93,7 @@ MultiConnectorTiles:
..two
dw $FF7E, $FFBC, $00BE, $FFC6
..three
dw $FF7C, $FF7C, $00BC, $FF86
.increment
db $02, $40

Binary file not shown.

Binary file not shown.