mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
split menu functions into engine/menu.asm
This commit is contained in:
parent
23bb05851b
commit
340e31d839
603
engine/menu.asm
Normal file
603
engine/menu.asm
Normal file
@ -0,0 +1,603 @@
|
||||
; Functions used in displaying and handling menus.
|
||||
|
||||
|
||||
LoadMenuDataHeader: ; 0x1d35
|
||||
call Function1d3c
|
||||
call Function1c00
|
||||
ret
|
||||
|
||||
Function1d3c: ; 0x1d3c
|
||||
ld de, $cf81
|
||||
ld bc, $0010
|
||||
call CopyBytes
|
||||
ld a, [hROMBank]
|
||||
ld [$cf8a], a
|
||||
ret
|
||||
; 0x1d4b
|
||||
|
||||
Function1d4b: ; 1d4b
|
||||
ld [$cf88], a
|
||||
ret
|
||||
; 1d4f
|
||||
|
||||
|
||||
Function1d4f: ; 1d4f
|
||||
push hl
|
||||
call Function1d58
|
||||
pop hl
|
||||
jp PrintText
|
||||
; 1d57
|
||||
|
||||
Function1d57: ; 1d57
|
||||
ret
|
||||
; 1d58
|
||||
|
||||
Function1d58: ; 1d58
|
||||
ld hl, MenuDataHeader_0x1d5f
|
||||
call LoadMenuDataHeader
|
||||
ret
|
||||
; 1d5f
|
||||
|
||||
MenuDataHeader_0x1d5f: ; 1d5f
|
||||
db $40 ; tile backup
|
||||
db 12, 0 ; start coords
|
||||
db 17, 19 ; end coords
|
||||
dw VTiles0
|
||||
db 0 ; default option
|
||||
; 1d67
|
||||
|
||||
Function1d67: ; 1d67
|
||||
call Function1d4f
|
||||
call Function1c17
|
||||
ret
|
||||
; 1d6e
|
||||
|
||||
Function1d6e: ; 1d6e
|
||||
ld hl, MenuDataHeader_0x1d75
|
||||
call LoadMenuDataHeader
|
||||
ret
|
||||
; 1d75
|
||||
|
||||
MenuDataHeader_0x1d75: ; 1d75
|
||||
db $40 ; tile backup
|
||||
db 0, 0 ; start coords
|
||||
db 17, 19 ; end coords
|
||||
dw $0000
|
||||
db 1 ; default option
|
||||
; 1d7d
|
||||
|
||||
Function1d7d: ; 1d7d
|
||||
call Function1c07
|
||||
ret
|
||||
; 1d81
|
||||
|
||||
Function1d81: ; 0x1d81
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
call Function1cbb
|
||||
call Function1ad2
|
||||
call Function1c89
|
||||
call Function321c
|
||||
call Function1c66
|
||||
ld a, [$cf91]
|
||||
bit 7, a
|
||||
jr z, .asm_1da7 ; 0x1d98 $d
|
||||
call Function1c10
|
||||
call Function1bc9
|
||||
call Function1ff8
|
||||
bit 1, a
|
||||
jr z, .asm_1da9 ; 0x1da5 $2
|
||||
.asm_1da7
|
||||
scf
|
||||
ret
|
||||
.asm_1da9
|
||||
and a
|
||||
ret
|
||||
; 0x1dab
|
||||
|
||||
Function1dab: ; 1dab
|
||||
call LoadMenuDataHeader
|
||||
call Function1d81
|
||||
call Function1c17
|
||||
ld a, [$cfa9]
|
||||
ret
|
||||
; 1db8
|
||||
|
||||
Function1db8: ; 0x1db8
|
||||
push hl
|
||||
push bc
|
||||
push af
|
||||
ld hl, $cf86
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
inc hl
|
||||
inc hl
|
||||
pop af
|
||||
call GetNthString
|
||||
ld d, h
|
||||
ld e, l
|
||||
call CopyName1
|
||||
pop bc
|
||||
pop hl
|
||||
ret
|
||||
; 0x1dcf
|
||||
|
||||
|
||||
Function1dcf: ; 1dcf
|
||||
ld bc, $0e07
|
||||
|
||||
Function1dd2: ; 1dd2
|
||||
jr Function1dd9
|
||||
|
||||
Function1dd4: ; 1dd4
|
||||
call LoadMenuDataHeader
|
||||
jr Function1dfe
|
||||
|
||||
Function1dd9: ; 1dd9
|
||||
push bc
|
||||
ld hl, MenuDataHeader_0x1e1d
|
||||
call Function1d3c
|
||||
pop bc
|
||||
ld a, b
|
||||
cp $e
|
||||
jr nz, .asm_1de9
|
||||
ld a, $e
|
||||
ld b, a
|
||||
|
||||
.asm_1de9
|
||||
ld a, b
|
||||
ld [$cf83], a
|
||||
add $5
|
||||
ld [$cf85], a
|
||||
ld a, c
|
||||
ld [$cf82], a
|
||||
add $4
|
||||
ld [$cf84], a
|
||||
call Function1c00
|
||||
|
||||
Function1dfe: ; 1dfe
|
||||
call Function1d81
|
||||
push af
|
||||
ld c, $f
|
||||
call DelayFrames
|
||||
call Function1c17
|
||||
pop af
|
||||
jr c, .asm_1e16
|
||||
ld a, [$cfa9]
|
||||
cp $2
|
||||
jr z, .asm_1e16
|
||||
and a
|
||||
ret
|
||||
|
||||
.asm_1e16
|
||||
ld a, $2
|
||||
ld [$cfa9], a
|
||||
scf
|
||||
ret
|
||||
; 1e1d
|
||||
|
||||
MenuDataHeader_0x1e1d: ; 1e1d
|
||||
db $40 ; tile backup
|
||||
db 5, 10 ; start coords
|
||||
db 9, 15 ; end coords
|
||||
dw MenuData2_0x1e25
|
||||
db 1 ; default option
|
||||
; 1e25
|
||||
|
||||
MenuData2_0x1e25: ; 1e25
|
||||
db $c0 ; flags
|
||||
db 2
|
||||
db "YES@"
|
||||
db "NO@"
|
||||
; 1e2e
|
||||
|
||||
Function1e2e: ; 1e2e
|
||||
call Function1e35
|
||||
call Function1c00
|
||||
ret
|
||||
; 1e35
|
||||
|
||||
Function1e35: ; 1e35
|
||||
push de
|
||||
call Function1d3c
|
||||
pop de
|
||||
ld a, [$cf83]
|
||||
ld h, a
|
||||
ld a, [$cf85]
|
||||
sub h
|
||||
ld h, a
|
||||
ld a, d
|
||||
ld [$cf83], a
|
||||
add h
|
||||
ld [$cf85], a
|
||||
ld a, [$cf82]
|
||||
ld l, a
|
||||
ld a, [$cf84]
|
||||
sub l
|
||||
ld l, a
|
||||
ld a, e
|
||||
ld [$cf82], a
|
||||
add l
|
||||
ld [$cf84], a
|
||||
ret
|
||||
; 1e5d
|
||||
|
||||
Function1e5d: ; 1e5d
|
||||
call MenuFunc_1e7f
|
||||
call MenuWriteText
|
||||
call Function1eff
|
||||
call Function1f23
|
||||
call Function1bdd
|
||||
call Function1ff8
|
||||
ret
|
||||
; 1e70
|
||||
|
||||
SetUpMenu: ; 1e70
|
||||
call MenuFunc_1e7f ; ???
|
||||
call MenuWriteText
|
||||
call Function1eff ; set up selection pointer
|
||||
ld hl, $cfa5
|
||||
set 7, [hl]
|
||||
ret
|
||||
|
||||
MenuFunc_1e7f: ; 0x1e7f
|
||||
call Function1c66
|
||||
call Function1ebd
|
||||
call Function1ea6
|
||||
call Function1cbb
|
||||
ret
|
||||
|
||||
MenuWriteText: ; 0x1e8c
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
call Function1ebd ; sort out the text
|
||||
call Function1eda ; actually write it
|
||||
call Function2e31
|
||||
ld a, [hOAMUpdate]
|
||||
push af
|
||||
ld a, $1
|
||||
ld [hOAMUpdate], a
|
||||
call Function321c
|
||||
pop af
|
||||
ld [hOAMUpdate], a
|
||||
ret
|
||||
; 0x1ea6
|
||||
|
||||
Function1ea6: ; 1ea6
|
||||
ld a, [$cf83]
|
||||
ld c, a
|
||||
ld a, [$cf85]
|
||||
sub c
|
||||
ld c, a
|
||||
ld a, [$cf92]
|
||||
add a
|
||||
inc a
|
||||
ld b, a
|
||||
ld a, [$cf82]
|
||||
add b
|
||||
ld [$cf84], a
|
||||
ret
|
||||
; 1ebd
|
||||
|
||||
Function1ebd: ; 1ebd
|
||||
ld hl, $cf93
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ld a, [$cf76]
|
||||
and a
|
||||
jr z, .asm_1ed3
|
||||
ld b, a
|
||||
ld c, $ff
|
||||
.asm_1ecc
|
||||
ld a, [hli]
|
||||
cp c
|
||||
jr nz, .asm_1ecc
|
||||
dec b
|
||||
jr nz, .asm_1ecc
|
||||
|
||||
.asm_1ed3
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld a, [hl]
|
||||
ld [$cf92], a
|
||||
ret
|
||||
; 1eda
|
||||
|
||||
Function1eda: ; 1eda
|
||||
call Function1cfd
|
||||
ld bc, $002a
|
||||
add hl, bc
|
||||
.asm_1ee1
|
||||
inc de
|
||||
ld a, [de]
|
||||
cp $ff
|
||||
ret z
|
||||
ld [MenuSelection], a
|
||||
push de
|
||||
push hl
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld hl, $cf95
|
||||
call Function1efb
|
||||
pop hl
|
||||
ld de, $0028
|
||||
add hl, de
|
||||
pop de
|
||||
jr .asm_1ee1
|
||||
; 1efb
|
||||
|
||||
Function1efb: ; 1efb
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
jp [hl]
|
||||
; 1eff
|
||||
|
||||
Function1eff: ; 1eff
|
||||
call Function1c10
|
||||
ld hl, $cfa8
|
||||
ld a, [$cf91]
|
||||
bit 3, a
|
||||
jr z, .asm_1f0e
|
||||
set 3, [hl]
|
||||
|
||||
.asm_1f0e
|
||||
ld a, [$cf91]
|
||||
bit 2, a
|
||||
jr z, .asm_1f19
|
||||
set 5, [hl]
|
||||
set 4, [hl]
|
||||
|
||||
.asm_1f19
|
||||
ret
|
||||
; 1f1a
|
||||
|
||||
|
||||
Function1f1a: ; 1f1a
|
||||
call Function1bd3
|
||||
ld hl, $cfa8
|
||||
and [hl]
|
||||
jr Function1f2a
|
||||
; 1f23
|
||||
|
||||
Function1f23: ; 1f23
|
||||
xor a
|
||||
ld [$cf73], a
|
||||
call Function1bc9
|
||||
; 1f2a
|
||||
|
||||
Function1f2a: ; 1f2a
|
||||
bit 0, a
|
||||
jr nz, .asm_1f52
|
||||
bit 1, a
|
||||
jr nz, .asm_1f6d
|
||||
bit 3, a
|
||||
jr nz, .asm_1f6d
|
||||
bit 4, a
|
||||
jr nz, .asm_1f44
|
||||
bit 5, a
|
||||
jr nz, .asm_1f4b
|
||||
xor a
|
||||
ld [$cf73], a
|
||||
jr .asm_1f57
|
||||
|
||||
.asm_1f44
|
||||
ld a, $10
|
||||
ld [$cf73], a
|
||||
jr .asm_1f57
|
||||
|
||||
.asm_1f4b
|
||||
ld a, $20
|
||||
ld [$cf73], a
|
||||
jr .asm_1f57
|
||||
|
||||
.asm_1f52
|
||||
ld a, $1
|
||||
ld [$cf73], a
|
||||
|
||||
.asm_1f57
|
||||
call Function1ebd
|
||||
ld a, [$cfa9]
|
||||
ld l, a
|
||||
ld h, $0
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
ld [MenuSelection], a
|
||||
ld a, [$cfa9]
|
||||
ld [$cf88], a
|
||||
and a
|
||||
ret
|
||||
|
||||
.asm_1f6d
|
||||
ld a, $2
|
||||
ld [$cf73], a
|
||||
ld a, $ff
|
||||
ld [MenuSelection], a
|
||||
scf
|
||||
ret
|
||||
; 1f79
|
||||
|
||||
Function1f79: ; 1f79
|
||||
push de
|
||||
ld hl, $cf97
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ld a, [MenuSelection]
|
||||
call GetNthString
|
||||
ld d, h
|
||||
ld e, l
|
||||
pop hl
|
||||
call PlaceString
|
||||
ret
|
||||
; 1f8d
|
||||
|
||||
Function1f8d: ; 1f8d
|
||||
push de
|
||||
ld a, [MenuSelection]
|
||||
call Function1fb1
|
||||
inc hl
|
||||
inc hl
|
||||
ld a, [hli]
|
||||
ld d, [hl]
|
||||
ld e, a
|
||||
pop hl
|
||||
call PlaceString
|
||||
ret
|
||||
; 1f9e
|
||||
|
||||
Function1f9e: ; 1f9e
|
||||
call Function1fb1
|
||||
inc hl
|
||||
inc hl
|
||||
ld a, [hli]
|
||||
ld d, [hl]
|
||||
ld e, a
|
||||
ret
|
||||
; 1fa7
|
||||
|
||||
Function1fa7: ; 1fa7
|
||||
ld a, [MenuSelection]
|
||||
call Function1fb1
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
jp [hl]
|
||||
; 1fb1
|
||||
|
||||
Function1fb1: ; 1fb1
|
||||
ld e, a
|
||||
ld d, $0
|
||||
ld hl, $cf97
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
add hl, de
|
||||
add hl, de
|
||||
add hl, de
|
||||
add hl, de
|
||||
ret
|
||||
; 1fbf
|
||||
|
||||
Function1fbf: ; 1fbf
|
||||
ld hl, $cf71
|
||||
call Function1ff0
|
||||
ld hl, $cf81
|
||||
call Function1ff0
|
||||
ld hl, $cf91
|
||||
call Function1ff0
|
||||
ld hl, $cfa1
|
||||
call Function1ff0
|
||||
ld a, [rSVBK]
|
||||
push af
|
||||
ld a, $7
|
||||
ld [rSVBK], a
|
||||
xor a
|
||||
ld hl, $dfff
|
||||
ld [hld], a
|
||||
ld [hld], a
|
||||
ld a, l
|
||||
ld [$cf71], a
|
||||
ld a, h
|
||||
ld [$cf72], a
|
||||
pop af
|
||||
ld [rSVBK], a
|
||||
ret
|
||||
; 1ff0
|
||||
|
||||
Function1ff0: ; 1ff0
|
||||
ld bc, $0010
|
||||
xor a
|
||||
call ByteFill
|
||||
ret
|
||||
; 1ff8
|
||||
|
||||
Function1ff8: ; 1ff8
|
||||
push af
|
||||
and $3
|
||||
jr z, .asm_2007
|
||||
ld hl, $cf81
|
||||
bit 3, [hl]
|
||||
jr nz, .asm_2007
|
||||
call PlayClickSFX
|
||||
|
||||
.asm_2007
|
||||
pop af
|
||||
ret
|
||||
; 2009
|
||||
|
||||
|
||||
PlayClickSFX: ; 2009
|
||||
push de
|
||||
ld de, SFX_READ_TEXT_2
|
||||
call StartSFX
|
||||
pop de
|
||||
ret
|
||||
; 0x2012
|
||||
|
||||
Function2012: ; 2012
|
||||
call Function1d4f
|
||||
call Functiona46
|
||||
call Function1c07
|
||||
ret
|
||||
; 201c
|
||||
|
||||
Function201c: ; 201c
|
||||
ld [hBuffer], a
|
||||
ld a, [hROMBank]
|
||||
push af
|
||||
ld a, [hBuffer]
|
||||
rst Bankswitch
|
||||
|
||||
call PlaceString
|
||||
pop af
|
||||
rst Bankswitch
|
||||
|
||||
ret
|
||||
; 202a
|
||||
|
||||
Function202a: ; 202a
|
||||
ld a, [hROMBank]
|
||||
ld [$cf94], a
|
||||
ld a, $9
|
||||
ld hl, $400e
|
||||
rst FarCall
|
||||
ld a, [$cf88]
|
||||
ret
|
||||
; 2039
|
||||
|
||||
Function2039: ; 2039
|
||||
ld a, [hROMBank]
|
||||
ld [$cf94], a
|
||||
ld a, $9
|
||||
ld hl, $4022
|
||||
rst FarCall
|
||||
ld a, [$cf88]
|
||||
ret
|
||||
; 2048
|
||||
|
||||
Function2048: ; 2048
|
||||
ld a, [hROMBank]
|
||||
ld [$cf94], a
|
||||
ld a, $9
|
||||
ld hl, $403c
|
||||
rst FarCall
|
||||
ld a, [$cf88]
|
||||
ret
|
||||
; 2057
|
||||
|
||||
Function2057: ; 2057
|
||||
ld a, [hROMBank]
|
||||
push af
|
||||
ld a, $21
|
||||
rst Bankswitch
|
||||
|
||||
call $42db
|
||||
pop af
|
||||
rst Bankswitch
|
||||
|
||||
ret
|
||||
; 2063
|
||||
|
600
main.asm
600
main.asm
@ -473,605 +473,7 @@ Function1d19: ; 1d19
|
||||
; 1d35
|
||||
|
||||
|
||||
LoadMenuDataHeader: ; 0x1d35
|
||||
call Function1d3c
|
||||
call Function1c00
|
||||
ret
|
||||
|
||||
Function1d3c: ; 0x1d3c
|
||||
ld de, $cf81
|
||||
ld bc, $0010
|
||||
call CopyBytes
|
||||
ld a, [hROMBank]
|
||||
ld [$cf8a], a
|
||||
ret
|
||||
; 0x1d4b
|
||||
|
||||
Function1d4b: ; 1d4b
|
||||
ld [$cf88], a
|
||||
ret
|
||||
; 1d4f
|
||||
|
||||
|
||||
Function1d4f: ; 1d4f
|
||||
push hl
|
||||
call Function1d58
|
||||
pop hl
|
||||
jp PrintText
|
||||
; 1d57
|
||||
|
||||
Function1d57: ; 1d57
|
||||
ret
|
||||
; 1d58
|
||||
|
||||
Function1d58: ; 1d58
|
||||
ld hl, MenuDataHeader_0x1d5f
|
||||
call LoadMenuDataHeader
|
||||
ret
|
||||
; 1d5f
|
||||
|
||||
MenuDataHeader_0x1d5f: ; 1d5f
|
||||
db $40 ; tile backup
|
||||
db 12, 0 ; start coords
|
||||
db 17, 19 ; end coords
|
||||
dw VTiles0
|
||||
db 0 ; default option
|
||||
; 1d67
|
||||
|
||||
Function1d67: ; 1d67
|
||||
call Function1d4f
|
||||
call Function1c17
|
||||
ret
|
||||
; 1d6e
|
||||
|
||||
Function1d6e: ; 1d6e
|
||||
ld hl, MenuDataHeader_0x1d75
|
||||
call LoadMenuDataHeader
|
||||
ret
|
||||
; 1d75
|
||||
|
||||
MenuDataHeader_0x1d75: ; 1d75
|
||||
db $40 ; tile backup
|
||||
db 0, 0 ; start coords
|
||||
db 17, 19 ; end coords
|
||||
dw $0000
|
||||
db 1 ; default option
|
||||
; 1d7d
|
||||
|
||||
Function1d7d: ; 1d7d
|
||||
call Function1c07
|
||||
ret
|
||||
; 1d81
|
||||
|
||||
Function1d81: ; 0x1d81
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
call Function1cbb
|
||||
call Function1ad2
|
||||
call Function1c89
|
||||
call Function321c
|
||||
call Function1c66
|
||||
ld a, [$cf91]
|
||||
bit 7, a
|
||||
jr z, .asm_1da7 ; 0x1d98 $d
|
||||
call Function1c10
|
||||
call Function1bc9
|
||||
call Function1ff8
|
||||
bit 1, a
|
||||
jr z, .asm_1da9 ; 0x1da5 $2
|
||||
.asm_1da7
|
||||
scf
|
||||
ret
|
||||
.asm_1da9
|
||||
and a
|
||||
ret
|
||||
; 0x1dab
|
||||
|
||||
Function1dab: ; 1dab
|
||||
call LoadMenuDataHeader
|
||||
call Function1d81
|
||||
call Function1c17
|
||||
ld a, [$cfa9]
|
||||
ret
|
||||
; 1db8
|
||||
|
||||
Function1db8: ; 0x1db8
|
||||
push hl
|
||||
push bc
|
||||
push af
|
||||
ld hl, $cf86
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
inc hl
|
||||
inc hl
|
||||
pop af
|
||||
call GetNthString
|
||||
ld d, h
|
||||
ld e, l
|
||||
call CopyName1
|
||||
pop bc
|
||||
pop hl
|
||||
ret
|
||||
; 0x1dcf
|
||||
|
||||
|
||||
Function1dcf: ; 1dcf
|
||||
ld bc, $0e07
|
||||
|
||||
Function1dd2: ; 1dd2
|
||||
jr Function1dd9
|
||||
|
||||
Function1dd4: ; 1dd4
|
||||
call LoadMenuDataHeader
|
||||
jr Function1dfe
|
||||
|
||||
Function1dd9: ; 1dd9
|
||||
push bc
|
||||
ld hl, MenuDataHeader_0x1e1d
|
||||
call Function1d3c
|
||||
pop bc
|
||||
ld a, b
|
||||
cp $e
|
||||
jr nz, .asm_1de9
|
||||
ld a, $e
|
||||
ld b, a
|
||||
|
||||
.asm_1de9
|
||||
ld a, b
|
||||
ld [$cf83], a
|
||||
add $5
|
||||
ld [$cf85], a
|
||||
ld a, c
|
||||
ld [$cf82], a
|
||||
add $4
|
||||
ld [$cf84], a
|
||||
call Function1c00
|
||||
|
||||
Function1dfe: ; 1dfe
|
||||
call Function1d81
|
||||
push af
|
||||
ld c, $f
|
||||
call DelayFrames
|
||||
call Function1c17
|
||||
pop af
|
||||
jr c, .asm_1e16
|
||||
ld a, [$cfa9]
|
||||
cp $2
|
||||
jr z, .asm_1e16
|
||||
and a
|
||||
ret
|
||||
|
||||
.asm_1e16
|
||||
ld a, $2
|
||||
ld [$cfa9], a
|
||||
scf
|
||||
ret
|
||||
; 1e1d
|
||||
|
||||
MenuDataHeader_0x1e1d: ; 1e1d
|
||||
db $40 ; tile backup
|
||||
db 5, 10 ; start coords
|
||||
db 9, 15 ; end coords
|
||||
dw MenuData2_0x1e25
|
||||
db 1 ; default option
|
||||
; 1e25
|
||||
|
||||
MenuData2_0x1e25: ; 1e25
|
||||
db $c0 ; flags
|
||||
db 2
|
||||
db "YES@"
|
||||
db "NO@"
|
||||
; 1e2e
|
||||
|
||||
Function1e2e: ; 1e2e
|
||||
call Function1e35
|
||||
call Function1c00
|
||||
ret
|
||||
; 1e35
|
||||
|
||||
Function1e35: ; 1e35
|
||||
push de
|
||||
call Function1d3c
|
||||
pop de
|
||||
ld a, [$cf83]
|
||||
ld h, a
|
||||
ld a, [$cf85]
|
||||
sub h
|
||||
ld h, a
|
||||
ld a, d
|
||||
ld [$cf83], a
|
||||
add h
|
||||
ld [$cf85], a
|
||||
ld a, [$cf82]
|
||||
ld l, a
|
||||
ld a, [$cf84]
|
||||
sub l
|
||||
ld l, a
|
||||
ld a, e
|
||||
ld [$cf82], a
|
||||
add l
|
||||
ld [$cf84], a
|
||||
ret
|
||||
; 1e5d
|
||||
|
||||
Function1e5d: ; 1e5d
|
||||
call MenuFunc_1e7f
|
||||
call MenuWriteText
|
||||
call Function1eff
|
||||
call Function1f23
|
||||
call Function1bdd
|
||||
call Function1ff8
|
||||
ret
|
||||
; 1e70
|
||||
|
||||
SetUpMenu: ; 1e70
|
||||
call MenuFunc_1e7f ; ???
|
||||
call MenuWriteText
|
||||
call Function1eff ; set up selection pointer
|
||||
ld hl, $cfa5
|
||||
set 7, [hl]
|
||||
ret
|
||||
|
||||
MenuFunc_1e7f: ; 0x1e7f
|
||||
call Function1c66
|
||||
call Function1ebd
|
||||
call Function1ea6
|
||||
call Function1cbb
|
||||
ret
|
||||
|
||||
MenuWriteText: ; 0x1e8c
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
call Function1ebd ; sort out the text
|
||||
call Function1eda ; actually write it
|
||||
call Function2e31
|
||||
ld a, [hOAMUpdate]
|
||||
push af
|
||||
ld a, $1
|
||||
ld [hOAMUpdate], a
|
||||
call Function321c
|
||||
pop af
|
||||
ld [hOAMUpdate], a
|
||||
ret
|
||||
; 0x1ea6
|
||||
|
||||
Function1ea6: ; 1ea6
|
||||
ld a, [$cf83]
|
||||
ld c, a
|
||||
ld a, [$cf85]
|
||||
sub c
|
||||
ld c, a
|
||||
ld a, [$cf92]
|
||||
add a
|
||||
inc a
|
||||
ld b, a
|
||||
ld a, [$cf82]
|
||||
add b
|
||||
ld [$cf84], a
|
||||
ret
|
||||
; 1ebd
|
||||
|
||||
Function1ebd: ; 1ebd
|
||||
ld hl, $cf93
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ld a, [$cf76]
|
||||
and a
|
||||
jr z, .asm_1ed3
|
||||
ld b, a
|
||||
ld c, $ff
|
||||
.asm_1ecc
|
||||
ld a, [hli]
|
||||
cp c
|
||||
jr nz, .asm_1ecc
|
||||
dec b
|
||||
jr nz, .asm_1ecc
|
||||
|
||||
.asm_1ed3
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld a, [hl]
|
||||
ld [$cf92], a
|
||||
ret
|
||||
; 1eda
|
||||
|
||||
Function1eda: ; 1eda
|
||||
call Function1cfd
|
||||
ld bc, $002a
|
||||
add hl, bc
|
||||
.asm_1ee1
|
||||
inc de
|
||||
ld a, [de]
|
||||
cp $ff
|
||||
ret z
|
||||
ld [MenuSelection], a
|
||||
push de
|
||||
push hl
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld hl, $cf95
|
||||
call Function1efb
|
||||
pop hl
|
||||
ld de, $0028
|
||||
add hl, de
|
||||
pop de
|
||||
jr .asm_1ee1
|
||||
; 1efb
|
||||
|
||||
Function1efb: ; 1efb
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
jp [hl]
|
||||
; 1eff
|
||||
|
||||
Function1eff: ; 1eff
|
||||
call Function1c10
|
||||
ld hl, $cfa8
|
||||
ld a, [$cf91]
|
||||
bit 3, a
|
||||
jr z, .asm_1f0e
|
||||
set 3, [hl]
|
||||
|
||||
.asm_1f0e
|
||||
ld a, [$cf91]
|
||||
bit 2, a
|
||||
jr z, .asm_1f19
|
||||
set 5, [hl]
|
||||
set 4, [hl]
|
||||
|
||||
.asm_1f19
|
||||
ret
|
||||
; 1f1a
|
||||
|
||||
|
||||
Function1f1a: ; 1f1a
|
||||
call Function1bd3
|
||||
ld hl, $cfa8
|
||||
and [hl]
|
||||
jr Function1f2a
|
||||
; 1f23
|
||||
|
||||
Function1f23: ; 1f23
|
||||
xor a
|
||||
ld [$cf73], a
|
||||
call Function1bc9
|
||||
; 1f2a
|
||||
|
||||
Function1f2a: ; 1f2a
|
||||
bit 0, a
|
||||
jr nz, .asm_1f52
|
||||
bit 1, a
|
||||
jr nz, .asm_1f6d
|
||||
bit 3, a
|
||||
jr nz, .asm_1f6d
|
||||
bit 4, a
|
||||
jr nz, .asm_1f44
|
||||
bit 5, a
|
||||
jr nz, .asm_1f4b
|
||||
xor a
|
||||
ld [$cf73], a
|
||||
jr .asm_1f57
|
||||
|
||||
.asm_1f44
|
||||
ld a, $10
|
||||
ld [$cf73], a
|
||||
jr .asm_1f57
|
||||
|
||||
.asm_1f4b
|
||||
ld a, $20
|
||||
ld [$cf73], a
|
||||
jr .asm_1f57
|
||||
|
||||
.asm_1f52
|
||||
ld a, $1
|
||||
ld [$cf73], a
|
||||
|
||||
.asm_1f57
|
||||
call Function1ebd
|
||||
ld a, [$cfa9]
|
||||
ld l, a
|
||||
ld h, $0
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
ld [MenuSelection], a
|
||||
ld a, [$cfa9]
|
||||
ld [$cf88], a
|
||||
and a
|
||||
ret
|
||||
|
||||
.asm_1f6d
|
||||
ld a, $2
|
||||
ld [$cf73], a
|
||||
ld a, $ff
|
||||
ld [MenuSelection], a
|
||||
scf
|
||||
ret
|
||||
; 1f79
|
||||
|
||||
Function1f79: ; 1f79
|
||||
push de
|
||||
ld hl, $cf97
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ld a, [MenuSelection]
|
||||
call GetNthString
|
||||
ld d, h
|
||||
ld e, l
|
||||
pop hl
|
||||
call PlaceString
|
||||
ret
|
||||
; 1f8d
|
||||
|
||||
Function1f8d: ; 1f8d
|
||||
push de
|
||||
ld a, [MenuSelection]
|
||||
call Function1fb1
|
||||
inc hl
|
||||
inc hl
|
||||
ld a, [hli]
|
||||
ld d, [hl]
|
||||
ld e, a
|
||||
pop hl
|
||||
call PlaceString
|
||||
ret
|
||||
; 1f9e
|
||||
|
||||
Function1f9e: ; 1f9e
|
||||
call Function1fb1
|
||||
inc hl
|
||||
inc hl
|
||||
ld a, [hli]
|
||||
ld d, [hl]
|
||||
ld e, a
|
||||
ret
|
||||
; 1fa7
|
||||
|
||||
Function1fa7: ; 1fa7
|
||||
ld a, [MenuSelection]
|
||||
call Function1fb1
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
jp [hl]
|
||||
; 1fb1
|
||||
|
||||
Function1fb1: ; 1fb1
|
||||
ld e, a
|
||||
ld d, $0
|
||||
ld hl, $cf97
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
add hl, de
|
||||
add hl, de
|
||||
add hl, de
|
||||
add hl, de
|
||||
ret
|
||||
; 1fbf
|
||||
|
||||
Function1fbf: ; 1fbf
|
||||
ld hl, $cf71
|
||||
call Function1ff0
|
||||
ld hl, $cf81
|
||||
call Function1ff0
|
||||
ld hl, $cf91
|
||||
call Function1ff0
|
||||
ld hl, $cfa1
|
||||
call Function1ff0
|
||||
ld a, [rSVBK]
|
||||
push af
|
||||
ld a, $7
|
||||
ld [rSVBK], a
|
||||
xor a
|
||||
ld hl, $dfff
|
||||
ld [hld], a
|
||||
ld [hld], a
|
||||
ld a, l
|
||||
ld [$cf71], a
|
||||
ld a, h
|
||||
ld [$cf72], a
|
||||
pop af
|
||||
ld [rSVBK], a
|
||||
ret
|
||||
; 1ff0
|
||||
|
||||
Function1ff0: ; 1ff0
|
||||
ld bc, $0010
|
||||
xor a
|
||||
call ByteFill
|
||||
ret
|
||||
; 1ff8
|
||||
|
||||
Function1ff8: ; 1ff8
|
||||
push af
|
||||
and $3
|
||||
jr z, .asm_2007
|
||||
ld hl, $cf81
|
||||
bit 3, [hl]
|
||||
jr nz, .asm_2007
|
||||
call PlayClickSFX
|
||||
|
||||
.asm_2007
|
||||
pop af
|
||||
ret
|
||||
; 2009
|
||||
|
||||
|
||||
PlayClickSFX: ; 2009
|
||||
push de
|
||||
ld de, SFX_READ_TEXT_2
|
||||
call StartSFX
|
||||
pop de
|
||||
ret
|
||||
; 0x2012
|
||||
|
||||
Function2012: ; 2012
|
||||
call Function1d4f
|
||||
call Functiona46
|
||||
call Function1c07
|
||||
ret
|
||||
; 201c
|
||||
|
||||
Function201c: ; 201c
|
||||
ld [hBuffer], a
|
||||
ld a, [hROMBank]
|
||||
push af
|
||||
ld a, [hBuffer]
|
||||
rst Bankswitch
|
||||
|
||||
call PlaceString
|
||||
pop af
|
||||
rst Bankswitch
|
||||
|
||||
ret
|
||||
; 202a
|
||||
|
||||
Function202a: ; 202a
|
||||
ld a, [hROMBank]
|
||||
ld [$cf94], a
|
||||
ld a, $9
|
||||
ld hl, $400e
|
||||
rst FarCall
|
||||
ld a, [$cf88]
|
||||
ret
|
||||
; 2039
|
||||
|
||||
Function2039: ; 2039
|
||||
ld a, [hROMBank]
|
||||
ld [$cf94], a
|
||||
ld a, $9
|
||||
ld hl, $4022
|
||||
rst FarCall
|
||||
ld a, [$cf88]
|
||||
ret
|
||||
; 2048
|
||||
|
||||
Function2048: ; 2048
|
||||
ld a, [hROMBank]
|
||||
ld [$cf94], a
|
||||
ld a, $9
|
||||
ld hl, $403c
|
||||
rst FarCall
|
||||
ld a, [$cf88]
|
||||
ret
|
||||
; 2057
|
||||
|
||||
Function2057: ; 2057
|
||||
ld a, [hROMBank]
|
||||
push af
|
||||
ld a, $21
|
||||
rst Bankswitch
|
||||
|
||||
call $42db
|
||||
pop af
|
||||
rst Bankswitch
|
||||
|
||||
ret
|
||||
; 2063
|
||||
INCLUDE "engine/menu.asm"
|
||||
|
||||
|
||||
AskSerial: ; 2063
|
||||
|
Loading…
Reference in New Issue
Block a user