From bdb1272cb2a936032be0f8e8948c6ca772b05010 Mon Sep 17 00:00:00 2001 From: Kara Alexandra Date: Wed, 7 Jan 2026 05:30:49 -0600 Subject: [PATCH] Clean up macros somewhat --- dungeon_map/draw_loot.asm | 22 ++--- dungeon_map/draw_rooms.asm | 20 ++--- dungeon_map/dungeon_switch.asm | 8 +- dungeon_map/main.asm | 2 +- dungeon_map/map_bg3.asm | 3 +- dungeon_map/mappable_doors.asm | 154 ++++++++++++++++++--------------- 6 files changed, 100 insertions(+), 109 deletions(-) diff --git a/dungeon_map/draw_loot.asm b/dungeon_map/draw_loot.asm index eaaf020..fc006e8 100644 --- a/dungeon_map/draw_loot.asm +++ b/dungeon_map/draw_loot.asm @@ -68,17 +68,13 @@ DrawSingleFloorLoot: AND.w #$00FF INC A ASL A - CLC : ADC.l DungeonMapMode - ASL A - TAX + %ADD_MapMode() LDA.l MapDrawingData_floor_data_offset, X DEC A TAY - LDA.l DungeonMapMode - ASL A - TAX + %LDX_MapMode() SEP #$20 LDA.l MapDrawingData_column_count, X @@ -97,9 +93,7 @@ DrawSingleFloorLoot: STA.w GFXStripes PHX - LDA.l DungeonMapMode - ASL A - TAX + %LDX_MapMode() SEP #$20 LDA.b $07 @@ -161,8 +155,7 @@ DrawSingleFloorLoot: DEY : DEX #4 LDA.l DungeonMapMode - CMP.w #$0001 - BNE + + BEQ + LDA.b $06 AND.w #$00FF BEQ + @@ -179,8 +172,7 @@ DrawSingleFloorLoot: BPL .next_room LDA.l DungeonMapMode - CMP.b #$01 - BEQ + + BNE + ; draw an extra empty tile at the end to make up for width differences between modes LDA.b #$03 STZ.w GFXStripes+$02, X @@ -194,9 +186,7 @@ DrawSingleFloorLoot: LDA.b #$00 XBA - LDA.l DungeonMapMode - ASL A - TAX + %LDX_MapMode() LDA.l MapDrawingData_column_count, X DEC A STA.b $06 diff --git a/dungeon_map/draw_rooms.asm b/dungeon_map/draw_rooms.asm index d871fec..7398e65 100644 --- a/dungeon_map/draw_rooms.asm +++ b/dungeon_map/draw_rooms.asm @@ -8,9 +8,7 @@ DrawNonexistentRoom: FinishRoom: PHX - LDA.l DungeonMapMode - ASL A - TAX + %LDX_MapMode() PLA CLC : ADC.l MapDrawingData_column_spacing, X TAX @@ -169,16 +167,12 @@ DrawSingleFloorEntrances: ASL A TAX - CLC : ADC.l DungeonMapMode - ASL A - TAX + %ADD_MapMode() LDA.l MapDrawingData_floor_data_offset, X TAY STZ.b $06 - LDA.l DungeonMapMode - ASL A - TAX + %LDX_MapMode() .next_room REP #$20 @@ -240,9 +234,7 @@ macro DrawSingleEntrance(offset) PHA LDA.b $02 - CLC : ADC.l DungeonMapMode - ASL A - TAX + %ADD_MapMode() PLA CLC : ADC.l MapDrawingData_sprite_offset_y_base, X @@ -265,9 +257,7 @@ DrawSingleRoomEntrances: STA.b $0E PHY - LDA.l DungeonMapMode - ASL A - TAY + %LDY_MapMode() SEP #$10 diff --git a/dungeon_map/dungeon_switch.asm b/dungeon_map/dungeon_switch.asm index c79daef..34c1e58 100644 --- a/dungeon_map/dungeon_switch.asm +++ b/dungeon_map/dungeon_switch.asm @@ -173,16 +173,12 @@ StartCurrentRoomSearch: FindCurrentRoom: PHX TYA - CLC : ADC.l DungeonMapMode - ASL A - TAX + %ADD_MapMode() LDA.l MapDrawingData_floor_data_offset, X STA.b $0C LDY.w #$0000 - LDA.l DungeonMapMode - ASL A - TAX + %LDX_MapMode() SEP #$20 diff --git a/dungeon_map/main.asm b/dungeon_map/main.asm index 30155db..a67cb57 100644 --- a/dungeon_map/main.asm +++ b/dungeon_map/main.asm @@ -27,10 +27,10 @@ endmacro pullpc +incsrc mappable_doors.asm incsrc draw_rooms.asm incsrc map_bg3.asm incsrc dungeon_switch.asm incsrc draw_loot.asm incsrc check_loot.asm incsrc blink_loot.asm -incsrc mappable_doors.asm diff --git a/dungeon_map/map_bg3.asm b/dungeon_map/map_bg3.asm index 26b2e2d..41b8d17 100644 --- a/dungeon_map/map_bg3.asm +++ b/dungeon_map/map_bg3.asm @@ -12,8 +12,7 @@ LoadStripes: .dungeon_map LDA.l DungeonMapMode - CMP.b #$01 - BEQ .doors + BNE .doors .not_doors LDA.b #BG3DungeonMapStripes>>0 diff --git a/dungeon_map/mappable_doors.asm b/dungeon_map/mappable_doors.asm index 03e6b23..2ddcf84 100644 --- a/dungeon_map/mappable_doors.asm +++ b/dungeon_map/mappable_doors.asm @@ -103,20 +103,42 @@ CustomMapDrawingData: dw $000E dw $0015 +macro LDA_MapMode() + LDA.l DungeonMapMode + ASL A +endmacro + +macro LDX_MapMode() + %LDA_MapMode() + TAX +endmacro + +macro LDY_MapMode() + %LDA_MapMode() + TAY +endmacro + +macro ADD_MapMode() + CLC : ADC.l DungeonMapMode + ASL A + TAX +endmacro + macro Map_LDA(addr, label) pushpc org JSR LDA_