summaryrefslogtreecommitdiff
path: root/home/menu.asm
diff options
context:
space:
mode:
authorpikalaxalt <PikalaxALT@gmail.com>2016-06-17 09:49:16 -0400
committerpikalaxalt <PikalaxALT@gmail.com>2016-06-17 09:49:16 -0400
commiteebeee7f7af1dc21d122fdd362d69fa025d9a4f4 (patch)
treedec3812d2a9153ee7b1a3fff066b9f16a5f5e6c3 /home/menu.asm
parenta2c4251575150cbf563f0c95238e440b0a1d9c80 (diff)
home/menu.asm; forgot to track some files
Diffstat (limited to 'home/menu.asm')
-rw-r--r--home/menu.asm389
1 files changed, 152 insertions, 237 deletions
diff --git a/home/menu.asm b/home/menu.asm
index 3e04af8c..bbc29b34 100644
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -1,78 +1,61 @@
-; Functions used in displaying and handling menus.
-
-
-LoadMenuDataHeader::
+LoadMenuDataHeader:: ; 1bac (0:1bac)
call CopyMenuDataHeader
call PushWindow
ret
-CopyMenuDataHeader::
+CopyMenuDataHeader:: ; 1bb3 (0:1bb3)
ld de, wMenuDataHeader
ld bc, wMenuDataHeaderEnd - wMenuDataHeader
call CopyBytes
- ld a, [hROMBank]
- ld [wMenuDataBank], a
ret
-; 0x1d4b
-StoreTo_wMenuCursorBuffer:: ; 1d4b
+StoreTo_wMenuCursorBuffer
ld [wMenuCursorBuffer], a
ret
-; 1d4f
-
-MenuTextBox:: ; 1d4f
+MenuTextBox:: ; 1bc1 (0:1bc1)
push hl
call LoadMenuTextBox
pop hl
jp PrintText
-; 1d57
-ret_1d57:: ; 1d57
-; unreferenced
+; XXX
+ret_1bc9
ret
-; 1d58
-LoadMenuTextBox:: ; 1d58
+LoadMenuTextBox:: ; 1bca (0:1bca)
ld hl, .MenuDataHeader
call LoadMenuDataHeader
ret
-; 1d5f
-
-.MenuDataHeader ; 1d5f
+.MenuDataHeader:
db $40 ; tile backup
db 12, 0 ; start coords
db 17, 19 ; end coords
- dw VTiles0
+ dw $8000
db 0 ; default option
-; 1d67
-MenuTextBoxBackup:: ; 1d67
+MenuTextBoxBackup::
call MenuTextBox
call CloseWindow
ret
-; 1d6e
-LoadStandardMenuDataHeader:: ; 1d6e
+LoadStandardMenuDataHeader::
ld hl, .MenuDataHeader
call LoadMenuDataHeader
ret
-; 1d75
-.MenuDataHeader ; 1d75
+.MenuDataHeader: ; 1d75
db $40 ; tile backup
db 0, 0 ; start coords
db 17, 19 ; end coords
dw 0
db 1 ; default option
-; 1d7d
-Call_ExitMenu:: ; 1d7d
+Call_ExitMenu::
call ExitMenu
ret
-; 1d81
-VerticalMenu::
+VerticalMenu:: ; 1bf3 (0:1bf3)
xor a
ld [hBGMapMode], a
call MenuBox
@@ -82,28 +65,25 @@ VerticalMenu::
call CopyMenuData2
ld a, [wMenuData2Flags]
bit 7, a
- jr z, .cancel
+ jr z, .asm_1c19
call InitVerticalMenuCursor
call StaticMenuJoypad
call MenuClickSound
bit 1, a
- jr z, .okay
-.cancel
+ jr z, .asm_1c1b
+.asm_1c19
scf
ret
-
-.okay
+.asm_1c1b
and a
ret
-; 0x1dab
-GetMenu2:: ; 1dab
+GetMenu2::
call LoadMenuDataHeader
call VerticalMenu
call CloseWindow
ld a, [wMenuCursorY]
ret
-; 1db8
CopyNameFromMenu::
push hl
@@ -116,94 +96,74 @@ CopyNameFromMenu::
inc hl
inc hl
pop af
- call GetNthString
+ call Function3654
ld d, h
ld e, l
- call CopyName1
+ call Function317b
pop bc
pop hl
ret
-; 0x1dcf
-
-YesNoBox:: ; 1dcf
+YesNoBox::
lb bc, SCREEN_WIDTH - 6, 7
-
-PlaceYesNoBox:: ; 1dd2
+PlaceYesNoBox::
jr _YesNoBox
-PlaceGenericTwoOptionBox:: ; 1dd4
+PlaceGenericTwoOptionBox::
call LoadMenuDataHeader
jr InterpretTwoOptionMenu
-_YesNoBox:: ; 1dd9
-; Return nc (yes) or c (no).
+_YesNoBox::
push bc
ld hl, YesNoMenuDataHeader
call CopyMenuDataHeader
pop bc
-; This seems to be an overflow prevention, but
-; it was coded wrong.
- ld a, b
- cp SCREEN_WIDTH - 6
- jr nz, .okay ; should this be "jr nc"?
- ld a, SCREEN_WIDTH - 6
- ld b, a
-
-.okay
ld a, b
ld [wMenuBorderLeftCoord], a
- add 5
+ add $5
ld [wMenuBorderRightCoord], a
ld a, c
ld [wMenuBorderTopCoord], a
- add 4
+ add $4
ld [wMenuBorderBottomCoord], a
call PushWindow
-
-InterpretTwoOptionMenu:: ; 1dfe
+InterpretTwoOptionMenu::
call VerticalMenu
push af
ld c, $f
call DelayFrames
call CloseWindow
pop af
- jr c, .no
+ jr c, .asm_1c80
ld a, [wMenuCursorY]
- cp 2 ; no
- jr z, .no
+ cp $2
+ jr z, .asm_1c80
and a
ret
-
-.no
- ld a, 2
+.asm_1c80
+ ld a, $2
ld [wMenuCursorY], a
scf
ret
-; 1e1d
-
-YesNoMenuDataHeader:: ; 1e1d
+YesNoMenuDataHeader:: ; 1c87 (0:1c87)
db $40 ; tile backup
db 5, 10 ; start coords
db 9, 15 ; end coords
dw .MenuData2
db 1 ; default option
-; 1e25
-.MenuData2 ; 1e25
+.MenuData2: ; 1e25
db $c0 ; flags
db 2
db "YES@"
db "NO@"
-; 1e2e
-OffsetMenuDataHeader:: ; 1e2e
- call _OffsetMenuDataHeader
+OffsetMenuDataHeader::
+ call OffsetMenuDataHeader_
call PushWindow
ret
-; 1e35
-_OffsetMenuDataHeader:: ; 1e35
+OffsetMenuDataHeader_:: ; 1c9f (0:1c9f)
push de
call CopyMenuDataHeader
pop de
@@ -226,39 +186,37 @@ _OffsetMenuDataHeader:: ; 1e35
add l
ld [wMenuBorderBottomCoord], a
ret
-; 1e5d
-DoNthMenu:: ; 1e5d
- call MenuFunc_1e7f
+DoNthMenu::
+ call DrawVariableLengthMenuBox
call MenuWriteText
- call Function1eff
- call Function1f23
+ call InitMenuCursorAndButtonPermissions
+ call GetStaticMenuJoypad
call GetMenuJoypad
call MenuClickSound
ret
-; 1e70
-SetUpMenu:: ; 1e70
- call MenuFunc_1e7f ; ???
+SetUpMenu::
+ call DrawVariableLengthMenuBox
call MenuWriteText
- call Function1eff ; set up selection pointer
- ld hl, w2DMenuFlags1
+ call InitMenuCursorAndButtonPermissions
+ ld hl, wcedc
set 7, [hl]
ret
-MenuFunc_1e7f::
+DrawVariableLengthMenuBox:: ; 1ce9 (0:1ce9)
call CopyMenuData2
call GetMenuIndexSet
- call Function1ea6
+ call AutomaticGetMenuBottomCoord
call MenuBox
ret
-MenuWriteText::
+MenuWriteText:: ; 1cf6 (0:1cf6)
xor a
ld [hBGMapMode], a
- call GetMenuIndexSet ; sort out the text
- call Function1eda ; actually write it
- call Function2e31
+ call GetMenuIndexSet
+ call RunMenuItemPrintingFunction
+ call Function2ef1
ld a, [hOAMUpdate]
push af
ld a, $1
@@ -267,9 +225,8 @@ MenuWriteText::
pop af
ld [hOAMUpdate], a
ret
-; 0x1ea6
-Function1ea6:: ; 1ea6
+AutomaticGetMenuBottomCoord:: ; 1d10 (0:1d10)
ld a, [wMenuBorderLeftCoord]
ld c, a
ld a, [wMenuBorderRightCoord]
@@ -283,165 +240,146 @@ Function1ea6:: ; 1ea6
add b
ld [wMenuBorderBottomCoord], a
ret
-; 1ebd
-GetMenuIndexSet:: ; 1ebd
+GetMenuIndexSet:: ; 1d27 (0:1d27)
ld hl, wMenuData2IndicesPointer
ld a, [hli]
ld h, [hl]
ld l, a
ld a, [wWhichIndexSet]
and a
- jr z, .skip
+ jr z, .asm_1d3d
ld b, a
- ld c, -1
-.loop
+ ld c, $ff
+.asm_1d36
ld a, [hli]
cp c
- jr nz, .loop
+ jr nz, .asm_1d36
dec b
- jr nz, .loop
-
-.skip
+ jr nz, .asm_1d36
+.asm_1d3d
ld d, h
ld e, l
ld a, [hl]
ld [wMenuData2Items], a
ret
-; 1eda
-Function1eda:: ; 1eda
+RunMenuItemPrintingFunction:: ; 1d44 (0:1d44)
call MenuBoxCoord2Tile
ld bc, 2 * SCREEN_WIDTH + 2
add hl, bc
-.loop
+.asm_1d4b
inc de
ld a, [de]
- cp -1
+ cp $ff
ret z
- ld [MenuSelection], a
+ ld [wMenuSelection], a
push de
push hl
ld d, h
ld e, l
ld hl, wMenuData2DisplayFunctionPointer
- call .__wMenuData2DisplayFunction__
+ call ._hl_
pop hl
- ld de, 2 * SCREEN_WIDTH
+ ld de, $28
add hl, de
pop de
- jr .loop
-; 1efb
+ jr .asm_1d4b
-.__wMenuData2DisplayFunction__ ; 1efb
+._hl_ ; 1d65 (0:1d65)
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
-; 1eff
-Function1eff:: ; 1eff
+InitMenuCursorAndButtonPermissions:: ; 1d69 (0:1d69)
call InitVerticalMenuCursor
ld hl, wMenuJoypadFilter
ld a, [wMenuData2Flags]
bit 3, a
- jr z, .disallow_select
- set START_F, [hl]
-
-.disallow_select
+ jr z, .asm_1d78
+ set 3, [hl]
+.asm_1d78
ld a, [wMenuData2Flags]
bit 2, a
- jr z, .disallow_left_right
- set D_LEFT_F, [hl]
- set D_RIGHT_F, [hl]
-
-.disallow_left_right
+ jr z, .asm_1d83
+ set 5, [hl]
+ set 4, [hl]
+.asm_1d83
ret
-; 1f1a
-
-Function1f1a:: ; 1f1a
+GetScrollingMenuJoypad::
call ScrollingMenuJoypad
ld hl, wMenuJoypadFilter
and [hl]
- jr Function1f2a
-; 1f23
+ jr ContinueGettingMenuJoypad
-Function1f23:: ; 1f23
+GetStaticMenuJoypad:: ; 1d8d (0:1d8d)
xor a
ld [wMenuJoypad], a
call StaticMenuJoypad
-; 1f2a
-
-Function1f2a:: ; 1f2a
- bit A_BUTTON_F, a
- jr nz, .a_button
- bit B_BUTTON_F, a
- jr nz, .b_start
- bit START_F, a
- jr nz, .b_start
- bit D_RIGHT_F, a
- jr nz, .d_right
- bit D_LEFT_F, a
- jr nz, .d_left
+ContinueGettingMenuJoypad::
+ bit 0, a
+ jr nz, .asm_1dbc
+ bit 1, a
+ jr nz, .asm_1dd7
+ bit 3, a
+ jr nz, .asm_1dd7
+ bit 4, a
+ jr nz, .asm_1dae
+ bit 5, a
+ jr nz, .asm_1db5
xor a
ld [wMenuJoypad], a
- jr .done
-
-.d_right
- ld a, D_RIGHT
+ jr .asm_1dc1
+.asm_1dae
+ ld a, $10
ld [wMenuJoypad], a
- jr .done
-
-.d_left
- ld a, D_LEFT
+ jr .asm_1dc1
+.asm_1db5
+ ld a, $20
ld [wMenuJoypad], a
- jr .done
-
-.a_button
- ld a, A_BUTTON
+ jr .asm_1dc1
+.asm_1dbc
+ ld a, $1
ld [wMenuJoypad], a
-
-.done
+.asm_1dc1
call GetMenuIndexSet
ld a, [wMenuCursorY]
ld l, a
ld h, $0
add hl, de
ld a, [hl]
- ld [MenuSelection], a
+ ld [wMenuSelection], a
ld a, [wMenuCursorY]
ld [wMenuCursorBuffer], a
and a
ret
-
-.b_start
- ld a, B_BUTTON
+.asm_1dd7
+ ld a, $2
ld [wMenuJoypad], a
- ld a, -1
- ld [MenuSelection], a
+ ld a, $ff
+ ld [wMenuSelection], a
scf
ret
-; 1f79
-PlaceMenuStrings:: ; 1f79
+PlaceMenuStrings::
push de
ld hl, wMenuData2PointerTableAddr
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [MenuSelection]
- call GetNthString
+ ld a, [wMenuSelection]
+ call Function3654
ld d, h
ld e, l
pop hl
call PlaceString
ret
-; 1f8d
-PlaceNthMenuStrings:: ; 1f8d
+PlaceNthMenuStrings::
push de
- ld a, [MenuSelection]
+ ld a, [wMenuSelection]
call GetMenuDataPointerTableEntry
inc hl
inc hl
@@ -451,10 +389,8 @@ PlaceNthMenuStrings:: ; 1f8d
pop hl
call PlaceString
ret
-; 1f9e
-Function1f9e:: ; 1f9e
-; unreferenced
+Function1e08::
call GetMenuDataPointerTableEntry
inc hl
inc hl
@@ -462,18 +398,16 @@ Function1f9e:: ; 1f9e
ld d, [hl]
ld e, a
ret
-; 1fa7
-MenuJumptable:: ; 1fa7
- ld a, [MenuSelection]
+MenuJumptable::
+ ld a, [wMenuSelection]
call GetMenuDataPointerTableEntry
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
-; 1fb1
-GetMenuDataPointerTableEntry:: ; 1fb1
+GetMenuDataPointerTableEntry:: ; 1e1b (0:1e1b)
ld e, a
ld d, $0
ld hl, wMenuData2PointerTableAddr
@@ -485,107 +419,88 @@ GetMenuDataPointerTableEntry:: ; 1fb1
add hl, de
add hl, de
ret
-; 1fbf
-ClearWindowData:: ; 1fbf
- ld hl, wWindowStackPointer
+ClearWindowData::
+ ld hl, wWindowData
call .bytefill
ld hl, wMenuDataHeader
call .bytefill
- ld hl, wMenuData2Flags
+ ld hl, wMenuData2
call .bytefill
- ld hl, w2DMenuCursorInitY
+ ld hl, wMenuData3
call .bytefill
-
- ld a, [rSVBK]
- push af
- ld a, $7
- ld [rSVBK], a
-
xor a
- ld hl, wWindowStackBottom
+ call OpenSRAM
+ xor a
+ ld hl, sWindowStackTop
ld [hld], a
ld [hld], a
ld a, l
ld [wWindowStackPointer], a
ld a, h
ld [wWindowStackPointer + 1], a
-
- pop af
- ld [rSVBK], a
+ call CloseSRAM
ret
-; 1ff0
-.bytefill: ; 1ff0
- ld bc, $0010
+.bytefill
+ ld bc, $10
xor a
call ByteFill
ret
-; 1ff8
-MenuClickSound:: ; 1ff8
+MenuClickSound:: ; 1e5f (0:1e5f)
push af
- and A_BUTTON | B_BUTTON
- jr z, .nosound
- ld hl, wMenuFlags
- bit 3, [hl]
- jr nz, .nosound
+ and $3
+ jr z, .asm_1e6e
+ ld hl, wMenuDataHeader
+ bit 3, a
+ jr nz, .asm_1e6e
call PlayClickSFX
-.nosound
+.asm_1e6e
pop af
ret
-; 2009
-
-
-PlayClickSFX:: ; 2009
+PlayClickSFX:: ; 1e70 (0:1e70)
push de
ld de, SFX_READ_TEXT_2
call PlaySFX
pop de
ret
-; 0x2012
-MenuTextBoxWaitButton:: ; 2012
+MenuTextBoxWaitButton::
call MenuTextBox
call WaitButton
call ExitMenu
ret
-; 201c
-Place2DMenuItemName:: ; 201c
- ld [hBuffer], a
+Place2DMenuItemName::
+ ld [wBuffer], a
ld a, [hROMBank]
push af
- ld a, [hBuffer]
+ ld a, [wBuffer]
rst Bankswitch
-
call PlaceString
pop af
rst Bankswitch
-
ret
-; 202a
-_2DMenu:: ; 202a
- ld a, [hROMBank]
- ld [wMenuData2_2DMenuItemStringsBank], a
- callba _2DMenu_
- ld a, [wMenuCursorBuffer]
- ret
-; 2039
-
-InterpretBattleMenu:: ; 2039
+_2DMenu::
+ call CopyMenuData2
ld a, [hROMBank]
- ld [wMenuData2_2DMenuItemStringsBank], a
- callba _InterpretBattleMenu
+ ld [wMenuDataBank], a
+ push af
+ ld a, BANK(_2DMenu_)
+ rst Bankswitch
+ call _2DMenu_
+ pop bc
+ ld a, b
+ rst Bankswitch
ld a, [wMenuCursorBuffer]
ret
-; 2048
-InterpretMobileMenu:: ; 2048
- ld a, [hROMBank]
- ld [wMenuData2_2DMenuItemStringsBank], a
- callba _InterpretMobileMenu
- ld a, [wMenuCursorBuffer]
+ResetBGWindow::
+ xor a
+ ld [hBGMapMode], a
+ ld a, $90
+ ld [rWY], a
+ ld [hWY], a
ret
-; 2057