mirror of
https://github.com/pret/pokered.git
synced 2024-10-23 06:58:24 +00:00
35f2bb90d4
This is mostly because of an rgbasm bug that prevents macro arguments from exceeding 16 characters, but the names were bad anyway.
515 lines
8.7 KiB
NASM
Executable file
515 lines
8.7 KiB
NASM
Executable file
AskName: ; 64eb (1:64eb)
|
||
call SaveScreenTilesToBuffer1
|
||
call GetPredefRegisters
|
||
push hl
|
||
ld a, [W_ISINBATTLE] ; W_ISINBATTLE
|
||
dec a
|
||
ld hl, wTileMap
|
||
ld b, $4
|
||
ld c, $b
|
||
call z, ClearScreenArea ; only if in wild batle
|
||
ld a, [wcf91]
|
||
ld [wd11e], a
|
||
call GetMonName
|
||
ld hl, DoYouWantToNicknameText
|
||
call PrintText
|
||
FuncCoord 14, 7
|
||
ld hl, Coord
|
||
ld bc, $80f
|
||
ld a, $14
|
||
ld [wd125], a
|
||
call DisplayTextBoxID
|
||
pop hl
|
||
ld a, [wCurrentMenuItem] ; wCurrentMenuItem
|
||
and a
|
||
jr nz, .asm_654c
|
||
ld a, [wcfcb]
|
||
push af
|
||
xor a
|
||
ld [wcfcb], a
|
||
push hl
|
||
ld a, $2
|
||
ld [wd07d], a
|
||
call DisplayNamingScreen
|
||
ld a, [W_ISINBATTLE] ; W_ISINBATTLE
|
||
and a
|
||
jr nz, .asm_653e
|
||
call Func_3e08
|
||
.asm_653e
|
||
call LoadScreenTilesFromBuffer1
|
||
pop hl
|
||
pop af
|
||
ld [wcfcb], a
|
||
ld a, [wcf4b]
|
||
cp $50
|
||
ret nz
|
||
.asm_654c
|
||
ld d, h
|
||
ld e, l
|
||
ld hl, wcd6d
|
||
ld bc, $000b
|
||
jp CopyData
|
||
|
||
DoYouWantToNicknameText: ; 0x6557
|
||
TX_FAR _DoYouWantToNicknameText
|
||
db "@"
|
||
|
||
Func_655c: ; 655c (1:655c)
|
||
ld hl, wHPBarMaxHP
|
||
xor a
|
||
ld [wcfcb], a
|
||
ld a, $2
|
||
ld [wd07d], a
|
||
call DisplayNamingScreen
|
||
call GBPalWhiteOutWithDelay3
|
||
call Func_3dbe
|
||
call LoadGBPal
|
||
ld a, [wcf4b]
|
||
cp $50
|
||
jr z, .asm_6594
|
||
ld hl, wPartyMonNicks ; wPartyMonNicks
|
||
ld bc, $b
|
||
ld a, [wWhichPokemon] ; wWhichPokemon
|
||
call AddNTimes
|
||
ld e, l
|
||
ld d, h
|
||
ld hl, wHPBarMaxHP
|
||
ld bc, $b
|
||
call CopyData
|
||
and a
|
||
ret
|
||
.asm_6594
|
||
scf
|
||
ret
|
||
|
||
DisplayNamingScreen: ; 6596 (1:6596)
|
||
push hl
|
||
ld hl, wd730
|
||
set 6, [hl]
|
||
call GBPalWhiteOutWithDelay3
|
||
call ClearScreen
|
||
call UpdateSprites
|
||
ld b, $8
|
||
call GoPAL_SET
|
||
call LoadHpBarAndStatusTilePatterns
|
||
call LoadEDTile
|
||
callba Func_7176c
|
||
FuncCoord 0, 4
|
||
ld hl, Coord
|
||
ld b, $9
|
||
ld c, $12
|
||
call TextBoxBorder
|
||
call PrintNamingText
|
||
ld a, $3
|
||
ld [wTopMenuItemY], a ; wTopMenuItemY
|
||
ld a, $1
|
||
ld [wTopMenuItemX], a ; wTopMenuItemX
|
||
ld [wLastMenuItem], a ; wLastMenuItem
|
||
ld [wCurrentMenuItem], a ; wCurrentMenuItem
|
||
ld a, $ff
|
||
ld [wMenuWatchedKeys], a ; wMenuWatchedKeys
|
||
ld a, $7
|
||
ld [wMaxMenuItem], a ; wMaxMenuItem
|
||
ld a, $50
|
||
ld [wcf4b], a
|
||
xor a
|
||
ld hl, wHPBarMaxHP + 1
|
||
ld [hli], a
|
||
ld [hli], a
|
||
ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
|
||
.asm_65ed
|
||
call PrintAlphabet
|
||
call GBPalNormal
|
||
.asm_65f3
|
||
ld a, [wHPBarMaxHP + 1]
|
||
and a
|
||
jr nz, .asm_662d
|
||
call Func_680e
|
||
.asm_65fc
|
||
call PlaceMenuCursor
|
||
.asm_65ff
|
||
ld a, [wCurrentMenuItem] ; wCurrentMenuItem
|
||
push af
|
||
callba AnimatePartyMon_ForceSpeed1
|
||
pop af
|
||
ld [wCurrentMenuItem], a ; wCurrentMenuItem
|
||
call JoypadLowSensitivity
|
||
ld a, [hJoyPressed]
|
||
and a
|
||
jr z, .asm_65ff
|
||
ld hl, .unknownPointerTable_665e ; $665e
|
||
.asm_661a
|
||
sla a
|
||
jr c, .asm_6624
|
||
inc hl
|
||
inc hl
|
||
inc hl
|
||
inc hl
|
||
jr .asm_661a
|
||
.asm_6624
|
||
ld a, [hli]
|
||
ld e, a
|
||
ld a, [hli]
|
||
ld d, a
|
||
ld a, [hli]
|
||
ld h, [hl]
|
||
ld l, a
|
||
push de
|
||
jp [hl]
|
||
.asm_662d
|
||
pop de
|
||
ld hl, wcf4b
|
||
ld bc, $b
|
||
call CopyData
|
||
call GBPalWhiteOutWithDelay3
|
||
call ClearScreen
|
||
call ClearSprites
|
||
call GoPAL_SET_CF1C
|
||
call GBPalNormal
|
||
xor a
|
||
ld [W_SUBANIMTRANSFORM], a ; W_SUBANIMTRANSFORM
|
||
ld hl, wd730
|
||
res 6, [hl]
|
||
ld a, [W_ISINBATTLE] ; W_ISINBATTLE
|
||
and a
|
||
jp z, LoadTextBoxTilePatterns
|
||
ld hl, Func_3ee5b
|
||
ld b, BANK(Func_3ee5b)
|
||
jp Bankswitch
|
||
|
||
.unknownPointerTable_665e: ; 665e (1:665e)
|
||
dw .asm_65fc
|
||
dw .asm_673e
|
||
dw .asm_65fc
|
||
dw .asm_672c
|
||
dw .asm_65fc
|
||
dw .asm_6718
|
||
dw .asm_65fc
|
||
dw .asm_6702
|
||
dw .asm_65f3
|
||
dw .asm_668c
|
||
dw .asm_65ed
|
||
dw .asm_6683
|
||
dw .asm_65f3
|
||
dw .deleteLetter
|
||
dw .asm_65f3
|
||
dw .asm_6692
|
||
|
||
.asm_667e
|
||
pop de
|
||
ld de, .asm_65ed ; $65ed
|
||
push de
|
||
.asm_6683
|
||
ld a, [wHPBarOldHP]
|
||
xor $1
|
||
ld [wHPBarOldHP], a
|
||
ret
|
||
.asm_668c
|
||
ld a, $1
|
||
ld [wHPBarMaxHP + 1], a
|
||
ret
|
||
.asm_6692
|
||
ld a, [wCurrentMenuItem] ; wCurrentMenuItem
|
||
cp $5
|
||
jr nz, .asm_66a0
|
||
ld a, [wTopMenuItemX] ; wTopMenuItemX
|
||
cp $11
|
||
jr z, .asm_668c
|
||
.asm_66a0
|
||
ld a, [wCurrentMenuItem] ; wCurrentMenuItem
|
||
cp $6
|
||
jr nz, .asm_66ae
|
||
ld a, [wTopMenuItemX] ; wTopMenuItemX
|
||
cp $1
|
||
jr z, .asm_667e
|
||
.asm_66ae
|
||
ld hl, wMenuCursorLocation ; wMenuCursorLocation
|
||
ld a, [hli]
|
||
ld h, [hl]
|
||
ld l, a
|
||
inc hl
|
||
ld a, [hl]
|
||
ld [wHPBarNewHP], a
|
||
call CalcStringLength
|
||
ld a, [wHPBarNewHP]
|
||
cp $e5
|
||
ld de, Dakutens ; $6885
|
||
jr z, .asm_66e3
|
||
cp $e4
|
||
ld de, Handakutens ; $68d6
|
||
jr z, .asm_66e3
|
||
ld a, [wd07d]
|
||
cp $2
|
||
jr nc, .checkMonNameLength
|
||
ld a, [wHPBarMaxHP]
|
||
cp $7 ; max length of player/rival names
|
||
jr .checkNameLength
|
||
.checkMonNameLength
|
||
ld a, [wHPBarMaxHP]
|
||
cp $a ; max length of pokemon nicknames
|
||
.checkNameLength
|
||
jr c, .addLetter
|
||
ret
|
||
.asm_66e3
|
||
push hl
|
||
call Func_6871
|
||
pop hl
|
||
ret nc
|
||
dec hl
|
||
.addLetter
|
||
ld a, [wHPBarNewHP]
|
||
ld [hli], a
|
||
ld [hl], $50
|
||
ld a, (SFX_02_40 - SFX_Headers_02) / 3
|
||
call PlaySound
|
||
ret
|
||
.deleteLetter
|
||
ld a, [wHPBarMaxHP]
|
||
and a
|
||
ret z
|
||
call CalcStringLength
|
||
dec hl
|
||
ld [hl], $50
|
||
ret
|
||
.asm_6702
|
||
ld a, [wCurrentMenuItem] ; wCurrentMenuItem
|
||
cp $6
|
||
ret z
|
||
ld a, [wTopMenuItemX] ; wTopMenuItemX
|
||
cp $11
|
||
jp z, .asm_6714
|
||
inc a
|
||
inc a
|
||
jr .asm_6755
|
||
.asm_6714
|
||
ld a, $1
|
||
jr .asm_6755
|
||
.asm_6718
|
||
ld a, [wCurrentMenuItem] ; wCurrentMenuItem
|
||
cp $6
|
||
ret z
|
||
ld a, [wTopMenuItemX] ; wTopMenuItemX
|
||
dec a
|
||
jp z, .asm_6728
|
||
dec a
|
||
jr .asm_6755
|
||
.asm_6728
|
||
ld a, $11
|
||
jr .asm_6755
|
||
.asm_672c
|
||
ld a, [wCurrentMenuItem] ; wCurrentMenuItem
|
||
dec a
|
||
ld [wCurrentMenuItem], a ; wCurrentMenuItem
|
||
and a
|
||
ret nz
|
||
ld a, $6
|
||
ld [wCurrentMenuItem], a ; wCurrentMenuItem
|
||
ld a, $1
|
||
jr .asm_6755
|
||
.asm_673e
|
||
ld a, [wCurrentMenuItem] ; wCurrentMenuItem
|
||
inc a
|
||
ld [wCurrentMenuItem], a ; wCurrentMenuItem
|
||
cp $7
|
||
jr nz, .asm_6750
|
||
ld a, $1
|
||
ld [wCurrentMenuItem], a ; wCurrentMenuItem
|
||
jr .asm_6755
|
||
.asm_6750
|
||
cp $6
|
||
ret nz
|
||
ld a, $1
|
||
.asm_6755
|
||
ld [wTopMenuItemX], a ; wTopMenuItemX
|
||
jp EraseMenuCursor
|
||
|
||
LoadEDTile: ; 675b (1:675b)
|
||
ld de, ED_Tile
|
||
ld hl, vFont + $700
|
||
ld bc, $1
|
||
jp CopyVideoDataDouble
|
||
|
||
ED_Tile: ; 6767 (1:6767)
|
||
INCBIN "gfx/ED_tile.1bpp"
|
||
|
||
PrintAlphabet: ; 676f (1:676f)
|
||
xor a
|
||
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
||
ld a, [wHPBarOldHP]
|
||
and a
|
||
ld de, LowerCaseAlphabet ; $679e
|
||
jr nz, .asm_677e
|
||
ld de, UpperCaseAlphabet ; $67d6
|
||
.asm_677e
|
||
FuncCoord 2, 5
|
||
ld hl, Coord
|
||
ld bc, $509
|
||
.asm_6784
|
||
push bc
|
||
.asm_6785
|
||
ld a, [de]
|
||
ld [hli], a
|
||
inc hl
|
||
inc de
|
||
dec c
|
||
jr nz, .asm_6785
|
||
ld bc, $16
|
||
add hl, bc
|
||
pop bc
|
||
dec b
|
||
jr nz, .asm_6784
|
||
call PlaceString
|
||
ld a, $1
|
||
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
||
jp Delay3
|
||
|
||
LowerCaseAlphabet: ; 679e (1:679e)
|
||
db "abcdefghijklmnopqrstuvwxyz ×():;[]",$e1,$e2,"-?!♂♀/",$f2,",¥UPPER CASE@"
|
||
|
||
UpperCaseAlphabet: ; 67d6 (1:67d6)
|
||
db "ABCDEFGHIJKLMNOPQRSTUVWXYZ ×():;[]",$e1,$e2,"-?!♂♀/",$f2,",¥lower case@"
|
||
|
||
Func_680e: ; 680e (1:680e)
|
||
call CalcStringLength
|
||
ld a, c
|
||
ld [wHPBarMaxHP], a
|
||
FuncCoord 10, 2
|
||
ld hl, Coord
|
||
ld bc, $10a
|
||
call ClearScreenArea
|
||
FuncCoord 10, 2
|
||
ld hl, Coord
|
||
ld de, wcf4b
|
||
call PlaceString
|
||
FuncCoord 10, 3
|
||
ld hl, Coord
|
||
ld a, [wd07d]
|
||
cp $2
|
||
jr nc, .asm_6835
|
||
ld b, $7
|
||
jr .asm_6837
|
||
.asm_6835
|
||
ld b, $a
|
||
.asm_6837
|
||
ld a, $76
|
||
.asm_6839
|
||
ld [hli], a
|
||
dec b
|
||
jr nz, .asm_6839
|
||
ld a, [wd07d]
|
||
cp $2
|
||
ld a, [wHPBarMaxHP]
|
||
jr nc, .asm_684b
|
||
cp $7
|
||
jr .asm_684d
|
||
.asm_684b
|
||
cp $a
|
||
.asm_684d
|
||
jr nz, .asm_6867
|
||
call EraseMenuCursor
|
||
ld a, $11
|
||
ld [wTopMenuItemX], a ; wTopMenuItemX
|
||
ld a, $5
|
||
ld [wCurrentMenuItem], a ; wCurrentMenuItem
|
||
ld a, [wd07d]
|
||
cp $2
|
||
ld a, $9
|
||
jr nc, .asm_6867
|
||
ld a, $6
|
||
.asm_6867
|
||
ld c, a
|
||
ld b, $0
|
||
FuncCoord 10, 3
|
||
ld hl, Coord
|
||
add hl, bc
|
||
ld [hl], $77
|
||
ret
|
||
|
||
Func_6871: ; 6871 (1:6871)
|
||
push de
|
||
call CalcStringLength
|
||
dec hl
|
||
ld a, [hl]
|
||
pop hl
|
||
ld de, $2
|
||
call IsInArray
|
||
ret nc
|
||
inc hl
|
||
ld a, [hl]
|
||
ld [wHPBarNewHP], a
|
||
ret
|
||
|
||
Dakutens: ; 6885 (1:6885)
|
||
db "かが", "きぎ", "くぐ", "けげ", "こご"
|
||
db "さざ", "しじ", "すず", "せぜ", "そぞ"
|
||
db "ただ", "ちぢ", "つづ", "てで", "とど"
|
||
db "はば", "ひび", "ふぶ", "へべ", "ほぼ"
|
||
db "カガ", "キギ", "クグ", "ケゲ", "コゴ"
|
||
db "サザ", "シジ", "スズ", "セゼ", "ソゾ"
|
||
db "タダ", "チヂ", "ツヅ", "テデ", "トド"
|
||
db "ハバ", "ヒビ", "フブ", "へべ", "ホボ"
|
||
db $ff
|
||
|
||
Handakutens: ; 68d6 (1:68d6)
|
||
db "はぱ", "ひぴ", "ふぷ", "へぺ", "ほぽ"
|
||
db "ハパ", "ヒピ", "フプ", "へぺ", "ホポ"
|
||
db $ff
|
||
|
||
; calculates the length of the string at wcf4b and stores it in c
|
||
CalcStringLength: ; 68eb (1:68eb)
|
||
ld hl, wcf4b
|
||
ld c, $0
|
||
.asm_68f0
|
||
ld a, [hl]
|
||
cp $50
|
||
ret z
|
||
inc hl
|
||
inc c
|
||
jr .asm_68f0
|
||
|
||
PrintNamingText: ; 68f8 (1:68f8)
|
||
FuncCoord 0, 1
|
||
ld hl, Coord
|
||
ld a, [wd07d]
|
||
ld de, YourTextString ; $693f
|
||
and a
|
||
jr z, .notNickname
|
||
ld de, RivalsTextString ; $6945
|
||
dec a
|
||
jr z, .notNickname
|
||
ld a, [wcf91]
|
||
ld [wcd5d], a
|
||
push af
|
||
callba Func_71882
|
||
pop af
|
||
ld [wd11e], a
|
||
call GetMonName
|
||
FuncCoord 4, 1
|
||
ld hl, Coord
|
||
call PlaceString
|
||
ld hl, $1
|
||
add hl, bc
|
||
ld [hl], $c9
|
||
FuncCoord 1, 3
|
||
ld hl, Coord
|
||
ld de, NicknameTextString ; $6953
|
||
jr .placeString
|
||
.notNickname
|
||
call PlaceString
|
||
ld l, c
|
||
ld h, b
|
||
ld de, NameTextString ; $694d
|
||
.placeString
|
||
jp PlaceString
|
||
|
||
YourTextString: ; 693f (1:693f)
|
||
db "YOUR @"
|
||
|
||
RivalsTextString: ; 6945 (1:6945)
|
||
db "RIVAL's @"
|
||
|
||
NameTextString: ; 694d (1:694d)
|
||
db "NAME?@"
|
||
|
||
NicknameTextString: ; 6953 (1:6953)
|
||
db "NICKNAME?@"
|