summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@gmail.com>2015-11-04 14:02:11 -0500
committerPikalaxALT <PikalaxALT@gmail.com>2015-11-04 14:02:11 -0500
commitcf5d726b7f00633acad3cdf0c25178bde5fc14fb (patch)
tree5d9f14a2f93b4ff09e264f7352920efcb3a01127 /engine
parent94c720832a577be03a471de6db27eba09a96e946 (diff)
Mon submenu, engine/menu.asm
Diffstat (limited to 'engine')
-rwxr-xr-xengine/menu.asm587
-rw-r--r--engine/pack.asm24
-rw-r--r--engine/save.asm2
-rw-r--r--engine/scripting.asm2
4 files changed, 601 insertions, 14 deletions
diff --git a/engine/menu.asm b/engine/menu.asm
new file mode 100755
index 000000000..c1d2949d0
--- /dev/null
+++ b/engine/menu.asm
@@ -0,0 +1,587 @@
+Function2400e:: ; 2400e
+ ld hl, Function1c66
+ ld a, [wcf94]
+ rst FarCall
+ call Function24085
+ call UpdateSprites
+ call Function321c
+ call Function2408f
+ ret
+; 24022
+
+Function24022:: ; 24022
+ ld hl, Function1c66
+ ld a, [wcf94]
+ rst FarCall
+ call Function24085
+ callba MobileTextBorder
+ call UpdateSprites
+ call Function321c
+ call Function2408f
+ ret
+; 2403c
+
+Function2403c:: ; 2403c
+ ld hl, Function1c66
+ ld a, [wcf94]
+ rst FarCall
+ call Function24085
+ callba MobileTextBorder
+ call UpdateSprites
+ call Function321c
+ call Function2411a
+ ld hl, wcfa5
+ set 7, [hl]
+.asm_2405a
+ call DelayFrame
+ callba Function10032e
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_24076
+ call Function241ba
+ ld a, [wcfa8]
+ and c
+ jr z, .asm_2405a
+ call Function24098
+ ret
+
+.asm_24076
+ ld a, [wcfa4]
+ ld c, a
+ ld a, [wcfa3]
+ call SimpleMultiply
+ ld [wMenuCursorBuffer], a
+ and a
+ ret
+; 24085
+
+
+
+Function24085: ; 24085
+ xor a
+ ld [hBGMapMode], a
+ call MenuBox
+ call Function240db
+ ret
+; 2408f
+
+Function2408f: ; 2408f
+ call Function2411a
+ call Function1bc9
+ call Function1ff8
+
+Function24098: ; 24098
+ ld a, [wMenuData2Flags]
+ bit 1, a
+ jr z, .asm_240a6
+ call Function1bdd
+ bit 2, a
+ jr nz, .asm_240c9
+
+.asm_240a6
+ ld a, [wMenuData2Flags]
+ bit 0, a
+ jr nz, .asm_240b4
+ call Function1bdd
+ bit 1, a
+ jr nz, .asm_240cb
+
+.asm_240b4
+ ld a, [wcfa4]
+ ld c, a
+ ld a, [MenuSelection2]
+ dec a
+ call SimpleMultiply
+ ld c, a
+ ld a, [wcfaa]
+ add c
+ ld [wMenuCursorBuffer], a
+ and a
+ ret
+
+.asm_240c9
+ scf
+ ret
+
+.asm_240cb
+ scf
+ ret
+; 240cd
+
+Function240cd: ; 240cd
+ ld a, [wMenuData2Items]
+ and $f
+ ret
+; 240d3
+
+Function240d3: ; 240d3
+ ld a, [wMenuData2Items]
+ swap a
+ and $f
+ ret
+; 240db
+
+Function240db: ; 240db
+ ld hl, wcf95
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ call Function1cc6
+ call GetTileCoord
+ call Function240d3
+ ld b, a
+.asm_240eb
+ push bc
+ push hl
+ call Function240cd
+ ld c, a
+.asm_240f1
+ push bc
+ ld a, [wcf94]
+ call Function201c
+ inc de
+ ld a, [wcf93]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_240f1
+ pop hl
+ ld bc, $28
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_240eb
+ ld hl, wcf98
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ or h
+ ret z
+ ld a, [wcf97]
+ rst FarCall
+ ret
+; 2411a
+
+
+Function2411a: ; 2411a (9:411a)
+ call Function1cc6
+ ld a, b
+ ld [wcfa1], a
+ dec c
+ ld a, c
+ ld [wcfa2], a
+ call Function240d3
+ ld [wcfa3], a
+ call Function240cd
+ ld [wcfa4], a
+ call Function24179
+ call Function2418a
+ call Function24193
+ ld a, [wcfa4]
+ ld e, a
+ ld a, [wMenuCursorBuffer]
+ ld b, a
+ xor a
+ ld d, $0
+.asm_24146
+ inc d
+ add e
+ cp b
+ jr c, .asm_24146
+ sub e
+ ld c, a
+ ld a, b
+ sub c
+ and a
+ jr z, .asm_24157
+ cp e
+ jr z, .asm_24159
+ jr c, .asm_24159
+.asm_24157
+ ld a, $1
+.asm_24159
+ ld [wcfaa], a
+ ld a, [wcfa3]
+ ld e, a
+ ld a, d
+ and a
+ jr z, .asm_24169
+ cp e
+ jr z, .asm_2416b
+ jr c, .asm_2416b
+.asm_24169
+ ld a, $1
+.asm_2416b
+ ld [MenuSelection2], a
+ xor a
+ ld [wcfab], a
+ ld [wcfac], a
+ ld [wcfad], a
+ ret
+; 24179
+
+Function24179: ; 24179
+ xor a
+ ld hl, wcfa5
+ ld [hli], a
+ ld [hld], a
+ ld a, [wMenuData2Flags]
+ bit 5, a
+ ret z
+ set 5, [hl]
+ set 4, [hl]
+ ret
+; 2418a
+
+Function2418a: ; 2418a
+ ld a, [wcf93]
+ or $20
+ ld [wcfa7], a
+ ret
+; 24193
+
+Function24193: ; 24193
+ ld hl, wMenuData2Flags
+ ld a, $1
+ bit 0, [hl]
+ jr nz, .asm_2419e
+ or $2
+
+.asm_2419e
+ bit 1, [hl]
+ jr z, .asm_241a4
+ or $4
+
+.asm_241a4
+ ld [wcfa8], a
+ ret
+; 241a8
+
+
+Function241a8:: ; 241a8
+ call Function24329
+Function241ab:: ; 241ab
+ ld hl, wcfa6
+ res 7, [hl]
+ ld a, [hBGMapMode]
+ push af
+ call Function24216
+ pop af
+ ld [hBGMapMode], a
+ ret
+; 241ba
+
+Function241ba: ; 241ba
+ ld hl, wcfa6
+ res 7, [hl]
+ ld a, [hBGMapMode]
+ push af
+ call Function2431a
+ call Function24249
+ jr nc, .asm_241cd
+ call Function24270
+
+.asm_241cd
+ pop af
+ ld [hBGMapMode], a
+ call Function1bdd
+ ld c, a
+ ret
+; 241d5
+
+
+Function241d5: ; 241d5
+ call Function24329
+.loop
+ call Function2431a
+ call Function10402d ; BUG: This function is in another bank.
+ ; Pointer in current bank (9) is bogus.
+ call Function241fa
+ jr nc, .done
+ call Function24270
+ jr c, .done
+ ld a, [wcfa5]
+ bit 7, a
+ jr nz, .done
+ call Function1bdd
+ ld c, a
+ ld a, [wcfa8]
+ and c
+ jr z, .loop
+
+.done
+ ret
+; 241fa
+
+Function241fa: ; 241fa
+.loop
+ call Function24259
+ ret c
+ ld c, 1
+ ld b, 3
+ call Function10062d ; BUG: This function is in another bank.
+ ; Pointer in current bank (9) is bogus.
+ ret c
+ callba Function100337
+ ret c
+ ld a, [wcfa5]
+ bit 7, a
+ jr z, .loop
+ and a
+ ret
+; 24216
+
+
+Function24216: ; 24216
+.asm_24216
+ call Function2431a
+ call Function24238
+ call Function24249
+ jr nc, .asm_24237
+ call Function24270
+ jr c, .asm_24237
+ ld a, [wcfa5]
+ bit 7, a
+ jr nz, .asm_24237
+ call Function1bdd
+ ld b, a
+ ld a, [wcfa8]
+ and b
+ jr z, .asm_24216
+
+.asm_24237
+ ret
+; 24238
+
+Function24238: ; 24238
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+ call WaitBGMap
+ pop af
+ ld [hOAMUpdate], a
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 24249
+
+Function24249: ; 24249
+.asm_24249
+ call RTC
+ call Function24259
+ ret c
+ ld a, [wcfa5]
+ bit 7, a
+ jr z, .asm_24249
+ and a
+ ret
+; 24259
+
+Function24259: ; 24259
+ ld a, [wcfa5]
+ bit 6, a
+ jr z, .asm_24266
+ callab Function8cf62
+
+.asm_24266
+ call JoyTextDelay
+ call Function1bdd
+ and a
+ ret z
+ scf
+ ret
+; 24270
+
+Function24270: ; 24270
+ call Function1bdd
+ bit 0, a
+ jp nz, Function24318
+ bit 1, a
+ jp nz, Function24318
+ bit 2, a
+ jp nz, Function24318
+ bit 3, a
+ jp nz, Function24318
+ bit 4, a
+ jr nz, .asm_242fa
+ bit 5, a
+ jr nz, .asm_242dc
+ bit 6, a
+ jr nz, .asm_242be
+ bit 7, a
+ jr nz, .asm_242a0
+ and a
+ ret
+
+.asm_24299: ; 24299
+ ld hl, wcfa6
+ set 7, [hl]
+ scf
+ ret
+
+.asm_242a0
+ ld hl, MenuSelection2
+ ld a, [wcfa3]
+ cp [hl]
+ jr z, .asm_242ac
+ inc [hl]
+ xor a
+ ret
+
+.asm_242ac
+ ld a, [wcfa5]
+ bit 5, a
+ jr nz, .asm_242ba
+ bit 3, a
+ jp nz, .asm_24299
+ xor a
+ ret
+
+.asm_242ba
+ ld [hl], $1
+ xor a
+ ret
+
+.asm_242be
+ ld hl, MenuSelection2
+ ld a, [hl]
+ dec a
+ jr z, .asm_242c8
+ ld [hl], a
+ xor a
+ ret
+
+.asm_242c8
+ ld a, [wcfa5]
+ bit 5, a
+ jr nz, .asm_242d6
+ bit 2, a
+ jp nz, .asm_24299
+ xor a
+ ret
+
+.asm_242d6
+ ld a, [wcfa3]
+ ld [hl], a
+ xor a
+ ret
+
+.asm_242dc
+ ld hl, wcfaa
+ ld a, [hl]
+ dec a
+ jr z, .asm_242e6
+ ld [hl], a
+ xor a
+ ret
+
+.asm_242e6
+ ld a, [wcfa5]
+ bit 4, a
+ jr nz, .asm_242f4
+ bit 1, a
+ jp nz, .asm_24299
+ xor a
+ ret
+
+.asm_242f4
+ ld a, [wcfa4]
+ ld [hl], a
+ xor a
+ ret
+
+.asm_242fa
+ ld hl, wcfaa
+ ld a, [wcfa4]
+ cp [hl]
+ jr z, .asm_24306
+ inc [hl]
+ xor a
+ ret
+
+.asm_24306
+ ld a, [wcfa5]
+ bit 4, a
+ jr nz, .asm_24314
+ bit 0, a
+ jp nz, .asm_24299
+ xor a
+ ret
+
+.asm_24314
+ ld [hl], $1
+ xor a
+ ret
+; 24318
+
+Function24318: ; 24318
+ xor a
+ ret
+; 2431a
+
+Function2431a: ; 2431a
+ ld hl, wcfac
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hl]
+ cp $ed
+ jr nz, Function24329
+ ld a, [wcfab]
+ ld [hl], a
+
+Function24329: ; 24329
+ ld a, [wcfa1]
+ ld b, a
+ ld a, [wcfa2]
+ ld c, a
+ call GetTileCoord
+ ld a, [wcfa7]
+ swap a
+ and $f
+ ld c, a
+ ld a, [MenuSelection2]
+ ld b, a
+ xor a
+ dec b
+ jr z, .asm_24348
+.asm_24344
+ add c
+ dec b
+ jr nz, .asm_24344
+
+.asm_24348
+ ld c, $14
+ call AddNTimes
+ ld a, [wcfa7]
+ and $f
+ ld c, a
+ ld a, [wcfaa]
+ ld b, a
+ xor a
+ dec b
+ jr z, .asm_2435f
+.asm_2435b
+ add c
+ dec b
+ jr nz, .asm_2435b
+
+.asm_2435f
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ cp $ed
+ jr z, .asm_2436b
+ ld [wcfab], a
+ ld [hl], $ed
+
+.asm_2436b
+ ld a, l
+ ld [wcfac], a
+ ld a, h
+ ld [wcfad], a
+ ret
+; 24374
diff --git a/engine/pack.asm b/engine/pack.asm
index 6b471e045..d5878b7dd 100644
--- a/engine/pack.asm
+++ b/engine/pack.asm
@@ -70,7 +70,7 @@ Function10067: ; 10067 (4:4067)
call Function350c
ld a, [wd0e4]
ld [wd0df], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wItemsPocketCursor], a
ld b, $7
ld c, $3
@@ -98,7 +98,7 @@ Function100a6: ; 100a6 (4:40a6)
call Function350c
ld a, [wd0e4]
ld [wd0e0], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wKeyItemsPocketCursor], a
ld b, $3
ld c, $7
@@ -141,7 +141,7 @@ Function100e8: ; 100e8 (4:40e8)
call ExitMenu
pop hl
ret c
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
call Function1086b
jp [hl]
@@ -228,7 +228,7 @@ Function10198: ; 10198 (4:4198)
call Function350c
ld a, [wd0e4]
ld [wd0e1], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wBallsPocketCursor], a
ld b, $1
ld c, $5
@@ -301,7 +301,7 @@ Function101c5: ; 101c5 (4:41c5)
call ExitMenu
pop hl
ret c
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
call Function1086b
jp [hl]
@@ -728,7 +728,7 @@ Function104fa: ; 104fa (4:44fa)
call Function350c
ld a, [wd0e4]
ld [wd0df], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wItemsPocketCursor], a
ld b, $7
ld c, $3
@@ -756,7 +756,7 @@ Function10539: ; 10539 (4:4539)
call Function350c
ld a, [wd0e4]
ld [wd0e0], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wKeyItemsPocketCursor], a
ld b, $3
ld c, $7
@@ -807,7 +807,7 @@ Function105a6: ; 105a6 (4:45a6)
call Function350c
ld a, [wd0e4]
ld [wd0e1], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wBallsPocketCursor], a
ld b, $1
ld c, $5
@@ -836,7 +836,7 @@ Function105dc: ; 105dc (4:45dc)
call ExitMenu
pop hl
ret c
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
call Function1086b
jp [hl]
@@ -1013,7 +1013,7 @@ Jumptable_106d1: ; 106d1 (4:46d1)
call Function350c
ld a, [wd0e4]
ld [wd0df], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wItemsPocketCursor], a
ret
@@ -1029,7 +1029,7 @@ Jumptable_106d1: ; 106d1 (4:46d1)
call Function350c
ld a, [wd0e4]
ld [wd0e0], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wKeyItemsPocketCursor], a
ret
@@ -1054,7 +1054,7 @@ Jumptable_106d1: ; 106d1 (4:46d1)
call Function350c
ld a, [wd0e4]
ld [wd0e1], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wBallsPocketCursor], a
ret
diff --git a/engine/save.asm b/engine/save.asm
index fa9aeda12..338d6bc40 100644
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -212,7 +212,7 @@ SaveTheGame_yesorno: ; 14baf
call LoadMenuTextBox
lb bc, 0, 7
call PlaceYesNoBox
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
call WriteBackup
push af
diff --git a/engine/scripting.asm b/engine/scripting.asm
index 246314f79..d502a94db 100644
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -515,7 +515,7 @@ Script_interpretmenu2: ; 0x96f30
ld a, [ScriptBank]
ld hl, InterpretMenu2
rst FarCall
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
jr nc, .ok
xor a
.ok