mirror of https://github.com/pret/pokecrystal.git
588 lines
7.1 KiB
NASM
Executable File
588 lines
7.1 KiB
NASM
Executable File
Function2400e:: ; 2400e
|
|
ld hl, CopyMenuData2
|
|
ld a, [wcf94]
|
|
rst FarCall
|
|
call Function24085
|
|
call UpdateSprites
|
|
call Function321c
|
|
call Function2408f
|
|
ret
|
|
; 24022
|
|
|
|
Function24022:: ; 24022
|
|
ld hl, CopyMenuData2
|
|
ld a, [wcf94]
|
|
rst FarCall
|
|
call Function24085
|
|
callba MobileTextBorder
|
|
call UpdateSprites
|
|
call Function321c
|
|
call Function2408f
|
|
ret
|
|
; 2403c
|
|
|
|
Function2403c:: ; 2403c
|
|
ld hl, CopyMenuData2
|
|
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 GetMenuTextStartCoord
|
|
call Coord2Tile
|
|
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 GetMenuTextStartCoord
|
|
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 Coord2Tile
|
|
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
|