// // Generated By: dol2asm // Translation Unit: d/d_name // #include "d/d_name.h" #include "JSystem/J2DGraph/J2DTextBox.h" #include "stdio.h" #include "d/com/d_com_inf_game.h" #include "d/d_lib.h" #include "dol2asm.h" #include "f_op/f_op_msg_mng.h" #include "global.h" #include "m_Do/m_Do_controller_pad.h" #include "m_Do/m_Do_audio.h" // // Forward References: // extern "C" void __ct__9dNm_HIO_cFv(); extern "C" void __ct__7dName_cFP7J2DPane(); extern "C" void __dt__7dName_cFv(); extern "C" void _create__7dName_cFv(); extern "C" void init__7dName_cFv(); extern "C" void initial__7dName_cFv(); extern "C" void showIcon__7dName_cFv(); extern "C" void _move__7dName_cFv(); extern "C" void nameCheck__7dName_cFv(); extern "C" void playNameSet__7dName_cFi(); extern "C" void cursorAnm__7dName_cFv(); extern "C" void Wait__7dName_cFv(); extern "C" void MojiSelect__7dName_cFv(); extern "C" void MojiSelectAnmInit__7dName_cFv(); extern "C" void MojiSelectAnm__7dName_cFv(); extern "C" void MojiSelectAnm2__7dName_cFv(); extern "C" void MojiSelectAnm3__7dName_cFv(); extern "C" void mojiChange__7dName_cFUc(); extern "C" void selectMojiSet__7dName_cFv(); extern "C" void getMoji__7dName_cFv(); extern "C" void setMoji__7dName_cFi(); extern "C" void setNameText__7dName_cFv(); extern "C" void nameCursorMove__7dName_cFv(); extern "C" void selectCursorMove__7dName_cFv(); extern "C" void menuCursorPosSet__7dName_cFv(); extern "C" void MenuSelect__7dName_cFv(); extern "C" void MenuSelectAnmInit__7dName_cFv(); extern "C" void MenuSelectAnm__7dName_cFv(); extern "C" void MenuSelectAnm2__7dName_cFv(); extern "C" void MenuSelectAnm3__7dName_cFv(); extern "C" void menuAbtnSelect__7dName_cFv(); extern "C" void backSpace__7dName_cFv(); extern "C" void mojiListChange__7dName_cFv(); extern "C" void menuCursorMove__7dName_cFv(); extern "C" void menuCursorMove2__7dName_cFv(); extern "C" void selectCursorPosSet__7dName_cFi(); extern "C" void _draw__7dName_cFv(); extern "C" void screenSet__7dName_cFv(); extern "C" void displayInit__7dName_cFv(); extern "C" void NameStrSet__7dName_cFv(); extern "C" void getMenuPosIdx__7dName_cFUc(); extern "C" void draw__14dDlst_NameIN_cFv(); extern "C" void __dt__14dDlst_NameIN_cFv(); extern "C" void __dt__9dNm_HIO_cFv(); extern "C" void __sinit_d_name_cpp(); extern "C" extern char const* const d_d_name__stringBase0; // // External References: // extern "C" void mDoExt_getMesgFont__Fv(); extern "C" void mDoExt_removeMesgFont__Fv(); extern "C" void fopMsgM_messageGet__FPcUl(); extern "C" void __ct__9STControlFssssffss(); extern "C" void checkTrigger__9STControlFv(); extern "C" void checkLeftTrigger__9STControlFv(); extern "C" void checkRightTrigger__9STControlFv(); extern "C" void checkUpTrigger__9STControlFv(); extern "C" void checkDownTrigger__9STControlFv(); extern "C" void set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c(); extern "C" void __ct__16dSelect_cursor_cFUcfP10JKRArchive(); extern "C" void setPos__16dSelect_cursor_cFffP7J2DPaneb(); extern "C" void setParam__16dSelect_cursor_cFfffff(); extern "C" void setAlphaRate__16dSelect_cursor_cFf(); extern "C" void __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap(); extern "C" void scaleAnime__8CPaneMgrFsffUc(); extern "C" void getGlobalVtxCenter__8CPaneMgrFP7J2DPanebs(); extern "C" void dPaneClass_showNullPane__FP9J2DScreen(); extern "C" void __ct__13CPaneMgrAlphaFP9J2DScreenUxUcP10JKRExpHeap(); extern "C" void show__13CPaneMgrAlphaFv(); extern "C" void hide__13CPaneMgrAlphaFv(); extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); extern "C" void* __nw__FUl(); extern "C" void __dl__FPv(); extern "C" void getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader(); extern "C" void __ct__9J2DScreenFv(); extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive(); extern "C" void draw__9J2DScreenFffPC14J2DGrafContext(); extern "C" void animation__9J2DScreenFv(); extern "C" void getStringPtr__10J2DTextBoxCFv(); extern "C" void setString__10J2DTextBoxFPCce(); extern "C" void setString__10J2DTextBoxFsPCce(); extern "C" void load__20J2DAnmLoaderDataBaseFPCv(); extern "C" void __register_global_object(); extern "C" void __ptmf_scall(); extern "C" void _savegpr_19(); extern "C" void _savegpr_24(); extern "C" void _savegpr_26(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); extern "C" void _restgpr_19(); extern "C" void _restgpr_24(); extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" extern void* __vt__12dDlst_base_c[3]; extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; // // Declarations: // /* 803C1F50-803C1F5C 01F070 000C+00 5/5 0/0 0/0 .data cNullVec__6Z2Calc */ SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; /* 803C1F5C-803C2060 -00001 0104+00 0/3 0/0 0/0 .data l_mojiHira */ SECTION_DATA static const char* l_mojiHira[65] = { "あ", "い", "う", "え", "お", "か", "き", "く", "け", "こ", "さ", "し", "す", "せ", "そ", "た", "ち", "つ", "て", "と", "な", "に", "ぬ", "ね", "の", "は", "ひ", "ふ", "へ", "ほ", "ま", "み", "む", "め", "も", "や", " ", "ゆ", " ", "よ", "ら", "り", "る", "れ", "ろ", "わ", " ", "を", " ", "ん", "ぁ", "ぃ", "ぅ", "ぇ", "ぉ", "ゃ", " ", "ゅ", " ", "ょ", "っ", " ", "ー", "゛", "゜", }; /* 803C2060-803C2164 -00001 0104+00 0/1 0/0 0/0 .data l_mojiHira2 */ SECTION_DATA static const char* l_mojiHira2[65] = { "¥", "¥", "¥", "¥", "¥", "が", "ぎ", "ぐ", "げ", "ご", "ざ", "じ", "ず", "ぜ", "ぞ", "だ", "ぢ", "づ", "で", "ど", "¥", "¥", "¥", "¥", "¥", "ば", "び", "ぶ", "べ", "ぼ", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", }; /* 803C2164-803C2268 -00001 0104+00 0/1 0/0 0/0 .data l_mojiHira3 */ SECTION_DATA static const char* l_mojiHira3[65] = { "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "ぱ", "ぴ", "ぷ", "ぺ", "ぽ", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", }; /* 803C2268-803C236C -00001 0104+00 0/3 0/0 0/0 .data l_mojikata */ SECTION_DATA static const char* l_mojikata[65] = { "ア", "イ", "ウ", "エ", "オ", "カ", "キ", "ク", "ケ", "コ", "サ", "シ", "ス", "セ", "\x83\x5C", "タ", "チ", "ツ", "テ", "ト", "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "ヒ", "フ", "ヘ", "ホ", "マ", "ミ", "ム", "メ", "モ", "ヤ", " ", "ユ", " ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ", " ", "ヲ", " ", "ン", "ァ", "ィ", "ゥ", "ェ", "ォ", "ャ", " ", "ュ", " ", "ョ", "ッ", " ", "ー", "゛", "゜", }; /* 803C236C-803C2470 -00001 0104+00 0/1 0/0 0/0 .data l_mojikata2 */ SECTION_DATA static const char* l_mojikata2[65] = { "¥", "¥", "ヴ", "¥", "¥", "ガ", "ギ", "グ", "ゲ", "ゴ", "ザ", "ジ", "ズ", "ゼ", "ゾ", "ダ", "ヂ", "ヅ", "デ", "ド", "¥", "¥", "¥", "¥", "¥", "バ", "ビ", "ブ", "ベ", "ボ", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", }; /* 803C2470-803C2574 -00001 0104+00 0/1 0/0 0/0 .data l_mojikata3 */ SECTION_DATA static const char* l_mojikata3[65] = { "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "パ", "ピ", "プ", "ペ", "ポ", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", }; /* 803C2574-803C2678 -00001 0104+00 0/3 0/0 0/0 .data l_mojiEisu */ SECTION_DATA static const char* l_mojiEisu[65] = { "A", "N", "a", "n", "1", "B", "O", "b", "o", "2", "C", "P", "c", "p", "3", "D", "Q", "d", "q", "4", "E", "R", "e", "r", "5", "F", "S", "f", "s", "6", "G", "T", "g", "t", "7", "H", "U", "h", "u", "8", "I", "V", "i", "v", "9", "J", "W", "j", "w", "0", "K", "X", "k", "x", ",", "L", "Y", "l", "y", ".", "M", "Z", "m", "z", " ", }; /* 80430734-80430748 05D454 0014+00 9/9 0/0 0/0 .bss g_nmHIO */ static dNm_HIO_c g_nmHIO; /* 803C26E4-803C2750 01F804 006C+00 1/2 0/0 0/0 .data SelProc */ typedef void (dName_c::*selProcFunc)(void); SECTION_DATA static selProcFunc SelProc[9] = { &dName_c::MojiSelect, &dName_c::MojiSelectAnm, &dName_c::MojiSelectAnm2, &dName_c::MojiSelectAnm3, &dName_c::MenuSelect, &dName_c::MenuSelectAnm, &dName_c::MenuSelectAnm2, &dName_c::MenuSelectAnm3, &dName_c::Wait}; /* 803C2750-803C2788 -00001 0034+04 1/1 0/0 0/0 .data @4121 */ SECTION_DATA static void* lit_4121[13 + 1 /* padding */] = { (void*)(((char*)mojiChange__7dName_cFUc) + 0x8C), (void*)(((char*)mojiChange__7dName_cFUc) + 0x130), (void*)(((char*)mojiChange__7dName_cFUc) + 0x170), (void*)(((char*)mojiChange__7dName_cFUc) + 0x1B0), (void*)(((char*)mojiChange__7dName_cFUc) + 0x358), (void*)(((char*)mojiChange__7dName_cFUc) + 0x2D4), (void*)(((char*)mojiChange__7dName_cFUc) + 0x358), (void*)(((char*)mojiChange__7dName_cFUc) + 0x31C), (void*)(((char*)mojiChange__7dName_cFUc) + 0x358), (void*)(((char*)mojiChange__7dName_cFUc) + 0x358), (void*)(((char*)mojiChange__7dName_cFUc) + 0x8C), (void*)(((char*)mojiChange__7dName_cFUc) + 0x31C), (void*)(((char*)mojiChange__7dName_cFUc) + 0x1B0), /* padding */ NULL, }; /* 803C2788-803C27C8 01F8A8 0040+00 0/1 0/0 0/0 .data l_cur0TagName$4610 */ #pragma push #pragma force_active on SECTION_DATA static u64 l_cur0TagName[8] = { 's_00', 's_01', 's_02', 's_03', 's_04', 's_05', 's_06', 's_07', }; #pragma pop /* 803C27C8-803C2808 01F8E8 0040+00 0/1 0/0 0/0 .data l_cur1TagName$4611 */ #pragma push #pragma force_active on SECTION_DATA static u64 l_cur1TagName[8] = { 's_0r', 's_01r', 's_02r', 's_03r', 's_04r', 's_05r', 's_06r', 's_07r', }; #pragma pop /* 803C2808-803C2828 01F928 0020+00 0/1 0/0 0/0 .data l_menu_icon_tag$4617 */ #pragma push #pragma force_active on SECTION_DATA static u64 l_menu_icon_tag[4] = { 'p_ABC_n', 'p_abc_n', 'j_eigo_n', 'p_end_n', }; #pragma pop /* 803C2828-803C28A0 01F948 0078+00 0/1 0/0 0/0 .data l_menu_tag$4618 */ #pragma push #pragma force_active on SECTION_DATA static u64 l_menu_tag[15] = { 'p_ABC_0', 'p_ABC_1', 'p_ABC_2', 'p_abc_0', 'p_abc_1', 'p_abc_2', 'm_eigo_0', 'm_eigo_1', 'm_eigo_2', 'p_end_0', 'p_end_1', 'p_end_2', }; #pragma pop /* 803C28A0-803C28B0 01F9C0 0010+00 0/1 0/0 0/0 .data l_menu_msg$4619 */ #pragma push #pragma force_active on SECTION_DATA static u32 l_menu_msg[4] = { 0x38B, 0x38C, 0x388, 0x38E, }; #pragma pop /* 803C28B0-803C2AB8 01F9D0 0208+00 0/1 0/0 0/0 .data l_tagName$4635 */ #pragma push #pragma force_active on SECTION_DATA static u64 l_tagName[65] = { 'm_00_0', 'm_00_1', 'm_00_2', 'm_00_3', 'm_00_4', 'm_01_0', 'm_01_1', 'm_01_2', 'm_01_3', 'm_01_4', 'm_02_0', 'm_02_1', 'm_02_2', 'm_02_3', 'm_02_4', 'm03_0', 'm03_1', 'm03_2', 'm03_3', 'm03_4', 'm_04_0', 'm_04_1', 'm_04_2', 'm_04_3', 'm_04_4', 'm_05_0', 'm_05_1', 'm_05_2', 'm_05_3', 'm_05_4', 'm_06_0', 'm_06_1', 'm_06_2', 'm_06_3', 'm_06_4', 'm_07_0', 'm_07_1', 'm_07_2', 'm_07_3', 'm_07_4', 'm_08_0', 'm_08_1', 'm_08_2', 'm_08_3', 'm_08_4', 'm_09_0', 'm_09_1', 'm_09_2', 'm_09_3', 'm_09_4', 'm_10_0', 'm_10_1', 'm_10_2', 'm_10_3', 'm_10_4', 'm_11_0', 'm_11_1', 'm_11_2', 'm_11_3', 'm_11_4', 'm12_0', 'm12_1', 'm12_2', 'm12_3', 'm12_4', }; #pragma pop /* 803C2AB8-803C2AF8 01FBD8 0040+00 0/1 0/0 0/0 .data l_nameTagName$4642 */ #pragma push #pragma force_active on SECTION_DATA static u64 l_nameTagName[8] = { 'name_00', 'name_01', 'name_02', 'name_03', 'name_04', 'name_05', 'name_06', 'name_07', }; #pragma pop /* 803C2AF8-803C2B38 01FC18 0040+00 0/1 0/0 0/0 .data l_nameCurTagName$4643 */ #pragma push #pragma force_active on SECTION_DATA static u64 l_nameCurTagName[8] = { 's__n_00', 's__n_01', 's__n_02', 's__n_03', 's__n_04', 's__n_05', 's__n_06', 's__n_07', }; #pragma pop /* 803C2B38-803C2B64 01FC58 0010+1C 3/3 0/0 0/0 .data __vt__14dDlst_NameIN_c */ SECTION_DATA extern void* __vt__14dDlst_NameIN_c[4 + 7 /* padding */] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)draw__14dDlst_NameIN_cFv, (void*)__dt__14dDlst_NameIN_cFv, /* padding */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, }; /* 803C2B64-803C2B7C 01FC84 000C+0C 2/2 0/0 0/0 .data __vt__7dName_c */ SECTION_DATA extern void* __vt__7dName_c[3 + 3 /* padding */] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__7dName_cFv, /* padding */ NULL, NULL, NULL, }; /* 8024E3E0-8024E408 248D20 0028+00 1/1 0/0 0/0 .text __ct__9dNm_HIO_cFv */ dNm_HIO_c::dNm_HIO_c() { mMenuScale = 1.3f; mSelCharScale = 1.4f; field_0x10 = 10; } /* 8024E408-8024E468 248D48 0060+00 0/0 1/1 0/0 .text __ct__7dName_cFP7J2DPane */ dName_c::dName_c(J2DPane* pane) { nameIn.field_0xc = pane; _create(); init(); } /* 8024E468-8024E62C 248DA8 01C4+00 1/0 0/0 0/0 .text __dt__7dName_cFv */ #ifdef NONMATCHING dName_c::~dName_c() { delete stick; delete nameIn.NameInScr; mDoExt_removeMesgFont(); for (int i = 0; i < 8; i++) { delete mNameCursor[i]; } for (int i = 0; i < 65; i++) { delete mMojiIcon[i]; } for (int i = 0; i < 4; i++) { if (mMenuIcon[i] != NULL) { delete mMenuIcon[i]; } } delete mCursorColorKey; delete mCursorTexKey; delete mSelIcon; archive->removeResourceAll(); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // asm dName_c::~dName_c() { extern "C" asm void __dt__7dName_cFv() { nofralloc #include "asm/d/d_name/__dt__7dName_cFv.s" } #pragma pop #endif /* 8024E62C-8024E6D4 248F6C 00A8+00 1/1 0/0 0/0 .text _create__7dName_cFv */ void dName_c::_create() { stick = new STControl(5, 2, 2, 1, 0.9f, 0.5f, 0, 0x800); stick->setFirstWaitTime(5); nameIn.font = mDoExt_getMesgFont(); g_nmHIO.field_0x4 = -1; screenSet(); mNextNameStr[0] = 0; mCursorDelay = 1; displayInit(); } /* 8024E6D4-8024E7A4 249014 00D0+00 1/1 0/0 0/0 .text init__7dName_cFv */ void dName_c::init() { mCurPos = 0; mLastCurPos = 0; nameCursorMove(); mLastCurPos = mCurPos; for (int i = 0; i < 4; i++) { field_0x30c[i][2] = 0; } mCharColumn = 0; mCharRow = 0; mPrevColumn = 0; mPrevRow = 0; field_0x30c[0][0] = 0; field_0x30c[0][1] = 0; field_0x30c[0][2] = 1; selectCursorMove(); mSelProc = PROC_MOJI_SELECT; field_0x2ac = mSelProc; field_0x2ad = mSelProc; field_0x2ae = field_0x2ac; mMojiSet = MOJI_EIGO; mPrevMojiSet = 255; mSelMenu = MENU_END; mPrevSelMenu = MENU_END; mojiListChange(); } /* 8024E7A4-8024E7EC 2490E4 0048+00 0/0 4/4 0/0 .text initial__7dName_cFv */ void dName_c::initial() { displayInit(); if (mNextNameStr[0] != 0) { NameStrSet(); mNextNameStr[0] = 0; } } /* ############################################################################################## */ /* 80454DC0-80454DC4 0033C0 0004+00 16/16 0/0 0/0 .sdata2 @3820 */ SECTION_SDATA2 static f32 lit_3820 = 1.0f; /* 8024E7EC-8024E9A0 24912C 01B4+00 0/0 2/2 0/0 .text showIcon__7dName_cFv */ void dName_c::showIcon() { Vec pos; switch (mSelProc) { case PROC_MOJI_SELECT: if (mCharColumn != 255 && mCharRow != 255) { pos = mMojiIcon[mCharRow + mCharColumn * 5]->getGlobalVtxCenter(false, 0); mSelIcon->setPos(pos.x, pos.y, mMojiIcon[mCharRow + mCharColumn * 5]->getPanePtr(), true); ((J2DTextBox*)mMojiIcon[mCharRow + mCharColumn * 5]->getPanePtr()) ->setWhite(JUtility::TColor(0xC8, 0xC8, 0xC8, 0xFF)); mSelIcon->setAlphaRate(lit_3820); } break; case PROC_MENU_SELECT: if (mSelMenu != 255) { int menu_i = getMenuPosIdx(mSelMenu); pos = mMenuIcon[menu_i]->getGlobalVtxCenter(false, 0); mSelIcon->setPos(pos.x, pos.y, mMenuIcon[menu_i]->getPanePtr(), true); mMenuText[menu_i]->setWhite(JUtility::TColor(0xC8, 0xC8, 0xC8, 0xFF)); mSelIcon->setAlphaRate(lit_3820); } break; } } /* ############################################################################################## */ /* 80454DC4-80454DC8 0033C4 0004+00 6/6 0/0 0/0 .sdata2 @3886 */ SECTION_SDATA2 static f32 lit_3886 = -1.0f; /* 8024E9A0-8024EC10 2492E0 0270+00 0/0 2/2 0/0 .text _move__7dName_cFv */ // matches with literals #ifdef NONMATCHING void dName_c::_move() { stick->checkTrigger(); (this->*SelProc[mSelProc])(); if (mDoCPd_c::getTrigRight(PAD_1)) { // BUG: this check only fails if the cursor is at exactly 7 // setMoji allows the cursor to reach 8, which is out of bounds here if (mCurPos != 7) { mDoAud_seStart(Z2SE_SY_DUMMY, 0, 0, 0); mLastCurPos = mCurPos; mCurPos++; nameCursorMove(); } } else if (mDoCPd_c::getTrigLeft(PAD_1)) { if (mCurPos != 0) { mDoAud_seStart(Z2SE_SY_DUMMY, 0, 0, 0); mLastCurPos = mCurPos; mCurPos--; nameCursorMove(); } } else if (mDoCPd_c::getTrigB(PAD_1)) { if (mCurPos == 0) { mDoAud_seStart(Z2SE_SY_MENU_BACK, 0, 0, 0); field_0x2ac = mSelProc; field_0x2ae = mSelProc; mSelProc = PROC_WAIT; mIsInputEnd = true; } else { backSpace(); } } else if (mDoCPd_c::getTrigStart(PAD_1)) { if ((mSelProc != PROC_MENU_SELECT || mSelMenu != MENU_END) && (mSelProc == PROC_MENU_SELECT || mSelProc == PROC_MOJI_SELECT)) { mDoAud_seStart(Z2SE_SY_CURSOR_OPTION, 0, 0, 0); mPrevSelMenu = mSelMenu; mSelMenu = MENU_END; switch (mSelProc) { case PROC_MOJI_SELECT: mPrevColumn = mCharColumn; mPrevRow = mCharRow; MojiSelectAnmInit(); mSelProc = PROC_MOJI_SEL_ANM2; break; case PROC_MENU_SELECT: MenuSelectAnmInit(); mSelProc = PROC_MENU_SEL_ANM; break; } } } cursorAnm(); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dName_c::_move() { nofralloc #include "asm/d/d_name/_move__7dName_cFv.s" } #pragma pop #endif /* 8024EC10-8024EC4C 249550 003C+00 3/3 0/0 0/0 .text nameCheck__7dName_cFv */ int dName_c::nameCheck() { for (int i = 8, len = 7; i > 0; i--) { if (mChrInfo[len].mCharacter != ' ') { return len + 1; } len--; } return 0; } /* 8024EC4C-8024EC84 24958C 0038+00 1/1 0/0 0/0 .text playNameSet__7dName_cFi */ void dName_c::playNameSet(int nameLength) { char* str = mInputStr; for (int i = 0; i < nameLength; i++) { *str = mChrInfo[i].mCharacter; str++; } *str = 0; } /* 8024EC84-8024ED48 2495C4 00C4+00 1/1 0/0 0/0 .text cursorAnm__7dName_cFv */ void dName_c::cursorAnm() { mCurColAnmF += 2; if (mCurColAnmF >= mCursorColorKey->getFrameMax()) { mCurColAnmF -= mCursorColorKey->getFrameMax(); } mCursorColorKey->setFrame(mCurColAnmF); mCurTexAnmF += 2; if (mCurTexAnmF >= mCursorTexKey->getFrameMax()) { mCurTexAnmF -= mCursorTexKey->getFrameMax(); } mCursorTexKey->setFrame(mCurTexAnmF); nameIn.NameInScr->animation(); } /* 8024ED48-8024ED4C 249688 0004+00 1/0 0/0 0/0 .text Wait__7dName_cFv */ void dName_c::Wait() { /* empty function */ } /* 8024ED4C-8024F034 24968C 02E8+00 1/0 0/0 0/0 .text MojiSelect__7dName_cFv */ // matches with literals #ifdef NONMATCHING void dName_c::MojiSelect() { if (mDoCPd_c::getTrigA(PAD_1)) { selectMojiSet(); } else if (stick->checkRightTrigger()) { mDoAud_seStart(Z2SE_SY_NAME_CURSOR, 0, 0, 0); mPrevColumn = mCharColumn; mPrevRow = mCharRow; mCharColumn++; if (mCharColumn > 12) { mCharColumn = 0; } MojiSelectAnmInit(); mSelProc = PROC_MOJI_SEL_ANM; } else if (stick->checkLeftTrigger()) { mDoAud_seStart(Z2SE_SY_NAME_CURSOR, 0, 0, 0); mPrevColumn = mCharColumn; mPrevRow = mCharRow; if (mCharColumn == 0) { mCharColumn = 12; } else { mCharColumn--; } MojiSelectAnmInit(); mSelProc = PROC_MOJI_SEL_ANM; } else if (stick->checkUpTrigger()) { mPrevColumn = mCharColumn; mPrevRow = mCharRow; MojiSelectAnmInit(); if (mCharRow == 0) { mDoAud_seStart(Z2SE_SY_CURSOR_OPTION, 0, 0, 0); menuCursorPosSet(); mSelProc = PROC_MOJI_SEL_ANM2; } else { mDoAud_seStart(Z2SE_SY_NAME_CURSOR, 0, 0, 0); mCharRow--; mSelProc = PROC_MOJI_SEL_ANM; } } else if (stick->checkDownTrigger()) { mPrevColumn = mCharColumn; mPrevRow = mCharRow; MojiSelectAnmInit(); mCharRow++; if (mCharRow > 4) { mCharRow = 4; mDoAud_seStart(Z2SE_SY_CURSOR_OPTION, 0, 0, 0); menuCursorPosSet(); mSelProc = PROC_MOJI_SEL_ANM2; } else { mDoAud_seStart(Z2SE_SY_NAME_CURSOR, 0, 0, 0); mSelProc = PROC_MOJI_SEL_ANM; } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dName_c::MojiSelect() { nofralloc #include "asm/d/d_name/MojiSelect__7dName_cFv.s" } #pragma pop #endif /* ############################################################################################## */ /* 80454DD0-80454DD4 0033D0 0004+00 5/5 0/0 0/0 .sdata2 @4009 */ SECTION_SDATA2 static u8 lit_4009[4] = { 0x00, 0x00, 0x00, 0x00, }; /* 8024F034-8024F0E0 249974 00AC+00 2/2 0/0 0/0 .text MojiSelectAnmInit__7dName_cFv */ void dName_c::MojiSelectAnmInit() { mSelIcon->setAlphaRate(FLOAT_LABEL(lit_4009)); mMojiIcon[mPrevRow + mPrevColumn * 5]->scaleAnimeStart(0); ((J2DTextBox*)mMojiIcon[mPrevRow + mPrevColumn * 5]->getPanePtr()) ->setWhite(JUtility::TColor(0x96, 0x96, 0x96, 0xFF)); } /* 8024F0E0-8024F164 249A20 0084+00 1/0 0/0 0/0 .text MojiSelectAnm__7dName_cFv */ void dName_c::MojiSelectAnm() { if (mMojiIcon[mPrevRow + mPrevColumn * 5]->scaleAnime(mCursorDelay, g_nmHIO.mSelCharScale, lit_3820, 0) == 1) { selectCursorMove(); mSelProc = PROC_MOJI_SELECT; field_0x2ad = mSelProc; } } /* 8024F164-8024F1E8 249AA4 0084+00 1/0 0/0 0/0 .text MojiSelectAnm2__7dName_cFv */ void dName_c::MojiSelectAnm2() { if (mMojiIcon[mPrevRow + mPrevColumn * 5]->scaleAnime(mCursorDelay, g_nmHIO.mSelCharScale, lit_3820, 0) == 1) { menuCursorMove2(); mSelProc = PROC_MENU_SELECT; field_0x2ad = mSelProc; } } /* 8024F1E8-8024F1EC 249B28 0004+00 1/0 0/0 0/0 .text MojiSelectAnm3__7dName_cFv */ void dName_c::MojiSelectAnm3() { /* empty function */ } /* 8024F1EC-8024F55C 249B2C 0370+00 1/0 0/0 0/0 .text mojiChange__7dName_cFUc */ // weird pattern #ifdef NONMATCHING int dName_c::mojiChange(u8 idx) { if (mChrInfo[idx].field_0x3 == 0 || mChrInfo[idx].mMojiSet == MOJI_EIGO || mChrInfo[idx].mCharacter == ' ') { return 0; } if (mChrInfo[idx].mColumn == 4 || mChrInfo[idx].mColumn == 6 || mChrInfo[idx].mColumn == 8 || mChrInfo[idx].mColumn == 9) { return 0; } switch (mChrInfo[idx].mColumn) { case 0: case 10: if (mChrInfo[idx].mCharacter == 'ウ' || mChrInfo[idx].mCharacter == 'ゥ' || mChrInfo[idx].mCharacter == 'ヴ') { mChrInfo[idx].mCharacter++; if (mChrInfo[idx].mCharacter == 'ェ') { mChrInfo[idx].mCharacter = 'ヴ'; } if (mChrInfo[idx].mCharacter == 'ヵ') { mChrInfo[idx].mCharacter = 'ゥ'; } } else { int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ぁ' : 'ァ'; if ((mChrInfo[idx].mCharacter - c) % 2) { --mChrInfo[idx].mCharacter; } else { ++mChrInfo[idx].mCharacter; } } break; case 1: int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'カ' : 'か'; if ((mChrInfo[idx].mCharacter - c) % 2 == 0) { mChrInfo[idx].mCharacter += 1; } else { mChrInfo[idx].mCharacter -= 1; } break; case 2: int c2 = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'サ' : 'さ'; ((mChrInfo[idx].mCharacter - c) % 2) ? mChrInfo[idx].mCharacter++ : mChrInfo[idx].mCharacter--; break; case 3: case 12: if (mChrInfo[idx].mCharacter != 0x815b) { int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ヂ': 'ぢ'; if (c < mChrInfo[idx].mCharacter) { int c2 = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ヂ' : 'ぢ'; (mChrInfo[idx].mCharacter - c2) % 2 ? mChrInfo[idx].mCharacter++ : mChrInfo[idx].mCharacter--; } } break; case 5: break; case 7: case 11: break; } setNameText(); return 1; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int dName_c::mojiChange(u8 param_0) { nofralloc #include "asm/d/d_name/mojiChange__7dName_cFUc.s" } #pragma pop #endif /* 8024F55C-8024F59C 249E9C 0040+00 1/1 0/0 0/0 .text selectMojiSet__7dName_cFv */ void dName_c::selectMojiSet() { setMoji(getMoji()); setNameText(); } /* 8024F59C-8024F634 249EDC 0098+00 1/1 0/0 0/0 .text getMoji__7dName_cFv */ int dName_c::getMoji() { const char* moji; switch (mMojiSet) { case MOJI_HIRA: moji = l_mojiHira[mCharRow + mCharColumn * 5]; break; case MOJI_KATA: moji = l_mojikata[mCharRow + mCharColumn * 5]; break; case MOJI_EIGO: moji = l_mojiEisu[mCharRow + mCharColumn * 5]; break; } return *moji; } /* 8024F634-8024F88C 249F74 0258+00 1/1 0/0 0/0 .text setMoji__7dName_cFi */ // matches with literals #ifdef NONMATCHING void dName_c::setMoji(int moji) { if (mCurPos == 8 || nameCheck() == 8) { mDoAud_seStart(Z2SE_SYS_ERROR, NULL, 0, 0); } else { mDoAud_seStart(Z2SE_SY_NAME_INPUT, NULL, 0, 0); s32 notEmpty = false; for (int i = mCurPos; i < 8; i++) { if (mChrInfo[i].mCharacter != ' ') { notEmpty = true; break; } } if (notEmpty) { if (mChrInfo[7].mCharacter == ' ') { for (int i = 6; i >= mCurPos; i--) { mChrInfo[i + 1] = mChrInfo[i]; } mChrInfo[mCurPos].mColumn = mCharColumn; mChrInfo[mCurPos].mRow = mCharRow; mChrInfo[mCurPos].mMojiSet = mMojiSet; mChrInfo[mCurPos].field_0x3 = 1; mChrInfo[mCurPos].mCharacter = moji; if (mCurPos != 8) { mLastCurPos = mCurPos; mCurPos++; nameCursorMove(); } } } else { mChrInfo[mCurPos].mColumn = mCharColumn; mChrInfo[mCurPos].mRow = mCharRow; mChrInfo[mCurPos].mMojiSet = mMojiSet; mChrInfo[mCurPos].field_0x3 = 1; mChrInfo[mCurPos].mCharacter = moji; if (mCurPos != 8) { mLastCurPos = mCurPos; mCurPos++; nameCursorMove(); } } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dName_c::setMoji(int param_0) { nofralloc #include "asm/d/d_name/setMoji__7dName_cFi.s" } #pragma pop #endif /* 8024F88C-8024F914 24A1CC 0088+00 4/4 0/0 0/0 .text setNameText__7dName_cFv */ void dName_c::setNameText() { for (int i = 0; i < 8; i++) { if (mChrInfo[i].field_0x3 != 0) { sprintf(mNameText[i], "\x1b" "CD\x1b" "CR\x1b" "CC[000000]\x1bGM[0]%c\x1bHM\x1b" "CC[ffffff]\x1bGM[0]%c", (u8)mChrInfo[i].mCharacter, (u8)mChrInfo[i].mCharacter); } } } /* 8024F914-8024F994 24A254 0080+00 5/5 0/0 0/0 .text nameCursorMove__7dName_cFv */ void dName_c::nameCursorMove() { if (mCurPos <= 8) { u8 position = mCurPos; if (position > 7) { position = 7; } if (mLastCurPos != 255 && mLastCurPos < 8) { mNameCursor[mLastCurPos]->hide(); } mNameCursor[position]->show(); } } /* 8024F994-8024FAF4 24A2D4 0160+00 3/3 0/0 0/0 .text selectCursorMove__7dName_cFv */ void dName_c::selectCursorMove() { field_0x30c[3][0] = mCharColumn; field_0x30c[3][1] = mCharRow; field_0x30c[3][2] = 1; mMojiIcon[mCharRow + mCharColumn * 5]->getPanePtr()->scale(g_nmHIO.mSelCharScale, g_nmHIO.mSelCharScale); ((J2DTextBox*)mMojiIcon[mCharRow + mCharColumn * 5]->getPanePtr()) ->setWhite(JUtility::TColor(0xC8, 0xC8, 0xC8, 0xFF)); Vec pos = mMojiIcon[mCharRow + mCharColumn * 5]->getGlobalVtxCenter(false, 0); mSelIcon->setPos(pos.x, pos.y, mMojiIcon[mCharRow + mCharColumn * 5]->getPanePtr(), true); mSelIcon->setAlphaRate(lit_3820); } /* 8024FAF4-8024FB08 24A434 0014+00 1/1 0/0 0/0 .text menuCursorPosSet__7dName_cFv */ void dName_c::menuCursorPosSet() { mPrevSelMenu = mSelMenu; mSelMenu = MENU_END; } /* 8024FB08-8024FDA0 24A448 0298+00 1/0 0/0 0/0 .text MenuSelect__7dName_cFv */ // matches with literals #ifdef NONMATCHING void dName_c::MenuSelect() { if (!stick->checkRightTrigger() && !stick->checkLeftTrigger()) { if (stick->checkUpTrigger()) { mDoAud_seStart(Z2SE_SY_NAME_CURSOR, NULL, 0, 0); mPrevSelMenu = mSelMenu; selectCursorPosSet(4); MenuSelectAnmInit(); mSelProc = PROC_MENU_SEL_ANM2; } else if (stick->checkDownTrigger()) { mDoAud_seStart(Z2SE_SY_NAME_CURSOR, NULL, 0, 0); mPrevSelMenu = mSelMenu; selectCursorPosSet(0); MenuSelectAnmInit(); mSelProc = PROC_MENU_SEL_ANM2; } else if (mDoCPd_c::getTrigA(PAD_1)) { if (mSelMenu == MENU_END) { if (nameCheck() != 0) { mDoAud_seStart(Z2SE_SY_NAME_OK, NULL, 0, 0); } else { mDoAud_seStart(Z2SE_SYS_ERROR, NULL, 0, 0); } } else { mDoAud_seStart(Z2SE_SY_CURSOR_OK, NULL, 0, 0); } menuAbtnSelect(); } else if (mDoCPd_c::getTrigStart(PAD_1)) { if (mSelMenu == MENU_END) { if (nameCheck() != 0) { mDoAud_seStart(Z2SE_SY_NAME_OK, NULL, 0, 0); } else { mDoAud_seStart(Z2SE_SYS_ERROR, NULL, 0, 0); } menuAbtnSelect(); } } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dName_c::MenuSelect() { nofralloc #include "asm/d/d_name/MenuSelect__7dName_cFv.s" } #pragma pop #endif /* 8024FDA0-8024FDF4 24A6E0 0054+00 2/2 0/0 0/0 .text MenuSelectAnmInit__7dName_cFv */ void dName_c::MenuSelectAnmInit() { mSelIcon->setAlphaRate(FLOAT_LABEL(lit_4009)); int prevMenu_i = getMenuPosIdx(mPrevSelMenu); mMenuIcon[prevMenu_i]->scaleAnimeStart(0); } /* 8024FDF4-8024FEB4 24A734 00C0+00 1/0 0/0 0/0 .text MenuSelectAnm__7dName_cFv */ void dName_c::MenuSelectAnm() { int prevMenu_i = getMenuPosIdx(mPrevSelMenu); if (mMenuIcon[prevMenu_i]->scaleAnime(mCursorDelay, g_nmHIO.mMenuScale, lit_3820, 0) == 1) { mMenuText[prevMenu_i]->setWhite(JUtility::TColor(0x96, 0x96, 0x96, 0xFF)); menuCursorMove(); mSelProc = PROC_MENU_SELECT; field_0x2ad = mSelProc; } } /* 8024FEB4-8024FFA0 24A7F4 00EC+00 1/0 0/0 0/0 .text MenuSelectAnm2__7dName_cFv */ void dName_c::MenuSelectAnm2() { int prevMenu_i = getMenuPosIdx(mPrevSelMenu); int mojiSet_i = getMenuPosIdx(mMojiSet); bool canMove = true; if (prevMenu_i != mojiSet_i) { canMove = mMenuIcon[prevMenu_i]->scaleAnime(mCursorDelay, g_nmHIO.mMenuScale, lit_3820, 0); } if (canMove == true) { if (prevMenu_i != mojiSet_i) { mMenuText[prevMenu_i]->setWhite(JUtility::TColor(0x96, 0x96, 0x96, 0xFF)); } selectCursorMove(); mSelProc = PROC_MOJI_SELECT; field_0x2ad = mSelProc; } } /* 8024FFA0-8024FFA4 24A8E0 0004+00 1/0 0/0 0/0 .text MenuSelectAnm3__7dName_cFv */ void dName_c::MenuSelectAnm3() { /* empty function */ } /* 8024FFA4-80250074 24A8E4 00D0+00 1/1 0/0 0/0 .text menuAbtnSelect__7dName_cFv */ // matches with literals #ifdef NONMATCHING void dName_c::menuAbtnSelect() { switch (mSelMenu) { case MENU_HIRA: case MENU_KATA: case MENU_EIGO: if (mSelMenu != mMojiSet) { mPrevMojiSet = mMojiSet; mMojiSet = mSelMenu; mojiListChange(); } break; case MENU_END: int nameNum = nameCheck(); if (nameNum != 0) { playNameSet(nameNum); field_0x2ac = mSelProc; field_0x2ae = mSelProc; mSelProc = PROC_WAIT; mIsInputEnd = 2; } else { mDoAud_seStart(Z2SE_SY_DUMMY, NULL, 0, 0); } break; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dName_c::menuAbtnSelect() { nofralloc #include "asm/d/d_name/menuAbtnSelect__7dName_cFv.s" } #pragma pop #endif /* 80250074-802501B0 24A9B4 013C+00 1/1 0/0 0/0 .text backSpace__7dName_cFv */ // matches with literals #ifdef NONMATCHING void dName_c::backSpace() { if (mCurPos != 0) { mDoAud_seStart(Z2SE_SY_NAME_DELETE, NULL, 0, 0); if (mCurPos == 8 && mChrInfo[7].mCharacter != ' ') { mChrInfo[7].mColumn = 7; mChrInfo[7].mRow = 1; mChrInfo[7].mMojiSet = MOJI_EIGO; mChrInfo[7].field_0x3 = 1; mChrInfo[7].mCharacter = ' '; } else { for (int i = mCurPos - 1; i < 7; i++) { mChrInfo[i] = mChrInfo[i + 1]; } mChrInfo[7].mColumn = 7; mChrInfo[7].mRow = 1; mChrInfo[7].mMojiSet = MOJI_EIGO; mChrInfo[7].field_0x3 = 1; mChrInfo[7].mCharacter = ' '; } setNameText(); mLastCurPos = mCurPos; mCurPos--; nameCursorMove(); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dName_c::backSpace() { nofralloc #include "asm/d/d_name/backSpace__7dName_cFv.s" } #pragma pop #endif /* 802501B0-80250284 24AAF0 00D4+00 2/2 0/0 0/0 .text mojiListChange__7dName_cFv */ void dName_c::mojiListChange() { const char** mojiSet; switch (mMojiSet) { case MOJI_HIRA: mojiSet = l_mojiHira; break; case MOJI_KATA: mojiSet = l_mojikata; break; case MOJI_EIGO: mojiSet = l_mojiEisu; break; } char buf[74]; for (int i = 0; i < 65; i++) { strcpy(buf, "\x1B" "CD" "\x1B" "CR" "\x1B" "CC[000000]" "\x1B" "GM[0]"); strcat(buf, mojiSet[i]); strcat(buf, "\x1B" "HM" "\x1B" "CC[ffffff]" "\x1B" "GM[0]"); strcat(buf, mojiSet[i]); strcpy(mMojiText[i], buf); } } /* 80250284-80250380 24ABC4 00FC+00 1/1 0/0 0/0 .text menuCursorMove__7dName_cFv */ void dName_c::menuCursorMove() { int menu_i = getMenuPosIdx(mSelMenu); mMenuIcon[menu_i]->scale(g_nmHIO.mMenuScale, g_nmHIO.mMenuScale); mMenuText[menu_i]->setWhite(JUtility::TColor(0xC8, 0xC8, 0xC8, 0xFF)); Vec pos = mMenuIcon[menu_i]->getGlobalVtxCenter(false, 0); mSelIcon->setPos(pos.x, pos.y, mMenuIcon[menu_i]->getPanePtr(), true); mSelIcon->setAlphaRate(lit_3820); } /* 80250380-802504A0 24ACC0 0120+00 1/1 0/0 0/0 .text menuCursorMove2__7dName_cFv */ void dName_c::menuCursorMove2() { int menu_i = getMenuPosIdx(mSelMenu); int mojiSet_i = getMenuPosIdx(mMojiSet); if (menu_i != mojiSet_i) { mMenuIcon[menu_i]->scale(g_nmHIO.mMenuScale, g_nmHIO.mMenuScale); mMenuText[menu_i]->setWhite(JUtility::TColor(0xC8, 0xC8, 0xC8, 0xFF)); } Vec pos = mMenuIcon[menu_i]->getGlobalVtxCenter(false, 0); mSelIcon->setPos(pos.x, pos.y, mMenuIcon[menu_i]->getPanePtr(), true); mSelIcon->setAlphaRate(lit_3820); } /* 802504A0-80250560 24ADE0 00C0+00 1/1 0/0 0/0 .text selectCursorPosSet__7dName_cFi */ void dName_c::selectCursorPosSet(int row) { if (field_0x30c[mSelMenu][2] == 1) { mCharColumn = field_0x30c[mSelMenu][0]; mCharRow = row; } else { switch (mSelMenu) { case MENU_HIRA: mCharColumn = 0; break; case MENU_KATA: mCharColumn = 3; break; case MENU_EIGO: mCharColumn = 6; break; case MENU_END: mCharColumn = 8; break; } mCharRow = row; field_0x30c[mSelMenu][0] = mCharColumn; field_0x30c[mSelMenu][1] = mCharRow; field_0x30c[mSelMenu][2] = 1; } } /* 80250560-802505CC 24AEA0 006C+00 0/0 1/1 0/0 .text _draw__7dName_cFv */ void dName_c::_draw() { dComIfGd_set2DOpa(&nameIn); dComIfGd_set2DOpa(mSelIcon); } /* ############################################################################################## */ /* 80399CC8-80399CC8 026328 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80399F99 = "zelda_player_name.blo"; SECTION_DEAD static char const* const stringBase_80399FAF = "zelda_player_name.bpk"; SECTION_DEAD static char const* const stringBase_80399FC5 = "zelda_player_name.btk"; SECTION_DEAD static char const* const stringBase_80399FDB = ""; /* @stringBase0 padding */ SECTION_DEAD static char const* const pad_80399FDC = "\0\0\0"; #pragma pop /* 80454DD4-80454DD8 0033D4 0004+00 1/1 0/0 0/0 .sdata2 @4722 */ SECTION_SDATA2 static f32 lit_4722 = 41.0f / 50.0f; /* 80454DD8-80454DDC 0033D8 0004+00 1/1 0/0 0/0 .sdata2 @4723 */ SECTION_SDATA2 static f32 lit_4723 = 77.0f / 100.0f; /* 80454DDC-80454DE0 0033DC 0004+00 1/1 0/0 0/0 .sdata2 @4724 */ SECTION_SDATA2 static f32 lit_4724 = 1.0f / 20.0f; /* 80454DE0-80454DE8 0033E0 0004+04 1/1 0/0 0/0 .sdata2 @4725 */ SECTION_SDATA2 static f32 lit_4725[1 + 1 /* padding */] = { 2.0f / 5.0f, /* padding */ 0.0f, }; /* 802505CC-80250CEC 24AF0C 0720+00 1/1 0/0 0/0 .text screenSet__7dName_cFv */ #ifdef NONMATCHING void dName_c::screenSet() { nameIn.NameInScr = new J2DScreen(); archive = dComIfGp_getNameResArchive(); nameIn.NameInScr->setPriority("zelda_player_name.blo", 0x100000, archive); dPaneClass_showNullPane(nameIn.NameInScr); nameIn.field_0x10 = nameIn.NameInScr->search('name_n'); void* bpk = JKRFileLoader::getGlbResource("zelda_player_name.bpk", archive); mCursorColorKey = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(bpk); mCursorColorKey->searchUpdateMaterialID(nameIn.NameInScr); void* btk = JKRFileLoader::getGlbResource("zelda_player_name.btk", archive); mCursorTexKey = (J2DAnmTextureSRTKey*)J2DAnmLoaderDataBase::load(btk); mCursorTexKey->searchUpdateMaterialID(nameIn.NameInScr); J2DPane* panes0[8]; J2DPane* panes1[8]; for (int i = 0; i < 8; i++) { panes0[i] = nameIn.NameInScr->search(l_cur0TagName[i]); panes1[i] = nameIn.NameInScr->search(l_cur1TagName[i]); panes0[i]->setAnimation(mCursorTexKey); panes0[i]->setAnimation(mCursorColorKey); panes1[i]->setAnimation(mCursorTexKey); panes1[i]->setAnimation(mCursorColorKey); } nameIn.NameInScr->search('jpn_n')->hide(); mMenuPane = nameIn.NameInScr->search('pal_n'); mMenuPane->show(); nameIn.NameInScr->search('j_hira_n')->scale(0.0f, 0.0f); nameIn.NameInScr->search('j_kata_n')->scale(0.0f, 0.0f); nameIn.NameInScr->search('j_eigo_n')->scale(0.0f, 0.0f); nameIn.NameInScr->search('j_end_n')->scale(0.0f, 0.0f); J2DTextBox* menuPane[3]; for (int i = 0; i < 4; i++) { if (i == 2) { mMenuIcon[i] = NULL; mMenuText[i] = NULL; } else { mMenuIcon[i] = new CPaneMgr(nameIn.NameInScr, l_menu_icon_tag[i], 1, NULL); char buf[16]; fopMsgM_messageGet(buf, l_menu_msg[i]); for (int j = 0; j < 3; j++) { menuPane[j] = (J2DTextBox*)nameIn.NameInScr->search(l_menu_tag[j]); if (j == 0) { mMenuText[i] = menuPane[j]; } menuPane[j]->setFont(nameIn.font); menuPane[j]->setString(buf); } } } mMenuIcon[0]->hide(); mMenuIcon[1]->hide(); mMojiPane = nameIn.NameInScr->search('moji_n'); for (int i = 0; i < 65; i++) { mMojiIcon[i] = new CPaneMgr(nameIn.NameInScr, l_tagName[i], 2, NULL); ((J2DTextBox*)mMojiIcon[i]->getPanePtr())->setFont(nameIn.font); ((J2DTextBox*)mMojiIcon[i]->getPanePtr())->setString(72, ""); mMojiText[i] = ((J2DTextBox*)mMojiIcon[i]->getPanePtr())->getStringPtr(); } J2DPane* nameTagPane[8]; for (int i = 0; i < 8; i++) { mNameCursor[i] = new CPaneMgrAlpha(nameIn.NameInScr, l_nameCurTagName[i], 2, NULL); nameTagPane[i] = nameIn.NameInScr->search(l_nameTagName[i]); ((J2DTextBox*)nameTagPane[i])->setFont(nameIn.font); ((J2DTextBox*)nameTagPane[i])->setString(72, ""); ((J2DTextBox*)nameTagPane[i])->setWhite(JUtility::TColor(0xC8, 0xC8, 0xC8, 0xFF)); mNameText[i] = ((J2DTextBox*)nameTagPane[i])->getStringPtr(); } mCharColumn = 0; mCharRow = 0; mSelIcon = new dSelect_cursor_c(0, 1.0f, NULL); mSelIcon->setParam(0.82f, 0.77f, 0.05f, 0.4f, 0.4f); Vec pos = mMojiIcon[mCharRow + mCharColumn * 5]->getGlobalVtxCenter(false, 0); mSelIcon->setPos(pos.x, pos.y, mMojiIcon[mCharRow + mCharColumn * 5]->getPanePtr(), true); mSelIcon->setAlphaRate(0.0f); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dName_c::screenSet() { nofralloc #include "asm/d/d_name/screenSet__7dName_cFv.s" } #pragma pop #endif /* 80250CEC-80250E54 24B62C 0168+00 2/2 0/0 0/0 .text displayInit__7dName_cFv */ void dName_c::displayInit() { mSelIcon->setAlphaRate(FLOAT_LABEL(lit_4009)); mCurColAnmF = 0; mCurTexAnmF = 0; mSelProc = field_0x2ac; field_0x2ad = field_0x2ae; for (int i = 0; i < 65; i++) { ((J2DTextBox*)mMojiIcon[i]->getPanePtr()) ->setWhite(JUtility::TColor(0x96, 0x96, 0x96, 0xFF)); } for (int i = 0; i < 4; i++) { if (mMenuText[i] != NULL) { mMenuText[i]->setWhite(JUtility::TColor(0x96, 0x96, 0x96, 0xFF)); } } for (int i = 0; i < 8; i++) { mNameCursor[i]->hide(); mChrInfo[i].mColumn = 7; mChrInfo[i].mRow = 1; mChrInfo[i].mMojiSet = MOJI_EIGO; mChrInfo[i].field_0x3 = 1; mChrInfo[i].mCharacter = ' '; } mIsInputEnd = false; } /* 80250E54-80251048 24B794 01F4+00 1/1 0/0 0/0 .text NameStrSet__7dName_cFv */ void dName_c::NameStrSet() { char* moji = mNextNameStr; int i = 0; while (*moji != 0) { if (*(u8*)moji >> 4 == 8 || *(u8*)moji >> 4 == 9) { mChrInfo[i].mCharacter = *(u16*)moji; for (int j = 0; j < 65; j++) { if (mChrInfo[i].mCharacter == *(u16*)l_mojiHira[j] || mChrInfo[i].mCharacter == *(u16*)l_mojiHira2[j] || mChrInfo[i].mCharacter == *(u16*)l_mojiHira3[j]) { mChrInfo[i].mColumn = j / 5; mChrInfo[i].mRow = j % 5; mChrInfo[i].mMojiSet = MOJI_HIRA; break; } else if (mChrInfo[i].mCharacter == *(u16*)l_mojikata[j] || mChrInfo[i].mCharacter == *(u16*)l_mojikata2[j] || mChrInfo[i].mCharacter == *(u16*)l_mojikata3[j]) { mChrInfo[i].mColumn = j / 5; mChrInfo[i].mRow = j % 5; mChrInfo[i].mMojiSet = MOJI_KATA; break; } } moji += 2; i++; } else { mChrInfo[i].mCharacter = *moji; for (int j = 0; j < 65; j++) { if (mChrInfo[i].mCharacter == *(u8*)l_mojiEisu[j]) { mChrInfo[i].mColumn = j / 5; mChrInfo[i].mRow = j % 5; mChrInfo[i].mMojiSet = MOJI_EIGO; break; } } moji++; i++; } } mLastCurPos = mCurPos; mCurPos = i; setNameText(); nameCursorMove(); } /* 80251048-80251094 24B988 004C+00 6/6 0/0 0/0 .text getMenuPosIdx__7dName_cFUc */ s32 dName_c::getMenuPosIdx(u8 selPos) { s32 result; switch (selPos) { case 0: result = 0; break; case 1: result = 1; break; case 2: result = 2; break; case 3: result = 3; break; } return result; //!@bug UB: uninitialized default return } /* 80251094-8025115C 24B9D4 00C8+00 1/0 0/0 0/0 .text draw__14dDlst_NameIN_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // asm void dDlst_NameIN_c::draw() { extern "C" asm void draw__14dDlst_NameIN_cFv() { nofralloc #include "asm/d/d_name/draw__14dDlst_NameIN_cFv.s" } #pragma pop /* 8025115C-802511A4 24BA9C 0048+00 1/0 0/0 0/0 .text __dt__14dDlst_NameIN_cFv */ dDlst_NameIN_c::~dDlst_NameIN_c() {} /* 802511A4-802511EC 24BAE4 0048+00 2/1 0/0 0/0 .text __dt__9dNm_HIO_cFv */ dNm_HIO_c::~dNm_HIO_c() {} /* 80399CC8-80399CC8 026328 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */