From 7d025bbf57b71187740ad080c752e187f0ca434b Mon Sep 17 00:00:00 2001 From: James Petersen Date: Sun, 17 Aug 2025 18:59:56 -0300 Subject: [PATCH] Finish Documenting Naming Screen and Extract `namein` NARC (#682) --- include/applications/naming_screen.h | 15 +- platinum.us/filesys.csv | 2 +- platinum.us/filesys.sha1 | 2 +- res/graphics/meson.build | 1 + res/graphics/naming_screen/meson.build | 105 + .../naming_screen/naming_screen.order | 19 + res/graphics/naming_screen/naming_screen.pal | 259 ++ .../naming_screen/naming_screen_bg.NSCR | Bin 0 -> 1572 bytes .../naming_screen_chars_bg_0.NSCR | Bin 0 -> 932 bytes .../naming_screen_chars_bg_1.NSCR | Bin 0 -> 932 bytes .../naming_screen_chars_bg_2.NSCR | Bin 0 -> 932 bytes .../naming_screen_chars_bg_3.NSCR | Bin 0 -> 932 bytes .../naming_screen/naming_screen_dummy_0.png | Bin 0 -> 548 bytes .../naming_screen/naming_screen_dummy_1.NSCR | Bin 0 -> 1572 bytes .../naming_screen/naming_screen_dummy_2.NSCR | Bin 0 -> 1572 bytes .../naming_screen/naming_screen_dummy_3.NSCR | Bin 0 -> 1572 bytes .../naming_screen_main_tiles.png | Bin 0 -> 1210 bytes .../naming_screen/naming_screen_sprites.pal | 259 ++ .../naming_screen/naming_screen_sprites.png | Bin 0 -> 4566 bytes .../naming_screen_sprites_anim.json | 1060 +++++++ .../naming_screen_sprites_cell.json | 2610 +++++++++++++++++ .../naming_screen_unk_sprite.png | Bin 0 -> 381 bytes .../naming_screen_unk_sprite_anim.json | 76 + .../naming_screen_unk_sprite_cell.json | 1070 +++++++ .../naming_screen/naming_screen_unk_tiles.png | Bin 0 -> 251 bytes res/prebuilt/data/meson.build | 1 - res/prebuilt/data/namein.narc | Bin 16292 -> 0 bytes res/text/generic_names.gmm | 76 +- src/applications/naming_screen.c | 643 ++-- .../rowan_intro/rowan_intro_app.c | 34 +- src/battle/battle_script.c | 2 +- src/overlay064/ov64_0222DCE0.c | 4 +- src/unk_0203D1B8.c | 14 +- src/unk_02098218.c | 2 +- 34 files changed, 5915 insertions(+), 339 deletions(-) create mode 100644 res/graphics/naming_screen/meson.build create mode 100644 res/graphics/naming_screen/naming_screen.order create mode 100644 res/graphics/naming_screen/naming_screen.pal create mode 100644 res/graphics/naming_screen/naming_screen_bg.NSCR create mode 100644 res/graphics/naming_screen/naming_screen_chars_bg_0.NSCR create mode 100644 res/graphics/naming_screen/naming_screen_chars_bg_1.NSCR create mode 100644 res/graphics/naming_screen/naming_screen_chars_bg_2.NSCR create mode 100644 res/graphics/naming_screen/naming_screen_chars_bg_3.NSCR create mode 100644 res/graphics/naming_screen/naming_screen_dummy_0.png create mode 100644 res/graphics/naming_screen/naming_screen_dummy_1.NSCR create mode 100644 res/graphics/naming_screen/naming_screen_dummy_2.NSCR create mode 100644 res/graphics/naming_screen/naming_screen_dummy_3.NSCR create mode 100644 res/graphics/naming_screen/naming_screen_main_tiles.png create mode 100644 res/graphics/naming_screen/naming_screen_sprites.pal create mode 100644 res/graphics/naming_screen/naming_screen_sprites.png create mode 100644 res/graphics/naming_screen/naming_screen_sprites_anim.json create mode 100644 res/graphics/naming_screen/naming_screen_sprites_cell.json create mode 100644 res/graphics/naming_screen/naming_screen_unk_sprite.png create mode 100644 res/graphics/naming_screen/naming_screen_unk_sprite_anim.json create mode 100644 res/graphics/naming_screen/naming_screen_unk_sprite_cell.json create mode 100644 res/graphics/naming_screen/naming_screen_unk_tiles.png delete mode 100644 res/prebuilt/data/namein.narc diff --git a/include/applications/naming_screen.h b/include/applications/naming_screen.h index 1efe277183..1ad669b4f9 100644 --- a/include/applications/naming_screen.h +++ b/include/applications/naming_screen.h @@ -18,15 +18,20 @@ enum NamingScreenType { NAMING_SCREEN_TYPE_PAL_PAD, }; +enum NamingScreenReturnCode { + NAMING_SCREEN_CODE_OK, + NAMING_SCREEN_CODE_NO_INPUT, +}; + typedef struct NamingScreenArgs { enum NamingScreenType type; int playerGenderOrMonSpecies; int monForm; int maxChars; int monGender; - int unk_14; + enum NamingScreenReturnCode returnCode; Strbuf *textInputStr; - u16 unk_1C[20]; + charcode_t nameInputRaw[20]; int battleMsgID; PCBoxes *pcBoxes; Options *options; @@ -37,9 +42,9 @@ extern const ApplicationManagerTemplate gNamingScreenAppTemplate; NamingScreenArgs *NamingScreenArgs_Init( enum HeapId heapID, enum NamingScreenType type, - int param2, - int param3, + int playerGenderOrMonSpecies, + int maxChars, Options *options); -void NamingScreenArgs_Free(NamingScreenArgs *param0); +void NamingScreenArgs_Free(NamingScreenArgs *args); #endif // POKEPLATINUM_KEYBOARD_H diff --git a/platinum.us/filesys.csv b/platinum.us/filesys.csv index 67ccc2371b..b3c9e7df08 100644 --- a/platinum.us/filesys.csv +++ b/platinum.us/filesys.csv @@ -49,7 +49,7 @@ res/prebuilt/data/miniasasea.nsbtx,/data/miniasasea.nsbtx res/prebuilt/data/minihamabe.nsbtx,/data/minihamabe.nsbtx res/prebuilt/data/minimum.nsbtx,/data/minimum.nsbtx res/prebuilt/data/minirhana.nsbtx,/data/minirhana.nsbtx -res/prebuilt/data/namein.narc,/data/namein.narc +res/graphics/naming_screen/namein.narc,/data/namein.narc res/prebuilt/data/nfont.NCGR,/data/nfont.NCGR res/prebuilt/data/nfont.NCLR,/data/nfont.NCLR res/prebuilt/data/pc.nsbca,/data/pc.nsbca diff --git a/platinum.us/filesys.sha1 b/platinum.us/filesys.sha1 index 95142f020f..7170d62272 100644 --- a/platinum.us/filesys.sha1 +++ b/platinum.us/filesys.sha1 @@ -48,7 +48,7 @@ b6c7a3b01146ef7a8e5cd0c583a6185a62fce803 *res/prebuilt/data/miniasasea.nsbtx 0634ba96cde00f4ae9417aa3b503925272480752 *res/prebuilt/data/minihamabe.nsbtx 71f4cedade64a030172afc432049106ad198e0e6 *res/prebuilt/data/minimum.nsbtx 4bd3072a3c2e0d833feb9ce6c4b8264c73cf3c29 *res/prebuilt/data/minirhana.nsbtx -8138e762591a993179132f20550ca3c94aba6b9d *res/prebuilt/data/namein.narc +8138e762591a993179132f20550ca3c94aba6b9d *res/graphics/naming_screen/namein.narc 5d5c14fcfa0f8534c2eec79ffa945d01f4c547b4 *res/prebuilt/data/nfont.NCGR 9eae4f97e9e97b6cd427c95def1c166ea868da43 *res/prebuilt/data/nfont.NCLR bbec5b2143b48f7439efa8eb285b69635f3720fa *res/prebuilt/data/pc.nsbca diff --git a/res/graphics/meson.build b/res/graphics/meson.build index 4456cfd499..33891b127f 100644 --- a/res/graphics/meson.build +++ b/res/graphics/meson.build @@ -1,3 +1,4 @@ +subdir('naming_screen') subdir('options_menu') subdir('pokemon_summary_screen') subdir('scroll_prompts') diff --git a/res/graphics/naming_screen/meson.build b/res/graphics/naming_screen/meson.build new file mode 100644 index 0000000000..1a80023463 --- /dev/null +++ b/res/graphics/naming_screen/meson.build @@ -0,0 +1,105 @@ +naming_screen_pngs = files( + 'naming_screen_main_tiles.png', + 'naming_screen_dummy_0.png', + 'naming_screen_unk_tiles.png', +) + +naming_screen_sprites_pngs = files( + 'naming_screen_sprites.png', + 'naming_screen_unk_sprite.png', +) + +naming_screen_pals = files( + 'naming_screen.pal', + 'naming_screen_sprites.pal', +) + +naming_screen_cell_jsons = files( + 'naming_screen_sprites_cell.json', + 'naming_screen_unk_sprite_cell.json', +) + +naming_screen_anim_jsons = files( + 'naming_screen_sprites_anim.json', + 'naming_screen_unk_sprite_anim.json', +) + +naming_screen_nscrs = files( + 'naming_screen_bg.NSCR', + 'naming_screen_dummy_1.NSCR', + 'naming_screen_chars_bg_0.NSCR', + 'naming_screen_chars_bg_1.NSCR', + 'naming_screen_chars_bg_2.NSCR', + 'naming_screen_chars_bg_3.NSCR', + 'naming_screen_dummy_2.NSCR', + 'naming_screen_dummy_3.NSCR', +) + +naming_screen_sprites_ncgr_lzs = ncgr_lz_gen.process(naming_screen_sprites_pngs, + extra_args: [ + '-clobbersize', + '-version101', + '-mappingtype', '0', + '-nopad', + ] +) + +naming_screen_ncgr_lzs = ncgr_lz_gen.process(naming_screen_pngs, + extra_args: [ + '-sopc', + '-version101', + '-nopad', + ] +) + +naming_screen_nclrs = nclr_gen.process(naming_screen_pals, + extra_args: [ + '-bitdepth', '4', + ] +) + +naming_screen_ncer_lzs = ncer_lz_gen.process(naming_screen_cell_jsons, + extra_args: [ + '-nopad', + ] +) + +naming_screen_nanr_lzs = nanr_lz_gen.process(naming_screen_anim_jsons, + extra_args: [ + '-nopad', + ] +) + +naming_screen_nscr_lzs = lz_gen.process(naming_screen_nscrs, + extra_args: [ + '-nopad', + ] +) + +naming_screen_order = files('naming_screen.order') + +naming_screen_narc = custom_target('namein.narc', + output: [ + 'namein.narc', + 'namein.naix.h', + ], + input: [ + naming_screen_ncgr_lzs, + naming_screen_sprites_ncgr_lzs, + naming_screen_nclrs, + naming_screen_ncer_lzs, + naming_screen_nanr_lzs, + naming_screen_nscr_lzs, + naming_screen_order, + ], + command: [ + narc_exe, 'create', + '--naix', + '--order', naming_screen_order, + '--output', '@OUTPUT0@', + '@PRIVATE_DIR@', + ] +) + +nitrofs_files += naming_screen_narc +naix_headers += naming_screen_narc[1] diff --git a/res/graphics/naming_screen/naming_screen.order b/res/graphics/naming_screen/naming_screen.order new file mode 100644 index 0000000000..32340d1da8 --- /dev/null +++ b/res/graphics/naming_screen/naming_screen.order @@ -0,0 +1,19 @@ +naming_screen.NCLR +naming_screen_sprites.NCLR +naming_screen_main_tiles.NCGR.lz +naming_screen_dummy_0.NCGR.lz +naming_screen_bg.NSCR.lz +naming_screen_dummy_1.NSCR.lz +naming_screen_chars_bg_0.NSCR.lz +naming_screen_chars_bg_1.NSCR.lz +naming_screen_chars_bg_2.NSCR.lz +naming_screen_chars_bg_3.NSCR.lz +naming_screen_sprites.NCGR.lz +naming_screen_unk_sprite.NCGR.lz +naming_screen_sprites_cell.NCER.lz +naming_screen_unk_sprite_cell.NCER.lz +naming_screen_sprites_anim.NANR.lz +naming_screen_unk_sprite_anim.NANR.lz +naming_screen_unk_tiles.NCGR.lz +naming_screen_dummy_2.NSCR.lz +naming_screen_dummy_3.NSCR.lz diff --git a/res/graphics/naming_screen/naming_screen.pal b/res/graphics/naming_screen/naming_screen.pal new file mode 100644 index 0000000000..72646a52c2 --- /dev/null +++ b/res/graphics/naming_screen/naming_screen.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +238 189 255 +246 246 230 +172 180 213 +82 82 189 +123 139 189 +213 213 222 +98 98 197 +0 0 0 +0 0 0 +0 0 0 +222 246 131 +222 238 115 +213 238 98 +213 230 74 +16 24 32 +172 189 189 +189 189 255 +139 139 139 +246 131 115 +255 205 189 +255 222 205 +238 180 49 +255 222 164 +255 238 189 +74 238 123 +180 255 213 +213 255 238 +32 205 238 +189 230 255 +213 238 255 +16 24 32 +164 164 164 +205 106 255 +197 238 106 +189 238 74 +148 230 131 +156 222 82 +106 189 106 +197 246 164 +205 246 172 +106 205 139 +82 180 115 +115 213 123 +0 0 0 +0 0 0 +164 189 106 +205 246 156 +90 123 98 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/res/graphics/naming_screen/naming_screen_bg.NSCR b/res/graphics/naming_screen/naming_screen_bg.NSCR new file mode 100644 index 0000000000000000000000000000000000000000..cab16df3e80cf98101c8c0d6caba1b0eab195fc3 GIT binary patch literal 1572 zcmeH{K@Ng25Jg{Al%)$VfR-S~&}u-`F5tqRO#O`~pk1(#dC6qbn|rsAIzQ-5t#iONVXef#xyGFpDZwiBKI>elu)RD8b$tRU?5NbCV|N^ okQgA({pBJPsHC4f_iupPzm=@;+a>^W|3raFWWdb=TfjL00GtT(NdN!< literal 0 HcmV?d00001 diff --git a/res/graphics/naming_screen/naming_screen_chars_bg_3.NSCR b/res/graphics/naming_screen/naming_screen_chars_bg_3.NSCR new file mode 100644 index 0000000000000000000000000000000000000000..7b04c5190c59c92831edb27f47d8614c6bb59039 GIT binary patch literal 932 zcmWG?4)**1kAZOsGXsMF10#c9kaO@9Ae(`)07x(}GyvJv0y_n&$bfYMU?Ui22vi8v z0^wXBB!#Yo>#rwCAIzQ_5t#iuNVXef#yl$NpDi$lBKI>e)KI8@9!36VU?5NbE`ixH okQgA({q-UPx# literal 0 HcmV?d00001 diff --git a/res/graphics/naming_screen/naming_screen_dummy_0.png b/res/graphics/naming_screen/naming_screen_dummy_0.png new file mode 100644 index 0000000000000000000000000000000000000000..2751a8016d631d67f08a300422e88ec121977720 GIT binary patch literal 548 zcmV+<0^9wGP)R00000007?hgWm3Q)$U@|=1LG4AgsN;hzt1}00056 zNklsOgA!<*{S}b^Y4QR@v0G8{9Dh92W_E&N^p&8=qNg%?P~V zJq3Z3i`yNvelX0`5rN;QellCo$Z@#DOUrHnaPkAQH9}YJMr=qZdNRS*MU9EehcEquy56rGz)*$i3DzK*JkbPT$r^o>J|$u za0aRnx7_eKB+VeWyp*HE&&Zi{gdKbVE1+&Rq|cof81lj0zJP>w8v?kU(w|2~SJVo? z8K8s5Fu0L>0&6>S*qC;X!Se(R6>zZ!(8UdgPZWU1X!Ol+?HZVO NY|x^UVCS@Kcn5D}p1A-3 literal 0 HcmV?d00001 diff --git a/res/graphics/naming_screen/naming_screen_dummy_2.NSCR b/res/graphics/naming_screen/naming_screen_dummy_2.NSCR new file mode 100644 index 0000000000000000000000000000000000000000..d3c5f0e9a5e51179615ab570346fd75d6d88b2be GIT binary patch literal 1572 zcmeIvy$XXc6b0Y}p_6FTxSzrq{kQr8?hg9GeX_Qpi-lB3S~}VLLAcA|gk+i4`F<0U zCn1!OVqT_In_bAOIn0<{;@HkOHvH$S7l;r;xuCMdj98&YB zGw2Pqky-5__xl69VDRK~|J=&wUi|~c4M$_}%D?%MoqU26mk*^(*rG%4g1x0<%Li+K Buu%X2 literal 0 HcmV?d00001 diff --git a/res/graphics/naming_screen/naming_screen_dummy_3.NSCR b/res/graphics/naming_screen/naming_screen_dummy_3.NSCR new file mode 100644 index 0000000000000000000000000000000000000000..b79e861ca6a3e581231d12bf4ae0c34b5769c222 GIT binary patch literal 1572 zcmeIvI}3v_6b0afLMMj~1>bTCXVlrZ4(<;6hx^Ogrc`v$1f+Db`5@foaPLiqZtR~A zA$bP*?JRwK3e6YUHu!h3${wLD?k6pMrzsPJ--JZwH|8&pB@X8 LsPtGFlq~oHjEc5n literal 0 HcmV?d00001 diff --git a/res/graphics/naming_screen/naming_screen_main_tiles.png b/res/graphics/naming_screen/naming_screen_main_tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..1e9037b2740a94a874355500c76fa25ca5beb38e GIT binary patch literal 1210 zcmXX`e>jr~9RI$1$JWLsr!bTEa2l#-Pn|UG^oHd}YYF{$%4Nk(t7xcB=)8Vh=PFG< zBzb68VfCn#I#ajvK6e*NHO_4c4>~*j(xx(#u64TZ^T+4c^ZEPpLyS1Wp21-NfPGYC zcq{-iZ2_mE(@e{}Rx&O87*V{?sChpzF;ag`7aOa|IjGU;2DWUu^FEo@T z!3FulJ|)4PfpYPXi!7o0k|QQG_|?oO=a$}P7FRrM+j>G#W{8X@CTY|KmO8=d7iNH|6@$s5o)Q?3tO1vA z{y95X-gDXw9t?i6A>t-?$T1#~Se4Cpvk)>}Js6-hj_#**B$I<(CMSN{Q_Ej!ci%_q zv%~a2pf&Cs3?~9XoCYdDq4%If5RIA9{=#& z6%%?Ep(`y~lemWz? zQUvx<9PUwIii(|@4b~f*Zgek#h8_xw@b6i%F${$li6mk;AP&BQ5R3Uk@W4A;7Q7HT z7upJ;D+x00+d72VVvl#g%tatbL5qu#_U05qK=fy`pxMlYjOPL{=>5^oWjQ{mi<2TW zh+Slz3YxZ@12d~=p?UkN5Ieu^-wXb)$GM*`Wn1SH?o9k%I&s2AIkE(Aqr_x#m8nR( zfJr*1L82PTePlZ(6yO(DXzF5PAaWxIuTetj9+9lfmj~yjJoc=rQPPLvWXF9m5YUdO zwa9Ugw*JR(N8xGAgn+qY^xED-(^GlN8VdPNJOeC!HITWPK_~xA>_~xH>xK}NZ|-^J z3T8Cx%X8Ox$*bfK;v`}2Pm1(sM2tD&u(;PRvm>^z_OW5to!l1kq~K#c6Os5~k|qZ1 zqc2fWa1Y9+HHeapXlEniv%$_8erLj&Xs~-uAsZHaln!(k8c1StG{Gi~XjF3W)DzOr z;LR*BtbNTrnV!cJGX_gh}<~03@}voHn0LX6Ys`o?69cOw=!4!=+|y&`*UHdtoE66zJG>}Lh9PD?xS&*gtS>yWZQe+YNQ%@1qIgC4;`W9J(^=) ULmPcc12#CD6+oB9*cw}H(KSGK zLma2MwnmFa_dG8pQlwr=uWY(fa(;k(@Vy?pfW%ZD#XD*#Py0W@gUbsbtYP2(e` zjGKNs`DwI`2V*>Di1;an5hFi9zlQ<0dBE6$Xw4W&K4Q87tv!Zf2B{}AIwUh0!-Ux# zr>>Sc3FBI9OEE}Y&p9*UHLRFninqbh=0DzzdE)McSDKP65P zL`z`ZgtaXcF9pd>7=3-0UU-R67Ufr&FqY2iQGYe+U(dKEQr8&j@T*n-%=)rFsS#p? z3?XSDL!rgYAlanju~>}iUj{N3k}-^B91EMH0%JutbgZJ8Oj3tT5?idx28w=E<_Jlv zwS^boa{XJBiPXPPJS0@t2zB_?s()sEiA1RaMJxdsZe)6 z4fK@NzZhHf+3P>6#g?Ya_0IgiHxb1FTm<4`kv@jq2n|?4;?5&%)n~8&td_c5|9mpB`X^e~ zdW7$5MXij}r_d;PmH>YCpsRwsR}f2_!enz>F)n2W_qB(Nr~Rk2v&jWFKfCgMfl zAcKlGw-LoeB!pd7=Auz2;-%%Fy(Scn&-Xfc1J%EOoSmI5;%})G2mPksEV(eG(A>zL z`FU2v58cj)`1L>8|0L~vqBiLX`};Azi8B*_#BT4CIB+Hf6TMHSiY>N{MoaNIa`l`n!>uyHr5D$ClgUN? z6#T?>@Hv3lzY(58q-1{~TVOl7evGB_^D5rHex9=H3FfDgpM5BJ@Y}BxL9hl?6_HMN z?t)=;m|+;Z>M*s^WnFYr0o~HDOC44Lx63Bd#g+=eVH}k^)39}93>-0{9ZE~kaN-F%s<`dV!=O{>rl$Qk85FyM3yVYW_4;c@(UxZFIPuPAn)>n)1+k;xsv_K1D zkEdTZVUKgZZns}x1DmAwUA=7ytcOa^keULMZKCXn194Qg|k8VfkCO#aaF9x;p$Gz-{e(*nWm_ zdjO1It^XAmW9!!wN-f%E`+e0g3|KR^W()#jV}w$RZ7ZJ-{l>-uV=!i{H_8woxcma- zx1MGxN5D1TD}Wz;1-?pHLl|3M+UEaBVrEDs#J$0?CU87h)&%?v|NUNZ`n7w(@BCHC zS~(hC32VVKVdYr1#hHDc^ZrE3hTHGaN-l@lwhF(%bLe;L;lqT0)k3)Z z)*KF`;4n@IYY2xe)E{4*&bK&ehzIq4DBkUd2<=`FHGAjP>p}DQ@y{dAgt_3Eum$F? z(M86uI@GBAHT&~}%2?P#Hu{RI%D<=UV@#~}Ic=Le7B4^1`5G;*IwAT!8s*pQxbgGn z^Zljo-`5!idxzFk`CHocvk!W4gn@4HCd;2Ngs!Xp=TF$LJd9?{UxW0wqs zX2a_4Dpq{e`$5X*0P+muBI#75jp13ir~#xHgn0ZMnK|z zMO52q^)bO5EzrdF+`#;a`3a&?)>OF?^lK)wf5N<)euw7m_ZHzYqMBF9@>YqUQeuPW zXBM4Wo)r#K@v}8O&Em=N6D+MFg;ltW@{6dK-9(^2hrHSLesuqY%#w!LPu59jB3!FiWiF+B!$5O8lrniUMws~({GdfWeBxnt9n$9_;{%s zbf?%($q@>}j*9OWO2MWh`Auev=f_K3TjS)@82zy$ZR0<1k?Qhehn5{_8>;%9CD0!y z7M}iiu`KJa@mRS2?84(!|LjU*!!wC4)QrlZKW8kS`g6sytiQ%%;re5h#wt86KU;sS z(%6N^Gl?$LjLM-uXDpujbH#Ea>(4J+fveILcZ6zqv9)U`B>T2o+XgXf5~c375bou* z_ptSstB939LyW$Sp-rEY*$=Fa6WTDAJE;4OtJIw*9Hh`LLFgOublJqm2{{X{ZK5_k zbV3GcWJd=!e~Z)Kd@2htHIfBMy)**T!?V|5`t;=jMm017=^e3AFy1tBkj=gdaB6ZG zz!-f8;9W(}!C>@}TzxwiFeyj36w-Ys5U3`^cHDZN{$OLO3+$WB!RX9cII$6-Y{zX? zZpIp5D};n4FNOR}@z)k16Tg56U3Q$n6QQUv@pDBep$Os6PmO@|?Sq$1@$*GEN+NtB z2Yv56(dCY1(e`q1YXN3{AG{B5@c#u`we)rQb{ov)d;hDbK z7#O>^Dv*71ybJXg?Lz%cok#s`%)#YL8v&jfdMQ^mjD?u=;ANEF8y6qJ<^?Px(j-ag zzrRpIsk(hcm)`&R5hAp?sjk1DB|KQei8Kg>`O#HP)Sh%LrbJ3b2^t1&YcqV>Z zgy%_wc@m-2^>-2>UVmrK?w&WrUoOJa2^8UJ65(iqK20*s717vtt2M0Yb$XTXr5ZX7F`a&CX?41Vr_&#hPG3KPI!z6hbh?G3 zQzH*@2z7eb9sjfxI^Bn>!`J_79qCjDPo0L_Hv@ce4G!v$HIq(1lY(bIGoaP*NY+`yz#RO z2K?sNR~`l<-})06G1AB2cOSo+gR>vwq0LU>{<7GES6}-Uz%5sCTYB?T^`uYC@{;~E zz=b;zQ)vR-B1e-#maLL&V5c#XX|>}HYpCc8p9Wb+t7 ze(D4%F`C93_l@9Q|D`uSa27>~_bHF3M{_XTft66&*!WBIa{a4rp3;MMl%DkK`Bspg zLJ9DtmnZ2xokQvU<}^IEdHQrc`4h64vxT3+%pXvCQtsSO>09yjq>rNN9!{g`4w3Yx z5-7bWUHv&)6|qn0HQSQBtaEhfSCZj-@u+S~83r7=*TgC6X0dgOVbXl3ltrWex!{zE zY?fgXyQi|)nnVb^qVsqU#_txR!U$L_#i($?4(hQz>I~WV)5DGG6;lLim%Gs zIU7ePbnaA=$LL!Q5{4`cmVa}lohhsXzx1|tg2Dt>Y?aR! z#*YnA*22%@K~Wf}%UYHnJ7E=uHbRGmHq%A1>Py%W8cm;8aND3V1e=cBLt(U8@uf>$ zij>8N=z#RvO-JYx_5@0?%OYie&%l0dmo62Qc2{ULeLGFxLDQ#)+A*}Ddk6}lgZ~!` ziZVn$W=S)IOYxNu3R&6hU^}N@xUtaOpt8wA3**=7SWBQU*fG@cDHOqQ#h**?z|y{; zeb|?_ey=0{H+j#PA5ATP0`+ ztq4us5CoaR2zGa>pneeC3EBspLC_D#GU$3YV#5Iqz86&Q#4tAKh`k5k0Ig4V9?-f$ z-mA$bG#$GKdT{4Dp&KK@0nDjJ=G!j?n$cSU^5msYA( z{tCasMRNN&1|;hjJ!QY3kSYcwCtNP}K;D7>18!mQ-ED6xN&o-=07*qoM6N<$f>EUW A>;M1& literal 0 HcmV?d00001 diff --git a/res/graphics/naming_screen/naming_screen_sprites_anim.json b/res/graphics/naming_screen/naming_screen_sprites_anim.json new file mode 100644 index 0000000000..e263784163 --- /dev/null +++ b/res/graphics/naming_screen/naming_screen_sprites_anim.json @@ -0,0 +1,1060 @@ +{ + "labelEnabled": true, + "sequenceCount": 61, + "frameCount": 126, + "sequences": [{ + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 0 + }] + }, { + "frameCount": 3, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 0 + }, { + "frameDelay": 16, + "resultId": 1 + }, { + "frameDelay": 60, + "resultId": 0 + }] + }, { + "frameCount": 2, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 0 + }, { + "frameDelay": 60, + "resultId": 2 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 2 + }] + }, { + "frameCount": 3, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 2 + }, { + "frameDelay": 16, + "resultId": 3 + }, { + "frameDelay": 60, + "resultId": 0 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 4 + }] + }, { + "frameCount": 3, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 4 + }, { + "frameDelay": 16, + "resultId": 5 + }, { + "frameDelay": 60, + "resultId": 4 + }] + }, { + "frameCount": 2, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 4 + }, { + "frameDelay": 60, + "resultId": 6 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 6 + }] + }, { + "frameCount": 3, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 6 + }, { + "frameDelay": 16, + "resultId": 7 + }, { + "frameDelay": 60, + "resultId": 4 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 8 + }] + }, { + "frameCount": 3, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 8 + }, { + "frameDelay": 16, + "resultId": 9 + }, { + "frameDelay": 60, + "resultId": 8 + }] + }, { + "frameCount": 2, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 8 + }, { + "frameDelay": 60, + "resultId": 10 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 10 + }] + }, { + "frameCount": 3, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 10 + }, { + "frameDelay": 16, + "resultId": 11 + }, { + "frameDelay": 60, + "resultId": 8 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 12 + }] + }, { + "frameCount": 3, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 12 + }, { + "frameDelay": 16, + "resultId": 13 + }, { + "frameDelay": 60, + "resultId": 12 + }] + }, { + "frameCount": 2, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 12 + }, { + "frameDelay": 60, + "resultId": 14 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 14 + }] + }, { + "frameCount": 3, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 14 + }, { + "frameDelay": 16, + "resultId": 15 + }, { + "frameDelay": 60, + "resultId": 12 + }] + }, { + "frameCount": 2, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 1, + "frameData": [{ + "frameDelay": 8, + "resultId": 16 + }, { + "frameDelay": 1, + "resultId": 17 + }] + }, { + "frameCount": 2, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 1, + "frameData": [{ + "frameDelay": 8, + "resultId": 18 + }, { + "frameDelay": 16, + "resultId": 17 + }] + }, { + "frameCount": 2, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 1, + "frameData": [{ + "frameDelay": 8, + "resultId": 19 + }, { + "frameDelay": 16, + "resultId": 17 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 1, + "frameData": [{ + "frameDelay": 4, + "resultId": 20 + }] + }, { + "frameCount": 2, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 1, + "frameData": [{ + "frameDelay": 8, + "resultId": 21 + }, { + "frameDelay": 60, + "resultId": 20 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 22 + }] + }, { + "frameCount": 2, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 1, + "frameData": [{ + "frameDelay": 8, + "resultId": 23 + }, { + "frameDelay": 60, + "resultId": 22 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 24 + }] + }, { + "frameCount": 3, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 24 + }, { + "frameDelay": 16, + "resultId": 25 + }, { + "frameDelay": 60, + "resultId": 24 + }] + }, { + "frameCount": 2, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 24 + }, { + "frameDelay": 60, + "resultId": 26 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 26 + }] + }, { + "frameCount": 3, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 26 + }, { + "frameDelay": 16, + "resultId": 27 + }, { + "frameDelay": 60, + "resultId": 24 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 28 + }] + }, { + "frameCount": 3, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 28 + }, { + "frameDelay": 16, + "resultId": 29 + }, { + "frameDelay": 60, + "resultId": 28 + }] + }, { + "frameCount": 2, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 28 + }, { + "frameDelay": 60, + "resultId": 30 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 30 + }] + }, { + "frameCount": 3, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 60, + "resultId": 30 + }, { + "frameDelay": 16, + "resultId": 31 + }, { + "frameDelay": 60, + "resultId": 28 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 32 + }] + }, { + "frameCount": 4, + "loopStartFrame": 0, + "animationElement": 2, + "animationType": 1, + "playbackMode": 1, + "frameData": [{ + "frameDelay": 2, + "resultId": 33 + }, { + "frameDelay": 2, + "resultId": 34 + }, { + "frameDelay": 2, + "resultId": 35 + }, { + "frameDelay": 60, + "resultId": 36 + }] + }, { + "frameCount": 4, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 8, + "resultId": 37 + }, { + "frameDelay": 8, + "resultId": 38 + }, { + "frameDelay": 8, + "resultId": 39 + }, { + "frameDelay": 8, + "resultId": 38 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 40 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 41 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 42 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 43 + }] + }, { + "frameCount": 4, + "loopStartFrame": 0, + "animationElement": 2, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 6, + "resultId": 44 + }, { + "frameDelay": 3, + "resultId": 45 + }, { + "frameDelay": 3, + "resultId": 46 + }, { + "frameDelay": 4, + "resultId": 45 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 47 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 48 + }] + }, { + "frameCount": 4, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 6, + "resultId": 49 + }, { + "frameDelay": 6, + "resultId": 50 + }, { + "frameDelay": 6, + "resultId": 51 + }, { + "frameDelay": 6, + "resultId": 52 + }] + }, { + "frameCount": 4, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 12, + "resultId": 53 + }, { + "frameDelay": 12, + "resultId": 54 + }, { + "frameDelay": 12, + "resultId": 55 + }, { + "frameDelay": 12, + "resultId": 54 + }] + }, { + "frameCount": 4, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 12, + "resultId": 56 + }, { + "frameDelay": 12, + "resultId": 57 + }, { + "frameDelay": 12, + "resultId": 58 + }, { + "frameDelay": 12, + "resultId": 57 + }] + }, { + "frameCount": 2, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 20, + "resultId": 59 + }, { + "frameDelay": 3, + "resultId": 60 + }] + }, { + "frameCount": 4, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 12, + "resultId": 61 + }, { + "frameDelay": 12, + "resultId": 62 + }, { + "frameDelay": 12, + "resultId": 63 + }, { + "frameDelay": 12, + "resultId": 62 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 64 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 65 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 66 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 67 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 68 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 69 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 70 + }] + }, { + "frameCount": 1, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 2, + "frameData": [{ + "frameDelay": 4, + "resultId": 71 + }] + }, { + "frameCount": 9, + "loopStartFrame": 0, + "animationElement": 0, + "animationType": 1, + "playbackMode": 1, + "frameData": [{ + "frameDelay": 2, + "resultId": 72 + }, { + "frameDelay": 2, + "resultId": 73 + }, { + "frameDelay": 2, + "resultId": 74 + }, { + "frameDelay": 2, + "resultId": 75 + }, { + "frameDelay": 2, + "resultId": 76 + }, { + "frameDelay": 2, + "resultId": 75 + }, { + "frameDelay": 2, + "resultId": 74 + }, { + "frameDelay": 2, + "resultId": 73 + }, { + "frameDelay": 2, + "resultId": 72 + }] + }], + "animationResults": [{ + "resultType": 0, + "index": 0 + }, { + "resultType": 0, + "index": 1 + }, { + "resultType": 0, + "index": 2 + }, { + "resultType": 0, + "index": 3 + }, { + "resultType": 0, + "index": 4 + }, { + "resultType": 0, + "index": 5 + }, { + "resultType": 0, + "index": 6 + }, { + "resultType": 0, + "index": 7 + }, { + "resultType": 0, + "index": 8 + }, { + "resultType": 0, + "index": 9 + }, { + "resultType": 0, + "index": 10 + }, { + "resultType": 0, + "index": 11 + }, { + "resultType": 0, + "index": 12 + }, { + "resultType": 0, + "index": 13 + }, { + "resultType": 0, + "index": 14 + }, { + "resultType": 0, + "index": 15 + }, { + "resultType": 0, + "index": 16 + }, { + "resultType": 0, + "index": 51 + }, { + "resultType": 0, + "index": 17 + }, { + "resultType": 0, + "index": 18 + }, { + "resultType": 0, + "index": 19 + }, { + "resultType": 0, + "index": 20 + }, { + "resultType": 0, + "index": 21 + }, { + "resultType": 0, + "index": 22 + }, { + "resultType": 0, + "index": 23 + }, { + "resultType": 0, + "index": 24 + }, { + "resultType": 0, + "index": 25 + }, { + "resultType": 0, + "index": 26 + }, { + "resultType": 0, + "index": 27 + }, { + "resultType": 0, + "index": 28 + }, { + "resultType": 0, + "index": 29 + }, { + "resultType": 0, + "index": 30 + }, { + "resultType": 0, + "index": 31 + }, { + "resultType": 2, + "index": 31, + "positionX": 4, + "positionY": 0 + }, { + "resultType": 2, + "index": 31, + "positionX": -2, + "positionY": 0 + }, { + "resultType": 2, + "index": 31, + "positionX": 2, + "positionY": 0 + }, { + "resultType": 2, + "index": 31, + "positionX": 0, + "positionY": 0 + }, { + "resultType": 0, + "index": 32 + }, { + "resultType": 0, + "index": 37 + }, { + "resultType": 0, + "index": 38 + }, { + "resultType": 0, + "index": 33 + }, { + "resultType": 0, + "index": 34 + }, { + "resultType": 0, + "index": 35 + }, { + "resultType": 0, + "index": 36 + }, { + "resultType": 2, + "index": 36, + "positionX": 0, + "positionY": 0 + }, { + "resultType": 2, + "index": 36, + "positionX": 0, + "positionY": 1 + }, { + "resultType": 2, + "index": 36, + "positionX": 0, + "positionY": 2 + }, { + "resultType": 0, + "index": 39 + }, { + "resultType": 0, + "index": 40 + }, { + "resultType": 0, + "index": 41 + }, { + "resultType": 0, + "index": 42 + }, { + "resultType": 0, + "index": 43 + }, { + "resultType": 0, + "index": 44 + }, { + "resultType": 0, + "index": 45 + }, { + "resultType": 0, + "index": 46 + }, { + "resultType": 0, + "index": 47 + }, { + "resultType": 0, + "index": 48 + }, { + "resultType": 0, + "index": 49 + }, { + "resultType": 0, + "index": 50 + }, { + "resultType": 0, + "index": 52 + }, { + "resultType": 0, + "index": 53 + }, { + "resultType": 0, + "index": 54 + }, { + "resultType": 0, + "index": 55 + }, { + "resultType": 0, + "index": 56 + }, { + "resultType": 0, + "index": 57 + }, { + "resultType": 0, + "index": 58 + }, { + "resultType": 0, + "index": 59 + }, { + "resultType": 0, + "index": 60 + }, { + "resultType": 0, + "index": 61 + }, { + "resultType": 0, + "index": 62 + }, { + "resultType": 0, + "index": 63 + }, { + "resultType": 0, + "index": 64 + }, { + "resultType": 0, + "index": 65 + }, { + "resultType": 0, + "index": 66 + }, { + "resultType": 0, + "index": 67 + }, { + "resultType": 0, + "index": 68 + }, { + "resultType": 0, + "index": 69 + }], + "resultCount": 77, + "labels": ["CellAnime0", "CellAnime1", "CellAnime2", "CellAnime3", "CellAnime4", "CellAnime5", "CellAnime6", "CellAnime7", "CellAnime8", "CellAnime9", "CellAnime10", "CellAnime11", "CellAnime12", "CellAnime13", "CellAnime14", "CellAnime15", "CellAnime16", "CellAnime17", "CellAnime18", "CellAnime19", "CellAnime20", "CellAnime21", "CellAnime22", "CellAnime23", "CellAnime24", "CellAnime25", "CellAnime26", "CellAnime27", "CellAnime28", "CellAnime29", "CellAnime30", "CellAnime31", "CellAnime32", "CellAnime33", "CellAnime34", "CellAnime35", "CellAnime36", "CellAnime37", "CellAnime38", "CellAnime39", "CellAnime40", "CellAnime41", "CellAnime42", "CellAnime43", "CellAnime44", "CellAnime45", "CellAnime46", "CellAnime47", "CellAnime48", "CellAnime49", "CellAnime50", "CellAnime51", "CellAnime52", "CellAnime53", "CellAnime54", "CellAnime55", "CellAnime56", "CellAnime57", "CellAnime58", "CellAnime59", "CellAnime60"], + "labelCount": 61 +} \ No newline at end of file diff --git a/res/graphics/naming_screen/naming_screen_sprites_cell.json b/res/graphics/naming_screen/naming_screen_sprites_cell.json new file mode 100644 index 0000000000..a978c0ffc5 --- /dev/null +++ b/res/graphics/naming_screen/naming_screen_sprites_cell.json @@ -0,0 +1,2610 @@ +{ + "labelEnabled": true, + "extended": false, + "vramTransferEnabled": false, + "cellCount": 70, + "mappingType": 0, + "cells": [{ + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 9 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 0 + }, + "oamCount": 0, + "OAM": [] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 9 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 16, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 0 + }, + "oamCount": 0, + "OAM": [] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 9 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 32, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 0 + }, + "oamCount": 0, + "OAM": [] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 9 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 48, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 0 + }, + "oamCount": 0, + "OAM": [] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 9 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 64, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 0 + }, + "oamCount": 0, + "OAM": [] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 9 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 80, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 0 + }, + "oamCount": 0, + "OAM": [] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 9 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 96, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 0 + }, + "oamCount": 0, + "OAM": [] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 7 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 504, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 112, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 0 + }, + "oamCount": 0, + "OAM": [] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 0 + }, + "oamCount": 0, + "OAM": [] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 0 + }, + "oamCount": 0, + "OAM": [] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 0 + }, + "oamCount": 0, + "OAM": [] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 11 + }, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 128, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 32, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 144, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 11 + }, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 148, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 32, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 164, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 11 + }, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 168, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 32, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 184, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 11 + }, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 188, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 32, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 204, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 13 + }, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 0, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 32, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 208, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 0 + }, + "oamCount": 0, + "OAM": [] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 13 + }, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 216, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 32, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 232, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 0 + }, + "oamCount": 0, + "OAM": [] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 13 + }, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 48, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 32, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 240, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 0 + }, + "oamCount": 0, + "OAM": [] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 13 + }, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 248, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 32, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 264, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 0 + }, + "oamCount": 0, + "OAM": [] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 62 + }, + "oamCount": 13, + "OAM": [{ + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 496, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 272, + "Priority": 0, + "Palette": 2 + } + }, { + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 48, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 304, + "Priority": 0, + "Palette": 2 + } + }, { + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 112, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 336, + "Priority": 0, + "Palette": 2 + } + }, { + "Attr0": { + "YCoordinate": 240, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 176, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 368, + "Priority": 0, + "Palette": 2 + } + }, { + "Attr0": { + "YCoordinate": 16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 496, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 400, + "Priority": 0, + "Palette": 2 + } + }, { + "Attr0": { + "YCoordinate": 16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 16, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 408, + "Priority": 0, + "Palette": 2 + } + }, { + "Attr0": { + "YCoordinate": 16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 48, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 416, + "Priority": 0, + "Palette": 2 + } + }, { + "Attr0": { + "YCoordinate": 16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 80, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 424, + "Priority": 0, + "Palette": 2 + } + }, { + "Attr0": { + "YCoordinate": 16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 112, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 432, + "Priority": 0, + "Palette": 2 + } + }, { + "Attr0": { + "YCoordinate": 16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 144, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 440, + "Priority": 0, + "Palette": 2 + } + }, { + "Attr0": { + "YCoordinate": 16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 176, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 448, + "Priority": 0, + "Palette": 2 + } + }, { + "Attr0": { + "YCoordinate": 16, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 208, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 456, + "Priority": 0, + "Palette": 2 + } + }, { + "Attr0": { + "YCoordinate": 32, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 2 + }, + "Attr1": { + "XCoordinate": 196, + "RotationScaling": 0, + "Size": 3 + }, + "Attr2": { + "CharName": 464, + "Priority": 0, + "Palette": 2 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 6 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 496, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": true, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 9 + }, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": 254, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 1, + "RotationScaling": 16, + "Size": 2 + }, + "Attr2": { + "CharName": 500, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 248, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 1, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 500, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": true, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 11 + }, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": 248, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 5, + "RotationScaling": 8, + "Size": 2 + }, + "Attr2": { + "CharName": 508, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 248, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 508, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": true, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 13 + }, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": 248, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 15, + "RotationScaling": 8, + "Size": 2 + }, + "Attr2": { + "CharName": 508, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 248, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 1, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 508, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 5 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 1 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 524, + "Priority": 0, + "Palette": 2 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 6 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 526, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 6 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 530, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 6 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 534, + "Priority": 0, + "Palette": 3 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 6 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 1 + }, + "Attr2": { + "CharName": 538, + "Priority": 0, + "Palette": 3 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 12 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 542, + "Priority": 0, + "Palette": 3 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 12 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 558, + "Priority": 0, + "Palette": 3 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 12 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 574, + "Priority": 0, + "Palette": 3 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 12 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 590, + "Priority": 0, + "Palette": 3 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 12 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 606, + "Priority": 0, + "Palette": 4 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 12 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 622, + "Priority": 0, + "Palette": 4 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 12 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 638, + "Priority": 0, + "Palette": 4 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 12 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 654, + "Priority": 0, + "Palette": 5 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 12 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 670, + "Priority": 0, + "Palette": 5 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 12 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 686, + "Priority": 0, + "Palette": 5 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 3 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 702, + "Priority": 0, + "Palette": 0 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 12 + }, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 703, + "Priority": 0, + "Palette": 6 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 703, + "Priority": 0, + "Palette": 5 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 11 + }, + "oamCount": 2, + "OAM": [{ + "Attr0": { + "YCoordinate": 250, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 703, + "Priority": 0, + "Palette": 6 + } + }, { + "Attr0": { + "YCoordinate": 250, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 703, + "Priority": 0, + "Palette": 5 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 12 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 719, + "Priority": 0, + "Palette": 7 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 12 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 735, + "Priority": 0, + "Palette": 7 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 12 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 751, + "Priority": 0, + "Palette": 7 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 12 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 767, + "Priority": 0, + "Palette": 3 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 12 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 783, + "Priority": 0, + "Palette": 8 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 12 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 799, + "Priority": 0, + "Palette": 8 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 12 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 2 + }, + "Attr2": { + "CharName": 815, + "Priority": 0, + "Palette": 8 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 3 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 831, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": true, + "vFlip": false, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 3 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 504, + "RotationScaling": 8, + "Size": 0 + }, + "Attr2": { + "CharName": 831, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": false, + "vFlip": true, + "hvFlip": false, + "boundingRect": false, + "boundingSphereRadius": 3 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 248, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 16, + "Size": 0 + }, + "Attr2": { + "CharName": 831, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": true, + "vFlip": true, + "hvFlip": true, + "boundingRect": false, + "boundingSphereRadius": 3 + }, + "oamCount": 1, + "OAM": [{ + "Attr0": { + "YCoordinate": 248, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 504, + "RotationScaling": 24, + "Size": 0 + }, + "Attr2": { + "CharName": 831, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": true, + "vFlip": true, + "hvFlip": true, + "boundingRect": false, + "boundingSphereRadius": 6 + }, + "oamCount": 4, + "OAM": [{ + "Attr0": { + "YCoordinate": 8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 8, + "RotationScaling": 24, + "Size": 0 + }, + "Attr2": { + "CharName": 832, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 16, + "Size": 0 + }, + "Attr2": { + "CharName": 832, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 8, + "RotationScaling": 8, + "Size": 0 + }, + "Attr2": { + "CharName": 832, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 832, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": true, + "vFlip": true, + "hvFlip": true, + "boundingRect": false, + "boundingSphereRadius": 6 + }, + "oamCount": 4, + "OAM": [{ + "Attr0": { + "YCoordinate": 8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 8, + "RotationScaling": 24, + "Size": 0 + }, + "Attr2": { + "CharName": 833, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 8, + "RotationScaling": 8, + "Size": 0 + }, + "Attr2": { + "CharName": 833, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 16, + "Size": 0 + }, + "Attr2": { + "CharName": 833, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 833, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": true, + "vFlip": true, + "hvFlip": true, + "boundingRect": false, + "boundingSphereRadius": 6 + }, + "oamCount": 4, + "OAM": [{ + "Attr0": { + "YCoordinate": 8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 8, + "RotationScaling": 24, + "Size": 0 + }, + "Attr2": { + "CharName": 834, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 16, + "Size": 0 + }, + "Attr2": { + "CharName": 834, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 8, + "RotationScaling": 8, + "Size": 0 + }, + "Attr2": { + "CharName": 834, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 834, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": true, + "vFlip": true, + "hvFlip": true, + "boundingRect": false, + "boundingSphereRadius": 6 + }, + "oamCount": 4, + "OAM": [{ + "Attr0": { + "YCoordinate": 8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 8, + "RotationScaling": 24, + "Size": 0 + }, + "Attr2": { + "CharName": 835, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 16, + "Size": 0 + }, + "Attr2": { + "CharName": 835, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 8, + "RotationScaling": 8, + "Size": 0 + }, + "Attr2": { + "CharName": 835, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 835, + "Priority": 0, + "Palette": 1 + } + }] + }, { + "cellAttrs": { + "hFlip": true, + "vFlip": true, + "hvFlip": true, + "boundingRect": false, + "boundingSphereRadius": 6 + }, + "oamCount": 4, + "OAM": [{ + "Attr0": { + "YCoordinate": 8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 8, + "RotationScaling": 24, + "Size": 0 + }, + "Attr2": { + "CharName": 836, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 8, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 16, + "Size": 0 + }, + "Attr2": { + "CharName": 836, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 8, + "RotationScaling": 8, + "Size": 0 + }, + "Attr2": { + "CharName": 836, + "Priority": 0, + "Palette": 1 + } + }, { + "Attr0": { + "YCoordinate": 0, + "Rotation": false, + "SizeDisable": false, + "Mode": 0, + "Mosaic": false, + "Colours": 16, + "Shape": 0 + }, + "Attr1": { + "XCoordinate": 0, + "RotationScaling": 0, + "Size": 0 + }, + "Attr2": { + "CharName": 836, + "Priority": 0, + "Palette": 1 + } + }] + }], + "labels": ["CellAnime0", "CellAnime1", "CellAnime2", "CellAnime3", "CellAnime4", "CellAnime5", "CellAnime6", "CellAnime7", "CellAnime8", "CellAnime9", "CellAnime10", "CellAnime11", "CellAnime12", "CellAnime13", "CellAnime14", "CellAnime15", "CellAnime16", "CellAnime17", "CellAnime18", "CellAnime19", "CellAnime20", "CellAnime21", "CellAnime22", "CellAnime23", "CellAnime24", "CellAnime25", "CellAnime26", "CellAnime27", "CellAnime28", "CellAnime29", "CellAnime30", "CellAnime31", "CellAnime32", "CellAnime33", "CellAnime34", "CellAnime35", "CellAnime36", "CellAnime37", "CellAnime38", "CellAnime39", "CellAnime40", "CellAnime41", "CellAnime42", "CellAnime43", "CellAnime44", "CellAnime45", "CellAnime46", "CellAnime47", "CellAnime48", "CellAnime49", "CellAnime50", "CellAnime51", "CellAnime52", "CellAnime53", "CellAnime54", "CellAnime55", "CellAnime56", "CellAnime57", "CellAnime58", "CellAnime59", "CellAnime60"], + "labelCount": 61 +} \ No newline at end of file diff --git a/res/graphics/naming_screen/naming_screen_unk_sprite.png b/res/graphics/naming_screen/naming_screen_unk_sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..8348a494f1f22b93707f9a2a87ad176810a00ffb GIT binary patch literal 381 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 NGB721GG6rlzW@OsPKp2k diff --git a/res/text/generic_names.gmm b/res/text/generic_names.gmm index 226489fbd9..26b5495f6c 100644 --- a/res/text/generic_names.gmm +++ b/res/text/generic_names.gmm @@ -1,147 +1,147 @@ - + used Plato - + used Ash - + used Nic - + used Jimmy - + used Duncan - + used Todd - + used Ross - + used Steven - + used Darrell - + used Reed - + used Chris - + used Brad - + used Dwight - + used Randy - + used Andy - + used Joey - + used Eric - + used Mark - + used Plato - + used Joelle - + used Britney - + used Kelli - + used Nina - + used Heidi - + used Miriam - + used Teresa - + used Aubrey - + used Kelly - + used Naomi - + used Abby - + used Denise - + used Tamara - + used Linda - + used Faith - + used Mari - + used Maggie @@ -353,11 +353,11 @@ used Dawn - + used Pearl - + used Diamond diff --git a/src/applications/naming_screen.c b/src/applications/naming_screen.c index 5bcd0a977f..27f527b24f 100644 --- a/src/applications/naming_screen.c +++ b/src/applications/naming_screen.c @@ -9,6 +9,8 @@ #include "struct_defs/struct_02099F80.h" +#include "pch/global_pch.h" + #include "bg_window.h" #include "char_transfer.h" #include "charcode.h" @@ -48,8 +50,15 @@ #include "unk_0201567C.h" #include "vram_transfer.h" +#include "res/graphics/naming_screen/namein.naix.h" +#include "res/text/bank/generic_names.h" #include "res/text/bank/naming_screen.h" +// if these are modified, NamingScreen_InitializeCharsGraphics +// and calls to NamingScreen_PrintChars need to be adjusted. +#define NMS_NUM_ROWS 6 +#define NMS_NUM_COLS 13 + enum NamingScreenControlChars { NMS_CONTROL_DAKU = 0xD001, NMS_CONTROL_HANDAKU, @@ -73,10 +82,10 @@ enum NamingScreenAppState { }; enum NamingScreenState { - NMS_STATE_PLACEHOLDER_4 = 4, - NMS_STATE_PLACEHOLDER_5, - NMS_STATE_PLACEHOLDER_6, - NMS_STATE_PLACEHOLDER_7, + NMS_STATE_PROCESS_INPUTS = 4, + NMS_STATE_PRINT_BATTLE_MESSAGE, + NMS_STATE_WAIT_BATTLE_MESSAGE, + NMS_STATE_START_FADE_OUT, }; enum ChangeCharsState { @@ -95,8 +104,47 @@ enum NamingScreenSprite { NMS_SPRITE_JP_UNUSED_2_BUTTON, NMS_SPRITE_BACK_BUTTON, NMS_SPRITE_OK_BUTTON, + // all sprites before this one are treated as children of this one, + // and their positions will move when the overlay moves NMS_SPRITE_OVERLAY, NMS_SPRITE_CURSOR, + NMS_SPRITE_COUNT, +}; + +#define NMS_SPRITE_BUTTON_START NMS_SPRITE_BACK_BUTTON +#define NMS_SPRITE_BUTTON_END NMS_SPRITE_OK_BUTTON +#define NMS_SPRITE_PAGE_BUTTON_START NMS_SPRITE_UPPER_BUTTON +#define NMS_SPRITE_PAGE_BUTTON_END NMS_SPRITE_OTHERS_BUTTON + +enum NamingScreenWindows { + // there are two keyboards. when transitioning, both + // are active (one moves in the other moves out). + // otherwise, only one is active. + // these must stay beside each other. + NMS_WINDOW_KEYBOARD_0 = 0, + NMS_WINDOW_KEYBOARD_1, + // this window is never used, only created and destroyed + NMS_WINDOW_DUMMY, + NMS_WINDOW_ENTERED_TEXT, + // these windows are used in PrintCharOnWindowAndOBJ, but I don't know what they do. + // commenting out that function, and making these never get used, the result is that + // nothing changes + NMS_WINDOW_UNK_0, + NMS_WINDOW_UNK_1, + NMS_WINDOW_UNK_2, + NMS_WINDOW_UNK_3, + NMS_WINDOW_GROUP_TEXT, + NMS_WINDOW_PROMPT, + NMS_WINDOW_COUNT, +}; + +enum NamingScreenDpadMovement { + NMS_DPAD_MOVEMENT_NONE = 0, + NMS_DPAD_MOVEMENT_UP, + NMS_DPAD_MOVEMENT_DOWN, + NMS_DPAD_MOVEMENT_LEFT, + NMS_DPAD_MOVEMENT_RIGHT, + NMS_DPAD_MOVEMENT_COUNT, }; typedef struct NamingScreenCursor { @@ -119,21 +167,21 @@ typedef struct NamingScreen { Options *options; NamingScreenCursor keyboardCursor; u16 plttGlowEffectAngle; - u16 keyboardChars[6][13]; - u16 unk_D6; + charcode_t keyboardChars[NMS_NUM_ROWS][NMS_NUM_COLS]; + u16 dummy5; charcode_t entryBuf[32]; charcode_t entryBufBak[32]; u16 textCursorPos; - u16 tmpBuf[3]; + charcode_t tmpBuf[3]; BgConfig *bgConfig; - BOOL unk_164; + BOOL dummy4; StringTemplate *strTemplate; MessageLoader *namingScreenMsgLoader; MessageLoader *genericNamesMsgLoader; MessageLoader *battleStringsMsgLoader; Strbuf *promptString; Strbuf *unkJapaneseString; - Strbuf *unk_180; + Strbuf *battleMessageStrbuf; Strbuf *groupTextStrbuf; SpriteList *spriteList; G2dRenderer g2dRenderer; @@ -141,12 +189,14 @@ typedef struct NamingScreen { SpriteResource *spriteResources[2][4]; SpriteResourcesHeader mainSpriteResourceHeader; SpriteResourcesHeader subResourceSpriteHeader; + // I don't know where 14 comes from. + // only the first 9 elements are used. (NMS_SPRITE_COUNT) Sprite *uiSprites[14]; Sprite *textCursorSprites[12]; Sprite *entitySprite[2]; - SysTask *tasks[7]; - Window windows[10]; - int unk_4BC; + SysTask *spriteFollowTasks[NMS_SPRITE_OVERLAY]; + Window windows[NMS_WINDOW_COUNT]; + int battleMessagePrinter; union { enum NamingScreenState main; enum ChangeCharsState changeChars; @@ -160,7 +210,7 @@ typedef struct NamingScreen { int dummy0; int dummy1; int dummy2; - BOOL spritesToUpdate[7]; + BOOL spritesToUpdate[NMS_SPRITE_OVERLAY]; void *charDataAlloc; NNSG2dCharacterData *charData; void *monIconRawCharData; @@ -202,17 +252,22 @@ typedef struct NamingScreenSpriteAnim { int priority; } NamingScreenSpriteAnim; +typedef struct DpadMovement { + int x; + int y; +} DpadMovement; + static BOOL NamingScreen_Init(ApplicationManager *appMan, int *state); static BOOL NamingScreen_Main(ApplicationManager *appMan, int *state); static BOOL NamingScreen_Exit(ApplicationManager *appMan, int *state); static void NamingScreen_VBlankCallback(void *unused); static void NamingScreen_InitGraphicsBanks(void); static void NamingScreen_InitBgs(BgConfig *bgConfig); -static void sub_0208765C(BgConfig *param0, Window *param1); +static void NamingScreen_FreeBgs(BgConfig *bgConfig, Window *windows); static void NamingScreen_LoadGraphicsFromNarc(NamingScreen *namingScreen, NARC *narc); static void NamingScreen_AnimateChangeChars( BgConfig *bgConfig, - Window *window, + Window *windows, enum ChangeCharsState *statePtr, int currentCharsIdx, enum BgLayer *bgLayerPtr, @@ -227,7 +282,7 @@ static void NamingScreen_InitSprites(NamingScreen *namingScreen); static void NamingScreen_TransferChars(void); static void NamingScreen_InitWindows(NamingScreen *namingScreen, ApplicationManager *appMan, NARC *narc); static void NamingScreen_ProcessDirectionInputs(NamingScreen *namingScreen); -static void sub_02088514(u16 *param0); +static void NamingScreen_PaletteGlowEffect(u16 *param0); static void NamingScreen_PrintChars( Window *window, const charcode_t *charCodes, @@ -267,8 +322,10 @@ static void NamingScreen_InitializeCharsGraphics( int param2, TextColor param3, void *rawCharData); -static void NamingScreen_UpdateCursorSpritePosition(NamingScreen *namingScreen, int dpadMovement); -static void NamingScreen_UpdateSpriteAnimations(int param0[], Sprite **param1, int param2); +static void NamingScreen_UpdateCursorSpritePosition( + NamingScreen *namingScreen, + enum NamingScreenDpadMovement dpadMovement); +static void NamingScreen_UpdateSpriteAnimations(int param0[], Sprite **sprites, int unused); static void NamingScreen_SubspritePosControllerTask(SysTask *task, void *paramsPtr); static void NamingScreen_WiggleOverlayTask(SysTask *task, void *paramsPtr); static void NamingScreen_LoadMonIcon( @@ -277,16 +334,20 @@ static void NamingScreen_LoadMonIcon( enum Species monSpecies, int monForm); static void NamingScreen_ToggleEngineLayers(BOOL enable); -static void sub_02087544(NamingScreen *param0, ApplicationManager *appMan); +static void NamingScreen_PrepareBattleMessage(NamingScreen *namingScreen, ApplicationManager *appMan); static void NamingScreen_InitIconSprite(NamingScreen *namingScreen, AffineSpriteListTemplate *template); -static void sub_02086E6C(NamingScreen *param0, NamingScreenArgs *param1); -static void NamingScreen_PrintMessageOnWindowLeftAlign(Window *param0, int param1, Strbuf *param2); +static void NamingScreen_UseDefaultName(NamingScreen *namingScreen, NamingScreenArgs *args); +static void NamingScreen_PrintMessageOnWindowLeftAlign(Window *window, int unused, Strbuf *str); static void NamingScreen_PlaceCursorSprite(NamingScreen *namingScreen); static enum NamingScreenAppState NamingScreen_ProcessInputs( NamingScreen *namingScreen, enum NamingScreenAppState appState); -static int sub_02086F14(u16 *param0); -static void *NamingScreen_PrintStringOnWindowAndGetPixelBuffer(Window *param0, Strbuf *param1, u8 param2, TextColor param3); +static BOOL NamingScreen_IsRawStringAllSpaces(charcode_t *rawChars); +static void *NamingScreen_PrintStringOnWindowAndGetPixelBuffer( + Window *window, + Strbuf *string, + u8 fontId, + TextColor color); static BOOL NamingScreen_ProcessTouchInputs(NamingScreen *namingScreen); static const NamingScreenSpriteAnim sSpriteAnimations[] = { @@ -765,7 +826,7 @@ static const charcode_t sCharCodesNumpad345[] = { CHAR_EOS, }; -const charcode_t *sCharCodes[][5] = { +static const charcode_t *sCharCodes[][5] = { { sCharCodesUpper0, sCharCodesUpper1, @@ -929,7 +990,8 @@ static const u8 sCharsBgColor[4] = { 10, }; -const charcode_t sDummy0[] = { +// these need to be globals for some reason. +const charcode_t gNamingScreenDummy0[] = { CHAR_HIRAGANA_A, CHAR_HIRAGANA_NA, CHAR_HIRAGANA_TA, @@ -943,7 +1005,7 @@ const charcode_t sDummy0[] = { CHAR_EOS, }; -const charcode_t sDummy1[] = { +const charcode_t gNamingScreenDummy1[] = { CHAR_KATAKANA_PO, CHAR_KATAKANA_KE, CHAR_KATAKANA_MO, @@ -961,7 +1023,7 @@ const charcode_t sDummy1[] = { CHAR_EOS, }; -const charcode_t sDummy2[] = { +const charcode_t gNamingScreenDummy2[] = { CHAR_KATAKANA_BO, CHAR_KATAKANA_SOKUON, CHAR_KATAKANA_KU, @@ -977,9 +1039,9 @@ const charcode_t sDummy2[] = { }; static const charcode_t *sDummy3[] = { - sDummy0, - sDummy1, - sDummy2, + gNamingScreenDummy0, + gNamingScreenDummy1, + gNamingScreenDummy2, }; static const int sPromptTextIndices[] = { @@ -1055,7 +1117,7 @@ static BOOL NamingScreen_Init(ApplicationManager *appMan, int *state) NamingScreen_InitSprites(namingScreen); NamingScreen_InitWindows(namingScreen, appMan, narc); NamingScreen_PrintLastCharOfEntryBuf( - &namingScreen->windows[4], + &namingScreen->windows[NMS_WINDOW_UNK_0], namingScreen->entryBuf, namingScreen->textCursorPos, namingScreen->tmpBuf, @@ -1144,27 +1206,34 @@ static BOOL NamingScreen_Main(ApplicationManager *appMan, int *state) break; case NMS_APP_STATE_RUNNING: switch (namingScreen->state.main) { - case NMS_STATE_PLACEHOLDER_4: + case NMS_STATE_PROCESS_INPUTS: *state = NamingScreen_ProcessInputs(namingScreen, *state); NamingScreen_PlaceCursorSprite(namingScreen); break; - case NMS_STATE_PLACEHOLDER_5: - sub_02087544(namingScreen, appMan); - Window_FillTilemap(&namingScreen->windows[9], 0x0f); - Window_DrawMessageBoxWithScrollCursor(&namingScreen->windows[9], 0, 32 * 8, 10); - namingScreen->unk_4BC = Text_AddPrinterWithParams(&namingScreen->windows[9], FONT_MESSAGE, namingScreen->unk_180, 0, 0, TEXT_SPEED_FAST, NULL); - Window_CopyToVRAM(&namingScreen->windows[9]); - namingScreen->state.main = NMS_STATE_PLACEHOLDER_6; + case NMS_STATE_PRINT_BATTLE_MESSAGE: + NamingScreen_PrepareBattleMessage(namingScreen, appMan); + Window_FillTilemap(&namingScreen->windows[NMS_WINDOW_PROMPT], 0x0f); + Window_DrawMessageBoxWithScrollCursor(&namingScreen->windows[NMS_WINDOW_PROMPT], 0, 32 * 8, 10); + namingScreen->battleMessagePrinter = Text_AddPrinterWithParams( + &namingScreen->windows[NMS_WINDOW_PROMPT], + FONT_MESSAGE, + namingScreen->battleMessageStrbuf, + 0, + 0, + TEXT_SPEED_FAST, + NULL); + Window_CopyToVRAM(&namingScreen->windows[NMS_WINDOW_PROMPT]); + namingScreen->state.main = NMS_STATE_WAIT_BATTLE_MESSAGE; break; - case NMS_STATE_PLACEHOLDER_6: - if (Text_IsPrinterActive(namingScreen->unk_4BC) == 0) { + case NMS_STATE_WAIT_BATTLE_MESSAGE: + if (Text_IsPrinterActive(namingScreen->battleMessagePrinter) == 0) { Sound_PlayEffect(SEQ_SE_DP_PIRORIRO); namingScreen->spritesToUpdate[NMS_SPRITE_OK_BUTTON]++; namingScreen->delayUpdateCounter = 0; - namingScreen->state.main = NMS_STATE_PLACEHOLDER_7; + namingScreen->state.main = NMS_STATE_START_FADE_OUT; } break; - case NMS_STATE_PLACEHOLDER_7: + case NMS_STATE_START_FADE_OUT: namingScreen->delayUpdateCounter++; if (namingScreen->delayUpdateCounter > 30) { @@ -1183,7 +1252,7 @@ static BOOL NamingScreen_Main(ApplicationManager *appMan, int *state) NamingScreen_AnimateChangeChars( namingScreen->bgConfig, - &namingScreen->windows[0], + &namingScreen->windows[NMS_WINDOW_KEYBOARD_0], &namingScreen->state.changeChars, namingScreen->currentCharsIdx, &namingScreen->freeCharsBgLayer, @@ -1194,7 +1263,7 @@ static BOOL NamingScreen_Main(ApplicationManager *appMan, int *state) namingScreen->spritesToUpdate, namingScreen->uiSprites, namingScreen->currentCharsIdx); - sub_02088514(&namingScreen->plttGlowEffectAngle); + NamingScreen_PaletteGlowEffect(&namingScreen->plttGlowEffectAngle); break; case NMS_APP_STATE_WAIT_FADE_OUT: if (IsScreenFadeDone()) { @@ -1267,56 +1336,66 @@ static enum NamingScreenAppState NamingScreen_ProcessInputs( return appState; } -static void sub_02086E6C(NamingScreen *namingScreen, NamingScreenArgs *args) +#define RANDOM_NAME(TYPE) (TYPE##_First + LCRNG_Next() % (TYPE##_Last - TYPE##_First + 1)) + +static void NamingScreen_UseDefaultName(NamingScreen *namingScreen, NamingScreenArgs *args) { if (namingScreen->type == NAMING_SCREEN_TYPE_PLAYER) { Strbuf *strbuf; if (namingScreen->playerGenderOrMonSpecies == GENDER_MALE) { - strbuf = MessageLoader_GetNewStrbuf(namingScreen->genericNamesMsgLoader, 0 + LCRNG_Next() % 18); + strbuf = MessageLoader_GetNewStrbuf( + namingScreen->genericNamesMsgLoader, + RANDOM_NAME(GenericNames_PlayerMale)); } else if (namingScreen->playerGenderOrMonSpecies == GENDER_FEMALE) { - strbuf = MessageLoader_GetNewStrbuf(namingScreen->genericNamesMsgLoader, 18 + LCRNG_Next() % 18); + strbuf = MessageLoader_GetNewStrbuf( + namingScreen->genericNamesMsgLoader, + RANDOM_NAME(GenericNames_PlayerFemale)); } Strbuf_Copy(args->textInputStr, strbuf); Strbuf_Free(strbuf); - Strbuf_ToChars(args->textInputStr, args->unk_1C, 10); + Strbuf_ToChars(args->textInputStr, args->nameInputRaw, 10); } else if (namingScreen->type == NAMING_SCREEN_TYPE_RIVAL) { Strbuf *strbuf; - strbuf = MessageLoader_GetNewStrbuf(namingScreen->genericNamesMsgLoader, 88 + (LCRNG_Next() % 2)); + strbuf = MessageLoader_GetNewStrbuf( + namingScreen->genericNamesMsgLoader, + RANDOM_NAME(GenericNames_Rival)); Strbuf_Copy(args->textInputStr, strbuf); Strbuf_Free(strbuf); - Strbuf_ToChars(args->textInputStr, args->unk_1C, 10); + Strbuf_ToChars(args->textInputStr, args->nameInputRaw, 10); } else { - args->unk_14 = 1; + args->returnCode = NAMING_SCREEN_CODE_NO_INPUT; } } -static int sub_02086F14(u16 *param0) -{ - int v0 = 1; - int v1; +#undef RANDOM_NAME - for (v1 = 0;; v1++) { - if (param0[v1] == 0xffff) { +static BOOL NamingScreen_IsRawStringAllSpaces(charcode_t *rawChars) +{ + BOOL isAllSpaces = TRUE; + int i; + + for (i = 0;; i++) { + if (rawChars[i] == CHAR_EOS) { break; } - if (param0[v1] != 0x1de) { - v0 = 0; + if (rawChars[i] != CHAR_SPACE) { + isAllSpaces = FALSE; } } - return v0; + return isAllSpaces; } static BOOL NamingScreen_Exit(ApplicationManager *appMan, int *unusedState) { NamingScreen *namingScreen = ApplicationManager_Data(appMan); NamingScreenArgs *namingScreenArgs = (NamingScreenArgs *)ApplicationManager_Args(appMan); - int v2; + int i; namingScreen->entryBuf[namingScreen->textCursorPos] = CHAR_EOS; @@ -1328,27 +1407,29 @@ static BOOL NamingScreen_Exit(ApplicationManager *appMan, int *unusedState) Heap_Free(mon); } - if ((namingScreen->textCursorPos == 0) || (CharCode_Compare(namingScreen->entryBuf, namingScreen->entryBufBak) == 0) || sub_02086F14(namingScreen->entryBuf)) { - sub_02086E6C(namingScreen, namingScreenArgs); + if (namingScreen->textCursorPos == 0 + || CharCode_Compare(namingScreen->entryBuf, namingScreen->entryBufBak) == 0 + || NamingScreen_IsRawStringAllSpaces(namingScreen->entryBuf)) { + NamingScreen_UseDefaultName(namingScreen, namingScreenArgs); } else { CharCode_Copy(namingScreen->entryBufBak, namingScreen->entryBuf); - CharCode_Copy(namingScreenArgs->unk_1C, namingScreen->entryBuf); + CharCode_Copy(namingScreenArgs->nameInputRaw, namingScreen->entryBuf); Strbuf_CopyChars(namingScreenArgs->textInputStr, namingScreen->entryBuf); } Strbuf_Free(namingScreen->groupTextStrbuf); - for (v2 = 0; v2 < 7; v2++) { - SysTask_FinishAndFreeParam(namingScreen->tasks[v2]); + for (i = 0; i < NMS_SPRITE_OVERLAY; i++) { + SysTask_FinishAndFreeParam(namingScreen->spriteFollowTasks[i]); } - SpriteTransfer_ResetCharTransfer(namingScreen->spriteResources[0][0]); - SpriteTransfer_ResetCharTransfer(namingScreen->spriteResources[1][0]); - SpriteTransfer_ResetPlttTransfer(namingScreen->spriteResources[0][1]); - SpriteTransfer_ResetPlttTransfer(namingScreen->spriteResources[1][1]); + SpriteTransfer_ResetCharTransfer(namingScreen->spriteResources[0][SPRITE_RESOURCE_CHAR]); + SpriteTransfer_ResetCharTransfer(namingScreen->spriteResources[1][SPRITE_RESOURCE_CHAR]); + SpriteTransfer_ResetPlttTransfer(namingScreen->spriteResources[0][SPRITE_RESOURCE_PLTT]); + SpriteTransfer_ResetPlttTransfer(namingScreen->spriteResources[1][SPRITE_RESOURCE_PLTT]); - for (v2 = 0; v2 < 4; v2++) { - SpriteResourceCollection_Delete(namingScreen->spriteResourceCollections[v2]); + for (i = 0; i < 4; i++) { + SpriteResourceCollection_Delete(namingScreen->spriteResourceCollections[i]); } SpriteList_Delete(namingScreen->spriteList); @@ -1363,15 +1444,15 @@ static BOOL NamingScreen_Exit(ApplicationManager *appMan, int *unusedState) Bg_FreeTilemapBuffer(namingScreen->bgConfig, BG_LAYER_SUB_3); CharTransfer_Free(); PlttTransfer_Free(); - sub_0208765C(namingScreen->bgConfig, namingScreen->windows); + NamingScreen_FreeBgs(namingScreen->bgConfig, namingScreen->windows); Font_UseLazyGlyphAccess(FONT_SYSTEM); GX_SetVisibleWnd(GX_WNDMASK_NONE); Font_Free(FONT_SUBSCREEN); - if (namingScreen->unk_180) { - Strbuf_Free(namingScreen->unk_180); + if (namingScreen->battleMessageStrbuf) { + Strbuf_Free(namingScreen->battleMessageStrbuf); } Strbuf_Free(namingScreen->promptString); @@ -1384,40 +1465,43 @@ static BOOL NamingScreen_Exit(ApplicationManager *appMan, int *unusedState) SetVBlankCallback(NULL, NULL); Heap_Destroy(HEAP_ID_NAMING_SCREEN_APP); - { - gSystem.whichScreenIs3D = DS_SCREEN_MAIN; - GXLayers_SwapDisplay(); - } + gSystem.whichScreenIs3D = DS_SCREEN_MAIN; + GXLayers_SwapDisplay(); return TRUE; } -NamingScreenArgs *NamingScreenArgs_Init(enum HeapId heapID, enum NamingScreenType type, int param2, int maxChars, Options *options) +NamingScreenArgs *NamingScreenArgs_Init( + enum HeapId heapID, + enum NamingScreenType type, + int playerGenderOrMonSpecies, + int maxChars, + Options *options) { - NamingScreenArgs *v0 = (NamingScreenArgs *)Heap_AllocFromHeap(heapID, sizeof(NamingScreenArgs)); + NamingScreenArgs *args = (NamingScreenArgs *)Heap_AllocFromHeap(heapID, sizeof(NamingScreenArgs)); - v0->type = type; - v0->playerGenderOrMonSpecies = param2; - v0->maxChars = maxChars; - v0->unk_14 = 0; - v0->unk_1C[0] = 0xffff; - v0->textInputStr = Strbuf_Init(32, heapID); - v0->battleMsgID = 0; - v0->pcBoxes = NULL; - v0->monGender = 0; - v0->options = options; - v0->monForm = 0; + args->type = type; + args->playerGenderOrMonSpecies = playerGenderOrMonSpecies; + args->maxChars = maxChars; + args->returnCode = NAMING_SCREEN_CODE_OK; + args->nameInputRaw[0] = CHAR_EOS; + args->textInputStr = Strbuf_Init(32, heapID); + args->battleMsgID = 0; + args->pcBoxes = NULL; + args->monGender = GENDER_MALE; + args->options = options; + args->monForm = 0; - return v0; + return args; } -void NamingScreenArgs_Free(NamingScreenArgs *param0) +void NamingScreenArgs_Free(NamingScreenArgs *args) { - GF_ASSERT((param0->textInputStr) != NULL); - GF_ASSERT((param0) != NULL); + GF_ASSERT(args->textInputStr != NULL); + GF_ASSERT(args != NULL); - Strbuf_Free(param0->textInputStr); - Heap_Free(param0); + Strbuf_Free(args->textInputStr); + Heap_Free(args); } static void NamingScreen_VBlankCallback(void *unused) @@ -1566,7 +1650,7 @@ static void NamingScreen_InitCursorsAndChars(NamingScreen *namingScreen, Applica { NamingScreenArgs *namingScreenArgs = (NamingScreenArgs *)ApplicationManager_Args(appMan); - namingScreen->state.main = NMS_STATE_PLACEHOLDER_4; + namingScreen->state.main = NMS_STATE_PROCESS_INPUTS; NamingScreen_InitializeCharsPosition(namingScreen->charsPosition, BG_LAYER_MAIN_0); Bg_SetOffset( @@ -1630,7 +1714,7 @@ static void NamingScreen_InitCursorsAndChars(NamingScreen *namingScreen, Applica namingScreen->keyboardCursor.prevX = -1; namingScreen->keyboardCursor.prevY = -1; namingScreen->keyboardCursor.hasCharacterBeenEntered = FALSE; - namingScreen->keyboardCursor.ignoreInput = 0; + namingScreen->keyboardCursor.ignoreInput = FALSE; namingScreen->dummy0 = -1; namingScreen->dummy1 = 0; namingScreen->dummy2 = 0; @@ -1649,72 +1733,74 @@ static void NamingScreen_InitCursorsAndChars(NamingScreen *namingScreen, Applica } } -static void sub_02087544(NamingScreen *param0, ApplicationManager *appMan) +static void NamingScreen_PrepareBattleMessage(NamingScreen *namingScreen, ApplicationManager *appMan) { - Strbuf *v0 = NULL; - NamingScreenArgs *v1 = (NamingScreenArgs *)ApplicationManager_Args(appMan); + Strbuf *strbuf = NULL; + NamingScreenArgs *args = (NamingScreenArgs *)ApplicationManager_Args(appMan); - if (v1->battleMsgID != 0) { - int v2, v3; + if (args->battleMsgID != 0) { + int boxID, nextBoxID; - v0 = Strbuf_Init(200, HEAP_ID_NAMING_SCREEN_APP); - param0->unk_180 = NULL; - v2 = PCBoxes_GetCurrentBoxID(v1->pcBoxes); - v3 = PCBoxes_FirstEmptyBox(v1->pcBoxes); + strbuf = Strbuf_Init(200, HEAP_ID_NAMING_SCREEN_APP); + namingScreen->battleMessageStrbuf = NULL; + boxID = PCBoxes_GetCurrentBoxID(args->pcBoxes); + nextBoxID = PCBoxes_FirstEmptyBox(args->pcBoxes); - StringTemplate_SetPCBoxName(param0->strTemplate, 1, v1->pcBoxes, v2); + StringTemplate_SetPCBoxName(namingScreen->strTemplate, 1, args->pcBoxes, boxID); - if (v2 != v3) { - StringTemplate_SetPCBoxName(param0->strTemplate, 2, v1->pcBoxes, v3); - v1->battleMsgID += 2; + if (boxID != nextBoxID) { + StringTemplate_SetPCBoxName(namingScreen->strTemplate, 2, args->pcBoxes, nextBoxID); + args->battleMsgID += 2; } else { - StringTemplate_SetPCBoxName(param0->strTemplate, 2, v1->pcBoxes, v2); + StringTemplate_SetPCBoxName(namingScreen->strTemplate, 2, args->pcBoxes, boxID); } - if ((param0->textCursorPos == 0) || sub_02086F14(param0->entryBuf)) { - Pokemon *v4 = Pokemon_New(HEAP_ID_NAMING_SCREEN_APP); + if (namingScreen->textCursorPos == 0 || NamingScreen_IsRawStringAllSpaces(namingScreen->entryBuf)) { + Pokemon *mon = Pokemon_New(HEAP_ID_NAMING_SCREEN_APP); - Pokemon_InitWith(v4, param0->playerGenderOrMonSpecies, 1, 0, 0, 0, 0, 0); - StringTemplate_SetSpeciesName(param0->strTemplate, 0, Pokemon_GetBoxPokemon(v4)); - Heap_Free(v4); + Pokemon_InitWith(mon, namingScreen->playerGenderOrMonSpecies, 1, 0, FALSE, 0, OTID_NOT_SET, 0); + StringTemplate_SetSpeciesName(namingScreen->strTemplate, 0, Pokemon_GetBoxPokemon(mon)); + Heap_Free(mon); } else { - param0->entryBuf[param0->textCursorPos] = CHAR_EOS; - Strbuf_CopyChars(v0, param0->entryBuf); - StringTemplate_SetStrbuf(param0->strTemplate, 0, v0, 0, 0, 0); + namingScreen->entryBuf[namingScreen->textCursorPos] = CHAR_EOS; + Strbuf_CopyChars(strbuf, namingScreen->entryBuf); + StringTemplate_SetStrbuf(namingScreen->strTemplate, 0, strbuf, 0, 0, 0); } - param0->unk_180 = MessageUtil_ExpandedStrbuf(param0->strTemplate, param0->battleStringsMsgLoader, v1->battleMsgID, HEAP_ID_NAMING_SCREEN_APP); - param0->printedFromBattleGMM = TRUE; + namingScreen->battleMessageStrbuf = MessageUtil_ExpandedStrbuf( + namingScreen->strTemplate, + namingScreen->battleStringsMsgLoader, + args->battleMsgID, + HEAP_ID_NAMING_SCREEN_APP); + namingScreen->printedFromBattleGMM = TRUE; - Strbuf_Free(v0); + Strbuf_Free(strbuf); } } -static void sub_0208765C(BgConfig *param0, Window *param1) +static void NamingScreen_FreeBgs(BgConfig *bgConfig, Window *windows) { - int v0; - - for (v0 = 0; v0 < 10; v0++) { - Window_Remove(¶m1[v0]); + for (int i = 0; i < NMS_WINDOW_COUNT; i++) { + Window_Remove(&windows[i]); } - Bg_FreeTilemapBuffer(param0, BG_LAYER_SUB_0); - Bg_FreeTilemapBuffer(param0, BG_LAYER_MAIN_2); - Bg_FreeTilemapBuffer(param0, BG_LAYER_MAIN_1); - Bg_FreeTilemapBuffer(param0, BG_LAYER_MAIN_0); - Heap_FreeExplicit(HEAP_ID_NAMING_SCREEN_APP, param0); + Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_SUB_0); + Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_2); + Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_1); + Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_0); + Heap_FreeExplicit(HEAP_ID_NAMING_SCREEN_APP, bgConfig); } static void NamingScreen_LoadGraphicsFromNarc(NamingScreen *namingScreen, NARC *narc) { BgConfig *bgConfig = namingScreen->bgConfig; - Graphics_LoadPaletteFromOpenNARC(narc, 0, PAL_LOAD_MAIN_BG, 0, 16 * 3 * 2, HEAP_ID_NAMING_SCREEN_APP); + Graphics_LoadPaletteFromOpenNARC(narc, naming_screen_NCLR, PAL_LOAD_MAIN_BG, 0, 16 * 3 * 2, HEAP_ID_NAMING_SCREEN_APP); Graphics_LoadPalette(NARC_INDEX_GRAPHIC__POKETCH, 12, PAL_LOAD_SUB_BG, 0, 16 * 2, HEAP_ID_NAMING_SCREEN_APP); Bg_MaskPalette(BG_LAYER_SUB_0, 0); Graphics_LoadTilesToBgLayerFromOpenNARC( narc, - 2, + naming_screen_main_tiles_NCGR_lz, bgConfig, BG_LAYER_MAIN_2, 0, @@ -1723,7 +1809,7 @@ static void NamingScreen_LoadGraphicsFromNarc(NamingScreen *namingScreen, NARC * HEAP_ID_NAMING_SCREEN_APP); Graphics_LoadTilemapToBgLayerFromOpenNARC( narc, - 4, + naming_screen_bg_NSCR_lz, bgConfig, BG_LAYER_MAIN_2, 0, @@ -1732,7 +1818,7 @@ static void NamingScreen_LoadGraphicsFromNarc(NamingScreen *namingScreen, NARC * HEAP_ID_NAMING_SCREEN_APP); Graphics_LoadTilesToBgLayerFromOpenNARC( narc, - 2, + naming_screen_main_tiles_NCGR_lz, bgConfig, BG_LAYER_MAIN_1, 0, @@ -1741,7 +1827,7 @@ static void NamingScreen_LoadGraphicsFromNarc(NamingScreen *namingScreen, NARC * HEAP_ID_NAMING_SCREEN_APP); Graphics_LoadTilemapToBgLayerFromOpenNARC( narc, - 6, + naming_screen_chars_bg_0_NSCR_lz, bgConfig, BG_LAYER_MAIN_1, 0, @@ -1750,7 +1836,7 @@ static void NamingScreen_LoadGraphicsFromNarc(NamingScreen *namingScreen, NARC * HEAP_ID_NAMING_SCREEN_APP); Graphics_LoadTilemapToBgLayerFromOpenNARC( narc, - 7, + naming_screen_chars_bg_1_NSCR_lz, bgConfig, BG_LAYER_MAIN_0, 0, @@ -1769,7 +1855,7 @@ static void NamingScreen_LoadGraphicsFromNarc(NamingScreen *namingScreen, NARC * namingScreen->charDataAlloc = Graphics_GetCharDataFromOpenNARC( narc, - 16, + naming_screen_unk_tiles_NCGR_lz, TRUE, &namingScreen->charData, HEAP_ID_NAMING_SCREEN_APP); @@ -1807,34 +1893,34 @@ static void NamingScreen_LoadObjectGfx(NamingScreen *namingScreen, NARC *narc) } namingScreen->spriteResources[0][SPRITE_RESOURCE_CHAR] = SpriteResourceCollection_AddTilesFrom( - namingScreen->spriteResourceCollections[0], + namingScreen->spriteResourceCollections[SPRITE_RESOURCE_CHAR], narc, - 10, + naming_screen_sprites_NCGR_lz, TRUE, 0, NNS_G2D_VRAM_TYPE_2DMAIN, HEAP_ID_NAMING_SCREEN_APP); namingScreen->spriteResources[0][SPRITE_RESOURCE_PLTT] = SpriteResourceCollection_AddPaletteFrom( - namingScreen->spriteResourceCollections[1], + namingScreen->spriteResourceCollections[SPRITE_RESOURCE_PLTT], narc, - 1, + naming_screen_sprites_NCLR, FALSE, 0, NNS_G2D_VRAM_TYPE_2DMAIN, 9, HEAP_ID_NAMING_SCREEN_APP); namingScreen->spriteResources[0][SPRITE_RESOURCE_CELL] = SpriteResourceCollection_AddFrom( - namingScreen->spriteResourceCollections[2], + namingScreen->spriteResourceCollections[SPRITE_RESOURCE_CELL], narc, - 12, + naming_screen_sprites_cell_NCER_lz, TRUE, 0, SPRITE_RESOURCE_CELL, HEAP_ID_NAMING_SCREEN_APP); namingScreen->spriteResources[0][SPRITE_RESOURCE_ANIM] = SpriteResourceCollection_AddFrom( - namingScreen->spriteResourceCollections[3], + namingScreen->spriteResourceCollections[SPRITE_RESOURCE_ANIM], narc, - 14, + naming_screen_sprites_anim_NANR_lz, TRUE, 0, SPRITE_RESOURCE_ANIM, @@ -1858,34 +1944,34 @@ static void NamingScreen_LoadObjectGfx(NamingScreen *namingScreen, NARC *narc) } namingScreen->spriteResources[1][SPRITE_RESOURCE_CHAR] = SpriteResourceCollection_AddTilesFrom( - namingScreen->spriteResourceCollections[0], + namingScreen->spriteResourceCollections[SPRITE_RESOURCE_CHAR], narc, - 11, + naming_screen_unk_sprite_NCGR_lz, TRUE, 1, NNS_G2D_VRAM_TYPE_2DSUB, HEAP_ID_NAMING_SCREEN_APP); namingScreen->spriteResources[1][SPRITE_RESOURCE_PLTT] = SpriteResourceCollection_AddPaletteFrom( - namingScreen->spriteResourceCollections[1], + namingScreen->spriteResourceCollections[SPRITE_RESOURCE_PLTT], narc, - 1, + naming_screen_sprites_NCLR, FALSE, 1, NNS_G2D_VRAM_TYPE_2DSUB, 3, HEAP_ID_NAMING_SCREEN_APP); namingScreen->spriteResources[1][SPRITE_RESOURCE_CELL] = SpriteResourceCollection_AddFrom( - namingScreen->spriteResourceCollections[2], + namingScreen->spriteResourceCollections[SPRITE_RESOURCE_CELL], narc, - 13, + naming_screen_unk_sprite_cell_NCER_lz, TRUE, 1, SPRITE_RESOURCE_CELL, HEAP_ID_NAMING_SCREEN_APP); namingScreen->spriteResources[1][SPRITE_RESOURCE_ANIM] = SpriteResourceCollection_AddFrom( - namingScreen->spriteResourceCollections[3], + namingScreen->spriteResourceCollections[SPRITE_RESOURCE_ANIM], narc, - 15, + naming_screen_unk_sprite_anim_NANR_lz, TRUE, 1, SPRITE_RESOURCE_ANIM, @@ -1963,7 +2049,7 @@ static void NamingScreen_InitSprites(NamingScreen *namingScreen) spriteTemplate.vramType = NNS_G2D_VRAM_TYPE_2DMAIN; spriteTemplate.heapID = HEAP_ID_NAMING_SCREEN_APP; - for (i = 0; i < 9; i++) { + for (i = 0; i < NMS_SPRITE_COUNT; i++) { spriteTemplate.position.x = FX32_ONE * sSpriteAnimations[i].x; spriteTemplate.position.y = FX32_ONE * sSpriteAnimations[i].y; @@ -1977,13 +2063,13 @@ static void NamingScreen_InitSprites(NamingScreen *namingScreen) Sprite_SetDrawFlag(namingScreen->uiSprites[NMS_SPRITE_JP_UNUSED_2_BUTTON], FALSE); Sprite_SetDrawFlag(namingScreen->uiSprites[NMS_SPRITE_CURSOR], FALSE); - for (i = 0; i < 7; i++) { - namingScreen->tasks[i] = SysTask_StartAndAllocateParam( + for (i = 0; i < NMS_SPRITE_OVERLAY; i++) { + namingScreen->spriteFollowTasks[i] = SysTask_StartAndAllocateParam( NamingScreen_SubspritePosControllerTask, sizeof(SubspritePosControllerParameters), 5, HEAP_ID_NAMING_SCREEN_APP); - SubspritePosControllerParameters *taskData = SysTask_GetParam(namingScreen->tasks[i]); + SubspritePosControllerParameters *taskData = SysTask_GetParam(namingScreen->spriteFollowTasks[i]); taskData->parent = namingScreen->uiSprites[NMS_SPRITE_OVERLAY]; taskData->child = namingScreen->uiSprites[i]; taskData->dx = FX32_ONE * sSpriteAnimations[i].x; @@ -2093,7 +2179,7 @@ static void NamingScreen_WiggleOverlayTask(SysTask *task, void *paramsPtr) static void NamingScreen_AnimateChangeChars( BgConfig *bgConfig, - Window *window, + Window *windows, enum ChangeCharsState *statePtr, int currentCharsIdx, enum BgLayer *bgLayerPtr, @@ -2110,7 +2196,7 @@ static void NamingScreen_AnimateChangeChars( Graphics_LoadTilemapToBgLayer( NARC_INDEX_DATA__NAMEIN, - 6 + currentCharsIdx, + naming_screen_chars_bg_0_NSCR_lz + currentCharsIdx, bgConfig, bgLayer, 0, @@ -2119,7 +2205,7 @@ static void NamingScreen_AnimateChangeChars( HEAP_ID_NAMING_SCREEN_APP); NamingScreen_InitializeCharsPosition(charsPosition, bgLayer); NamingScreen_InitializeCharsGraphics( - &window[bgLayer], + &windows[bgLayer], bgColor, currentCharsIdx, TEXT_COLOR(14, 15, 0), @@ -2146,8 +2232,8 @@ static void NamingScreen_AnimateChangeChars( wiggleParam = SysTask_GetParam(wiggleTask); wiggleParam->overlaySprite = sprites[NMS_SPRITE_OVERLAY]; wiggleParam->state = 0; - wiggleParam->overlayXPosition = Sprite_GetPosition(sprites[7])->x; - wiggleParam->overlayYPosition = Sprite_GetPosition(sprites[7])->y; + wiggleParam->overlayXPosition = Sprite_GetPosition(sprites[NMS_SPRITE_OVERLAY])->x; + wiggleParam->overlayYPosition = Sprite_GetPosition(sprites[NMS_SPRITE_OVERLAY])->y; charsPosition[bgLayer].x = -11; (*statePtr)++; @@ -2184,7 +2270,7 @@ static void NamingScreen_AnimateChangeChars( } } -static void NamingScreen_PrintMessageOnWindowLeftAlign(Window *window, int param1, Strbuf *str) +static void NamingScreen_PrintMessageOnWindowLeftAlign(Window *window, int unused, Strbuf *str) { Window_DrawMessageBoxWithScrollCursor(window, FALSE, 32 * 8, PLTT_10); Text_AddPrinterWithParams(window, FONT_MESSAGE, str, 0, 0, TEXT_SPEED_INSTANT, NULL); @@ -2215,10 +2301,19 @@ static void NamingScreen_PrintMessageOnWindow(Window *window, int param1, Strbuf static void NamingScreen_InitWindows(NamingScreen *namingScreen, ApplicationManager *appMan, NARC *narc) { - Window_Add(namingScreen->bgConfig, &namingScreen->windows[0], BG_LAYER_MAIN_0, 2, 1, 26, 12, PLTT_1, 32 * 8); Window_Add( namingScreen->bgConfig, - &namingScreen->windows[1], + &namingScreen->windows[NMS_WINDOW_KEYBOARD_0], + BG_LAYER_MAIN_0, + 2, + 1, + 26, + 12, + PLTT_1, + 32 * 8); + Window_Add( + namingScreen->bgConfig, + &namingScreen->windows[NMS_WINDOW_KEYBOARD_1], BG_LAYER_MAIN_1, 2, 1, @@ -2230,7 +2325,7 @@ static void NamingScreen_InitWindows(NamingScreen *namingScreen, ApplicationMana if (namingScreen->type == NAMING_SCREEN_TYPE_UNK4) { Graphics_LoadTilemapToBgLayerFromOpenNARC( narc, - 6 + 3, + naming_screen_chars_bg_3_NSCR_lz, namingScreen->bgConfig, BG_LAYER_MAIN_1, 0, @@ -2240,7 +2335,7 @@ static void NamingScreen_InitWindows(NamingScreen *namingScreen, ApplicationMana namingScreen->currentCharsIdx = 4; NamingScreen_LoadKeyboardLayout(namingScreen->keyboardChars, 4); NamingScreen_InitializeCharsGraphics( - &namingScreen->windows[1], + &namingScreen->windows[NMS_WINDOW_KEYBOARD_1], 0xa0a, 4, TEXT_COLOR(14, 15, 0), @@ -2249,7 +2344,7 @@ static void NamingScreen_InitWindows(NamingScreen *namingScreen, ApplicationMana namingScreen->currentCharsIdx = 0; NamingScreen_LoadKeyboardLayout(namingScreen->keyboardChars, 0); NamingScreen_InitializeCharsGraphics( - &namingScreen->windows[1], + &namingScreen->windows[NMS_WINDOW_KEYBOARD_1], 0x404, 0, TEXT_COLOR(14, 15, 0), @@ -2258,7 +2353,7 @@ static void NamingScreen_InitWindows(NamingScreen *namingScreen, ApplicationMana Window_Add( namingScreen->bgConfig, - &namingScreen->windows[2], + &namingScreen->windows[NMS_WINDOW_DUMMY], BG_LAYER_MAIN_2, 7, 2, @@ -2271,7 +2366,7 @@ static void NamingScreen_InitWindows(NamingScreen *namingScreen, ApplicationMana Window_Add( namingScreen->bgConfig, - &namingScreen->windows[3], + &namingScreen->windows[NMS_WINDOW_ENTERED_TEXT], BG_LAYER_MAIN_2, 10, 3, @@ -2279,10 +2374,10 @@ static void NamingScreen_InitWindows(NamingScreen *namingScreen, ApplicationMana 2, PLTT_0, (((32 * 8) + (26 * 12)) + (26 * 12)) + 44); - Window_FillTilemap(&namingScreen->windows[3], 0x01); + Window_FillTilemap(&namingScreen->windows[NMS_WINDOW_ENTERED_TEXT], 0x01); Window_Add( namingScreen->bgConfig, - &namingScreen->windows[8], + &namingScreen->windows[NMS_WINDOW_GROUP_TEXT], BG_LAYER_MAIN_2, 10 + width - 1, 3, @@ -2290,19 +2385,19 @@ static void NamingScreen_InitWindows(NamingScreen *namingScreen, ApplicationMana 2, PLTT_0, ((((32 * 8) + (26 * 12)) + (26 * 12)) + 44) + 36); - Window_FillTilemap(&namingScreen->windows[8], 0x01); + Window_FillTilemap(&namingScreen->windows[NMS_WINDOW_GROUP_TEXT], 0x01); if (namingScreen->type == NAMING_SCREEN_TYPE_GROUP) { NamingScreen_PrintMessageOnWindow( - &namingScreen->windows[8], + &namingScreen->windows[NMS_WINDOW_GROUP_TEXT], namingScreen->type, namingScreen->groupTextStrbuf); - Window_CopyToVRAM(&namingScreen->windows[8]); + Window_CopyToVRAM(&namingScreen->windows[NMS_WINDOW_GROUP_TEXT]); } Window_Add( namingScreen->bgConfig, - &namingScreen->windows[9], + &namingScreen->windows[NMS_WINDOW_PROMPT], BG_LAYER_SUB_0, 2, 19, @@ -2310,9 +2405,9 @@ static void NamingScreen_InitWindows(NamingScreen *namingScreen, ApplicationMana 4, PLTT_12, 120 + (2 * 2 * 3)); - Window_FillTilemap(&namingScreen->windows[9], 15); + Window_FillTilemap(&namingScreen->windows[NMS_WINDOW_PROMPT], 15); NamingScreen_PrintMessageOnWindowLeftAlign( - &namingScreen->windows[9], + &namingScreen->windows[NMS_WINDOW_PROMPT], namingScreen->type, namingScreen->promptString); @@ -2321,7 +2416,7 @@ static void NamingScreen_InitWindows(NamingScreen *namingScreen, ApplicationMana if (namingScreen->entryBufBak[0] != CHAR_EOS) { CharCode_Copy(namingScreen->entryBuf, namingScreen->entryBufBak); NamingScreen_PrintChars( - &namingScreen->windows[3], + &namingScreen->windows[NMS_WINDOW_ENTERED_TEXT], namingScreen->entryBuf, 0, 0, @@ -2332,13 +2427,22 @@ static void NamingScreen_InitWindows(NamingScreen *namingScreen, ApplicationMana } for (int i = 0; i < 3; i++) { - Window_Add(namingScreen->bgConfig, &namingScreen->windows[4 + i], BG_LAYER_MAIN_2, 0, 0, 2, 2, PLTT_0, 120); - Window_FillTilemap(&namingScreen->windows[4 + i], 0); + Window_Add( + namingScreen->bgConfig, + &namingScreen->windows[NMS_WINDOW_UNK_0 + i], + BG_LAYER_MAIN_2, + 0, + 0, + 2, + 2, + PLTT_0, + 120); + Window_FillTilemap(&namingScreen->windows[NMS_WINDOW_UNK_0 + i], 0); } Window_Add( namingScreen->bgConfig, - &namingScreen->windows[7], + &namingScreen->windows[NMS_WINDOW_UNK_3], BG_LAYER_MAIN_2, 0, 0, @@ -2346,7 +2450,7 @@ static void NamingScreen_InitWindows(NamingScreen *namingScreen, ApplicationMana 2, PLTT_0, 120 + (2 * 2 * 3)); - Window_FillTilemap(&namingScreen->windows[7], 0); + Window_FillTilemap(&namingScreen->windows[NMS_WINDOW_UNK_3], 0); } static void NamingScreen_UpdateCharsPriorities(BgConfig *unused0, enum BgLayer oldBgLayer, VecFx32 unused1[]) @@ -2363,12 +2467,12 @@ static void NamingScreen_InitializeCharsPosition(VecFx32 charsPosition[], enum B charsPosition[freeBgLayer ^ 1].y = -80; } -static const int sDpadMovementCoordDeltas[][2] = { - { 0, 0 }, - { 0, -1 }, - { 0, 1 }, - { -1, 0 }, - { 1, 0 } +static const DpadMovement sDpadMovementCoordDeltas[NMS_DPAD_MOVEMENT_COUNT] = { + { .x = 0, .y = 0 }, + { .x = 0, .y = -1 }, + { .x = 0, .y = 1 }, + { .x = -1, .y = 0 }, + { .x = 1, .y = 0 } }; static int NamingScreen_WrapAroundWithinInterval(int value, int lower, int upper) @@ -2384,38 +2488,38 @@ static int NamingScreen_WrapAroundWithinInterval(int value, int lower, int upper return value; } -static void NamingScreen_MoveCursor(NamingScreen *namingScreen, int dpadMovement) +static void NamingScreen_MoveCursor(NamingScreen *namingScreen, enum NamingScreenDpadMovement dpadMovement) { int newX, newY; u16 prevKey; - if (dpadMovement == 0) { + if (dpadMovement == NMS_DPAD_MOVEMENT_NONE) { return; } prevKey = namingScreen->keyboardChars[namingScreen->keyboardCursor.y][namingScreen->keyboardCursor.x]; newX = NamingScreen_WrapAroundWithinInterval( - namingScreen->keyboardCursor.x + sDpadMovementCoordDeltas[dpadMovement][0], + namingScreen->keyboardCursor.x + sDpadMovementCoordDeltas[dpadMovement].x, 0, - 13); + NMS_NUM_COLS); newY = NamingScreen_WrapAroundWithinInterval( - namingScreen->keyboardCursor.y + sDpadMovementCoordDeltas[dpadMovement][1], + namingScreen->keyboardCursor.y + sDpadMovementCoordDeltas[dpadMovement].y, 0, - 6); + NMS_NUM_ROWS); while (namingScreen->keyboardChars[newY][newX] == NMS_CONTROL_SKIP || namingScreen->keyboardChars[newY][newX] == prevKey && namingScreen->keyboardChars[newY][newX] > NMS_BUTTON_START) { if (namingScreen->keyboardCursor.prevY == 0 && namingScreen->keyboardChars[newY][newX] == NMS_CONTROL_SKIP - && sDpadMovementCoordDeltas[dpadMovement][1] != 0) { + && sDpadMovementCoordDeltas[dpadMovement].y != 0) { newX += namingScreen->keyboardCursor.deltaX; - newX = NamingScreen_WrapAroundWithinInterval(newX, 0, 13); + newX = NamingScreen_WrapAroundWithinInterval(newX, 0, NMS_NUM_COLS); } else { - newX += sDpadMovementCoordDeltas[dpadMovement][0]; - newX = NamingScreen_WrapAroundWithinInterval(newX, 0, 13); - newY += sDpadMovementCoordDeltas[dpadMovement][1]; - newY = NamingScreen_WrapAroundWithinInterval(newY, 0, 6); + newX += sDpadMovementCoordDeltas[dpadMovement].x; + newX = NamingScreen_WrapAroundWithinInterval(newX, 0, NMS_NUM_COLS); + newY += sDpadMovementCoordDeltas[dpadMovement].y; + newY = NamingScreen_WrapAroundWithinInterval(newY, 0, NMS_NUM_ROWS); } } @@ -2426,7 +2530,7 @@ static void NamingScreen_MoveCursor(NamingScreen *namingScreen, int dpadMovement static void NamingScreen_ProcessDirectionInputs(NamingScreen *namingScreen) { BOOL didInput = FALSE; - int dpadMovement = 0; + enum NamingScreenDpadMovement dpadMovement = NMS_DPAD_MOVEMENT_NONE; BOOL buttonInputIsTransition = FALSE; if (!Sprite_GetDrawFlag(namingScreen->uiSprites[NMS_SPRITE_CURSOR])) { @@ -2436,28 +2540,28 @@ static void NamingScreen_ProcessDirectionInputs(NamingScreen *namingScreen) if (gSystem.pressedKeysRepeatable & PAD_KEY_UP) { Sound_PlayEffect(SEQ_SE_CONFIRM); Sprite_SetDrawFlag(namingScreen->uiSprites[NMS_SPRITE_CURSOR], TRUE); - dpadMovement = 1; + dpadMovement = NMS_DPAD_MOVEMENT_UP; didInput++; } if (gSystem.pressedKeysRepeatable & PAD_KEY_DOWN) { Sound_PlayEffect(SEQ_SE_CONFIRM); Sprite_SetDrawFlag(namingScreen->uiSprites[NMS_SPRITE_CURSOR], TRUE); - dpadMovement = 2; + dpadMovement = NMS_DPAD_MOVEMENT_DOWN; didInput++; } if (gSystem.pressedKeysRepeatable & PAD_KEY_LEFT) { Sound_PlayEffect(SEQ_SE_CONFIRM); Sprite_SetDrawFlag(namingScreen->uiSprites[NMS_SPRITE_CURSOR], TRUE); - dpadMovement = 3; + dpadMovement = NMS_DPAD_MOVEMENT_LEFT; didInput++; } if (gSystem.pressedKeysRepeatable & PAD_KEY_RIGHT) { Sound_PlayEffect(SEQ_SE_CONFIRM); Sprite_SetDrawFlag(namingScreen->uiSprites[NMS_SPRITE_CURSOR], TRUE); - dpadMovement = 4; + dpadMovement = NMS_DPAD_MOVEMENT_RIGHT; didInput++; } @@ -2471,7 +2575,7 @@ static void NamingScreen_ProcessDirectionInputs(NamingScreen *namingScreen) } if ((namingScreen->isTouchInput = NamingScreen_ProcessTouchInputs(namingScreen)) == TRUE) { - dpadMovement = 0; + dpadMovement = NMS_DPAD_MOVEMENT_NONE; didInput++; } @@ -2486,10 +2590,13 @@ static void NamingScreen_ProcessDirectionInputs(NamingScreen *namingScreen) } } -static void NamingScreen_UpdateCursorSpritePosition(NamingScreen *namingScreen, int dpadMovement) +static void NamingScreen_UpdateCursorSpritePosition( + NamingScreen *namingScreen, + enum NamingScreenDpadMovement dpadMovement) { if (namingScreen->keyboardCursor.y != 0) { - if ((namingScreen->keyboardCursor.prevY == 0) && (namingScreen->keyboardCursor.prevY != namingScreen->keyboardCursor.y)) { + if (namingScreen->keyboardCursor.prevY == 0 + && namingScreen->keyboardCursor.prevY != namingScreen->keyboardCursor.y) { Sprite_SetAnim(namingScreen->uiSprites[NMS_SPRITE_CURSOR], 39); } @@ -2516,28 +2623,23 @@ static void NamingScreen_UpdateCursorSpritePosition(NamingScreen *namingScreen, namingScreen->keyboardCursor.prevX = namingScreen->keyboardCursor.x; namingScreen->keyboardCursor.prevY = namingScreen->keyboardCursor.y; - if (sDpadMovementCoordDeltas[dpadMovement][0] != 0) { - namingScreen->keyboardCursor.deltaX = sDpadMovementCoordDeltas[dpadMovement][0]; + if (sDpadMovementCoordDeltas[dpadMovement].x != NMS_DPAD_MOVEMENT_NONE) { + namingScreen->keyboardCursor.deltaX = sDpadMovementCoordDeltas[dpadMovement].x; } } -static void sub_02088514(u16 *param0) +static void NamingScreen_PaletteGlowEffect(u16 *pSinArg) { - fx32 v0; - GXRgb v1; - int v2, v3, v4; + *pSinArg += 20; - *param0 += 20; - - if (*param0 > 360) { - *param0 = 0; + if (*pSinArg > 360) { + *pSinArg = 0; } - v0 = CalcSineDegrees_Wraparound(*param0); - v3 = 15 + (v0 * 10) / FX32_ONE; - v1 = GX_RGB(29, v3, 0); + int val = ((CalcSineDegrees_Wraparound(*pSinArg) * 10) / FX32_ONE) + 15; + GXRgb rgb = GX_RGB(29, val, 0); - GX_LoadOBJPltt((u16 *)&v1, (16 + 13) * 2, 2); + GX_LoadOBJPltt(&rgb, (16 + 13) * 2, 2); } static void NamingScreen_PrintChars( @@ -2555,8 +2657,10 @@ static void NamingScreen_PrintChars( Strbuf *strBuf = Strbuf_Init(2, HEAP_ID_NAMING_SCREEN_APP); while (charCodes[i] != CHAR_EOS) { - if ((charCodes[i] == 0xd001) || (charCodes[i] == (0xd001 + 1)) || (charCodes[i] == (0xd001 + 2))) { - u16 v5 = charCodes[i] - 0xd001; + if (charCodes[i] == NMS_CONTROL_DAKU + || charCodes[i] == NMS_CONTROL_HANDAKU + || charCodes[i] == NMS_CONTROL_SPACE) { + u16 v5 = charCodes[i] - NMS_CONTROL_DAKU; Window_BlitBitmapRect( window, (void *)&rawCharData[v5 * 8 * 8 * 4 / 2], @@ -2569,7 +2673,7 @@ static void NamingScreen_PrintChars( 12, 12); } else { - if (charCodes[i] == (0xd001 + 3)) { + if (charCodes[i] == NMS_CONTROL_SKIP) { i++; continue; } @@ -2605,14 +2709,18 @@ static const u8 sUnkGXObjOffsets1[] = { 0x58 }; -static void *NamingScreen_PrintStringOnWindowAndGetPixelBuffer(Window *window, Strbuf *string, u8 fontId, const TextColor color) +static void *NamingScreen_PrintStringOnWindowAndGetPixelBuffer( + Window *window, + Strbuf *string, + u8 fontId, + const TextColor color) { Text_AddPrinterWithParamsAndColor(window, fontId, string, 0, 0, TEXT_SPEED_NO_TRANSFER, color, NULL); return window->pixels; } static void NamingScreen_PrintCharOnWindowAndOBJ( - Window *window, + Window *windows, const charcode_t *tmpBuf, u8 *pixelBuf, Strbuf *string) @@ -2622,13 +2730,12 @@ static void NamingScreen_PrintCharOnWindowAndOBJ( void *ptr; Strbuf *string2; - Window_FillTilemap(&window[3], 0); - ptr = NamingScreen_PrintStringOnWindowAndGetPixelBuffer(&window[3], string, FONT_SUBSCREEN, TEXT_COLOR(13, 14, 15)); + Window_FillTilemap(&windows[3], 0); + ptr = NamingScreen_PrintStringOnWindowAndGetPixelBuffer(&windows[3], string, FONT_SUBSCREEN, TEXT_COLOR(13, 14, 15)); DC_FlushRange(ptr, 0x20 * 4 * 16); for (i = 0; i < 4; i++) { - // copy rect of pixels from window 3 - sub_02012C60(&window[3], 4, 2, 4 * i, 0, (char *)pixelBuf); + sub_02012C60(&windows[3], 4, 2, 4 * i, 0, (char *)pixelBuf); DC_FlushRange(pixelBuf, 0x20 * 4 * 2); GXS_LoadOBJ(pixelBuf, sUnkGXObjOffsets1[i] * 0x20, 0x20 * 4 * 2); } @@ -2639,11 +2746,11 @@ static void NamingScreen_PrintCharOnWindowAndOBJ( curCharBuf[0] = tmpBuf[i]; curCharBuf[1] = CHAR_EOS; - Window_FillTilemap(&window[i], 0); + Window_FillTilemap(&windows[i], 0); Strbuf_CopyChars(string2, curCharBuf); ptr = NamingScreen_PrintStringOnWindowAndGetPixelBuffer( - &window[i], + &windows[i], string2, FONT_SUBSCREEN, TEXT_COLOR(13, 14, 15)); @@ -2664,7 +2771,7 @@ static void NamingScreen_PrintLastCharOfEntryBuf( Strbuf *string) { int i, j; - const u16 *v2 = NULL; + const u16 *dummy = NULL; u16 charCode; if (srcCharIdx == CHAR_NONE) { @@ -2720,12 +2827,12 @@ static void NamingScreen_LoadKeyboardLayout(charcode_t out[][13], const int inde { int i, j; - for (i = 0; i < 13; i++) { + for (i = 0; i < NMS_NUM_COLS; i++) { out[0][i] = sHomeRowLayouts[index][i]; } - for (j = 0; j < 6 - 1; j++) { - for (i = 0; i < 13; i++) { + for (j = 0; j < NMS_NUM_ROWS - 1; j++) { + for (i = 0; i < NMS_NUM_COLS; i++) { out[1 + j][i] = sCharCodes[index][j][i]; } } @@ -2760,9 +2867,9 @@ static int NamingScreen_ProcessCharacterInput(NamingScreen *namingScreen, charco NMS_CONTROL_DAKU, namingScreen->entryBuf, namingScreen->textCursorPos)) { - Window_FillTilemap(&namingScreen->windows[3], 1); + Window_FillTilemap(&namingScreen->windows[NMS_WINDOW_ENTERED_TEXT], 1); NamingScreen_PrintChars( - &namingScreen->windows[3], + &namingScreen->windows[NMS_WINDOW_ENTERED_TEXT], namingScreen->entryBuf, 0, 0, @@ -2781,9 +2888,9 @@ static int NamingScreen_ProcessCharacterInput(NamingScreen *namingScreen, charco NMS_CONTROL_HANDAKU, namingScreen->entryBuf, namingScreen->textCursorPos)) { - Window_FillTilemap(&namingScreen->windows[3], 1); + Window_FillTilemap(&namingScreen->windows[NMS_WINDOW_ENTERED_TEXT], 1); NamingScreen_PrintChars( - &namingScreen->windows[3], + &namingScreen->windows[NMS_WINDOW_ENTERED_TEXT], namingScreen->entryBuf, 0, 0, @@ -2795,10 +2902,14 @@ static int NamingScreen_ProcessCharacterInput(NamingScreen *namingScreen, charco } break; case NMS_BUTTON_PAGE_JP_UNUSED_2: - if (NamingScreen_JPFlipAlphaCase(0, NELEMS(sJPCharConversionTable), namingScreen->entryBuf, namingScreen->textCursorPos)) { - Window_FillTilemap(&namingScreen->windows[3], 1); + if (NamingScreen_JPFlipAlphaCase( + 0, + NELEMS(sJPCharConversionTable), + namingScreen->entryBuf, + namingScreen->textCursorPos)) { + Window_FillTilemap(&namingScreen->windows[NMS_WINDOW_ENTERED_TEXT], 1); NamingScreen_PrintChars( - &namingScreen->windows[3], + &namingScreen->windows[NMS_WINDOW_ENTERED_TEXT], namingScreen->entryBuf, 0, 0, @@ -2828,13 +2939,13 @@ static int NamingScreen_ProcessCharacterInput(NamingScreen *namingScreen, charco namingScreen->entryBuf[namingScreen->textCursorPos - 1] = CHAR_EOS; namingScreen->textCursorPos--; - Window_FillTilemap(&namingScreen->windows[3], 1); + Window_FillTilemap(&namingScreen->windows[NMS_WINDOW_ENTERED_TEXT], 1); if (namingScreen->textCursorPos == 0) { - Window_CopyToVRAM(&namingScreen->windows[3]); + Window_CopyToVRAM(&namingScreen->windows[NMS_WINDOW_ENTERED_TEXT]); } else { NamingScreen_PrintChars( - &namingScreen->windows[3], + &namingScreen->windows[NMS_WINDOW_ENTERED_TEXT], namingScreen->entryBuf, 0, 0, @@ -2845,7 +2956,7 @@ static int NamingScreen_ProcessCharacterInput(NamingScreen *namingScreen, charco } NamingScreen_PrintLastCharOfEntryBuf( - &namingScreen->windows[4], + &namingScreen->windows[NMS_WINDOW_UNK_0], namingScreen->entryBuf, namingScreen->textCursorPos, namingScreen->tmpBuf, @@ -2879,7 +2990,7 @@ static int NamingScreen_ProcessCharacterInput(NamingScreen *namingScreen, charco HEAP_ID_NAMING_SCREEN_APP); return NMS_APP_STATE_WAIT_FADE_OUT; } else { - namingScreen->state.main = NMS_STATE_PLACEHOLDER_5; + namingScreen->state.main = NMS_STATE_PRINT_BATTLE_MESSAGE; } break; default: @@ -2890,9 +3001,9 @@ static int NamingScreen_ProcessCharacterInput(NamingScreen *namingScreen, charco if (namingScreen->textCursorPos != namingScreen->maxChars) { namingScreen->entryBuf[namingScreen->textCursorPos] = charCode; - Window_FillTilemap(&namingScreen->windows[3], 1); + Window_FillTilemap(&namingScreen->windows[NMS_WINDOW_ENTERED_TEXT], 1); NamingScreen_PrintChars( - &namingScreen->windows[3], + &namingScreen->windows[NMS_WINDOW_ENTERED_TEXT], namingScreen->entryBuf, 0, 0, @@ -2914,10 +3025,10 @@ static int NamingScreen_ProcessCharacterInput(NamingScreen *namingScreen, charco G2_SetBlendAlpha(0, GX_BLEND_PLANEMASK_BG0 | GX_BLEND_PLANEMASK_BG1 | GX_BLEND_PLANEMASK_BG2, 8, 8); Sprite_SetAnim(namingScreen->uiSprites[NMS_SPRITE_CURSOR], 60); - namingScreen->keyboardCursor.ignoreInput = 1; + namingScreen->keyboardCursor.ignoreInput = TRUE; NamingScreen_PrintLastCharOfEntryBuf( - &namingScreen->windows[4], + &namingScreen->windows[NMS_WINDOW_UNK_0], namingScreen->entryBuf, namingScreen->textCursorPos, namingScreen->tmpBuf, @@ -2972,7 +3083,7 @@ static BOOL NamingScreen_JPFlipDiacritic( int i; charcode_t charCode; - if (cursorPos == 0 || charBuf[cursorPos - 1] == 1) { + if (cursorPos == 0 || charBuf[cursorPos - 1] == CHAR_WIDE_SPACE) { return FALSE; } @@ -3085,9 +3196,9 @@ static void NamingScreen_UpdateSpriteAnimations(BOOL spritesToUpdate[], Sprite * { int i, j; - for (i = 0; i < 3; i++) { + for (i = NMS_SPRITE_PAGE_BUTTON_START; i < NMS_SPRITE_PAGE_BUTTON_END + 1; i++) { if (spritesToUpdate[i]) { - for (j = 0; j < 3; j++) { + for (j = NMS_SPRITE_PAGE_BUTTON_START; j < NMS_SPRITE_PAGE_BUTTON_END + 1; j++) { Sprite_SetAnim(sprites[j], sSpriteAnimations[j].anim); } @@ -3096,13 +3207,13 @@ static void NamingScreen_UpdateSpriteAnimations(BOOL spritesToUpdate[], Sprite * } } - for (i = 5; i < 7; i++) { + for (i = NMS_SPRITE_BUTTON_START; i < NMS_SPRITE_BUTTON_END + 1; i++) { if (spritesToUpdate[i]) { Sprite_SetAnim(sprites[i], sSpriteAnimations[i].anim + 1); } } - for (i = 0; i < 7; i++) { + for (i = 0; i < NMS_SPRITE_OVERLAY; i++) { spritesToUpdate[i] = FALSE; } } @@ -3126,7 +3237,7 @@ static void NamingScreen_PlaceCursorSprite(NamingScreen *namingScreen) NamingScreen_UpdateCursorSpritePosition(namingScreen, 0); } - namingScreen->keyboardCursor.ignoreInput = 0; + namingScreen->keyboardCursor.ignoreInput = FALSE; Sprite_SetExplicitOAMMode(namingScreen->uiSprites[NMS_SPRITE_CURSOR], GX_OAM_MODE_NORMAL); } diff --git a/src/applications/rowan_intro/rowan_intro_app.c b/src/applications/rowan_intro/rowan_intro_app.c index dd3908b24d..6092271020 100644 --- a/src/applications/rowan_intro/rowan_intro_app.c +++ b/src/applications/rowan_intro/rowan_intro_app.c @@ -245,8 +245,8 @@ typedef struct RowanIntro { StringTemplate *strFormatter; UnkStruct_02015920 *unk_68; SysTask *unused; - NamingScreenArgs *unk_70; - NamingScreenArgs *unk_74; + NamingScreenArgs *playerNamingScreenArgs; + NamingScreenArgs *rivalNamingScreenArgs; enum FadeBgLayerState fadeBgLayerState; int fadeBgLayerCurAlpha; int fadeBgLayerCurAlphaInv; @@ -325,8 +325,8 @@ BOOL RowanIntro_Init(ApplicationManager *appMan, int *unusedState) manager->state = RI_STATE_FIRST_FADE_BLACK_START; manager->bufferedState = RI_STATE_FIRST_FADE_BLACK_START; manager->appMan = NULL; - manager->unk_70 = NamingScreenArgs_Init(heapID, NAMING_SCREEN_TYPE_PLAYER, 0, TRAINER_NAME_LEN, manager->options); - manager->unk_74 = NamingScreenArgs_Init(heapID, NAMING_SCREEN_TYPE_RIVAL, 0, TRAINER_NAME_LEN, manager->options); + manager->playerNamingScreenArgs = NamingScreenArgs_Init(heapID, NAMING_SCREEN_TYPE_PLAYER, 0, TRAINER_NAME_LEN, manager->options); + manager->rivalNamingScreenArgs = NamingScreenArgs_Init(heapID, NAMING_SCREEN_TYPE_RIVAL, 0, TRAINER_NAME_LEN, manager->options); manager->bgLayer3TilemapIndex = 0; manager->bgLayer1TilemapIndex = 0; manager->bgLayer2TilemapIndex = 0; @@ -436,19 +436,19 @@ BOOL RowanIntro_Exit(ApplicationManager *appMan, int *unusedState) TrainerInfo_SetNameFromStrbuf( SaveData_GetTrainerInfo(manager->saveData), - manager->unk_70->textInputStr); + manager->playerNamingScreenArgs->textInputStr); TrainerInfo_SetGender( SaveData_GetTrainerInfo(manager->saveData), - manager->unk_70->playerGenderOrMonSpecies); + manager->playerNamingScreenArgs->playerGenderOrMonSpecies); { MiscSaveBlock *miscSaveBlock = SaveData_MiscSaveBlock(manager->saveData); - MiscSaveBlock_SetRivalName(miscSaveBlock, manager->unk_74->textInputStr); + MiscSaveBlock_SetRivalName(miscSaveBlock, manager->rivalNamingScreenArgs->textInputStr); } - NamingScreenArgs_Free(manager->unk_70); - NamingScreenArgs_Free(manager->unk_74); + NamingScreenArgs_Free(manager->playerNamingScreenArgs); + NamingScreenArgs_Free(manager->rivalNamingScreenArgs); ApplicationManager_FreeData(appMan); Heap_Destroy(heapID); EnqueueApplication(FS_OVERLAY_ID(game_start), &gGameStartNewSaveAppTemplate); @@ -1001,14 +1001,14 @@ static BOOL RowanIntro_DisplayMessage(RowanIntro *manager, u32 textID, BOOL endE StringTemplate_SetStrbuf( manager->strFormatter, 0, - manager->unk_70->textInputStr, + manager->playerNamingScreenArgs->textInputStr, manager->playerGender, 1, GAME_LANGUAGE); StringTemplate_SetStrbuf( manager->strFormatter, 1, - manager->unk_74->textInputStr, + manager->rivalNamingScreenArgs->textInputStr, 0, 1, GAME_LANGUAGE); @@ -2704,10 +2704,10 @@ static BOOL RowanIntro_Run(RowanIntro *manager) } break; case RI_STATE_NAME_APP_KEYBOARD: - manager->unk_70->playerGenderOrMonSpecies = manager->playerGender; + manager->playerNamingScreenArgs->playerGenderOrMonSpecies = manager->playerGender; manager->appMan = ApplicationManager_New( &gNamingScreenAppTemplate, - manager->unk_70, + manager->playerNamingScreenArgs, manager->heapID); manager->state = RI_STATE_NAME_KEYBOARD; break; @@ -2773,7 +2773,7 @@ static BOOL RowanIntro_Run(RowanIntro *manager) break; case 2: case LIST_CANCEL: - Strbuf_Clear(manager->unk_70->textInputStr); + Strbuf_Clear(manager->playerNamingScreenArgs->textInputStr); manager->bufferedState = RI_STATE_GENDR_FADE_IN_AVATAR_PREP; manager->state = RI_STATE_NAME_FADE_OUT_AVATAR; break; @@ -2858,7 +2858,7 @@ static BOOL RowanIntro_Run(RowanIntro *manager) { Strbuf *tmpStrbuf = MessageLoader_GetNewStrbuf(manager->msgLoader, rivalNameTextID); - Strbuf_Copy(manager->unk_74->textInputStr, tmpStrbuf); + Strbuf_Copy(manager->rivalNamingScreenArgs->textInputStr, tmpStrbuf); Strbuf_Free(tmpStrbuf); } } @@ -2875,7 +2875,7 @@ static BOOL RowanIntro_Run(RowanIntro *manager) case RI_STATE_RIVAL_NAME_APP_KEYBOARD: manager->appMan = ApplicationManager_New( &gNamingScreenAppTemplate, - manager->unk_74, + manager->rivalNamingScreenArgs, manager->heapID); manager->state = RI_STATE_RIVAL_NAME_KEYBOARD; break; @@ -2919,7 +2919,7 @@ static BOOL RowanIntro_Run(RowanIntro *manager) break; case 2: case LIST_CANCEL: - Strbuf_Clear(manager->unk_74->textInputStr); + Strbuf_Clear(manager->rivalNamingScreenArgs->textInputStr); manager->state = RI_STATE_RIVAL_NAME_DIALOGUE; break; } diff --git a/src/battle/battle_script.c b/src/battle/battle_script.c index 43413ec921..4dad855568 100644 --- a/src/battle/battle_script.c +++ b/src/battle/battle_script.c @@ -10908,7 +10908,7 @@ static void BattleScript_CatchMonTask(SysTask *param0, void *param1) v19 = v2->tmpPtr[1]; v3 = BattleSystem_PartyPokemon(v2->battleSys, v1, v2->battleCtx->selectedPartySlot[v1]); - if (v19->unk_14 == 0) { + if (v19->returnCode == NAMING_SCREEN_CODE_OK) { Pokemon_SetValue(v3, MON_DATA_NICKNAME_STRBUF_AND_FLAG, v19->textInputStr); ov16_0223F24C(v2->battleSys, (1 + 48)); } diff --git a/src/overlay064/ov64_0222DCE0.c b/src/overlay064/ov64_0222DCE0.c index 2d8e5311cc..9ed0f90a92 100644 --- a/src/overlay064/ov64_0222DCE0.c +++ b/src/overlay064/ov64_0222DCE0.c @@ -2482,7 +2482,7 @@ static int ov64_0223044C(UnkStruct_ov64_02230444 *param0, UnkStruct_ov64_0222DFD ApplicationManager_Free(param0->appMan); - if (param0->unk_04->unk_14 == 0) { + if (param0->unk_04->returnCode == NAMING_SCREEN_CODE_OK) { param0->appMan = ApplicationManager_New(&Unk_020F2DBC, param0->unk_08, heapID); param2->unk_04 = 2; } else { @@ -2518,7 +2518,7 @@ static int ov64_0223044C(UnkStruct_ov64_02230444 *param0, UnkStruct_ov64_0222DFD ApplicationManager_Free(param0->appMan); - if (param0->unk_04->unk_14 == 0) { + if (param0->unk_04->returnCode == NAMING_SCREEN_CODE_OK) { ov64_0222E074(param2, 1, 12); ov64_0222E07C(param2, param0->unk_04->textInputStr, NULL); param2->unk_04 = 6; diff --git a/src/unk_0203D1B8.c b/src/unk_0203D1B8.c index 07f99d43f6..cb2b2f49db 100644 --- a/src/unk_0203D1B8.c +++ b/src/unk_0203D1B8.c @@ -1169,23 +1169,25 @@ static BOOL sub_0203DE98(FieldTask *param0) case 3: if (v2->unk_0C->type == NAMING_SCREEN_TYPE_POKEMON) { if (Strbuf_Compare(v2->unk_0C->textInputStr, v2->unk_10) == 0) { - v2->unk_0C->unk_14 = 1; + v2->unk_0C->returnCode = 1; } } else if (v2->unk_0C->type == NAMING_SCREEN_TYPE_GROUP) { const u16 *v3 = Strbuf_GetData(v2->unk_0C->textInputStr); RecordMixedRNG *v4 = SaveData_GetRecordMixedRNG(fieldSystem->saveData); if (RecordMixedRNG_DoesCollectionContainGroup(v4, v3)) { - v2->unk_0C->unk_14 = 2; + // this re-uses the returnCode field with values not associated with the naming + // screen. these should probably have their own enum. + v2->unk_0C->returnCode = 2; } } - if (v2->unk_0C->unk_14 == 0) { + if (v2->unk_0C->returnCode == 0) { sub_0203DF68(param0); } if (v2->unk_08 != NULL) { - *v2->unk_08 = v2->unk_0C->unk_14; + *v2->unk_08 = v2->unk_0C->returnCode; } NamingScreenArgs_Free(v2->unk_0C); @@ -1206,14 +1208,14 @@ static void sub_0203DF68(FieldTask *param0) switch (v1->unk_0C->type) { case NAMING_SCREEN_TYPE_PLAYER: { TrainerInfo *v2 = SaveData_GetTrainerInfo(fieldSystem->saveData); - TrainerInfo_SetName(v2, v1->unk_0C->unk_1C); + TrainerInfo_SetName(v2, v1->unk_0C->nameInputRaw); } break; case NAMING_SCREEN_TYPE_POKEMON: { Pokemon *v3; int v4; v3 = Party_GetPokemonBySlotIndex(SaveData_GetParty(fieldSystem->saveData), v1->unk_04); - Pokemon_SetValue(v3, MON_DATA_NICKNAME_AND_FLAG, (u8 *)&v1->unk_0C->unk_1C); + Pokemon_SetValue(v3, MON_DATA_NICKNAME_AND_FLAG, (u8 *)&v1->unk_0C->nameInputRaw); } break; case NAMING_SCREEN_TYPE_GROUP: { RecordMixedRNG *v5 = SaveData_GetRecordMixedRNG(fieldSystem->saveData); diff --git a/src/unk_02098218.c b/src/unk_02098218.c index de9cdaacad..b306935bba 100644 --- a/src/unk_02098218.c +++ b/src/unk_02098218.c @@ -242,7 +242,7 @@ static BOOL sub_0209843C(FieldTask *param0) v0->unk_00++; } break; case 4: - if (v0->unk_08->unk_14 == 0) { + if (v0->unk_08->returnCode == NAMING_SCREEN_CODE_OK) { Pokemon_SetValue(v0->unk_0C.unk_00, MON_DATA_NICKNAME_STRBUF_AND_FLAG, v0->unk_08->textInputStr); {