Draw door connections? prototype???

This commit is contained in:
2026-01-05 23:25:51 -06:00
parent 5574eea4c7
commit b3f35f274b
7 changed files with 235 additions and 24 deletions

View File

@@ -66,6 +66,9 @@ MapDrawingData:
dw $001F, $002F
dw $007F, $008F
.entrance_sprite_offset_y_base
dw $0087, $0097
.supertile_pixel_spacing
dw $0010, $0018
@@ -213,7 +216,6 @@ org $8AE652 ; steal some space from the old map-drawing code we're no longer usi
%Map_LDAY($8AE5F7, floor_data_offset)
%Map_CMP($8AE5A2, row_count)
%Map_CMP($8AE7FA, column_count)
%Map_LDAX($8AE591, row_start_address)
%Map_ADC($8AE896, sprite_offset_x_base)
%Map_ADCY($8AE8B5, sprite_offset_y_base)
%Map_ADC($8AE952, sprite_offset_y_base)
@@ -224,3 +226,120 @@ padbyte $EA
pad $8AE7F6
pullpc
incsrc data/doors_connections.asm
PrepDrawRow:
CLC : ADC.l DungeonMapMode
ASL A
TAX
LDA.l MapDrawingData_row_start_address, X
CLC : ADC.b $06
AND.w #$0FFF
TAX
LDA.l DungeonMapMode
CMP.w #$0001
BNE .done
JSR DrawRowOfRoomConnections
.done
RTL
TripleTable:
dw $0000, $0003, $0006
DrawRowOfRoomConnections:
PHB : PHK : PLB
PHX
LDA.b $00
ASL A
TAY
LDA.w TripleTable, Y
TAY
LDA.w $B9FC00, Y
AND.w #$00FF
JSR DrawHorizontalConnector
INY
INX #6
LDA.w $B9FC00, Y
AND.w #$00FF
JSR DrawHorizontalConnector
INY
INX #6
LDA.w $B9FC00, Y
AND.w #$00FF
JSR DrawHorizontalConnector
LDA.b $00
CMP.w #$0002
BCS .done
PLX : PHX
ASL A : ASL A
TAY
LDA.w $B9FC09, Y
AND.w #$00FF
JSR DrawVerticalConnector
INY
INX #6
LDA.w $B9FC09, Y
AND.w #$00FF
JSR DrawVerticalConnector
INY
INX #6
LDA.w $B9FC09, Y
AND.w #$00FF
JSR DrawVerticalConnector
INY
INX #6
LDA.w $B9FC09, Y
AND.w #$00FF
JSR DrawVerticalConnector
INY
INX #6
.done
PLX
PLB
RTS
; A = connector index
; X = address
DrawHorizontalConnector:
PHY
ASL A : ASL A
TAY
LDA.w DoorConnectionTiles_horizontal+0, Y
ORA.w #$1400
STA.l $7F0004, X
LDA.w DoorConnectionTiles_horizontal+2, Y
ORA.w #$1400
STA.l $7F0044, X
PLY
RTS
; A = connector index
; X = address
DrawVerticalConnector:
PHY
ASL A : ASL A
TAY
LDA.w DoorConnectionTiles_vertical+0, Y
ORA.w #$1400
STA.l $7F0080, X
LDA.w DoorConnectionTiles_vertical+2, Y
ORA.w #$1400
STA.l $7F0082, X
PLY
RTS