diff options
Diffstat (limited to 'engine')
-rwxr-xr-x | engine/compose_mail.asm | 517 | ||||
-rwxr-xr-x | engine/mon_icons.asm | 35 | ||||
-rwxr-xr-x | engine/money.asm | 2 | ||||
-rwxr-xr-x | engine/namingscreen.asm | 985 | ||||
-rwxr-xr-x | engine/sprite_anims.asm | 2 | ||||
-rwxr-xr-x | engine/trade/animation.asm | 52 |
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 |