diff options
Diffstat (limited to 'home/menu.asm')
-rw-r--r-- | home/menu.asm | 119 |
1 files changed, 62 insertions, 57 deletions
diff --git a/home/menu.asm b/home/menu.asm index 82bac3b99..c4f0ed0d9 100644 --- a/home/menu.asm +++ b/home/menu.asm @@ -1,14 +1,14 @@ ; Functions used in displaying and handling menus. -LoadMenuDataHeader:: ; 0x1d35 +LoadMenuDataHeader:: call CopyMenuDataHeader - call Function1c00 + call BackUpTiles ret -CopyMenuDataHeader:: ; 0x1d3c +CopyMenuDataHeader:: ld de, wcf81 - ld bc, $0010 + ld bc, 16 call CopyBytes ld a, [hROMBank] ld [wcf8a], a @@ -16,7 +16,7 @@ CopyMenuDataHeader:: ; 0x1d3c ; 0x1d4b Function1d4b:: ; 1d4b - ld [wcf88], a + ld [wPocketCursorBuffer], a ret ; 1d4f @@ -71,7 +71,7 @@ Function1d7d:: ; 1d7d ret ; 1d81 -InterpretMenu2:: ; 0x1d81 +InterpretMenu2:: xor a ld [hBGMapMode], a call Function1cbb @@ -81,16 +81,16 @@ InterpretMenu2:: ; 0x1d81 call Function1c66 ld a, [wcf91] bit 7, a - jr z, .asm_1da7 ; 0x1d98 $d + jr z, .cancel call Function1c10 call Function1bc9 call Function1ff8 bit 1, a - jr z, .asm_1da9 ; 0x1da5 $2 -.asm_1da7 + jr z, .okay +.cancel scf ret -.asm_1da9 +.okay and a ret ; 0x1dab @@ -103,7 +103,7 @@ GetMenu2:: ; 1dab ret ; 1db8 -Function1db8:: ; 0x1db8 +Function1db8:: push hl push bc push af @@ -131,9 +131,9 @@ YesNoBox:: ; 1dcf PlaceYesNoBox:: ; 1dd2 jr _YesNoBox -Function1dd4:: ; 1dd4 +PlaceGenericTwoOptionBox:: ; 1dd4 call LoadMenuDataHeader - jr Function1dfe + jr InterpretTwoOptionMenu _YesNoBox:: ; 1dd9 ; Return nc (yes) or c (no). @@ -141,39 +141,41 @@ _YesNoBox:: ; 1dd9 ld hl, YesNoMenuDataHeader call CopyMenuDataHeader pop bc +; This seems to be an overflow prevention, but +; it was coded wrong. ld a, b - cp $e - jr nz, .asm_1de9 - ld a, $e + cp SCREEN_WIDTH - 6 + jr nz, .okay ; should this be "jr nc"? + ld a, SCREEN_WIDTH - 6 ld b, a -.asm_1de9 +.okay ld a, b - ld [wcf83], a + ld [wMenuBorderLeftCoord], a add $5 - ld [wcf85], a + ld [wMenuBorderRightCoord], a ld a, c - ld [wcf82], a + ld [wMenuBorderTopCoord], a add $4 - ld [wcf84], a - call Function1c00 + ld [wMenuBorderBottomCoord], a + call BackUpTiles -Function1dfe:: ; 1dfe +InterpretTwoOptionMenu:: ; 1dfe call InterpretMenu2 push af ld c, $f call DelayFrames call WriteBackup pop af - jr c, .asm_1e16 + jr c, .no ld a, [wcfa9] cp 2 ; no - jr z, .asm_1e16 + jr z, .no and a ret -.asm_1e16 - ld a, $2 +.no + ld a, 2 ld [wcfa9], a scf ret @@ -196,7 +198,7 @@ YesNoMenuData2:: ; 1e25 Function1e2e:: ; 1e2e call Function1e35 - call Function1c00 + call BackUpTiles ret ; 1e35 @@ -204,24 +206,24 @@ Function1e35:: ; 1e35 push de call CopyMenuDataHeader pop de - ld a, [wcf83] + ld a, [wMenuBorderLeftCoord] ld h, a - ld a, [wcf85] + ld a, [wMenuBorderRightCoord] sub h ld h, a ld a, d - ld [wcf83], a + ld [wMenuBorderLeftCoord], a add h - ld [wcf85], a - ld a, [wcf82] + ld [wMenuBorderRightCoord], a + ld a, [wMenuBorderTopCoord] ld l, a - ld a, [wcf84] + ld a, [wMenuBorderBottomCoord] sub l ld l, a ld a, e - ld [wcf82], a + ld [wMenuBorderTopCoord], a add l - ld [wcf84], a + ld [wMenuBorderBottomCoord], a ret ; 1e5d @@ -243,14 +245,14 @@ SetUpMenu:: ; 1e70 set 7, [hl] ret -MenuFunc_1e7f:: ; 0x1e7f +MenuFunc_1e7f:: call Function1c66 call Function1ebd call Function1ea6 call Function1cbb ret -MenuWriteText:: ; 0x1e8c +MenuWriteText:: xor a ld [hBGMapMode], a call Function1ebd ; sort out the text @@ -267,18 +269,18 @@ MenuWriteText:: ; 0x1e8c ; 0x1ea6 Function1ea6:: ; 1ea6 - ld a, [wcf83] + ld a, [wMenuBorderLeftCoord] ld c, a - ld a, [wcf85] + ld a, [wMenuBorderRightCoord] sub c ld c, a ld a, [wcf92] add a inc a ld b, a - ld a, [wcf82] + ld a, [wMenuBorderTopCoord] add b - ld [wcf84], a + ld [wMenuBorderBottomCoord], a ret ; 1ebd @@ -308,7 +310,7 @@ Function1ebd:: ; 1ebd ; 1eda Function1eda:: ; 1eda - call Function1cfd + call GetMemTileCoord ld bc, $002a add hl, bc .asm_1ee1 @@ -408,7 +410,7 @@ Function1f2a:: ; 1f2a ld a, [hl] ld [MenuSelection], a ld a, [wcfa9] - ld [wcf88], a + ld [wPocketCursorBuffer], a and a ret @@ -484,21 +486,23 @@ endr ret ; 1fbf -Function1fbf:: ; 1fbf +ResetTextRelatedRAM:: ; 1fbf ld hl, wcf71 - call Function1ff0 + call .bytefill ld hl, wcf81 - call Function1ff0 + call .bytefill ld hl, wcf91 - call Function1ff0 + call .bytefill ld hl, wcfa1 - call Function1ff0 + call .bytefill + ld a, [rSVBK] push af ld a, $7 ld [rSVBK], a + xor a - ld hl, $dfff + ld hl, w7_dfff rept 2 ld [hld], a endr @@ -506,12 +510,13 @@ endr ld [wcf71], a ld a, h ld [wcf72], a + pop af ld [rSVBK], a ret ; 1ff0 -Function1ff0:: ; 1ff0 +.bytefill: ; 1ff0 ld bc, $0010 xor a call ByteFill @@ -521,13 +526,13 @@ Function1ff0:: ; 1ff0 Function1ff8:: ; 1ff8 push af and $3 - jr z, .asm_2007 + jr z, .nosound ld hl, wcf81 bit 3, [hl] - jr nz, .asm_2007 + jr nz, .nosound call PlayClickSFX -.asm_2007 +.nosound pop af ret ; 2009 @@ -566,7 +571,7 @@ InterpretMenu:: ; 202a ld a, [hROMBank] ld [wcf94], a callba Function2400e - ld a, [wcf88] + ld a, [wPocketCursorBuffer] ret ; 2039 @@ -574,7 +579,7 @@ Function2039:: ; 2039 ld a, [hROMBank] ld [wcf94], a callba Function24022 - ld a, [wcf88] + ld a, [wPocketCursorBuffer] ret ; 2048 @@ -582,7 +587,7 @@ Function2048:: ; 2048 ld a, [hROMBank] ld [wcf94], a callba Function2403c - ld a, [wcf88] + ld a, [wPocketCursorBuffer] ret ; 2057 |