// // Generated By: dol2asm // Translation Unit: d/d_name // #include "d/dolzel.h" // IWYU pragma: keep #include "d/d_name.h" #include "JSystem/J2DGraph/J2DTextBox.h" #include "d/d_com_inf_game.h" #include "d/d_lib.h" #include "dol2asm.h" #include "m_Do/m_Do_audio.h" #include "m_Do/m_Do_controller_pad.h" #include "stdio.h" #include "JSystem/J2DGraph/J2DAnmLoader.h" #include "f_op/f_op_msg_mng.h" /* 803C1F5C-803C2060 -00001 0104+00 0/3 0/0 0/0 .data l_mojiHira */ static const char* l_mojiHira[65] = { "あ", "い", "う", "え", "お", "か", "き", "く", "け", "こ", "さ", "し", "す", "せ", "そ", "た", "ち", "つ", "て", "と", "な", "に", "ぬ", "ね", "の", "は", "ひ", "ふ", "へ", "ほ", "ま", "み", "む", "め", "も", "や", " ", "ゆ", " ", "よ", "ら", "り", "る", "れ", "ろ", "わ", " ", "を", " ", "ん", "ぁ", "ぃ", "ぅ", "ぇ", "ぉ", "ゃ", " ", "ゅ", " ", "ょ", "っ", " ", "ー", "゛", "゜", }; /* 803C2060-803C2164 -00001 0104+00 0/1 0/0 0/0 .data l_mojiHira2 */ static const char* l_mojiHira2[65] = { "¥", "¥", "¥", "¥", "¥", "が", "ぎ", "ぐ", "げ", "ご", "ざ", "じ", "ず", "ぜ", "ぞ", "だ", "ぢ", "づ", "で", "ど", "¥", "¥", "¥", "¥", "¥", "ば", "び", "ぶ", "べ", "ぼ", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", }; /* 803C2164-803C2268 -00001 0104+00 0/1 0/0 0/0 .data l_mojiHira3 */ static const char* l_mojiHira3[65] = { "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "ぱ", "ぴ", "ぷ", "ぺ", "ぽ", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", }; /* 803C2268-803C236C -00001 0104+00 0/3 0/0 0/0 .data l_mojikata */ static const char* l_mojikata[65] = { "ア", "イ", "ウ", "エ", "オ", "カ", "キ", "ク", "ケ", "コ", "サ", "シ", "ス", "セ", "\x83\x5C", "タ", "チ", "ツ", "テ", "ト", "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "ヒ", "フ", "ヘ", "ホ", "マ", "ミ", "ム", "メ", "モ", "ヤ", " ", "ユ", " ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ", " ", "ヲ", " ", "ン", "ァ", "ィ", "ゥ", "ェ", "ォ", "ャ", " ", "ュ", " ", "ョ", "ッ", " ", "ー", "゛", "゜", }; /* 803C236C-803C2470 -00001 0104+00 0/1 0/0 0/0 .data l_mojikata2 */ static const char* l_mojikata2[65] = { "¥", "¥", "ヴ", "¥", "¥", "ガ", "ギ", "グ", "ゲ", "ゴ", "ザ", "ジ", "ズ", "ゼ", "ゾ", "ダ", "ヂ", "ヅ", "デ", "ド", "¥", "¥", "¥", "¥", "¥", "バ", "ビ", "ブ", "ベ", "ボ", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", }; /* 803C2470-803C2574 -00001 0104+00 0/1 0/0 0/0 .data l_mojikata3 */ static const char* l_mojikata3[65] = { "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "パ", "ピ", "プ", "ペ", "ポ", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", "¥", }; /* 803C2574-803C2678 -00001 0104+00 0/3 0/0 0/0 .data l_mojiEisu */ 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", " ", }; #if VERSION == VERSION_GCN_PAL static char* l_mojiEisuPal_1[65] = { "A", "N", "AA", "BB", "1", "B", "O", "CC", "DD", "2", "C", "P", "EE", "FF", "3", "D", "Q", "GG", "HH", "4", "E", "R", "II", "JJ", "5", "F", "S", "KK", "LL", "6", "G", "T", "MM", "NN", "7", "H", "U", "OO", "PP", "8", "I", "V", "QQ", "RR", "9", "J", "W", "SS", "TT", "0", "K", "X", "UU", "VV", ",", "L", "Y", "WW", "XX", ".", "M", "Z", "YY", "ZZ", " ", }; static char* l_mojiEisuPal_2[65] = { "a", "n", "aa", "bb", "1", "b", "o", "cc", "dd", "2", "c", "p", "ee", "ff", "3", "d", "q", "gg", "hh", "4", "e", "r", "ii", "jj", "5", "f", "s", "kk", "ll", "6", "g", "t", "mm", "nn", "7", "h", "u", "oo", "pp", "8", "i", "v", "qq", "rr", "9", "j", "w", "ss", "tt", "0", "k", "x", "uu", "vv", ",", "l", "y", "ww", "xx", ".", "m", "z", "yy", "zz", " ", }; #endif /* 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}; /* 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 */ 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(); } /* 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; #if VERSION == VERSION_GCN_PAL mMojiSet = MOJI_HIRA; #else mMojiSet = MOJI_EIGO; #endif mPrevMojiSet = 255; #if VERSION == VERSION_GCN_PAL mSelMenu = MENU_HIRA; mPrevSelMenu = MENU_HIRA; #else mSelMenu = MENU_END; mPrevSelMenu = MENU_END; #endif 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; } #if VERSION == VERSION_GCN_PAL if (mSelProc == PROC_MOJI_SELECT) { mMenuIcon[mMojiSet]->scale(g_nmHIO.mMenuScale, g_nmHIO.mMenuScale); mMenuText[mMojiSet]->setWhite(JUtility::TColor(0xC8, 0xC8, 0xC8, 0xFF)); if (mPrevMojiSet != 255) { mMenuIcon[mPrevMojiSet]->scale(1.0f, 1.0f); mMenuText[mPrevMojiSet]->setWhite(JUtility::TColor(0x96, 0x96, 0x96, 0xFF)); } } #endif } /* 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(1.0f); } 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(1.0f); } break; } } /* 8024E9A0-8024EC10 2492E0 0270+00 0/0 2/2 0/0 .text _move__7dName_cFv */ void dName_c::_move() { stick->checkTrigger(); (this->*SelProc[mSelProc])(); #if VERSION == VERSION_GCN_PAL if (mDoCPd_c::getTrigY(PAD_1)) { mDoAud_seStart(Z2SE_SY_DUMMY, 0, 0, 0); mPrevMojiSet = mMojiSet; mMojiSet++; if (mMojiSet > MOJI_KATA) { mMojiSet = MOJI_HIRA; } mojiListChange(); } else { #endif 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 VERSION == VERSION_GCN_PAL if ((mSelProc != PROC_MENU_SELECT || mSelMenu != MENU_EIGO) && (mSelProc == PROC_MENU_SELECT || mSelProc == PROC_MOJI_SELECT)) { #else if ((mSelProc != PROC_MENU_SELECT || mSelMenu != MENU_END) && (mSelProc == PROC_MENU_SELECT || mSelProc == PROC_MOJI_SELECT)) { #endif mDoAud_seStart(Z2SE_SY_CURSOR_OPTION, 0, 0, 0); mPrevSelMenu = mSelMenu; #if VERSION == VERSION_GCN_PAL mSelMenu = MENU_EIGO; #else mSelMenu = MENU_END; #endif 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; } } } #if VERSION == VERSION_GCN_PAL } #endif cursorAnm(); } /* 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() {} /* 8024ED4C-8024F034 24968C 02E8+00 1/0 0/0 0/0 .text MojiSelect__7dName_cFv */ 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; } } } /* 8024F034-8024F0E0 249974 00AC+00 2/2 0/0 0/0 .text MojiSelectAnmInit__7dName_cFv */ void dName_c::MojiSelectAnmInit() { mSelIcon->setAlphaRate(0.0f); 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, 1.0f, 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, 1.0f, 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() {} /* 8024F1EC-8024F55C 249B2C 0370+00 1/0 0/0 0/0 .text mojiChange__7dName_cFUc */ 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 ? 'カ' : 'か'; c = ((mChrInfo[idx].mCharacter - c) % 2); int c2 = c + 1; mChrInfo[idx].mCharacter = (mChrInfo[idx].mCharacter - c) + (c2 & 1); break; } case 2: { int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'サ' : 'さ'; c = ((mChrInfo[idx].mCharacter - c) % 2); int c2 = c + 1; mChrInfo[idx].mCharacter = (mChrInfo[idx].mCharacter - c) + (c2 & 1); break; } case 3: case 12: { if (mChrInfo[idx].mCharacter != (u32)0x815b) { if (mChrInfo[idx].mCharacter <= (mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ヂ' : 'ぢ')) { int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'タ' : 'た'; c = ((mChrInfo[idx].mCharacter - c) % 2); int c2 = c + 1; mChrInfo[idx].mCharacter = (mChrInfo[idx].mCharacter - c) + (c2 & 1); } else if (mChrInfo[idx].mCharacter <= (mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ド' : 'ど') && mChrInfo[idx].mCharacter >= (mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'テ' : 'て')) { int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'テ' : 'て'; c = ((mChrInfo[idx].mCharacter - c) % 2); int c2 = c + 1; mChrInfo[idx].mCharacter = (mChrInfo[idx].mCharacter - c) + (c2 & 1); } else { int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ッ' : 'っ'; int c2 = (mChrInfo[idx].mCharacter - c) % 3; int ivar2 = c2 + 1; if (ivar2 > 2) { ivar2 = 0; } mChrInfo[idx].mCharacter = ivar2 + (mChrInfo[idx].mCharacter - c2); } } break; } case 5: { int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ハ' : 'は'; int c2 = (mChrInfo[idx].mCharacter - c) % 3; int ivar2 = c2 + 1; if (ivar2 > 2) { ivar2 = 0; } mChrInfo[idx].mCharacter = ivar2 + (mChrInfo[idx].mCharacter - c2); break; } case 7: case 11: { int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ャ' : 'ゃ'; c = ((mChrInfo[idx].mCharacter - c) % 2); int c2 = c + 1; mChrInfo[idx].mCharacter = (mChrInfo[idx].mCharacter - c) + (c2 & 1); break; } } setNameText(); return 1; } /* 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; #if VERSION == VERSION_GCN_PAL switch (mMojiSet) { case MOJI_HIRA: moji = l_mojiEisuPal_1[mCharRow + mCharColumn * 5]; break; case MOJI_KATA: moji = l_mojiEisuPal_2[mCharRow + mCharColumn * 5]; break; } #else 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; } #endif return *moji; } /* 8024F634-8024F88C 249F74 0258+00 1/1 0/0 0/0 .text setMoji__7dName_cFi */ 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; #if VERSION == VERSION_GCN_PAL mChrInfo[mCurPos].mCharacter = moji & 0xFF; #else mChrInfo[mCurPos].mCharacter = moji; #endif 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; #if VERSION == VERSION_GCN_PAL mChrInfo[mCurPos].mCharacter = moji & 0xFF; #else mChrInfo[mCurPos].mCharacter = moji; #endif if (mCurPos != 8) { mLastCurPos = mCurPos; mCurPos++; nameCursorMove(); } } } } /* 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", #if VERSION == VERSION_GCN_PAL (u8)mChrInfo[i].mCharacter & 0xFF, (u8)mChrInfo[i].mCharacter & 0xFF #else (u8)mChrInfo[i].mCharacter, (u8)mChrInfo[i].mCharacter #endif ); } } } /* 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() { int idx; #if VERSION == VERSION_GCN_PAL if (mCharColumn < 3) { idx = 0; } else if (mCharColumn < 6) { idx = 1; } else if (mCharColumn >= 6) { idx = 2; } #else idx = 3; #endif field_0x30c[idx][0] = mCharColumn; field_0x30c[idx][1] = mCharRow; field_0x30c[idx][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(1.0f); } /* 8024FAF4-8024FB08 24A434 0014+00 1/1 0/0 0/0 .text menuCursorPosSet__7dName_cFv */ void dName_c::menuCursorPosSet() { mPrevSelMenu = mSelMenu; #if VERSION == VERSION_GCN_PAL if (mCharColumn < 3) { mSelMenu = MENU_HIRA; } else if (mCharColumn < 6) { mSelMenu = MENU_KATA; } else if (mCharColumn >= 6) { mSelMenu = MENU_EIGO; } #else mSelMenu = MENU_END; #endif } /* 8024FB08-8024FDA0 24A448 0298+00 1/0 0/0 0/0 .text MenuSelect__7dName_cFv */ void dName_c::MenuSelect() { #if VERSION == VERSION_GCN_PAL if (stick->checkRightTrigger()) { mDoAud_seStart(Z2SE_SY_CURSOR_OPTION, NULL, 0, 0); mPrevSelMenu = mSelMenu; mSelMenu++; if (mSelMenu > MENU_EIGO) { mSelMenu = MENU_HIRA; } MenuSelectAnmInit(); mSelProc = PROC_MENU_SEL_ANM; } else if (stick->checkLeftTrigger()) { mDoAud_seStart(Z2SE_SY_CURSOR_OPTION, NULL, 0, 0); mPrevSelMenu = mSelMenu; if (mSelMenu == MENU_HIRA) { mSelMenu = MENU_EIGO; } else { mSelMenu--; } MenuSelectAnmInit(); mSelProc = PROC_MENU_SEL_ANM; } else { #else if (!stick->checkRightTrigger() && !stick->checkLeftTrigger()) { #endif 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 VERSION == VERSION_GCN_PAL if (mSelMenu == MENU_EIGO) { #else if (mSelMenu == MENU_END) { #endif 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 VERSION == VERSION_GCN_PAL if (mSelMenu == MENU_EIGO) { #else if (mSelMenu == MENU_END) { #endif if (nameCheck() != 0) { mDoAud_seStart(Z2SE_SY_NAME_OK, NULL, 0, 0); } else { mDoAud_seStart(Z2SE_SYS_ERROR, NULL, 0, 0); } menuAbtnSelect(); } } } } /* 8024FDA0-8024FDF4 24A6E0 0054+00 2/2 0/0 0/0 .text MenuSelectAnmInit__7dName_cFv */ void dName_c::MenuSelectAnmInit() { mSelIcon->setAlphaRate(0.0f); 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, 1.0f, 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, 1.0f, 0); } if (canMove == true) { if (prevMenu_i != mojiSet_i) { mMenuText[prevMenu_i]->setWhite(JUtility::TColor(0x96, 0x96, 0x96, 0xFF)); #if VERSION == VERSION_GCN_PAL mMenuIcon[mojiSet_i]->scale(g_nmHIO.mMenuScale, g_nmHIO.mMenuScale); mMenuText[mojiSet_i]->setWhite(JUtility::TColor(0xC8, 0xC8, 0xC8, 0xFF)); #endif } 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() {} /* 8024FFA4-80250074 24A8E4 00D0+00 1/1 0/0 0/0 .text menuAbtnSelect__7dName_cFv */ void dName_c::menuAbtnSelect() { switch (mSelMenu) { case MENU_HIRA: case MENU_KATA: #if VERSION != VERSION_GCN_PAL case MENU_EIGO: #endif if (mSelMenu != mMojiSet) { mPrevMojiSet = mMojiSet; mMojiSet = mSelMenu; mojiListChange(); } break; #if VERSION == VERSION_GCN_PAL case MENU_EIGO: #else case MENU_END: #endif 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; } } /* 80250074-802501B0 24A9B4 013C+00 1/1 0/0 0/0 .text backSpace__7dName_cFv */ 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; #if VERSION == VERSION_GCN_PAL mChrInfo[7].mMojiSet = MOJI_HIRA; #else mChrInfo[7].mMojiSet = MOJI_EIGO; #endif 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; #if VERSION == VERSION_GCN_PAL mChrInfo[7].mMojiSet = MOJI_HIRA; #else mChrInfo[7].mMojiSet = MOJI_EIGO; #endif mChrInfo[7].field_0x3 = 1; mChrInfo[7].mCharacter = ' '; } setNameText(); mLastCurPos = mCurPos; mCurPos--; nameCursorMove(); } } /* 802501B0-80250284 24AAF0 00D4+00 2/2 0/0 0/0 .text mojiListChange__7dName_cFv */ void dName_c::mojiListChange() { #if VERSION == VERSION_GCN_PAL char** mojiSet; switch (mMojiSet) { case MOJI_HIRA: mojiSet = l_mojiEisuPal_1; break; case MOJI_KATA: mojiSet = l_mojiEisuPal_2; break; } #else 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; } #endif 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); } #if VERSION == VERSION_GCN_PAL if (mSelProc == PROC_MOJI_SELECT) { mMenuIcon[mMojiSet]->scale(g_nmHIO.mMenuScale, g_nmHIO.mMenuScale); mMenuText[mMojiSet]->setWhite(JUtility::TColor(0xC8, 0xC8, 0xC8, 0xFF)); if (mPrevMojiSet != 255) { mMenuIcon[mPrevMojiSet]->scale(1.0f, 1.0f); mMenuText[mPrevMojiSet]->setWhite(JUtility::TColor(0x96, 0x96, 0x96, 0xFF)); } } #endif } /* 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(1.0f); } /* 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)); #if VERSION == VERSION_GCN_PAL mMenuIcon[mojiSet_i]->scale(1.0f, 1.0f); mMenuText[mojiSet_i]->setWhite(JUtility::TColor(0x96, 0x96, 0x96, 0xFF)); #endif } Vec pos = mMenuIcon[menu_i]->getGlobalVtxCenter(false, 0); mSelIcon->setPos(pos.x, pos.y, mMenuIcon[menu_i]->getPanePtr(), true); mSelIcon->setAlphaRate(1.0f); } /* 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: #if VERSION == VERSION_GCN_PAL mCharColumn = 8; #else mCharColumn = 6; #endif break; #if VERSION != VERSION_GCN_PAL case MENU_END: mCharColumn = 8; break; #endif } 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); } /* 802505CC-80250CEC 24AF0C 0720+00 1/1 0/0 0/0 .text screenSet__7dName_cFv */ void dName_c::screenSet() { static u64 l_cur0TagName[8] = { 's_00', 's_01', 's_02', 's_03', 's_04', 's_05', 's_06', 's_07', }; static u64 l_cur1TagName[8] = { 's_0r', 's_01r', 's_02r', 's_03r', 's_04r', 's_05r', 's_06r', 's_07r', }; #if VERSION == VERSION_GCN_JPN static u64 l_menu_icon_tag[4] = { 'j_hira_n', 'j_kata_n', 'j_eigo_n', 'j_end_n', }; static u64 l_menu_tag[5][3] = { 'm_hira_0', 'm_hira_1', 'm_hira_s', 'm_kata_0', 'm_kata_1', 'm_kata_s', 'm_eigo_0', 'm_eigo_1', 'm_eigo_s', 'j_end_0', 'j_end_1', 'j_end_s', }; static u32 l_menu_msg[4] = { 0x386, 0x387, 0x388, 0x38A, }; #else static u64 l_menu_icon_tag[4] = { 'p_ABC_n', 'p_abc_n', 'j_eigo_n', 'p_end_n', }; static u64 l_menu_tag[5][3] = { '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', }; static u32 l_menu_msg[4] = { 0x38B, 0x38C, 0x388, 0x38E, }; #endif 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', }; static u64 l_nameTagName[8] = { 'name_00', 'name_01', 'name_02', 'name_03', 'name_04', 'name_05', 'name_06', 'name_07', }; 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', }; nameIn.NameInScr = new J2DScreen(); JUT_ASSERT(0, nameIn.NameInScr != NULL); 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 = JKRGetNameResource("zelda_player_name.bpk", archive); JUT_ASSERT(0, bpk != NULL); mCursorColorKey = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(bpk); mCursorColorKey->searchUpdateMaterialID(nameIn.NameInScr); void* btk = JKRGetNameResource("zelda_player_name.btk", archive); JUT_ASSERT(0, btk != NULL); 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[i][j]); if (j == 0) { mMenuText[i] = menuPane[j]; } menuPane[j]->setFont(nameIn.font); menuPane[j]->setString(buf); } } } #if VERSION != VERSION_GCN_PAL mMenuIcon[0]->hide(); mMenuIcon[1]->hide(); #endif mMojiPane = nameIn.NameInScr->search('moji_n'); for (u32 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)); #if VERSION == VERSION_GCN_PAL ((J2DTextBox*)nameTagPane[i])->resize(24.0f, 23.0f); #endif mNameText[i] = ((J2DTextBox*)nameTagPane[i])->getStringPtr(); } #if VERSION == VERSION_GCN_PAL int idx = 2; static u8 palMoji00[13] = { 0xC0, 0xC1, 0xC2, 0xC4, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, }; static u8 palMoji01[13] = { 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD6, 0x8C, 0xD9, 0xDA, 0xDB, 0xDC, 0x2D, }; static u8 palMoji10[13] = { 0xE0, 0xE1, 0xE2, 0xE4, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, }; static u8 palMoji11[13] = { 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF6, 0x9C, 0xF9, 0xFA, 0xFB, 0xFC, 0xDF, }; for (int i = 0; i < 13; i++, idx += 5) { l_mojiEisuPal_1[idx][0] = palMoji00[i]; l_mojiEisuPal_1[idx][1] = 0; l_mojiEisuPal_1[idx + 1][0] = palMoji01[i]; l_mojiEisuPal_1[idx + 1][1] = 0; l_mojiEisuPal_2[idx][0] = palMoji10[i]; l_mojiEisuPal_2[idx][1] = 0; l_mojiEisuPal_2[idx + 1][0] = palMoji11[i]; l_mojiEisuPal_2[idx + 1][1] = 0; } #endif mCharColumn = 0; mCharRow = 0; mSelIcon = new dSelect_cursor_c(0, 1.0f, NULL); JUT_ASSERT(0, mSelIcon != 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); } /* 80250CEC-80250E54 24B62C 0168+00 2/2 0/0 0/0 .text displayInit__7dName_cFv */ void dName_c::displayInit() { mSelIcon->setAlphaRate(0.0f); 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; #if VERSION == VERSION_GCN_PAL mChrInfo[i].mMojiSet = MOJI_HIRA; #else mChrInfo[i].mMojiSet = MOJI_EIGO; #endif 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 VERSION == VERSION_GCN_PAL mChrInfo[i].mCharacter = static_cast(*moji); for (int j = 0; j < 65; j++) { if (mChrInfo[i].mCharacter == *(u8*)l_mojiEisuPal_1[j] || mChrInfo[i].mCharacter == *(u16*)l_mojiEisuPal_2[j]) { mChrInfo[i].mColumn = j / 5; mChrInfo[i].mRow = j % 5; mChrInfo[i].mMojiSet = MOJI_HIRA; break; } } moji++; i++; #else 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++; } #endif } 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: #if VERSION == VERSION_GCN_PAL result = 3; #else result = 2; #endif break; #if VERSION != VERSION_GCN_PAL case 3: result = 3; break; #endif } return result; //!@bug UB: uninitialized default return } /* 80251094-8025115C 24B9D4 00C8+00 1/0 0/0 0/0 .text draw__14dDlst_NameIN_cFv */ void dDlst_NameIN_c::draw() { if (field_0xc != NULL) { Mtx m; MtxP global_mtx = (MtxP)&field_0xc->getGlbMtx()[0][0]; // fake match? MTXScale(m, (field_0xc->getWidth() / field_0x10->getWidth()), (field_0xc->getHeight() / field_0x10->getHeight()), 1.0f); MTXConcat(global_mtx, m, global_mtx); field_0x10->setMtx(global_mtx); } J2DGrafContext* graf_ctx = dComIfGp_getCurrentGrafPort(); NameInScr->draw(0.0f, 0.0f, graf_ctx); }