From c38b3b6d0a8fed8dac688980687207ba46527abf Mon Sep 17 00:00:00 2001 From: Kara Alexandra Date: Mon, 12 Jan 2026 15:49:09 -0600 Subject: [PATCH] Conditionally draw staircase labels --- dungeon_map/current_room_map.asm | 89 ++++++++++++++++++++++++----- dungeon_map/data/spiral_stairs.asm | 18 +++++- menu/map_icons.3bpp | Bin 4608 -> 4608 bytes menu/map_icons_2.3bppc | Bin 628 -> 637 bytes menu/map_icons_4.3bppc | Bin 1042 -> 1041 bytes menu/map_icons_b.3bpp | Bin 4608 -> 4608 bytes 6 files changed, 93 insertions(+), 14 deletions(-) diff --git a/dungeon_map/current_room_map.asm b/dungeon_map/current_room_map.asm index 7022213..7aae272 100644 --- a/dungeon_map/current_room_map.asm +++ b/dungeon_map/current_room_map.asm @@ -540,6 +540,53 @@ DrawStairs: PLX RTS +GetCurrentRoomVisibility: + PHX + 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 CurrentDisplayedRoom + AND.w #$00FF + ASL A + TAX + LDA.l SaveDataWRAM, X + AND.w #$000F + STA.b $0E + BEQ + + LDA.l ShowRooms_visited_tile + AND.w #$00FF + CMP.b $0A + BCC + + STA.b $0A ++ + + PLX + LDA.b $0A + RTS + DrawDropOrWarp: PHX LDA.l CurrentDisplayedRoom @@ -1391,18 +1438,16 @@ DrawDoorsStairs: LDA.l SpiralPropsIndex, X TAX LDA.l SpiralProps, X - STA.b $0E - STZ.b $0F BEQ .done -.next_sprite - LDY.b $00 - LDA.b #$00 - STA.w OAMBufferAux, Y - TYA - ASL A : ASL A - TAY + STA.b $0C + STZ.b $0D + REP #$30 + JSR GetCurrentRoomVisibility + SEP #$30 + +.next_sprite INX : INX LDA.l SpiralProps, X @@ -1410,6 +1455,22 @@ DrawDoorsStairs: ASL A TAX + LDA.b $0A + CMP.b #$04 + BCS .draw + + LDA.l SpiralLabelQuadrantMasks, X + AND.b $0E + BEQ .skip + +.draw + LDY.b $00 + LDA.b #$00 + STA.w OAMBufferAux, Y + TYA + ASL A : ASL A + TAY + LDA.l DoorSlotsSprites CLC : ADC.l SpiralLabelOffsets, X STA.w OAMBuffer, Y @@ -1417,17 +1478,19 @@ DrawDoorsStairs: LDA.l DoorSlotsSprites+1 CLC : ADC.l SpiralLabelOffsets+1, X STA.w OAMBuffer+1, Y - PLX LDA.b #$39 - CLC : ADC.b $0F + CLC : ADC.b $0D STA.w OAMBuffer+2, Y LDA.b #$33 STA.w OAMBuffer+3, Y INC.b $00 - INC.b $0F - DEC.b $0E + +.skip + PLX + INC.b $0D + DEC.b $0C BNE .next_sprite .done diff --git a/dungeon_map/data/spiral_stairs.asm b/dungeon_map/data/spiral_stairs.asm index c8cb2f4..058b8d8 100644 --- a/dungeon_map/data/spiral_stairs.asm +++ b/dungeon_map/data/spiral_stairs.asm @@ -43,7 +43,7 @@ db $02, $00, $01, $01, $0B ; ($53) Pod Rupees db $01, $00, $04 ; ($58) Ice Gators db $02, $01, $0A, $02, $01 ; ($5B) HC Tiny (first value placeholder) db $03, $00, $01, $01, $0B, $02, $09 ; ($60) Swamp Sunken -db $03, $01, $00, $02, $09, $03, $08 ; ($67) Hera Entrance (first value unused) +db $03, $01, $00, $03, $08, $02, $09 ; ($67) Hera Entrance (first value unused) db $01, $00, $08 ; ($6E) Ice Hookshot db $02, $01, $00, $03, $08 ; ($71) Hera Basement (first and third values unused) db $03, $01, $00, $00, $02, $03, $08 ; ($76) GT Circle (third value unused) @@ -68,3 +68,19 @@ db -3, -9 db 13, -9 db -3, -1 db 13, -1 + +SpiralLabelQuadrantMasks: +dw $0008 +dw $000C +dw $0004 +dw $0008 +dw $0004 +dw $0002 +dw $0003 +dw $0001 +dw $0002 +dw $0001 +dw $0008 +dw $0004 +dw $0002 +dw $0001 diff --git a/menu/map_icons.3bpp b/menu/map_icons.3bpp index 95ba022e6d5928dd2658051cb0b81bd6cbe65e1a..94ade5680da47b6225485b4c73f7844a2c6780cf 100644 GIT binary patch delta 34 lcmZorX;9hlgIzR1LQoeM(}V;)c2D@G*-=D4^Zr&b0g@5w@p{wxd(ZQ_&D7|mImzcIBd JO^<<4;BCb delta 44 zcmey%@`Yss8zWEWBSv+Gmd}hGuNmAY%P{)0HnTA`OHIyaG-qvLV`}4=yqfV608XwB A7ytkO diff --git a/menu/map_icons_4.3bppc b/menu/map_icons_4.3bppc index 0e7ed430e869e8274708fac57fbef64ed3fe3e64..86a98cb8c97860c13f7969b2d9f016ce80c4789d 100644 GIT binary patch delta 19 acmbQlF_B|~BqN)Xjf;~C(`E(6PfP$ZF9h}g delta 20 bcmbQpF^OY?BqMvBjdPj`bKPcn#!pNDJZS~g diff --git a/menu/map_icons_b.3bpp b/menu/map_icons_b.3bpp index e5801b88fe9e0932e531defe0e17f3a43e24ef18..12b575e91b232f3c23c22cbef4a5725f93ed28ed 100644 GIT binary patch delta 20 ZcmZorX;9hF!pQDq$Fo4XlH1pq(|1=Rom delta 20 bcmZorX;9hF!pL4{lctiUQn$IAu~Yy6M$HD5