diff options
| author | PikalaxALT <PikalaxALT@gmail.com> | 2015-11-04 14:02:11 -0500 | 
|---|---|---|
| committer | PikalaxALT <PikalaxALT@gmail.com> | 2015-11-04 14:02:11 -0500 | 
| commit | cf5d726b7f00633acad3cdf0c25178bde5fc14fb (patch) | |
| tree | 5d9f14a2f93b4ff09e264f7352920efcb3a01127 /engine | |
| parent | 94c720832a577be03a471de6db27eba09a96e946 (diff) | |
Mon submenu, engine/menu.asm
Diffstat (limited to 'engine')
| -rwxr-xr-x | engine/menu.asm | 587 | ||||
| -rw-r--r-- | engine/pack.asm | 24 | ||||
| -rw-r--r-- | engine/save.asm | 2 | ||||
| -rw-r--r-- | engine/scripting.asm | 2 | 
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 | 
