summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rwxr-xr-xengine/compose_mail.asm517
-rwxr-xr-xengine/mon_icons.asm35
-rwxr-xr-xengine/money.asm2
-rwxr-xr-xengine/namingscreen.asm985
-rwxr-xr-xengine/sprite_anims.asm2
-rwxr-xr-xengine/trade/animation.asm52
6 files changed, 800 insertions, 793 deletions
diff --git a/engine/compose_mail.asm b/engine/compose_mail.asm
deleted file mode 100755
index 64165a13a..000000000
--- a/engine/compose_mail.asm
+++ /dev/null
@@ -1,517 +0,0 @@
-_ComposeMailMessage: ; 11e75 (mail?)
- ld hl, wc6d0
- ld [hl], e
- inc hl
- ld [hl], d
- ld a, [hMapAnims]
- push af
- xor a
- ld [hMapAnims], a
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call .InitBlankMail
- call DelayFrame
-
-.loop
- call .DoMailEntry
- jr nc, .loop
-
- pop af
- ld [hInMenu], a
- pop af
- ld [hMapAnims], a
- ret
-
-.InitBlankMail: ; 11e9a (4:5e9a)
- call ClearBGPalettes
- call DisableLCD
- call Function11c51
- ld de, VTiles0 tile $00
- ld hl, .MailIcon
- ld bc, 8 tiles
- ld a, BANK(.MailIcon)
- call FarCopyBytes
- xor a
- ld hl, wSpriteAnimDict
- ld [hli], a
- ld [hl], a
-
- ; init mail icon
- depixel 3, 2
- ld a, SPRITE_ANIM_INDEX_00
- call _InitSpriteAnimStruct
-
- ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
- add hl, bc
- ld [hl], $0
- call .InitCharset
- ld a, $e3
- ld [rLCDC], a
- call .initwc6d3
- ld b, SCGB_08
- call GetSGBLayout
- call WaitBGMap
- call WaitTop
- ld a, %11100100
- call DmgToCgbBGPals
- ld a, %11100100
- call DmgToCgbObjPal0
- call Function11be0
- ld hl, wc6d0
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $10
- add hl, de
- ld [hl], $4e
- ret
-
-; 11ef4 (4:5ef4)
-
-.MailIcon: ; 11ef4
-INCBIN "gfx/icon/mail2.2bpp"
-; 11f74
-
-.initwc6d3: ; 11f74 (4:5f74)
- ld a, $21
- ld [wc6d3], a
- ret
-
-; 11f7a (4:5f7a)
-
-.Dummy: ; dummied out
- db "メールを かいてね@"
-; 11f84
-
-.InitCharset: ; 11f84 (4:5f84)
- call WaitTop
- hlcoord 0, 0
- ld bc, 6 * SCREEN_WIDTH
- ld a, $60 ; border
- call ByteFill
- hlcoord 0, 6
- ld bc, 12 * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- hlcoord 1, 1
- lb bc, 4, SCREEN_WIDTH - 2
- call ClearBox
- ld de, MailEntry_Uppercase
-
-.PlaceMailCharset: ; 11fa9 (4:5fa9)
- hlcoord 1, 7
- ld b, 6
-.next
- ld c, SCREEN_WIDTH - 1
-.loop_
- ld a, [de]
- ld [hli], a
- inc de
- dec c
- jr nz, .loop_
- push de
- ld de, SCREEN_WIDTH + 1
- add hl, de
- pop de
- dec b
- jr nz, .next
- ret
-
-.DoMailEntry: ; 11fc0 (4:5fc0)
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .exit_mail
- call .DoJumptable
- callba PlaySpriteAnimationsAndDelayFrame
- call .Update
- call DelayFrame
- and a
- ret
-
-.exit_mail
- callab ClearSpriteAnims
- call ClearSprites
- xor a
- ld [hSCX], a
- ld [hSCY], a
- scf
- ret
-
-.Update: ; 11feb (4:5feb)
- xor a
- ld [hBGMapMode], a
- hlcoord 1, 1
- lb bc, 4, 18
- call ClearBox
- ld hl, wc6d0
- ld e, [hl]
- inc hl
- ld d, [hl]
- hlcoord 2, 2
- call PlaceString
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-.DoJumptable: ; 12008 (4:6008)
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, .Jumptable
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-.Jumptable: ; 12017 (4:6017)
- dw .init_blinking_cursor
- dw .process_joypad
-
-
-.init_blinking_cursor: ; 1201b (4:601b)
- depixel 9, 2
- ld a, SPRITE_ANIM_INDEX_09
- call _InitSpriteAnimStruct
- ld a, c
- ld [wc6d5], a
- ld a, b
- ld [wc6d6], a
- ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
- add hl, bc
- ld a, [hl]
- ld hl, SPRITEANIMSTRUCT_0E
- add hl, bc
- ld [hl], a
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-.process_joypad: ; 1203a (4:603a)
- ld hl, hJoyPressed ; $ffa7
- ld a, [hl]
- and A_BUTTON
- jr nz, .a
- ld a, [hl]
- and B_BUTTON
- jr nz, .b
- ld a, [hl]
- and START
- jr nz, .start
- ld a, [hl]
- and SELECT
- jr nz, .select
- ret
-
-.a
- call Function12185
- cp $1
- jr z, .select
- cp $2
- jr z, .b
- cp $3
- jr z, .finished
- call Function11c11
- call Function121ac
- jr c, .start
- ld hl, wc6d2
- ld a, [hl]
- cp $10
- ret nz
- inc [hl]
- call Function11bd0
- ld [hl], $f2
- dec hl
- ld [hl], $4e
- ret
-
-.start
- ld hl, wc6d5
- ld c, [hl]
- inc hl
- ld b, [hl]
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld [hl], $9
- ld hl, SPRITEANIMSTRUCT_0D
- add hl, bc
- ld [hl], $5
- ret
-
-.b
- call Function11bbc
- ld hl, wc6d2
- ld a, [hl]
- cp $10
- ret nz
- dec [hl]
- call Function11bd0
- ld [hl], $f2
- inc hl
- ld [hl], $4e
- ret
-
-.finished
- call Function11bf7
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-.select
- ld hl, wcf64
- ld a, [hl]
- xor $1
- ld [hl], a
- jr nz, .switch_to_lowercase
- ld de, MailEntry_Uppercase
- call .PlaceMailCharset
- ret
-
-.switch_to_lowercase
- ld de, MailEntry_Lowercase
- call .PlaceMailCharset
- ret
-
-; called from engine/sprite_anims.asm
-Function120c1: ; 120c1 (4:60c1)
- call Function1210c
- ld hl, SPRITEANIMSTRUCT_0D
- add hl, bc
- ld a, [hl]
- ld e, a
- swap e
- ld hl, SPRITEANIMSTRUCT_YOFFSET
- add hl, bc
- ld [hl], e
- cp $5
- ld de, Unknown_120f8
- ld a, 0
- jr nz, .asm_120df
- ld de, Unknown_12102
- ld a, 1
-.asm_120df
- ld hl, SPRITEANIMSTRUCT_0E
- add hl, bc
- add [hl]
- ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
- add hl, bc
- ld [hl], a
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld l, [hl]
- ld h, 0
- add hl, de
- ld a, [hl]
- ld hl, SPRITEANIMSTRUCT_XOFFSET
- add hl, bc
- ld [hl], a
- ret
-
-; 120f8 (4:60f8)
-
-Unknown_120f8: ; 120f8
- db $00, $10, $20, $30, $40, $50, $60, $70, $80, $90
-Unknown_12102: ; 12102
- db $00, $00, $00, $30, $30, $30, $60, $60, $60, $60
-; 1210c
-
-Function1210c: ; 1210c (4:610c)
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .up
- ld a, [hl]
- and D_DOWN
- jr nz, .down
- ld a, [hl]
- and D_LEFT
- jr nz, .left
- ld a, [hl]
- and D_RIGHT
- jr nz, .right
- ret
-
-.right
- call Function1218b
- and a
- jr nz, .asm_12138
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, [hl]
- cp $9
- jr nc, .asm_12135
- inc [hl]
- ret
-
-.asm_12135
- ld [hl], $0
- ret
-
-.asm_12138
- cp $3
- jr nz, .asm_1213d
- xor a
-.asm_1213d
- ld e, a
- add a
- add e
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld [hl], a
- ret
-
-.left
- call Function1218b
- and a
- jr nz, .asm_12159
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_12156
- dec [hl]
- ret
-
-.asm_12156
- ld [hl], $9
- ret
-
-.asm_12159
- cp $1
- jr nz, .asm_1215f
- ld a, $4
-.asm_1215f
-rept 2
- dec a
-endr
- ld e, a
- add a
- add e
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld [hl], a
- ret
-
-.down
- ld hl, SPRITEANIMSTRUCT_0D
- add hl, bc
- ld a, [hl]
- cp $5
- jr nc, .asm_12175
- inc [hl]
- ret
-
-.asm_12175
- ld [hl], $0
- ret
-
-.up
- ld hl, SPRITEANIMSTRUCT_0D
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_12182
- dec [hl]
- ret
-
-.asm_12182
- ld [hl], $5
- ret
-
-Function12185: ; 12185 (4:6185)
- ld hl, wc6d5
- ld c, [hl]
- inc hl
- ld b, [hl]
-
-Function1218b: ; 1218b (4:618b)
- ld hl, SPRITEANIMSTRUCT_0D
- add hl, bc
- ld a, [hl]
- cp $5
- jr nz, .asm_121aa
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, [hl]
- cp $3
- jr c, .asm_121a4
- cp $6
- jr c, .asm_121a7
- ld a, $3
- ret
-
-.asm_121a4
- ld a, $1
- ret
-
-.asm_121a7
- ld a, $2
- ret
-
-.asm_121aa
- xor a
- ret
-
-Function121ac: ; 121ac (4:61ac)
- ld a, [wc6d7]
- jp Function11b17
-; 121b2 (4:61b2)
-
-Function121b2: ; unreferenced
- ld a, [wc6d2]
- and a
- ret z
- cp $11
- jr nz, .asm_121c3
- push hl
- ld hl, wc6d2
-rept 2
- dec [hl]
-endr
- jr .asm_121c8
-
-.asm_121c3
- push hl
- ld hl, wc6d2
- dec [hl]
-
-.asm_121c8
- call Function11bd0
- ld c, [hl]
- pop hl
-.asm_121cd
- ld a, [hli]
- cp $ff
- jp z, Function11b27
- cp c
- jr z, .asm_121d9
- inc hl
- jr .asm_121cd
-
-.asm_121d9
- ld a, [hl]
- jp Function11b23
-; 121dd
-
-MailEntry_Uppercase: ; 122dd
- db "A B C D E F G H I J"
- db "K L M N O P Q R S T"
- db "U V W X Y Z , ? !"
- db "1 2 3 4 5 6 7 8 9 0"
- db "<PK> <MN> <PO> <KE> é ♂ ♀ ¥ … ×"
- db "lower DEL END "
-; 1224f
-
-MailEntry_Lowercase: ; 1224f
- db "a b c d e f g h i j"
- db "k l m n o p q r s t"
- db "u v w x y z . - /"
- db "'d 'l 'm 'r 's 't 'v & ( )"
- db "<``> <''> [ ] ' : ; "
- db "UPPER DEL END "
-; 122c1
diff --git a/engine/mon_icons.asm b/engine/mon_icons.asm
index f579d0cd5..5e41cd4a1 100755
--- a/engine/mon_icons.asm
+++ b/engine/mon_icons.asm
@@ -18,16 +18,16 @@ Function8e83f: ; 8e83f
push hl
push de
push bc
- call Function8e849
+ call .LoadIcon
pop bc
pop de
pop hl
ret
; 8e849
-Function8e849: ; 8e849
+.LoadIcon: ; 8e849
ld d, 0
- ld hl, .dw
+ ld hl, .Jumptable
rept 2
add hl, de
endr
@@ -38,23 +38,23 @@ endr
; 8e854
-.dw: ; 8e854 (23:6854)
+.Jumptable: ; 8e854 (23:6854)
dw Function8e8d5 ; init
dw Function8e961
dw Function8e97d
- dw Function8e99a
+ dw Trade_LoadMonIconGFX
dw Function8e898
dw Mobile_InitPartyMenuBGPal71
- dw Function8e862
+ dw .GetPartyMenuMonIcon
-Function8e862: ; 8e862 (23:6862)
+.GetPartyMenuMonIcon: ; 8e862 (23:6862)
call InitPartyMenuIcon
- call Function8e86c
+ call .GetPartyMonItemGFX
call SetPartyMonIconAnimSpeed
ret
-Function8e86c: ; 8e86c (23:686c)
+.GetPartyMonItemGFX: ; 8e86c (23:686c)
push bc
ld a, [hObjectStructIndexBuffer]
ld hl, PartyMon1Item
@@ -63,22 +63,23 @@ Function8e86c: ; 8e86c (23:686c)
pop bc
ld a, [hl]
and a
- jr z, .asm_8e890
+ jr z, .no_item
push hl
push bc
ld d, a
callab ItemIsMail
pop bc
pop hl
- jr c, .asm_8e88e
+ jr c, .not_mail
ld a, $6
- jr .asm_8e892
-.asm_8e88e
+ jr .got_tile
+.not_mail
ld a, $5
- ; jr .asm_8e892
-.asm_8e890
+ ; jr .got_tile
+
+.no_item
ld a, $4
-.asm_8e892
+.got_tile
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
add hl, bc
ld [hl], a
@@ -246,7 +247,7 @@ Function8e97d: ; 8e97d (23:697d)
ld [hl], SPRITE_ANIM_SEQ_NULL
ret
-Function8e99a: ; 8e99a (23:699a)
+Trade_LoadMonIconGFX: ; 8e99a (23:699a)
ld a, [wd265]
call ReadMonMenuIcon
ld [CurIcon], a
diff --git a/engine/money.asm b/engine/money.asm
index d5d9b5c5c..aa1d7b696 100755
--- a/engine/money.asm
+++ b/engine/money.asm
@@ -86,7 +86,7 @@ CompareFunds: ; 1600d
jr .skip_carry
.set_carry
- ld a, TRUE
+ ld a, 1
and a
scf
.skip_carry
diff --git a/engine/namingscreen.asm b/engine/namingscreen.asm
index f36e9b5eb..188665bc4 100755
--- a/engine/namingscreen.asm
+++ b/engine/namingscreen.asm
@@ -6,11 +6,11 @@ _NamingScreen: ; 0x116b7
; 0x116c1
NamingScreen: ; 116c1
- ld hl, wc6d0
+ ld hl, wNamingScreenDestinationPointer
ld [hl], e
inc hl
ld [hl], d
- ld hl, wc6d4
+ ld hl, wNamingScreenType
ld [hl], b
ld hl, Options
ld a, [hl]
@@ -24,11 +24,11 @@ NamingScreen: ; 116c1
push af
ld a, $1
ld [hInMenu], a
- call Function116f8
+ call .SetUpNamingScreen
call DelayFrame
-.asm_116e5
- call Function11915
- jr nc, .asm_116e5
+.loop
+ call NamingScreenJoypadLoop
+ jr nc, .loop
pop af
ld [hInMenu], a
pop af
@@ -39,29 +39,29 @@ NamingScreen: ; 116c1
ret
; 116f8
-Function116f8: ; 116f8
+.SetUpNamingScreen: ; 116f8
call ClearBGPalettes
ld b, SCGB_08
call GetSGBLayout
call DisableLCD
- call Function11c51
- call Function118a8
+ call LoadNamingScreenGFX
+ call NamingScreen_InitText
ld a, $e3
ld [rLCDC], a
- call Function1171d
+ call .GetNamingScreenSetup
call WaitBGMap
call WaitTop
call SetPalettes
- call Function11be0
+ call NamingScreen_InitNameEntry
ret
; 1171d
-Function1171d: ; 1171d
- ld a, [wc6d4]
+.GetNamingScreenSetup: ; 1171d
+ ld a, [wNamingScreenType]
and 7
ld e, a
ld d, 0
- ld hl, Jumptable_1172e
+ ld hl, .Jumptable
rept 2
add hl, de
endr
@@ -72,18 +72,18 @@ endr
; 1172e
-Jumptable_1172e: ; 1172e (4:572e)
- dw Function1173e
- dw Function1178d
- dw Function117ae
- dw Function117d1
- dw Function117f5
- dw Function1182c
- dw Function1173e
- dw Function1173e
+.Jumptable: ; 1172e (4:572e)
+ dw .Pokemon
+ dw .Player
+ dw .Rival
+ dw .Mom
+ dw .Box
+ dw .Tomodachi
+ dw .Pokemon
+ dw .Pokemon
-Function1173e: ; 1173e (4:573e)
+.Pokemon: ; 1173e (4:573e)
ld a, [CurPartySpecies]
ld [wd265], a
ld hl, Function8e83f
@@ -97,74 +97,74 @@ Function1173e: ; 1173e (4:573e)
call PlaceString
ld l, c
ld h, b
- ld de, Strings_11780
+ ld de, .NicknameStrings
call PlaceString
inc de
hlcoord 5, 4
call PlaceString
callba GetGender
- jr c, .asm_1177c
- ld a, $ef
- jr nz, .asm_11778
- ld a, $f5
-.asm_11778
+ jr c, .genderless
+ ld a, "♂"
+ jr nz, .place_gender
+ ld a, "♀"
+.place_gender
hlcoord 1, 2
ld [hl], a
-.asm_1177c
- call Function1187b
+.genderless
+ call .StoreMonIconParams
ret
; 11780 (4:5780)
-Strings_11780: ; 11780
+.NicknameStrings: ; 11780
db "'S@"
db "NICKNAME?@"
; 1178d
-Function1178d: ; 1178d (4:578d)
+.Player: ; 1178d (4:578d)
callba GetPlayerIcon
- call Function11847
+ call .LoadSprite
hlcoord 5, 2
- ld de, String_117a3
+ ld de, .PlayerNameString
call PlaceString
- call Function11882
+ call .StoreSpriteIconParams
ret
; 117a3 (4:57a3)
-String_117a3: ; 117a3
+.PlayerNameString: ; 117a3
db "YOUR NAME?@"
; 117ae
-Function117ae: ; 117ae (4:57ae)
+.Rival: ; 117ae (4:57ae)
ld de, SilverSpriteGFX
ld b, BANK(SilverSpriteGFX)
- call Function11847
+ call .LoadSprite
hlcoord 5, 2
- ld de, String_117c3
+ ld de, .RivalNameString
call PlaceString
- call Function11882
+ call .StoreSpriteIconParams
ret
; 117c3 (4:57c3)
-String_117c3: ; 117c3
+.RivalNameString: ; 117c3
db "RIVAL'S NAME?@"
; 117d1
-Function117d1: ; 117d1 (4:57d1)
+.Mom: ; 117d1 (4:57d1)
ld de, MomSpriteGFX
ld b, BANK(MomSpriteGFX)
- call Function11847
+ call .LoadSprite
hlcoord 5, 2
- ld de, String_117e6
+ ld de, .MomNameString
call PlaceString
- call Function11882
+ call .StoreSpriteIconParams
ret
; 117e6 (4:57e6)
-String_117e6: ; 117e6
+.MomNameString: ; 117e6
db "MOTHER'S NAME?@"
; 117f5
-Function117f5: ; 117f5 (4:57f5)
+.Box: ; 117f5 (4:57f5)
ld de, PokeBallSpriteGFX
ld hl, VTiles0 tile $00
lb bc, BANK(PokeBallSpriteGFX), $4
@@ -180,36 +180,36 @@ Function117f5: ; 117f5 (4:57f5)
add hl, bc
ld [hl], $0
hlcoord 5, 2
- ld de, String_11822
+ ld de, .BoxNameString
call PlaceString
- call Function11889
+ call .StoreBoxIconParams
ret
; 11822 (4:5822)
-String_11822: ; 11822
+.BoxNameString: ; 11822
db "BOX NAME?@"
; 1182c
-Function1182c: ; 1182c (4:582c)
+.Tomodachi: ; 1182c (4:582c)
hlcoord 3, 2
- ld de, String_11839
+ ld de, .oTomodachi_no_namae_sutoringu
call PlaceString
- call Function11882
+ call .StoreSpriteIconParams
ret
; 11839 (4:5839)
-String_11839: ; 11839
+.oTomodachi_no_namae_sutoringu: ; 11839
db "おともだち の なまえは?@"
; 11847
-Function11847: ; 11847 (4:5847)
+.LoadSprite: ; 11847 (4:5847)
push de
ld hl, VTiles0 tile $00
ld c, $4
push bc
call Request2bpp
pop bc
- ld hl, $c0
+ ld hl, 12 tiles
add hl, de
ld e, l
ld d, h
@@ -222,46 +222,46 @@ Function11847: ; 11847 (4:5847)
pop de
ld b, SPRITE_ANIM_INDEX_WALK_CYCLE
ld a, d
- cp $7a
- jr nz, .asm_11873
+ cp KrisSpriteGFX / $100
+ jr nz, .not_kris
ld a, e
- cp $40
- jr nz, .asm_11873
+ cp KrisSpriteGFX % $100
+ jr nz, .not_kris
ld b, SPRITE_ANIM_INDEX_1E
-.asm_11873
+.not_kris
ld a, b
depixel 4, 4, 4, 0
call _InitSpriteAnimStruct
ret
-Function1187b: ; 1187b (4:587b)
- ld a, $a
+.StoreMonIconParams: ; 1187b (4:587b)
+ ld a, PKMN_NAME_LENGTH - 1
hlcoord 5, 6
- jr Function11890
+ jr .StoreParams
-Function11882: ; 11882 (4:5882)
- ld a, $7
+.StoreSpriteIconParams: ; 11882 (4:5882)
+ ld a, PLAYER_NAME_LENGTH - 1
hlcoord 5, 6
- jr Function11890
+ jr .StoreParams
-Function11889: ; 11889 (4:5889)
- ld a, $8
+.StoreBoxIconParams: ; 11889 (4:5889)
+ ld a, BOX_NAME_LENGTH - 1
hlcoord 5, 4
- jr Function11890
+ jr .StoreParams
-Function11890: ; 11890 (4:5890)
- ld [wc6d3], a
+.StoreParams: ; 11890 (4:5890)
+ ld [wNamingScreenMaxNameLength], a
ld a, l
- ld [wc6d8], a
+ ld [wNamingScreenStringEntryCoord], a
ld a, h
- ld [wc6d9], a
+ ld [wNamingScreenStringEntryCoord + 1], a
ret
-Function1189c: ; 1189c
+NamingScreen_IsTargetBox: ; 1189c
push bc
push af
- ld a, [wc6d4]
+ ld a, [wNamingScreenType]
sub $3
ld b, a
pop af
@@ -270,7 +270,7 @@ Function1189c: ; 1189c
ret
; 118a8
-Function118a8: ; 118a8
+NamingScreen_InitText: ; 118a8
call WaitTop
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
@@ -278,31 +278,31 @@ Function118a8: ; 118a8
call ByteFill
hlcoord 1, 1
lb bc, 6, 18
- call Function1189c
- jr nz, .asm_118c4
+ call NamingScreen_IsTargetBox
+ jr nz, .not_box
lb bc, 4, 18
-.asm_118c4
+.not_box
call ClearBox
ld de, NameInputUpper
-Function118ca: ; 118ca
- call Function1189c
- jr nz, .asm_118d5
+NamingScreen_ApplyTextInputMode: ; 118ca
+ call NamingScreen_IsTargetBox
+ jr nz, .not_box
ld hl, BoxNameInputLower - NameInputLower
add hl, de
ld d, h
ld e, l
-.asm_118d5
+.not_box
push de
hlcoord 1, 8
lb bc, 7, 18
- call Function1189c
- jr nz, .asm_118e7
+ call NamingScreen_IsTargetBox
+ jr nz, .not_box_2
hlcoord 1, 6
lb bc, 9, 18
-.asm_118e7
+.not_box_2
call ClearBox
hlcoord 1, 16
lb bc, 1, 18
@@ -310,41 +310,41 @@ Function118ca: ; 118ca
pop de
hlcoord 2, 8
ld b, $5
- call Function1189c
- jr nz, .asm_11903
+ call NamingScreen_IsTargetBox
+ jr nz, .row
hlcoord 2, 6
ld b, $6
-.asm_11903
+.row
ld c, $11
-.asm_11905
+.col
ld a, [de]
ld [hli], a
inc de
dec c
- jr nz, .asm_11905
+ jr nz, .col
push de
- ld de, $17
+ ld de, 2 * SCREEN_WIDTH - $11
add hl, de
pop de
dec b
- jr nz, .asm_11903
+ jr nz, .row
ret
; 11915
-Function11915: ; 11915
+NamingScreenJoypadLoop: ; 11915
call JoyTextDelay
ld a, [wJumptableIndex]
bit 7, a
- jr nz, .asm_11930
- call Function11968
+ jr nz, .quit
+ call .RunJumptable
callba PlaySpriteAnimationsAndDelayFrame
- call Function11940
+ call .UpdateStringEntry
call DelayFrame
and a
ret
-.asm_11930
+.quit
callab ClearSpriteAnims
call ClearSprites
xor a
@@ -354,22 +354,22 @@ Function11915: ; 11915
ret
; 11940
-Function11940: ; 11940
+.UpdateStringEntry: ; 11940
xor a
ld [hBGMapMode], a
hlcoord 1, 5
- call Function1189c
- jr nz, .asm_1194e
+ call NamingScreen_IsTargetBox
+ jr nz, .got_coords
hlcoord 1, 3
-.asm_1194e
+.got_coords
lb bc, 1, 18
call ClearBox
- ld hl, wc6d0
+ ld hl, wNamingScreenDestinationPointer
ld e, [hl]
inc hl
ld d, [hl]
- ld hl, wc6d8
+ ld hl, wNamingScreenStringEntryCoord
ld a, [hli]
ld h, [hl]
ld l, a
@@ -379,11 +379,11 @@ Function11940: ; 11940
ret
; 11968
-Function11968: ; 11968
+.RunJumptable: ; 11968
ld a, [wJumptableIndex]
ld e, a
ld d, $0
- ld hl, Jumptable_11977
+ ld hl, .Jumptable
rept 2
add hl, de
endr
@@ -394,21 +394,21 @@ endr
; 11977
-Jumptable_11977: ; 11977 (4:5977)
- dw Function1197b
- dw Function119a1
+.Jumptable: ; 11977 (4:5977)
+ dw .InitCursor
+ dw .ReadButtons
-Function1197b: ; 1197b (4:597b)
+.InitCursor: ; 1197b (4:597b)
depixel 10, 3
- call Function1189c
- jr nz, .asm_11985
+ call NamingScreen_IsTargetBox
+ jr nz, .got_cursor_position
ld d, 8 * 8
-.asm_11985
+.got_cursor_position
ld a, SPRITE_ANIM_INDEX_02
call _InitSpriteAnimStruct
ld a, c
- ld [wc6d5], a
+ ld [wNamingScreenCursorObjectPointer], a
ld a, b
ld [wc6d6], a
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
@@ -421,7 +421,7 @@ Function1197b: ; 1197b (4:597b)
inc [hl]
ret
-Function119a1: ; 119a1 (4:59a1)
+.ReadButtons: ; 119a1 (4:59a1)
ld hl, hJoyPressed ; $ffa7
ld a, [hl]
and A_BUTTON
@@ -438,19 +438,19 @@ Function119a1: ; 119a1 (4:59a1)
ret
.a
- call Function11a0b
+ call .GetCursorPosition
cp $1
jr z, .select
cp $2
jr z, .b
cp $3
- jr z, .asm_119eb
- call Function11c11
- call Function11b14
+ jr z, .end
+ call NamingScreen_GetLastCharacter
+ call NamingScreen_TryAddCharacter
ret nc
.start
- ld hl, wc6d5
+ ld hl, wNamingScreenCursorObjectPointer
ld c, [hl]
inc hl
ld b, [hl]
@@ -460,17 +460,17 @@ Function119a1: ; 119a1 (4:59a1)
ld hl, SPRITEANIMSTRUCT_0D
add hl, bc
ld [hl], $4
- call Function1189c
+ call NamingScreen_IsTargetBox
ret nz
inc [hl]
ret
.b
- call Function11bbc
+ call NamingScreen_DeleteCharacter
ret
-.asm_119eb
- call Function11bf7
+.end
+ call NamingScreen_StoreEntry
ld hl, wJumptableIndex
set 7, [hl]
ret
@@ -480,56 +480,59 @@ Function119a1: ; 119a1 (4:59a1)
ld a, [hl]
xor 1
ld [hl], a
- jr z, .asm_11a04
+ jr z, .upper
ld de, NameInputLower
- call Function118ca
+ call NamingScreen_ApplyTextInputMode
ret
-.asm_11a04
+.upper
ld de, NameInputUpper
- call Function118ca
+ call NamingScreen_ApplyTextInputMode
ret
-Function11a0b: ; 11a0b (4:5a0b)
- ld hl, wc6d5
+.GetCursorPosition: ; 11a0b (4:5a0b)
+ ld hl, wNamingScreenCursorObjectPointer
ld c, [hl]
inc hl
ld b, [hl]
-Function11a11: ; 11a11 (4:5a11)
+NamingScreen_GetCursorPosition: ; 11a11 (4:5a11)
ld hl, SPRITEANIMSTRUCT_0D
add hl, bc
ld a, [hl]
push bc
ld b, $4
- call Function1189c
- jr nz, .asm_11a1f
+ call NamingScreen_IsTargetBox
+ jr nz, .not_box
inc b
-.asm_11a1f
+.not_box
cp b
pop bc
- jr nz, .asm_11a39
+ jr nz, .not_bottom_row
ld hl, SPRITEANIMSTRUCT_0C
add hl, bc
ld a, [hl]
cp $3
- jr c, .asm_11a33
+ jr c, .case_switch
cp $6
- jr c, .asm_11a36
+ jr c, .delete
ld a, $3
ret
-.asm_11a33
+
+.case_switch
ld a, $1
ret
-.asm_11a36
+
+.delete
ld a, $2
ret
-.asm_11a39
+
+.not_bottom_row
xor a
ret
-Function11a3b: ; 11a3b (4:5a3b)
- call Function11a8b
+NamingScreen_AnimateCursor: ; 11a3b (4:5a3b)
+ call .GetDPad
ld hl, SPRITEANIMSTRUCT_0D
add hl, bc
ld a, [hl]
@@ -539,17 +542,17 @@ Function11a3b: ; 11a3b (4:5a3b)
add hl, bc
ld [hl], e
ld d, $4
- call Function1189c
- jr nz, .asm_11a53
+ call NamingScreen_IsTargetBox
+ jr nz, .ok
inc d
-.asm_11a53
+.ok
cp d
- ld de, Unknown_11a79
+ ld de, .LetterEntries
ld a, $0
- jr nz, .asm_11a60
- ld de, Unknown_11a82
+ jr nz, .ok2
+ ld de, .CaseDelEnd
ld a, $1
-.asm_11a60
+.ok2
ld hl, SPRITEANIMSTRUCT_0E
add hl, bc
add [hl]
@@ -568,13 +571,14 @@ Function11a3b: ; 11a3b (4:5a3b)
ret
; 11a79 (4:5a79)
-Unknown_11a79: ; 11a79
+.LetterEntries: ; 11a79
db $00, $10, $20, $30, $40, $50, $60, $70, $80
-Unknown_11a82: ; 11a82
+
+.CaseDelEnd: ; 11a82
db $00, $00, $00, $30, $30, $30, $60, $60, $60
; 11a8b
-Function11a8b: ; 11a8b (4:5a8b)
+.GetDPad: ; 11a8b (4:5a8b)
ld hl, hJoyLast
ld a, [hl]
and D_UP
@@ -590,7 +594,7 @@ Function11a8b: ; 11a8b (4:5a8b)
jr nz, .right
ret
.right
- call Function11a11
+ call NamingScreen_GetCursorPosition
and a
jr nz, .asm_11ab7
ld hl, SPRITEANIMSTRUCT_0C
@@ -616,7 +620,7 @@ Function11a8b: ; 11a8b (4:5a8b)
ld [hl], a
ret
.left
- call Function11a11
+ call NamingScreen_GetCursorPosition
and a
jr nz, .asm_11ad8
ld hl, SPRITEANIMSTRUCT_0C
@@ -648,7 +652,7 @@ endr
ld hl, SPRITEANIMSTRUCT_0D
add hl, bc
ld a, [hl]
- call Function1189c
+ call NamingScreen_IsTargetBox
jr nz, .asm_11af9
cp $5
jr nc, .asm_11aff
@@ -672,65 +676,65 @@ endr
ret
.asm_11b0c
ld [hl], $4
- call Function1189c
+ call NamingScreen_IsTargetBox
ret nz
inc [hl]
ret
-Function11b14: ; 11b14 (4:5b14)
- ld a, [wc6d7]
-
-Function11b17: ; 11b17 (4:5b17)
- ld a, [wc6d3]
+NamingScreen_TryAddCharacter: ; 11b14 (4:5b14)
+ ld a, [wNamingScreenLastCharacter] ; lost
+MailComposition_TryAddCharacter: ; 11b17 (4:5b17)
+ ld a, [wNamingScreenMaxNameLength]
ld c, a
- ld a, [wc6d2]
+ ld a, [wNamingScreenCurrNameLength]
cp c
ret nc
- ld a, [wc6d7]
+ ld a, [wNamingScreenLastCharacter]
-Function11b23: ; 11b23
- call Function11bd0
+NamingScreen_LoadNextCharacter: ; 11b23
+ call NamingScreen_GetTextCursorPosition
ld [hl], a
-Function11b27: ; 11b27
- ld hl, wc6d2
+NamingScreen_AdvanceCursor_CheckEndOfString: ; 11b27
+ ld hl, wNamingScreenCurrNameLength
inc [hl]
- call Function11bd0
+ call NamingScreen_GetTextCursorPosition
ld a, [hl]
- cp $50
- jr z, .asm_11b37
+ cp "@"
+ jr z, .end_of_string
ld [hl], $f2
and a
ret
-.asm_11b37
+
+.end_of_string
scf
ret
; 11b39 (4:5b39)
-Function11b39: ; 11b39
- ld a, [wc6d2]
+; XXX
+ ld a, [wNamingScreenCurrNameLength]
and a
ret z
push hl
- ld hl, wc6d2
+ ld hl, wNamingScreenCurrNameLength
dec [hl]
- call Function11bd0
+ call NamingScreen_GetTextCursorPosition
ld c, [hl]
pop hl
-.asm_11b48
+.loop
ld a, [hli]
cp $ff
- jr z, Function11b27
+ jr z, NamingScreen_AdvanceCursor_CheckEndOfString
cp c
- jr z, .asm_11b53
+ jr z, .done
inc hl
- jr .asm_11b48
+ jr .loop
-.asm_11b53
+.done
ld a, [hl]
- jr Function11b23
+ jr NamingScreen_LoadNextCharacter
; 11b56
Dakutens: ; Dummied out
@@ -750,13 +754,13 @@ Handakutens: ; Dummied out
db $ff
; 11bbc
-Function11bbc: ; 11bbc (4:5bbc)
- ld hl, wc6d2
+NamingScreen_DeleteCharacter: ; 11bbc (4:5bbc)
+ ld hl, wNamingScreenCurrNameLength
ld a, [hl]
and a
ret z
dec [hl]
- call Function11bd0
+ call NamingScreen_GetTextCursorPosition
ld [hl], $f2
inc hl
ld a, [hl]
@@ -765,13 +769,13 @@ Function11bbc: ; 11bbc (4:5bbc)
ld [hl], $eb
ret
-Function11bd0: ; 11bd0 (4:5bd0)
+NamingScreen_GetTextCursorPosition: ; 11bd0 (4:5bd0)
push af
- ld hl, wc6d0
+ ld hl, wNamingScreenDestinationPointer
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [wc6d2]
+ ld a, [wNamingScreenCurrNameLength]
ld e, a
ld d, 0
add hl, de
@@ -779,18 +783,18 @@ Function11bd0: ; 11bd0 (4:5bd0)
ret
; 11be0
-Function11be0: ; 11be0
-; load $f2, ($eb * [wc6d3]), $50 into the dw address at wc6d0
- ld hl, wc6d0
+NamingScreen_InitNameEntry: ; 11be0
+; load $f2, ($eb * [wNamingScreenMaxNameLength]), $50 into the dw address at wNamingScreenDestinationPointer
+ ld hl, wNamingScreenDestinationPointer
ld a, [hli]
ld h, [hl]
ld l, a
- ld [hl], "·"
+ ld [hl], $f2
inc hl
- ld a, [wc6d3]
+ ld a, [wNamingScreenMaxNameLength]
dec a
ld c, a
- ld a, "→"
+ ld a, $eb
.loop
ld [hli], a
dec c
@@ -800,29 +804,29 @@ Function11be0: ; 11be0
; 11bf7
-Function11bf7: ; 11bf7 (4:5bf7)
- ld hl, wc6d0
+NamingScreen_StoreEntry: ; 11bf7 (4:5bf7)
+ ld hl, wNamingScreenDestinationPointer
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [wc6d3]
+ ld a, [wNamingScreenMaxNameLength]
ld c, a
-.asm_11c01
+.loop
ld a, [hl]
cp $eb
- jr z, .asm_11c0a
+ jr z, .terminator
cp $f2
- jr nz, .asm_11c0c
-.asm_11c0a
- ld [hl], $50
-.asm_11c0c
+ jr nz, .not_terminator
+.terminator
+ ld [hl], "@"
+.not_terminator
inc hl
dec c
- jr nz, .asm_11c01
+ jr nz, .loop
ret
-Function11c11: ; 11c11 (4:5c11)
- ld hl, wc6d5
+NamingScreen_GetLastCharacter: ; 11c11 (4:5c11)
+ ld hl, wNamingScreenCursorObjectPointer
ld c, [hl]
inc hl
ld b, [hl]
@@ -849,51 +853,51 @@ Function11c11: ; 11c11 (4:5c11)
srl a
ld d, a
hlcoord 0, 0
- ld bc, $14
-.asm_11c43
+ ld bc, SCREEN_WIDTH
+.loop
ld a, d
and a
- jr z, .asm_11c4b
+ jr z, .done
add hl, bc
dec d
- jr .asm_11c43
-.asm_11c4b
+ jr .loop
+.done
add hl, de
ld a, [hl]
- ld [wc6d7], a
+ ld [wNamingScreenLastCharacter], a
ret
-Function11c51: ; 11c51
+LoadNamingScreenGFX: ; 11c51
call ClearSprites
callab ClearSpriteAnims
call LoadStandardFont
call LoadFontsExtra
- ld de, GFX_11e65
+ ld de, NamingScreenGFX_MiddleLine
ld hl, VTiles1 tile $6b
- lb bc, BANK(GFX_11e65), 1
+ lb bc, BANK(NamingScreenGFX_MiddleLine), 1
call Get1bpp
- ld de, GFX_11e6d
+ ld de, NamingScreenGFX_UnderLine
ld hl, VTiles1 tile $72
- lb bc, BANK(GFX_11e6d), 1
+ lb bc, BANK(NamingScreenGFX_UnderLine), 1
call Get1bpp
ld de, VTiles2 tile $60
- ld hl, GFX_11cb7
- ld bc, $10
- ld a, BANK(GFX_11cb7)
+ ld hl, NamingScreenGFX_Border
+ ld bc, 1 tiles
+ ld a, BANK(NamingScreenGFX_Border)
call FarCopyBytes
ld de, VTiles0 tile $7e
- ld hl, GFX_11cc7
- ld bc, $20
- ld a, BANK(GFX_11cc7)
+ ld hl, NamingScreenGFX_Cursor
+ ld bc, 2 tiles
+ ld a, BANK(NamingScreenGFX_Cursor)
call FarCopyBytes
ld a, $5
- ld hl, wc312
+ ld hl, wSpriteAnimDict + 9 * 2
ld [hli], a
ld [hl], $7e
xor a
@@ -904,17 +908,17 @@ Function11c51: ; 11c51
ld [wJumptableIndex], a
ld [wcf64], a
ld [hBGMapMode], a
- ld [wc6d2], a
+ ld [wNamingScreenCurrNameLength], a
ld a, $7
ld [hWX], a
ret
; 11cb7
-GFX_11cb7: ; 11cb7
+NamingScreenGFX_Border: ; 11cb7
INCBIN "gfx/unknown/011cb7.2bpp"
; 11cc7
-GFX_11cc7: ; 11cc7
+NamingScreenGFX_Cursor: ; 11cc7
INCBIN "gfx/unknown/011cc7.2bpp"
; 11ce7
@@ -950,10 +954,529 @@ GFX_11e5d: ; ????
INCBIN "gfx/unknown/011e5d.2bpp"
; 11e6d
-GFX_11e65:
+NamingScreenGFX_MiddleLine:
INCBIN "gfx/unknown/011e65.2bpp"
; 11e6d
-GFX_11e6d: ; 11e6d
+NamingScreenGFX_UnderLine: ; 11e6d
INCBIN "gfx/unknown/011e6d.2bpp"
; 11e75
+
+_ComposeMailMessage: ; 11e75 (mail?)
+ ld hl, wNamingScreenDestinationPointer
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ call .InitBlankMail
+ call DelayFrame
+
+.loop
+ call .DoMailEntry
+ jr nc, .loop
+
+ pop af
+ ld [hInMenu], a
+ pop af
+ ld [hMapAnims], a
+ ret
+
+.InitBlankMail: ; 11e9a (4:5e9a)
+ call ClearBGPalettes
+ call DisableLCD
+ call LoadNamingScreenGFX
+ ld de, VTiles0 tile $00
+ ld hl, .MailIcon
+ ld bc, 8 tiles
+ ld a, BANK(.MailIcon)
+ call FarCopyBytes
+ xor a
+ ld hl, wSpriteAnimDict
+ ld [hli], a
+ ld [hl], a
+
+ ; init mail icon
+ depixel 3, 2
+ ld a, SPRITE_ANIM_INDEX_00
+ call _InitSpriteAnimStruct
+
+ ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
+ add hl, bc
+ ld [hl], $0
+ call .InitCharset
+ ld a, $e3
+ ld [rLCDC], a
+ call .initwNamingScreenMaxNameLength
+ ld b, SCGB_08
+ call GetSGBLayout
+ call WaitBGMap
+ call WaitTop
+ ld a, %11100100
+ call DmgToCgbBGPals
+ ld a, %11100100
+ call DmgToCgbObjPal0
+ call NamingScreen_InitNameEntry
+ ld hl, wNamingScreenDestinationPointer
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $10
+ add hl, de
+ ld [hl], $4e
+ ret
+
+; 11ef4 (4:5ef4)
+
+.MailIcon: ; 11ef4
+INCBIN "gfx/icon/mail2.2bpp"
+; 11f74
+
+.initwNamingScreenMaxNameLength: ; 11f74 (4:5f74)
+ ld a, MAIL_MSG_LENGTH + 1
+ ld [wNamingScreenMaxNameLength], a
+ ret
+
+; 11f7a (4:5f7a)
+
+.Dummy: ; dummied out
+ db "メールを かいてね@"
+; 11f84
+
+.InitCharset: ; 11f84 (4:5f84)
+ call WaitTop
+ hlcoord 0, 0
+ ld bc, 6 * SCREEN_WIDTH
+ ld a, $60 ; border
+ call ByteFill
+ hlcoord 0, 6
+ ld bc, 12 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ hlcoord 1, 1
+ lb bc, 4, SCREEN_WIDTH - 2
+ call ClearBox
+ ld de, MailEntry_Uppercase
+
+.PlaceMailCharset: ; 11fa9 (4:5fa9)
+ hlcoord 1, 7
+ ld b, 6
+.next
+ ld c, SCREEN_WIDTH - 1
+.loop_
+ ld a, [de]
+ ld [hli], a
+ inc de
+ dec c
+ jr nz, .loop_
+ push de
+ ld de, SCREEN_WIDTH + 1
+ add hl, de
+ pop de
+ dec b
+ jr nz, .next
+ ret
+
+.DoMailEntry: ; 11fc0 (4:5fc0)
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .exit_mail
+ call .DoJumptable
+ callba PlaySpriteAnimationsAndDelayFrame
+ call .Update
+ call DelayFrame
+ and a
+ ret
+
+.exit_mail
+ callab ClearSpriteAnims
+ call ClearSprites
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ scf
+ ret
+
+.Update: ; 11feb (4:5feb)
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 1, 1
+ lb bc, 4, 18
+ call ClearBox
+ ld hl, wNamingScreenDestinationPointer
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ hlcoord 2, 2
+ call PlaceString
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+
+.DoJumptable: ; 12008 (4:6008)
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, .Jumptable
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+.Jumptable: ; 12017 (4:6017)
+ dw .init_blinking_cursor
+ dw .process_joypad
+
+
+.init_blinking_cursor: ; 1201b (4:601b)
+ depixel 9, 2
+ ld a, SPRITE_ANIM_INDEX_09
+ call _InitSpriteAnimStruct
+ ld a, c
+ ld [wNamingScreenCursorObjectPointer], a
+ ld a, b
+ ld [wNamingScreenCursorObjectPointer + 1], a
+ ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ ld a, [hl]
+ ld hl, SPRITEANIMSTRUCT_0E
+ add hl, bc
+ ld [hl], a
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+.process_joypad: ; 1203a (4:603a)
+ ld hl, hJoyPressed ; $ffa7
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .a
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .b
+ ld a, [hl]
+ and START
+ jr nz, .start
+ ld a, [hl]
+ and SELECT
+ jr nz, .select
+ ret
+
+.a
+ call Function12185
+ cp $1
+ jr z, .select
+ cp $2
+ jr z, .b
+ cp $3
+ jr z, .finished
+ call NamingScreen_GetLastCharacter
+ call Function121ac
+ jr c, .start
+ ld hl, wNamingScreenCurrNameLength
+ ld a, [hl]
+ cp $10
+ ret nz
+ inc [hl]
+ call NamingScreen_GetTextCursorPosition
+ ld [hl], $f2
+ dec hl
+ ld [hl], $4e
+ ret
+
+.start
+ ld hl, wNamingScreenCursorObjectPointer
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld [hl], $9
+ ld hl, SPRITEANIMSTRUCT_0D
+ add hl, bc
+ ld [hl], $5
+ ret
+
+.b
+ call NamingScreen_DeleteCharacter
+ ld hl, wNamingScreenCurrNameLength
+ ld a, [hl]
+ cp $10
+ ret nz
+ dec [hl]
+ call NamingScreen_GetTextCursorPosition
+ ld [hl], $f2
+ inc hl
+ ld [hl], $4e
+ ret
+
+.finished
+ call NamingScreen_StoreEntry
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+.select
+ ld hl, wcf64
+ ld a, [hl]
+ xor $1
+ ld [hl], a
+ jr nz, .switch_to_lowercase
+ ld de, MailEntry_Uppercase
+ call .PlaceMailCharset
+ ret
+
+.switch_to_lowercase
+ ld de, MailEntry_Lowercase
+ call .PlaceMailCharset
+ ret
+
+; called from engine/sprite_anims.asm
+Function120c1: ; 120c1 (4:60c1)
+ call Function1210c
+ ld hl, SPRITEANIMSTRUCT_0D
+ add hl, bc
+ ld a, [hl]
+ ld e, a
+ swap e
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], e
+ cp $5
+ ld de, Unknown_120f8
+ ld a, 0
+ jr nz, .asm_120df
+ ld de, Unknown_12102
+ ld a, 1
+.asm_120df
+ ld hl, SPRITEANIMSTRUCT_0E
+ add hl, bc
+ add [hl]
+ ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
+ add hl, bc
+ ld [hl], a
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld l, [hl]
+ ld h, 0
+ add hl, de
+ ld a, [hl]
+ ld hl, SPRITEANIMSTRUCT_XOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+; 120f8 (4:60f8)
+
+Unknown_120f8: ; 120f8
+ db $00, $10, $20, $30, $40, $50, $60, $70, $80, $90
+
+Unknown_12102: ; 12102
+ db $00, $00, $00, $30, $30, $30, $60, $60, $60, $60
+; 1210c
+
+Function1210c: ; 1210c (4:610c)
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .up
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .down
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .left
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .right
+ ret
+
+.right
+ call Function1218b
+ and a
+ jr nz, .asm_12138
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ cp $9
+ jr nc, .asm_12135
+ inc [hl]
+ ret
+
+.asm_12135
+ ld [hl], $0
+ ret
+
+.asm_12138
+ cp $3
+ jr nz, .asm_1213d
+ xor a
+.asm_1213d
+ ld e, a
+ add a
+ add e
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld [hl], a
+ ret
+
+.left
+ call Function1218b
+ and a
+ jr nz, .asm_12159
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_12156
+ dec [hl]
+ ret
+
+.asm_12156
+ ld [hl], $9
+ ret
+
+.asm_12159
+ cp $1
+ jr nz, .asm_1215f
+ ld a, $4
+.asm_1215f
+rept 2
+ dec a
+endr
+ ld e, a
+ add a
+ add e
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld [hl], a
+ ret
+
+.down
+ ld hl, SPRITEANIMSTRUCT_0D
+ add hl, bc
+ ld a, [hl]
+ cp $5
+ jr nc, .asm_12175
+ inc [hl]
+ ret
+
+.asm_12175
+ ld [hl], $0
+ ret
+
+.up
+ ld hl, SPRITEANIMSTRUCT_0D
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_12182
+ dec [hl]
+ ret
+
+.asm_12182
+ ld [hl], $5
+ ret
+
+Function12185: ; 12185 (4:6185)
+ ld hl, wNamingScreenCursorObjectPointer
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+
+Function1218b: ; 1218b (4:618b)
+ ld hl, SPRITEANIMSTRUCT_0D
+ add hl, bc
+ ld a, [hl]
+ cp $5
+ jr nz, .asm_121aa
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ cp $3
+ jr c, .asm_121a4
+ cp $6
+ jr c, .asm_121a7
+ ld a, $3
+ ret
+
+.asm_121a4
+ ld a, $1
+ ret
+
+.asm_121a7
+ ld a, $2
+ ret
+
+.asm_121aa
+ xor a
+ ret
+
+Function121ac: ; 121ac (4:61ac)
+ ld a, [wNamingScreenLastCharacter]
+ jp MailComposition_TryAddCharacter
+; 121b2 (4:61b2)
+
+Function121b2: ; unreferenced
+ ld a, [wNamingScreenCurrNameLength]
+ and a
+ ret z
+ cp $11
+ jr nz, .asm_121c3
+ push hl
+ ld hl, wNamingScreenCurrNameLength
+rept 2
+ dec [hl]
+endr
+ jr .asm_121c8
+
+.asm_121c3
+ push hl
+ ld hl, wNamingScreenCurrNameLength
+ dec [hl]
+
+.asm_121c8
+ call NamingScreen_GetTextCursorPosition
+ ld c, [hl]
+ pop hl
+.asm_121cd
+ ld a, [hli]
+ cp $ff
+ jp z, NamingScreen_AdvanceCursor_CheckEndOfString
+ cp c
+ jr z, .asm_121d9
+ inc hl
+ jr .asm_121cd
+
+.asm_121d9
+ ld a, [hl]
+ jp NamingScreen_LoadNextCharacter
+; 121dd
+
+MailEntry_Uppercase: ; 122dd
+ db "A B C D E F G H I J"
+ db "K L M N O P Q R S T"
+ db "U V W X Y Z , ? !"
+ db "1 2 3 4 5 6 7 8 9 0"
+ db "<PK> <MN> <PO> <KE> é ♂ ♀ ¥ … ×"
+ db "lower DEL END "
+; 1224f
+
+MailEntry_Lowercase: ; 1224f
+ db "a b c d e f g h i j"
+ db "k l m n o p q r s t"
+ db "u v w x y z . - /"
+ db "'d 'l 'm 'r 's 't 'v & ( )"
+ db "<``> <''> [ ] ' : ; "
+ db "UPPER DEL END "
+; 122c1
diff --git a/engine/sprite_anims.asm b/engine/sprite_anims.asm
index 827626114..6346ea8fe 100755
--- a/engine/sprite_anims.asm
+++ b/engine/sprite_anims.asm
@@ -218,7 +218,7 @@ DoAnimFrame: ; 8d24b
ret
.five: ; 8d36c (23:536c)
- callab Function11a3b
+ callab NamingScreen_AnimateCursor
ret
.twelve: ; 8d373 (23:5373)
diff --git a/engine/trade/animation.asm b/engine/trade/animation.asm
index a084fc3be..31e46b2c7 100755
--- a/engine/trade/animation.asm
+++ b/engine/trade/animation.asm
@@ -3,12 +3,12 @@ TradeAnimation: ; 28f24
ld [wcf66], a
ld hl, wPlayerTrademonSenderName
ld de, wOTTrademonSenderName
- call Function297ff
+ call LinkTradeAnim_LoadTradePlayerNames
ld hl, wPlayerTrademonSpecies
ld de, wOTTrademonSpecies
- call Function29814
+ call LinkTradeAnim_LoadTradeMonSpecies
ld de, .data_28f3f
- jr Function28fa1
+ jr RunTradeAnimSequence
.data_28f3f
tradeanim_setup_givemon_scroll
@@ -54,12 +54,12 @@ TradeAnimationPlayer2: ; 28f63
ld [wcf66], a
ld hl, wOTTrademonSenderName
ld de, wPlayerTrademonSenderName
- call Function297ff
+ call LinkTradeAnim_LoadTradePlayerNames
ld hl, wOTTrademonSpecies
ld de, wPlayerTrademonSpecies
- call Function29814
+ call LinkTradeAnim_LoadTradeMonSpecies
ld de, .data_28f7e
- jr Function28fa1
+ jr RunTradeAnimSequence
.data_28f7e
tradeanim_ot_sends_text_2
@@ -99,7 +99,7 @@ TradeAnimationPlayer2: ; 28f63
tradeanim_scroll_out_right
tradeanim_end
-Function28fa1: ; 28fa1
+RunTradeAnimSequence: ; 28fa1
ld hl, wTradeAnimPointer
ld [hl], e
inc hl
@@ -116,7 +116,7 @@ Function28fa1: ; 28fa1
ld a, [hl]
push af
set 4, [hl]
- call Function28fdb
+ call .TradeAnimLayout
ld a, [wcf66]
and a
jr nz, .anim_loop
@@ -134,7 +134,7 @@ Function28fa1: ; 28fa1
ret
; 28fdb
-Function28fdb: ; 28fdb
+.TradeAnimLayout: ; 28fdb
xor a
ld [wJumptableIndex], a
call ClearBGPalettes
@@ -145,7 +145,7 @@ Function28fdb: ; 28fdb
callab ClearSpriteAnims
ld a, [hCGB]
and a
- jr z, .asm_2900b
+ jr z, .NotCGB
ld a, $1
ld [rVBK], a
ld hl, VTiles0
@@ -155,7 +155,7 @@ Function28fdb: ; 28fdb
ld a, $0
ld [rVBK], a
-.asm_2900b
+.NotCGB
hlbgcoord 0, 0
ld bc, sScratch - VBGMap0
ld a, " "
@@ -182,7 +182,7 @@ Function28fdb: ; 28fdb
ld [hWY], a
callba GetTrademonFrontpic
call EnableLCD
- call Function2982b
+ call LoadTradeBallAndCableGFX
ld a, [wPlayerTrademonSpecies]
ld hl, wPlayerTrademonDVs
ld de, VTiles0
@@ -313,7 +313,7 @@ TradeAnim_End: ; 29123
TradeAnim_TubeToOT1: ; 29129
ld a, $ed
call Function292f6
- ld a, [wc74c]
+ ld a, [wLinkTradeSendmonSpecies]
ld [wd265], a
xor a
depixel 5, 11, 4, 0
@@ -323,7 +323,7 @@ TradeAnim_TubeToOT1: ; 29129
TradeAnim_TubeToPlayer1: ; 2913c
ld a, $ee
call Function292f6
- ld a, [wc74d]
+ ld a, [wLinkTradeGetmonSpecies]
ld [wd265], a
ld a, $2
depixel 9, 18, 4, 4
@@ -350,7 +350,7 @@ Function2914e: ; 2914e
ld a, $70
ld [hWY], a
call EnableLCD
- call Function2985a
+ call LoadTradeBubbleGFX
pop de
ld a, SPRITE_ANIM_INDEX_11
call _InitSpriteAnimStruct
@@ -476,7 +476,7 @@ TradeAnim_TubeToPlayer8: ; 29229
ld a, $90
ld [hWY], a
call EnableLCD
- call Function2982b
+ call LoadTradeBallAndCableGFX
call WaitBGMap
call Function297ed
call TradeAnim_Next
@@ -1376,17 +1376,17 @@ Function297ed: ; 297ed
ld a, [hSGB]
and a
ld a, %11100100 ; 3,2,1,0
- jr z, .asm_297f6
+ jr z, .not_sgb
ld a, $f0
-.asm_297f6
+.not_sgb
call DmgToCgbObjPal0
ld a, %11100100 ; 3,2,1,0
call DmgToCgbBGPals
ret
; 297ff
-Function297ff: ; 297ff
+LinkTradeAnim_LoadTradePlayerNames: ; 297ff
push de
ld de, wLinkPlayer1Name
ld bc, NAME_LENGTH
@@ -1398,11 +1398,11 @@ Function297ff: ; 297ff
ret
; 29814
-Function29814: ; 29814
+LinkTradeAnim_LoadTradeMonSpecies: ; 29814
ld a, [hl]
- ld [wc74c], a
+ ld [wLinkTradeSendmonSpecies], a
ld a, [de]
- ld [wc74d], a
+ ld [wLinkTradeGetmonSpecies], a
ret
; 2981d
@@ -1416,7 +1416,7 @@ Function2981d: ; 2981d
ret
; 2982b
-Function2982b: ; 2982b
+LoadTradeBallAndCableGFX: ; 2982b
call DelayFrame
ld de, TradeBallGFX
ld hl, VTiles0 tile $62
@@ -1431,13 +1431,13 @@ Function2982b: ; 2982b
lb bc, BANK(TradeCableGFX), $4
call Request2bpp
xor a
- ld hl, wc300
+ ld hl, wSpriteAnimDict
ld [hli], a
ld [hl], $62
ret
; 2985a
-Function2985a: ; 2985a
+LoadTradeBubbleGFX: ; 2985a
call DelayFrame
ld e, $3
callab Function8e83f
@@ -1446,7 +1446,7 @@ Function2985a: ; 2985a
lb bc, BANK(TradeBubbleGFX), $4
call Request2bpp
xor a
- ld hl, wc300
+ ld hl, wSpriteAnimDict
ld [hli], a
ld [hl], $62
ret