refactor comment max line width to 80 and moved select item code into its own file
This commit is contained in:
192
Menu/menu.asm
192
Menu/menu.asm
@@ -1,16 +1,16 @@
|
|||||||
;===========================================================
|
; =============================================================================
|
||||||
; The Legend of Zelda: Oracle of Secrets
|
; The Legend of Zelda: Oracle of Secrets
|
||||||
; ------------NEW Custom Menu ------------
|
; ------------NEW Custom Menu ------------
|
||||||
;
|
;
|
||||||
; Details: Complete overhaul of original LTTP menu
|
; Details: Complete overhaul of original LTTP menu
|
||||||
; Two Pane Oot/MM inspired design
|
; Two Pane Oot/MM inspired design
|
||||||
; Original item layout and designs
|
; Original item layout and designs
|
||||||
; Detailed Quest Status screen
|
; Detailed Quest Status screen
|
||||||
; Player name, location name, and death count
|
; Player name, location name, and death count
|
||||||
;
|
;
|
||||||
; Significant thanks to Kan for helping me craft this menu!
|
; Significant thanks to Kan for helping me craft this menu!
|
||||||
;
|
;
|
||||||
;===========================================================
|
; =============================================================================
|
||||||
|
|
||||||
pushpc
|
pushpc
|
||||||
org $1BD662 ; update in game hud colors
|
org $1BD662 ; update in game hud colors
|
||||||
@@ -25,7 +25,7 @@ org $1DB682
|
|||||||
dw hexto555($7b7b83), hexto555($bbbbbb)
|
dw hexto555($7b7b83), hexto555($bbbbbb)
|
||||||
org $1DB68A
|
org $1DB68A
|
||||||
dw hexto555($a58100), hexto555($dfb93f)
|
dw hexto555($a58100), hexto555($dfb93f)
|
||||||
org $0098AB ; menu override
|
org $0098AB ; hook vanilla menu routine
|
||||||
db $D8>>1
|
db $D8>>1
|
||||||
org $00F877
|
org $00F877
|
||||||
db Menu_Entry>>0
|
db Menu_Entry>>0
|
||||||
@@ -39,6 +39,7 @@ org $8DDFB2
|
|||||||
LDA.l Menu_ItemIndex, X
|
LDA.l Menu_ItemIndex, X
|
||||||
pullpc
|
pullpc
|
||||||
|
|
||||||
|
; upload tilemaps containing frame of menu and icons
|
||||||
org $248000
|
org $248000
|
||||||
Menu_Tilemap:
|
Menu_Tilemap:
|
||||||
incbin "tilemaps/menu_frame.tilemap"
|
incbin "tilemaps/menu_frame.tilemap"
|
||||||
@@ -50,6 +51,7 @@ incsrc "menu_draw_items.asm"
|
|||||||
incsrc "menu_text.asm"
|
incsrc "menu_text.asm"
|
||||||
incsrc "menu_palette.asm"
|
incsrc "menu_palette.asm"
|
||||||
|
|
||||||
|
; Traverse jump table containing routines for Oracle of Secrets menu
|
||||||
Menu_Entry:
|
Menu_Entry:
|
||||||
PHB : PHK : PLB
|
PHB : PHK : PLB
|
||||||
LDA.w $0200
|
LDA.w $0200
|
||||||
@@ -61,7 +63,7 @@ Menu_Entry:
|
|||||||
RTL
|
RTL
|
||||||
incsrc "menu_vectors.asm"
|
incsrc "menu_vectors.asm"
|
||||||
|
|
||||||
; ===================================================================================
|
; =============================================================================
|
||||||
; 00 MENU INIT GRAPHICS
|
; 00 MENU INIT GRAPHICS
|
||||||
|
|
||||||
Menu_InitGraphics:
|
Menu_InitGraphics:
|
||||||
@@ -70,7 +72,7 @@ Menu_InitGraphics:
|
|||||||
INC $0200
|
INC $0200
|
||||||
}
|
}
|
||||||
|
|
||||||
; ===================================================================================
|
; =============================================================================
|
||||||
; 01 MENU UPLOAD RIGHT
|
; 01 MENU UPLOAD RIGHT
|
||||||
|
|
||||||
Menu_UploadRight:
|
Menu_UploadRight:
|
||||||
@@ -104,7 +106,7 @@ Menu_UploadRight:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; ===================================================================================
|
; =============================================================================
|
||||||
; 02 MENU UPLOAD LEFT
|
; 02 MENU UPLOAD LEFT
|
||||||
|
|
||||||
Menu_UploadLeft:
|
Menu_UploadLeft:
|
||||||
@@ -130,7 +132,7 @@ Menu_UploadLeft:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; ===================================================================================
|
; =============================================================================
|
||||||
; 03 MENU SCROLL DOWN
|
; 03 MENU SCROLL DOWN
|
||||||
|
|
||||||
Menu_Scroll:
|
Menu_Scroll:
|
||||||
@@ -155,148 +157,10 @@ Menu_ScrollDown:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; ===================================================================================
|
; =============================================================================
|
||||||
; 04 MENU ITEM SCREEN
|
; 04 MENU ITEM SCREEN
|
||||||
|
incsrc "menu_select_item.asm"
|
||||||
|
|
||||||
Menu_ItemIndex:
|
|
||||||
db $03 ; slingshot
|
|
||||||
db $02 ; boomerang
|
|
||||||
db $0E ; hookshot
|
|
||||||
db $01 ; bombs
|
|
||||||
db $11 ; deku mask
|
|
||||||
db $0B ; bottle1
|
|
||||||
db $05 ; firerod (nimbus)
|
|
||||||
db $06 ; icerod
|
|
||||||
db $09 ; lamp
|
|
||||||
db $04 ; hammer
|
|
||||||
db $0F ; bombos / goron
|
|
||||||
db $4B ; bottle2
|
|
||||||
db $12 ; somaria
|
|
||||||
db $0D ; byrna
|
|
||||||
db $0C ; book
|
|
||||||
db $07 ; feather
|
|
||||||
db $10 ; bunny hood
|
|
||||||
db $8B ; bottle3
|
|
||||||
db $08 ; ocarina
|
|
||||||
db $14 ; mirror
|
|
||||||
db $0B ; shovel
|
|
||||||
db $0A ; powder
|
|
||||||
db $13 ; stone mask
|
|
||||||
db $CB ; bottle4
|
|
||||||
|
|
||||||
Menu_AddressIndex:
|
|
||||||
db $7EF340 ; bow
|
|
||||||
db $7EF341 ; boom
|
|
||||||
db $7EF342 ; hookshot
|
|
||||||
db $7EF343 ; bombs
|
|
||||||
db $7EF348 ; deku mask
|
|
||||||
db $7EF35C ; bottle1
|
|
||||||
db $7EF345 ; firerod (nimbus)
|
|
||||||
db $7EF346 ; icerod
|
|
||||||
db $7EF34A ; lamp
|
|
||||||
db $7EF34B ; hammer
|
|
||||||
db $7EF347 ; bombos / goron
|
|
||||||
db $7EF35D ; bottle2
|
|
||||||
db $7EF350 ; somaria
|
|
||||||
db $7EF351 ; byrna
|
|
||||||
db $7EF34E ; book
|
|
||||||
db $7EF34D ; feather
|
|
||||||
db $7EF349 ; bunny hood
|
|
||||||
db $7EF35E ; bottle3
|
|
||||||
db $7EF34C ; ocarina
|
|
||||||
db $7EF353 ; mirror
|
|
||||||
db $7EF34F ; shovel
|
|
||||||
db $7EF344 ; powder
|
|
||||||
db $7EF352 ; stone mask
|
|
||||||
db $7EF35F ; bottle4
|
|
||||||
|
|
||||||
Menu_ItemCursorPositions:
|
|
||||||
dw menu_offset(6,1) ; bow
|
|
||||||
dw menu_offset(6,4) ; boom
|
|
||||||
dw menu_offset(6,7) ; hookshot
|
|
||||||
dw menu_offset(6,10) ; bombs
|
|
||||||
dw menu_offset(6,13) ; deku mask
|
|
||||||
dw menu_offset(6,16) ; bottle1
|
|
||||||
dw menu_offset(9,1) ; firerod
|
|
||||||
dw menu_offset(9,4) ; icerod
|
|
||||||
dw menu_offset(9,7) ; lamp
|
|
||||||
dw menu_offset(9,10) ; hammer
|
|
||||||
dw menu_offset(9,13) ; goron
|
|
||||||
dw menu_offset(9,16) ; bottle2
|
|
||||||
dw menu_offset(12,1) ; somaria
|
|
||||||
dw menu_offset(12,4) ; byrna
|
|
||||||
dw menu_offset(12,7) ; book
|
|
||||||
dw menu_offset(12,10) ; feather
|
|
||||||
dw menu_offset(12,13) ; bunny hood
|
|
||||||
dw menu_offset(12,16) ; bottle3
|
|
||||||
dw menu_offset(15,1) ; flute
|
|
||||||
dw menu_offset(15,4) ; mirror
|
|
||||||
dw menu_offset(15,7) ; shovel
|
|
||||||
dw menu_offset(15,10) ; powder
|
|
||||||
dw menu_offset(15,13) ; stone mask
|
|
||||||
dw menu_offset(15,16) ; bottle
|
|
||||||
|
|
||||||
; ----------------------
|
|
||||||
Menu_FindNextItem:
|
|
||||||
LDY.w $0202 : INY
|
|
||||||
CPY.b #$19 : BCC .no_reset
|
|
||||||
LDY.b #$01
|
|
||||||
.no_reset
|
|
||||||
STY.w $0202
|
|
||||||
LDX.w Menu_AddressIndex-1, Y
|
|
||||||
LDA.l $7EF300, X
|
|
||||||
BEQ Menu_FindNextItem
|
|
||||||
RTS
|
|
||||||
; ----------------------
|
|
||||||
Menu_FindPrevItem:
|
|
||||||
LDY.w $0202 : DEY : BNE .no_reset
|
|
||||||
LDY.b #$18
|
|
||||||
.no_reset
|
|
||||||
STY.w $0202
|
|
||||||
LDX.w Menu_AddressIndex-1, Y
|
|
||||||
LDA.l $7EF300, X
|
|
||||||
BEQ Menu_FindPrevItem
|
|
||||||
RTS
|
|
||||||
; ----------------------
|
|
||||||
Menu_FindNextDownItem:
|
|
||||||
LDA.w $0202 : CLC : ADC.b #$06
|
|
||||||
CMP.b #$19 : BCC .no_reset
|
|
||||||
SBC.b #$18
|
|
||||||
.no_reset
|
|
||||||
TAY : STY.w $0202
|
|
||||||
LDX.w Menu_AddressIndex-1, Y
|
|
||||||
LDA.l $7EF300, X
|
|
||||||
BEQ Menu_FindNextUpItem
|
|
||||||
RTS
|
|
||||||
; ----------------------
|
|
||||||
Menu_FindNextUpItem:
|
|
||||||
LDA.w $0202 : SEC : SBC.b #$06
|
|
||||||
BPL .no_reset : BNE .no_reset
|
|
||||||
CLC : ADC.b #$18
|
|
||||||
.no_reset
|
|
||||||
TAY : STY.w $0202
|
|
||||||
LDX.w Menu_AddressIndex-1, Y
|
|
||||||
LDA.l $7EF300, X
|
|
||||||
BEQ Menu_FindNextDownItem
|
|
||||||
RTS
|
|
||||||
; ----------------------
|
|
||||||
Menu_DeleteCursor:
|
|
||||||
REP #$30
|
|
||||||
LDX.w Menu_ItemCursorPositions-2, Y
|
|
||||||
|
|
||||||
LDA.w #$20F5
|
|
||||||
STA.w $1108, X
|
|
||||||
STA.w $1148, X
|
|
||||||
STA.w $114E, X
|
|
||||||
STA.w $110E, X
|
|
||||||
STA.w $11C8, X
|
|
||||||
STA.w $1188, X
|
|
||||||
STA.w $118E, X
|
|
||||||
STA.w $11CE, X
|
|
||||||
SEP #$30
|
|
||||||
STZ $0207
|
|
||||||
RTS
|
|
||||||
; ----------------------
|
|
||||||
Menu_InitItemScreen:
|
Menu_InitItemScreen:
|
||||||
{
|
{
|
||||||
SEP #$30
|
SEP #$30
|
||||||
@@ -407,7 +271,7 @@ Menu_ItemScreen:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; ===================================================================================
|
; =============================================================================
|
||||||
; 05 MENU SCROLL TO
|
; 05 MENU SCROLL TO
|
||||||
|
|
||||||
Menu_ScrollTo:
|
Menu_ScrollTo:
|
||||||
@@ -422,7 +286,7 @@ Menu_ScrollTo:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; ===================================================================================
|
; =============================================================================
|
||||||
; 06 MENU STATS SCREEN
|
; 06 MENU STATS SCREEN
|
||||||
|
|
||||||
Menu_StatsScreen:
|
Menu_StatsScreen:
|
||||||
@@ -487,7 +351,7 @@ Menu_ScrollHorizontal:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; ===================================================================================
|
; =============================================================================
|
||||||
; 07 MENU SCROLL FROM
|
; 07 MENU SCROLL FROM
|
||||||
|
|
||||||
Menu_ScrollFrom:
|
Menu_ScrollFrom:
|
||||||
@@ -501,7 +365,7 @@ Menu_ScrollFrom:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; ===================================================================================
|
; =============================================================================
|
||||||
; 08 MENU SCROLL UP
|
; 08 MENU SCROLL UP
|
||||||
|
|
||||||
Menu_ScrollUp:
|
Menu_ScrollUp:
|
||||||
@@ -526,7 +390,7 @@ Menu_ScrollUp:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; ===================================================================================
|
; =============================================================================
|
||||||
; incomplete :(
|
; incomplete :(
|
||||||
Menu_CheckBottle:
|
Menu_CheckBottle:
|
||||||
{
|
{
|
||||||
@@ -545,7 +409,7 @@ Menu_CheckBottle:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
; ===================================================================================
|
; =============================================================================
|
||||||
; 09 MENU EXIT
|
; 09 MENU EXIT
|
||||||
|
|
||||||
Menu_Exit:
|
Menu_Exit:
|
||||||
@@ -576,7 +440,7 @@ Menu_Exit:
|
|||||||
|
|
||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
; ===================================================================================
|
; =============================================================================
|
||||||
; XX MENU HIJACK HUD
|
; XX MENU HIJACK HUD
|
||||||
|
|
||||||
HudItems:
|
HudItems:
|
||||||
@@ -648,7 +512,7 @@ Menu_UpdateHudItem:
|
|||||||
RTL
|
RTL
|
||||||
}
|
}
|
||||||
|
|
||||||
; ===================================================================================
|
; =============================================================================
|
||||||
|
|
||||||
Menu_DrawBackground:
|
Menu_DrawBackground:
|
||||||
{
|
{
|
||||||
@@ -679,6 +543,6 @@ Menu_DrawBackground:
|
|||||||
RTS
|
RTS
|
||||||
}
|
}
|
||||||
|
|
||||||
;===============================================================================
|
; =============================================================================
|
||||||
|
|
||||||
incsrc "lw_map_names.asm"
|
incsrc "lw_map_names.asm"
|
||||||
156
Menu/menu_select_item.asm
Normal file
156
Menu/menu_select_item.asm
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
; =============================================================================
|
||||||
|
; Item Selection Code
|
||||||
|
; =============================================================================
|
||||||
|
|
||||||
|
Menu_ItemIndex:
|
||||||
|
db $03 ; slingshot
|
||||||
|
db $02 ; boomerang
|
||||||
|
db $0E ; hookshot
|
||||||
|
db $01 ; bombs
|
||||||
|
db $11 ; deku mask
|
||||||
|
db $0B ; bottle1
|
||||||
|
db $05 ; firerod (nimbus)
|
||||||
|
db $06 ; icerod
|
||||||
|
db $09 ; lamp
|
||||||
|
db $04 ; hammer
|
||||||
|
db $0F ; bombos / goron
|
||||||
|
db $4B ; bottle2
|
||||||
|
db $12 ; somaria
|
||||||
|
db $0D ; byrna
|
||||||
|
db $0C ; book
|
||||||
|
db $07 ; feather
|
||||||
|
db $10 ; bunny hood
|
||||||
|
db $8B ; bottle3
|
||||||
|
db $08 ; ocarina
|
||||||
|
db $14 ; mirror
|
||||||
|
db $0B ; shovel
|
||||||
|
db $0A ; powder
|
||||||
|
db $13 ; stone mask
|
||||||
|
db $CB ; bottle4
|
||||||
|
|
||||||
|
; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Menu_AddressIndex:
|
||||||
|
db $7EF340 ; bow
|
||||||
|
db $7EF341 ; boom
|
||||||
|
db $7EF342 ; hookshot
|
||||||
|
db $7EF343 ; bombs
|
||||||
|
db $7EF348 ; deku mask
|
||||||
|
db $7EF35C ; bottle1
|
||||||
|
db $7EF345 ; firerod (nimbus)
|
||||||
|
db $7EF346 ; icerod
|
||||||
|
db $7EF34A ; lamp
|
||||||
|
db $7EF34B ; hammer
|
||||||
|
db $7EF347 ; bombos / goron
|
||||||
|
db $7EF35D ; bottle2
|
||||||
|
db $7EF350 ; somaria
|
||||||
|
db $7EF351 ; byrna
|
||||||
|
db $7EF34E ; book
|
||||||
|
db $7EF34D ; feather
|
||||||
|
db $7EF349 ; bunny hood
|
||||||
|
db $7EF35E ; bottle3
|
||||||
|
db $7EF34C ; ocarina
|
||||||
|
db $7EF353 ; mirror
|
||||||
|
db $7EF34F ; shovel
|
||||||
|
db $7EF344 ; powder
|
||||||
|
db $7EF352 ; stone mask
|
||||||
|
db $7EF35F ; bottle4
|
||||||
|
|
||||||
|
; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Menu_ItemCursorPositions:
|
||||||
|
dw menu_offset(6,1) ; bow
|
||||||
|
dw menu_offset(6,4) ; boom
|
||||||
|
dw menu_offset(6,7) ; hookshot
|
||||||
|
dw menu_offset(6,10) ; bombs
|
||||||
|
dw menu_offset(6,13) ; deku mask
|
||||||
|
dw menu_offset(6,16) ; bottle1
|
||||||
|
dw menu_offset(9,1) ; firerod
|
||||||
|
dw menu_offset(9,4) ; icerod
|
||||||
|
dw menu_offset(9,7) ; lamp
|
||||||
|
dw menu_offset(9,10) ; hammer
|
||||||
|
dw menu_offset(9,13) ; goron
|
||||||
|
dw menu_offset(9,16) ; bottle2
|
||||||
|
dw menu_offset(12,1) ; somaria
|
||||||
|
dw menu_offset(12,4) ; byrna
|
||||||
|
dw menu_offset(12,7) ; book
|
||||||
|
dw menu_offset(12,10) ; feather
|
||||||
|
dw menu_offset(12,13) ; bunny hood
|
||||||
|
dw menu_offset(12,16) ; bottle3
|
||||||
|
dw menu_offset(15,1) ; flute
|
||||||
|
dw menu_offset(15,4) ; mirror
|
||||||
|
dw menu_offset(15,7) ; shovel
|
||||||
|
dw menu_offset(15,10) ; powder
|
||||||
|
dw menu_offset(15,13) ; stone mask
|
||||||
|
dw menu_offset(15,16) ; bottle
|
||||||
|
|
||||||
|
; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Menu_FindNextItem:
|
||||||
|
LDY.w $0202 : INY
|
||||||
|
CPY.b #$19 : BCC .no_reset
|
||||||
|
LDY.b #$01
|
||||||
|
.no_reset
|
||||||
|
STY.w $0202
|
||||||
|
LDX.w Menu_AddressIndex-1, Y
|
||||||
|
LDA.l $7EF300, X
|
||||||
|
BEQ Menu_FindNextItem
|
||||||
|
RTS
|
||||||
|
|
||||||
|
; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Menu_FindPrevItem:
|
||||||
|
LDY.w $0202 : DEY : BNE .no_reset
|
||||||
|
LDY.b #$18
|
||||||
|
.no_reset
|
||||||
|
STY.w $0202
|
||||||
|
LDX.w Menu_AddressIndex-1, Y
|
||||||
|
LDA.l $7EF300, X
|
||||||
|
BEQ Menu_FindPrevItem
|
||||||
|
RTS
|
||||||
|
; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Menu_FindNextDownItem:
|
||||||
|
LDA.w $0202 : CLC : ADC.b #$06
|
||||||
|
CMP.b #$19 : BCC .no_reset
|
||||||
|
SBC.b #$18
|
||||||
|
.no_reset
|
||||||
|
TAY : STY.w $0202
|
||||||
|
LDX.w Menu_AddressIndex-1, Y
|
||||||
|
LDA.l $7EF300, X
|
||||||
|
BEQ Menu_FindNextUpItem
|
||||||
|
RTS
|
||||||
|
|
||||||
|
; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Menu_FindNextUpItem:
|
||||||
|
LDA.w $0202 : SEC : SBC.b #$06
|
||||||
|
BPL .no_reset : BNE .no_reset
|
||||||
|
CLC : ADC.b #$18
|
||||||
|
.no_reset
|
||||||
|
TAY : STY.w $0202
|
||||||
|
LDX.w Menu_AddressIndex-1, Y
|
||||||
|
LDA.l $7EF300, X
|
||||||
|
BEQ Menu_FindNextDownItem
|
||||||
|
RTS
|
||||||
|
|
||||||
|
; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Menu_DeleteCursor:
|
||||||
|
REP #$30
|
||||||
|
LDX.w Menu_ItemCursorPositions-2, Y
|
||||||
|
|
||||||
|
LDA.w #$20F5
|
||||||
|
STA.w $1108, X
|
||||||
|
STA.w $1148, X
|
||||||
|
STA.w $114E, X
|
||||||
|
STA.w $110E, X
|
||||||
|
STA.w $11C8, X
|
||||||
|
STA.w $1188, X
|
||||||
|
STA.w $118E, X
|
||||||
|
STA.w $11CE, X
|
||||||
|
SEP #$30
|
||||||
|
STZ $0207
|
||||||
|
RTS
|
||||||
|
|
||||||
|
; -----------------------------------------------------------------------------
|
||||||
Reference in New Issue
Block a user