Cleanup menu_draw, fix bombs drawing incorrectly

This commit is contained in:
scawful
2024-03-13 12:24:50 -04:00
parent c1ad4cf3b8
commit 83d79e0bae

View File

@@ -1,4 +1,4 @@
; ============================================================================= ; =========================================================
; Tilemap Menu background ; Tilemap Menu background
Menu_DrawBackground: Menu_DrawBackground:
@@ -30,44 +30,44 @@ Menu_DrawBackground:
RTS RTS
} }
; ============================================================================= ; =========================================================
; Menu Item Draw Routine ; Menu Item Draw Routine
; Credit to Kan ; Credit to Kan
DrawMenuItem: DrawMenuItem:
{ {
STA.b $08 STA.b $08
STY.b $00 STY.b $00
LDA.b [$08] LDA.b [$08]
AND.w #$00FF AND.w #$00FF
BNE .not_zero BNE .not_zero
LDY.w #NothingGFX LDY.w #NothingGFX
BRA .draw BRA .draw
.not_zero .not_zero
DEC DEC
ASL : ASL : ASL ASL : ASL : ASL
ADC.b $00 ADC.b $00
TAY TAY
.draw .draw
LDA.w $0000,Y : STA.w $1108,X LDA.w $0000,Y : STA.w $1108,X
LDA.w $0002,Y : STA.w $110A,X LDA.w $0002,Y : STA.w $110A,X
LDA.w $0004,Y : STA.w $1148,X LDA.w $0004,Y : STA.w $1148,X
LDA.w $0006,Y : STA.w $114A,X LDA.w $0006,Y : STA.w $114A,X
RTS RTS
} }
; ============================================================================= ; =========================================================
; Quest Icons Tilemap Draw Routine ; Quest Icons Tilemap Draw Routine
DrawQuestIcons: Menu_DrawQuestIcons:
{ {
LDX.w #$10 LDX.w #$10
@@ -94,9 +94,9 @@ DrawQuestIcons:
} }
; ============================================================================= ; =========================================================
DrawTriforceIcon: Menu_DrawTriforceIcons:
{ {
LDA.l $7EF37A LDA.l $7EF37A
LDX.w #$3534 LDX.w #$3534
@@ -135,9 +135,9 @@ DrawTriforceIcon:
} }
;=============================================================================== ; =========================================================
DrawPendantIcons: Menu_DrawPendantIcons:
{ {
LDA.l $7EF374 LDA.l $7EF374
LSR : BCC + LSR : BCC +
@@ -156,7 +156,7 @@ DrawPendantIcons:
} }
;=============================================================================== ; =========================================================
; V H O P P P T T T T T T T T T T <- tile format ; V H O P P P T T T T T T T T T T <- tile format
; V = Vertical Flip ; V = Vertical Flip
@@ -169,6 +169,12 @@ DrawPendantIcons:
DrawHeartPieces: DrawHeartPieces:
{ {
; Empty heart containter
LDX.w #$2484 : STX.w $149E ; top left
LDX.w #$6484 : STX.w $14A0 ; top right
LDX.w #$2485 : STX.w $14DE ; bottom left
LDX.w #$6485 : STX.w $14E0 ; bottom right
LDA.l $7EF36B LDA.l $7EF36B
AND.w #$00FF AND.w #$00FF
CMP.w #3 : BEQ .top_right CMP.w #3 : BEQ .top_right
@@ -186,111 +192,113 @@ DrawHeartPieces:
} }
;=============================================================================== ; =========================================================
DrawMusicNotes: DrawMusicNotes:
{
LDA.w #$02 LDA.w #$02
STA.w MusicNoteValue STA.w MusicNoteValue
LDA.w #MusicNoteValue LDA.w #MusicNoteValue
LDX.w #menu_offset(17,14) LDX.w #menu_offset(17,14)
LDY.w #QuarterNoteGFX LDY.w #QuarterNoteGFX
JSR DrawMenuItem JSR DrawMenuItem
LDA.w #$03 LDA.w #$03
STA.w MusicNoteValue STA.w MusicNoteValue
LDA.w #MusicNoteValue LDA.w #MusicNoteValue
LDX.w #menu_offset(17,17) LDX.w #menu_offset(17,17)
LDY.w #QuarterNoteGFX LDY.w #QuarterNoteGFX
JSR DrawMenuItem JSR DrawMenuItem
LDA.w #$04 LDA.w #$04
STA.w MusicNoteValue STA.w MusicNoteValue
LDA.w #MusicNoteValue LDA.w #MusicNoteValue
LDX.w #menu_offset(17,20) LDX.w #menu_offset(17,20)
LDY.w #QuarterNoteGFX LDY.w #QuarterNoteGFX
JSR DrawMenuItem JSR DrawMenuItem
RTS RTS
}
;=============================================================================== ; =========================================================
DrawYItems: DrawYItems:
{ {
SEP #$30 SEP #$30
LDA.b #$7E : STA.b $0A ; Set up the bank of our indirect address LDA.b #$7E : STA.b $0A ; Set up the bank of our indirect address
REP #$30 REP #$30
LDA.w #$7EF340 LDA.w #$7EF340
LDX.w #menu_offset(7,3) LDX.w #menu_offset(7,3)
LDY.w #BowsGFX LDY.w #BowsGFX
JSR DrawMenuItem JSR DrawMenuItem
LDA.w #$7EF341 LDA.w #$7EF341
LDX.w #menu_offset(7,6) LDX.w #menu_offset(7,6)
LDY.w #BoomsGFX LDY.w #BoomsGFX
JSR DrawMenuItem JSR DrawMenuItem
LDA.l $7EF342 : CMP.w #$0000 : BEQ .no_hookshot LDA.l $7EF342 : AND.w #$00FF : CMP.w #$0000 : BEQ .no_hookshot
LDA.w GoldstarOrHookshot : BNE .spoof_hookshot LDA.w GoldstarOrHookshot : BNE .spoof_hookshot
LDA #$0001 ; No goldstar, but hookshot LDA #$0001 ; No goldstar, but hookshot
.spoof_hookshot .spoof_hookshot
STA.w MenuItemValueSpoof : LDA.w #MenuItemValueSpoof STA.w MenuItemValueSpoof : LDA.w #MenuItemValueSpoof
LDX.w #menu_offset(7,9) LDX.w #menu_offset(7,9)
LDY.w #HookGFX LDY.w #HookGFX
JSR DrawMenuItem JSR DrawMenuItem
.no_hookshot .no_hookshot
LDA.l $7EF343 LDA.l $7EF343
CMP.w #$00 : BEQ .no_bomb AND.w #$00FF : CMP.w #$00 : BEQ .no_bomb
LDA.w #$0001 LDA.w #$0001
STA.w MenuItemValueSpoof STA.w MenuItemValueSpoof
LDA.w #MenuItemValueSpoof LDA.w #MenuItemValueSpoof
LDX.w #menu_offset(7,13) LDX.w #menu_offset(7,13)
LDY.w #BombsGFX LDY.w #BombsGFX
JSR DrawMenuItem JSR DrawMenuItem
.no_bomb .no_bomb
LDA.w #$7EF344 LDA.w #$7EF344
LDX.w #menu_offset(7,16) LDX.w #menu_offset(7,16)
LDY.w #PowderGFX LDY.w #PowderGFX
JSR DrawMenuItem JSR DrawMenuItem
LDA.w #$7EF35C LDA.w #$7EF35C
LDX.w #menu_offset(7,19) LDX.w #menu_offset(7,19)
LDY.w #BottlesGFX LDY.w #BottlesGFX
JSR DrawMenuItem JSR DrawMenuItem
;; next row ;; next row
LDA.w #$7EF34B LDA.w #$7EF34B
LDX.w #menu_offset(10,3) LDX.w #menu_offset(10,3)
LDY.w #HammerGFX LDY.w #HammerGFX
JSR DrawMenuItem JSR DrawMenuItem
LDA.w #$7EF34A LDA.w #$7EF34A
LDX.w #menu_offset(10,6) LDX.w #menu_offset(10,6)
LDY.w #LampGFX LDY.w #LampGFX
JSR DrawMenuItem JSR DrawMenuItem
LDA.w #$7EF345 LDA.w #$7EF345
LDX.w #menu_offset(10,9) LDX.w #menu_offset(10,9)
LDY.w #Fire_rodGFX LDY.w #Fire_rodGFX
JSR DrawMenuItem JSR DrawMenuItem
LDA.w #$7EF346 LDA.w #$7EF346
LDX.w #menu_offset(10,13) LDX.w #menu_offset(10,13)
LDY.w #Ice_rodGFX LDY.w #Ice_rodGFX
JSR DrawMenuItem JSR DrawMenuItem
LDA.w #$7EF353 LDA.w #$7EF353
LDX.w #menu_offset(10,16) LDX.w #menu_offset(10,16)
LDY.w #MirrorGFX LDY.w #MirrorGFX
JSR DrawMenuItem JSR DrawMenuItem
LDA.w #$7EF35D LDA.w #$7EF35D
LDX.w #menu_offset(10,19) LDX.w #menu_offset(10,19)
LDY.w #BottlesGFX LDY.w #BottlesGFX
JSR DrawMenuItem JSR DrawMenuItem
;; next row ;; next row
LDA.l $7EF34C : CMP.w #$0000 : BEQ .no_ocarina LDA.l $7EF34C : CMP.w #$0000 : BEQ .no_ocarina
@@ -298,79 +306,87 @@ DrawYItems:
LDA #$0001 ; Multi-songs not unlocked yet LDA #$0001 ; Multi-songs not unlocked yet
.spoof_ocarina .spoof_ocarina
STA.w ShortSpoof : LDA.w #ShortSpoof STA.w ShortSpoof : LDA.w #ShortSpoof
LDX.w #menu_offset(13,3) LDX.w #menu_offset(13,3)
LDY.w #OcarinaGFX LDY.w #OcarinaGFX
JSR DrawMenuItem JSR DrawMenuItem
.no_ocarina .no_ocarina
LDA.l $7EF34E : CMP.w #$00 : BEQ .no_book LDA.l $7EF34E : CMP.w #$00 : BEQ .no_book
LDA.w #$01 : STA.w ShortSpoof : LDA.w #ShortSpoof LDA.w #$01 : STA.w ShortSpoof : LDA.w #ShortSpoof
LDX.w #menu_offset(13,6) LDX.w #menu_offset(13,6)
LDY.w #BookGFX LDY.w #BookGFX
JSR DrawMenuItem JSR DrawMenuItem
.no_book .no_book
LDA.w #$7EF350 ; LDA.l $7EF350 : CMP.w #$00 : BEQ .no_somaria
LDX.w #menu_offset(13,9) ; LDA.w SomariaOrByrna : BNE .spoof_somaria
LDY.w #SomariaGFX ; .spoof_somaria
JSR DrawMenuItem ; LDA.w #$01 : STA.w ShortSpoof : LDA.w #ShortSpoof
LDA.w #$7EF350
LDX.w #menu_offset(13,9)
LDY.w #SomariaGFX
JSR DrawMenuItem
.no_somaria
LDA.w #$7EF351
LDX.w #menu_offset(13,13) LDA.w #$7EF351
LDY.w #ByrnaGFX LDX.w #menu_offset(13,13)
JSR DrawMenuItem ;LDY.w #ByrnaGFX
LDY.w #FishingRodGFX
JSR DrawMenuItem
LDA.w #$7EF34D LDA.w #$7EF34D
LDX.w #menu_offset(13,16) LDX.w #menu_offset(13,16)
LDY.w #JumpFeatherGFX LDY.w #JumpFeatherGFX
JSR DrawMenuItem JSR DrawMenuItem
LDA.w #$7EF35E LDA.w #$7EF35E
LDX.w #menu_offset(13,19) LDX.w #menu_offset(13,19)
LDY.w #BottlesGFX LDY.w #BottlesGFX
JSR DrawMenuItem JSR DrawMenuItem
;; next row ;; next row
LDA.w #$7EF349 LDA.w #$7EF349
LDX.w #menu_offset(16,3) LDX.w #menu_offset(16,3)
LDY.w #DekuMaskGFX LDY.w #DekuMaskGFX
JSR DrawMenuItem JSR DrawMenuItem
LDA.w #$7EF347 LDA.w #$7EF347
LDX.w #menu_offset(16,6) LDX.w #menu_offset(16,6)
LDY.w #ZoraMaskGFX LDY.w #ZoraMaskGFX
JSR DrawMenuItem JSR DrawMenuItem
LDA.w #$7EF358 LDA.w #$7EF358
LDX.w #menu_offset(16,9) LDX.w #menu_offset(16,9)
LDY.w #WolfMaskGFX LDY.w #WolfMaskGFX
JSR DrawMenuItem JSR DrawMenuItem
LDA.w #$7EF348 LDA.w #$7EF348
LDX.w #menu_offset(16,13) LDX.w #menu_offset(16,13)
LDY.w #BunnyHoodGFX LDY.w #BunnyHoodGFX
JSR DrawMenuItem JSR DrawMenuItem
LDA.w #$7EF352 LDA.w #$7EF352
LDX.w #menu_offset(16,16) LDX.w #menu_offset(16,16)
LDY.w #StoneMaskGFX LDY.w #StoneMaskGFX
JSR DrawMenuItem JSR DrawMenuItem
LDA.w #$7EF35F LDA.w #$7EF35F
LDX.w #menu_offset(16,19) LDX.w #menu_offset(16,19)
LDY.w #BottlesGFX LDY.w #BottlesGFX
JSR DrawMenuItem JSR DrawMenuItem
RTS RTS
} }
; ============================================================================= ; =========================================================
Menu_DrawQuestItems: Menu_DrawQuestItems:
SEP #$30 {
LDA.b #$7E : STA.b $0A SEP #$30
REP #$30 LDA.b #$7E : STA.b $0A
REP #$30
LDA.w #$7EF359 LDA.w #$7EF359
LDX.w #menu_offset(14,2) LDX.w #menu_offset(14,2)
@@ -411,8 +427,9 @@ Menu_DrawQuestItems:
JSR DrawMenuItem JSR DrawMenuItem
RTS RTS
}
; ============================================================================= ; =========================================================
Menu_DrawBigKey: Menu_DrawBigKey:
{ {
@@ -430,8 +447,8 @@ Menu_DrawBigKey:
JSR CheckPalaceItemPossession : LDA $02 : BEQ .noTreasureYet JSR CheckPalaceItemPossession : LDA $02 : BEQ .noTreasureYet
SEP #$30 SEP #$30
LDA.b #$7E : STA.b $0A LDA.b #$7E : STA.b $0A
REP #$30 REP #$30
LDA.w #$01 LDA.w #$01
STA.w ShortSpoof STA.w ShortSpoof
@@ -443,8 +460,8 @@ Menu_DrawBigKey:
.noTreasureYet .noTreasureYet
SEP #$30 SEP #$30
LDA.b #$7E : STA.b $0A LDA.b #$7E : STA.b $0A
REP #$30 REP #$30
LDA.w #$01 LDA.w #$01
STA.w ShortSpoof STA.w ShortSpoof
@@ -482,7 +499,7 @@ Menu_DrawBigKey:
RTS RTS
} }
; ============================================================================= ; =========================================================
; *$6EEB6-$6EEDB LOCAL ; *$6EEB6-$6EEDB LOCAL
CheckPalaceItemPossession: CheckPalaceItemPossession:
@@ -509,7 +526,7 @@ CheckPalaceItemPossession:
dw .red_mail dw .red_mail
} }
; ============================================================================== ; ==========================================================
; *$6EEDC-$6EEE0 JUMP LOCATION ; *$6EEDC-$6EEE0 JUMP LOCATION
.pool_CheckPalaceItemPossession: .pool_CheckPalaceItemPossession:
@@ -604,8 +621,8 @@ Menu_DrawBigChestKey:
BCC .dontHaveCompass BCC .dontHaveCompass
SEP #$30 SEP #$30
LDA.b #$7E : STA.b $0A LDA.b #$7E : STA.b $0A
REP #$30 REP #$30
LDA.w #$01 LDA.w #$01
STA.w ShortSpoof STA.w ShortSpoof