diff --git a/include/d/d_file_select.h b/include/d/d_file_select.h index d219a5a11e..d478126b38 100644 --- a/include/d/d_file_select.h +++ b/include/d/d_file_select.h @@ -11,42 +11,40 @@ class dFile_info_c; class J2DPicture; + #if TARGET_PC -static bool cachedPanes = false; - -struct PaneCache { - u64 tag; - f32 origTransX; - f32 origTransY; - bool cached; -}; - static PaneCache mSelDtPanes[] = { - {MULTI_CHAR('tate_n0'), 0.0f, false}, - {MULTI_CHAR('tate_n1'), 0.0f, false}, - {MULTI_CHAR('ken_n0'), 0.0f, false}, - {MULTI_CHAR('ken_n1'), 0.0f, false}, - {MULTI_CHAR('fuku_n0'), 0.0f, false}, - {MULTI_CHAR('fuku_n1'), 0.0f, false}, - {MULTI_CHAR('fuku_n2'), 0.0f, false}, - {MULTI_CHAR('gray_n'), 0.0f, false}, - {MULTI_CHAR('b_base'), 0.0f, false}, - {MULTI_CHAR('b_base1'), 0.0f, false}, + {MULTI_CHAR('tate_n0'), 0.0f, 0.0f, false}, + {MULTI_CHAR('tate_n1'), 0.0f, 0.0f, false}, + {MULTI_CHAR('ken_n0'), 0.0f, 0.0f, false}, + {MULTI_CHAR('ken_n1'), 0.0f, 0.0f, false}, + {MULTI_CHAR('fuku_n0'), 0.0f, 0.0f, false}, + {MULTI_CHAR('fuku_n1'), 0.0f, 0.0f, false}, + {MULTI_CHAR('fuku_n2'), 0.0f, 0.0f, false}, + {MULTI_CHAR('gray_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('b_base'), 0.0f, 0.0f, false}, + {MULTI_CHAR('b_base1'), 0.0f, 0.0f, false}, }; static PaneCache fileSelPanes[] = { - {MULTI_CHAR('w_uzu00'), 0.0f, false}, - {MULTI_CHAR('w_uzu01'), 0.0f, false}, - {MULTI_CHAR('w_uzu02'), 0.0f, false}, - {MULTI_CHAR('w_uzu03'), 0.0f, false}, - {MULTI_CHAR('w_uzu04'), 0.0f, false}, - {MULTI_CHAR('w_uzu05'), 0.0f, false}, - {MULTI_CHAR('w_uzu06'), 0.0f, false}, - {MULTI_CHAR('w_uzu07'), 0.0f, false}, - {MULTI_CHAR('w_uzu08'), 0.0f, false}, - {MULTI_CHAR('w_uzu09'), 0.0f, false}, + {MULTI_CHAR('w_uzu00'), 0.0f, 0.0f, false}, + {MULTI_CHAR('w_uzu01'), 0.0f, 0.0f, false}, + {MULTI_CHAR('w_uzu02'), 0.0f, 0.0f, false}, + {MULTI_CHAR('w_uzu03'), 0.0f, 0.0f, false}, + {MULTI_CHAR('w_uzu04'), 0.0f, 0.0f, false}, + {MULTI_CHAR('w_uzu05'), 0.0f, 0.0f, false}, + {MULTI_CHAR('w_uzu06'), 0.0f, 0.0f, false}, + {MULTI_CHAR('w_uzu07'), 0.0f, 0.0f, false}, + {MULTI_CHAR('w_uzu08'), 0.0f, 0.0f, false}, + {MULTI_CHAR('w_uzu09'), 0.0f, 0.0f, false}, + {MULTI_CHAR('w_er_msg'), 0.0f, 0.0f, false}, + {MULTI_CHAR('w_er_msE'), 0.0f, 0.0f, false}, + {MULTI_CHAR('w_er_msR'), 0.0f, 0.0f, false}, + {MULTI_CHAR('er_for0'), 0.0f, 0.0f, false}, + {MULTI_CHAR('er_for1'), 0.0f, 0.0f, false}, }; #endif + class dDlst_FileSel_c : public dDlst_base_c { public: void draw(); diff --git a/include/d/d_menu_collect.h b/include/d/d_menu_collect.h index d259027a65..28a095896e 100644 --- a/include/d/d_menu_collect.h +++ b/include/d/d_menu_collect.h @@ -15,9 +15,8 @@ class dMenu_Fishing_c; class dMenu_Skill_c; class dMenu_Insect_c; class dSelect_cursor_c; -#if TARGET_PC -static bool cachedPanes = false; +#if TARGET_PC struct PaneCache { u64 tag; f32 origTransX; @@ -26,36 +25,36 @@ struct PaneCache { }; static PaneCache mpScreenPanes[] = { - {MULTI_CHAR('sa_tex_n'), 0.0f, false}, - {MULTI_CHAR('op_tex_n'), 0.0f, false}, - {MULTI_CHAR('heart_n'), 0.0f, false}, - {MULTI_CHAR('wolf_n'), 0.0f, false}, - {MULTI_CHAR('item_0_n'), 0.0f, false}, - {MULTI_CHAR('item_1_n'), 0.0f, false}, - {MULTI_CHAR('item_2_n'), 0.0f, false}, - {MULTI_CHAR('fish_3_n'), 0.0f, false}, - {MULTI_CHAR('lett_4_n'), 0.0f, false}, - {MULTI_CHAR('maki_5_n'), 0.0f, false}, - {MULTI_CHAR('fuku_n0'), 0.0f, false}, - {MULTI_CHAR('fuku_n1'), 0.0f, false}, - {MULTI_CHAR('fuku_n2'), 0.0f, false}, - {MULTI_CHAR('tate_n0'), 0.0f, false}, - {MULTI_CHAR('tate_n1'), 0.0f, false}, - {MULTI_CHAR('ken_n0'), 0.0f, false}, - {MULTI_CHAR('ken_n1'), 0.0f, false}, - {MULTI_CHAR('kabu_6n'), 0.0f, false}, - {MULTI_CHAR('t_t00'), 0.0f, false}, - {MULTI_CHAR('f_t00'), 0.0f, false}, - {MULTI_CHAR('itemn_n'), 0.0f, false}, - {MULTI_CHAR('infotxtn'), 0.0f, false}, - {MULTI_CHAR('sa_op_n'), 0.0f, false}, - {MULTI_CHAR('title_n'), 0.0f, false}, - {MULTI_CHAR('menu_n'), 0.0f, false}, - {MULTI_CHAR('w_er_n'), 0.0f, false}, - {MULTI_CHAR('center_n'), 0.0f, false}, - {MULTI_CHAR('info_n'), 0.0f, false}, - {MULTI_CHAR('lavel_n'), 0.0f, false}, - {MULTI_CHAR('modelbgn'), 0.0f, false}, + {MULTI_CHAR('sa_tex_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('op_tex_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('heart_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('wolf_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('item_0_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('item_1_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('item_2_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('fish_3_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('lett_4_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('maki_5_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('fuku_n0'), 0.0f, 0.0f, false}, + {MULTI_CHAR('fuku_n1'), 0.0f, 0.0f, false}, + {MULTI_CHAR('fuku_n2'), 0.0f, 0.0f, false}, + {MULTI_CHAR('tate_n0'), 0.0f, 0.0f, false}, + {MULTI_CHAR('tate_n1'), 0.0f, 0.0f, false}, + {MULTI_CHAR('ken_n0'), 0.0f, 0.0f, false}, + {MULTI_CHAR('ken_n1'), 0.0f, 0.0f, false}, + {MULTI_CHAR('kabu_6n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('t_t00'), 0.0f, 0.0f, false}, + {MULTI_CHAR('f_t00'), 0.0f, 0.0f, false}, + {MULTI_CHAR('itemn_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('infotxtn'), 0.0f, 0.0f, false}, + {MULTI_CHAR('sa_op_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('title_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('menu_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('w_er_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('center_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('info_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('lavel_n'), 0.0f, 0.0f, false}, + {MULTI_CHAR('modelbgn'), 0.0f, 0.0f, false}, }; #endif diff --git a/include/d/d_name.h b/include/d/d_name.h index ddd99127c6..68a4930baf 100644 --- a/include/d/d_name.h +++ b/include/d/d_name.h @@ -12,6 +12,34 @@ class J2DTextBox; class JUTFont; class STControl; +#if TARGET_PC +struct PaneCache { + u64 tag; + f32 origTransX; + f32 origTransY; + bool cached; +}; + +static PaneCache l_tagName[] = { + {MULTI_CHAR('m_00_0'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_00_1'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_00_2'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_00_3'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_00_4'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_01_0'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_01_1'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_01_2'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_01_3'), 0.0f, 0.0f, false}, + {MULTI_CHAR('m_01_4'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_02_0'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_02_1'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_02_2'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_02_3'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_02_4'), 0.0f, 0.0f, false}, {MULTI_CHAR('m03_0'), 0.0f, 0.0f, false}, {MULTI_CHAR('m03_1'), 0.0f, 0.0f, false}, {MULTI_CHAR('m03_2'), 0.0f, 0.0f, false}, + {MULTI_CHAR('m03_3'), 0.0f, 0.0f, false}, {MULTI_CHAR('m03_4'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_04_0'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_04_1'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_04_2'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_04_3'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_04_4'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_05_0'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_05_1'), 0.0f, 0.0f, false}, + {MULTI_CHAR('m_05_2'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_05_3'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_05_4'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_06_0'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_06_1'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_06_2'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_06_3'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_06_4'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_07_0'), 0.0f, 0.0f, false}, + {MULTI_CHAR('m_07_1'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_07_2'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_07_3'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_07_4'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_08_0'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_08_1'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_08_2'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_08_3'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_08_4'), 0.0f, 0.0f, false}, + {MULTI_CHAR('m_09_0'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_09_1'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_09_2'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_09_3'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_09_4'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_10_0'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_10_1'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_10_2'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_10_3'), 0.0f, 0.0f, false}, + {MULTI_CHAR('m_10_4'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_11_0'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_11_1'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_11_2'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_11_3'), 0.0f, 0.0f, false}, {MULTI_CHAR('m_11_4'), 0.0f, 0.0f, false}, {MULTI_CHAR('m12_0'), 0.0f, 0.0f, false}, {MULTI_CHAR('m12_1'), 0.0f, 0.0f, false}, {MULTI_CHAR('m12_2'), 0.0f, 0.0f, false}, + {MULTI_CHAR('m12_3'), 0.0f, 0.0f, false}, {MULTI_CHAR('m12_4'), 0.0f, 0.0f, false}, {MULTI_CHAR('p_end_2'), 0.0f, 0.0f, false}, {MULTI_CHAR('p_end_1'), 0.0f, 0.0f, false}, {MULTI_CHAR('p_end_0'), 0.0f, 0.0f, false}, +}; + +static PaneCache l_nameTagName[] = { + {MULTI_CHAR('name_00'), 0.0f, 0.0f, false}, {MULTI_CHAR('name_01'), 0.0f, 0.0f, false}, {MULTI_CHAR('name_02'), 0.0f, 0.0f, false}, {MULTI_CHAR('name_03'), 0.0f, 0.0f, false}, {MULTI_CHAR('name_04'), 0.0f, 0.0f, false}, {MULTI_CHAR('name_05'), 0.0f, 0.0f, false}, {MULTI_CHAR('name_06'), 0.0f, 0.0f, false}, {MULTI_CHAR('name_07'), 0.0f, 0.0f, false}, +}; + +static PaneCache l_nameCurTagName[] = { + {MULTI_CHAR('s__n_00'), 0.0f, 0.0f, false}, {MULTI_CHAR('s__n_01'), 0.0f, 0.0f, false}, {MULTI_CHAR('s__n_02'), 0.0f, 0.0f, false}, {MULTI_CHAR('s__n_03'), 0.0f, 0.0f, false}, {MULTI_CHAR('s__n_04'), 0.0f, 0.0f, false}, {MULTI_CHAR('s__n_05'), 0.0f, 0.0f, false}, {MULTI_CHAR('s__n_06'), 0.0f, 0.0f, false}, {MULTI_CHAR('s__n_07'), 0.0f, 0.0f, false}, +}; +#endif + class dNm_HIO_c { public: dNm_HIO_c(); diff --git a/src/d/d_file_select.cpp b/src/d/d_file_select.cpp index 72b6ffb372..7ba3fac836 100644 --- a/src/d/d_file_select.cpp +++ b/src/d/d_file_select.cpp @@ -3752,6 +3752,7 @@ bool dFile_select_c::yesnoWakuAlpahAnm(u8 param_1) { #if TARGET_PC void dFile_select_c::fileSelectWide() { + static bool cachedPanes = false; // Get pre-scale values for each pane if (!cachedPanes) { for (PaneCache& entry : mSelDtPanes) { @@ -3853,17 +3854,11 @@ void dFile_select_c::fileSelectWide() { mSelDt.ScrDt->search(MULTI_CHAR('fuku_n1'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); mSelDt.ScrDt->search(MULTI_CHAR('fuku_n2'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - // Spirals - fileSel.Scr->search(MULTI_CHAR('w_uzu00'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - fileSel.Scr->search(MULTI_CHAR('w_uzu01'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - fileSel.Scr->search(MULTI_CHAR('w_uzu02'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - fileSel.Scr->search(MULTI_CHAR('w_uzu03'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - fileSel.Scr->search(MULTI_CHAR('w_uzu04'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - fileSel.Scr->search(MULTI_CHAR('w_uzu05'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - fileSel.Scr->search(MULTI_CHAR('w_uzu06'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - fileSel.Scr->search(MULTI_CHAR('w_uzu07'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - fileSel.Scr->search(MULTI_CHAR('w_uzu08'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - fileSel.Scr->search(MULTI_CHAR('w_uzu09'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); + // Spirals & Memory Card Text + for (PaneCache& entry : fileSelPanes) { + J2DPane* pane = fileSel.Scr->search(entry.tag); + pane->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); + } // Selection Cursor if (mSelIcon) { @@ -3953,17 +3948,11 @@ void dFile_select_c::fileSelectWide() { mSelIcon2->refreshAspectScale(mDoGph_gInf_c::hudAspectScaleUp); } - // Spirals - fileSel.Scr->search(MULTI_CHAR('w_uzu00'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - fileSel.Scr->search(MULTI_CHAR('w_uzu01'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - fileSel.Scr->search(MULTI_CHAR('w_uzu02'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - fileSel.Scr->search(MULTI_CHAR('w_uzu03'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - fileSel.Scr->search(MULTI_CHAR('w_uzu04'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - fileSel.Scr->search(MULTI_CHAR('w_uzu05'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - fileSel.Scr->search(MULTI_CHAR('w_uzu06'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - fileSel.Scr->search(MULTI_CHAR('w_uzu07'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - fileSel.Scr->search(MULTI_CHAR('w_uzu08'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - fileSel.Scr->search(MULTI_CHAR('w_uzu09'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); + // Spirals & Memory Card Text + for (PaneCache& entry : fileSelPanes) { + J2DPane* pane = fileSel.Scr->search(entry.tag); + pane->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); + } break; } } diff --git a/src/d/d_menu_collect.cpp b/src/d/d_menu_collect.cpp index 0755c4de17..7ac70e4a7b 100644 --- a/src/d/d_menu_collect.cpp +++ b/src/d/d_menu_collect.cpp @@ -97,6 +97,7 @@ dMenu_Collect2D_c::~dMenu_Collect2D_c() { #if TARGET_PC void dMenu_Collect2D_c::menuCollectWide() { + static bool cachedPanes = false; // Get pre-scale values for each pane if (!cachedPanes) { for (PaneCache& entry : mpScreenPanes) { @@ -236,7 +237,7 @@ void dMenu_Collect2D_c::menuCollectWide() { // Fused Shadow/Mirror Background J2DPane* modelbgn = mpScreen->search(MULTI_CHAR('modelbgn')); - static f32 modelbgnTransX_orig = modelbgn->getTranslateX(); // Get pre-scale value + static f32 modelbgnTransX_orig = modelbgn->getTranslateX(); modelbgn->setBasePosition(J2DBasePosition_0); modelbgn->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.3f); f32 modelbgn_scaleFactor = 1.0f + 0.16f * (mDoGph_gInf_c::hudAspectScaleDown - 1.0f); diff --git a/src/d/d_name.cpp b/src/d/d_name.cpp index e4c2a0f8f0..6e3f8bca89 100644 --- a/src/d/d_name.cpp +++ b/src/d/d_name.cpp @@ -1430,51 +1430,86 @@ void dName_c::selectCursorPosSet(int row) { #if TARGET_PC void dName_c::nameWide() { - // Resize Select Icon - #if TARGET_PC - if (mSelIcon) { - mSelIcon->refreshAspectScale(mDoGph_gInf_c::hudAspectScaleUp); - } - #endif - - // List of Characters Box - static u64 l_tagName[65] = { - MULTI_CHAR('m_00_0'), MULTI_CHAR('m_00_1'), MULTI_CHAR('m_00_2'), MULTI_CHAR('m_00_3'), MULTI_CHAR('m_00_4'), MULTI_CHAR('m_01_0'), MULTI_CHAR('m_01_1'), MULTI_CHAR('m_01_2'), MULTI_CHAR('m_01_3'), - MULTI_CHAR('m_01_4'), MULTI_CHAR('m_02_0'), MULTI_CHAR('m_02_1'), MULTI_CHAR('m_02_2'), MULTI_CHAR('m_02_3'), MULTI_CHAR('m_02_4'), MULTI_CHAR('m03_0'), MULTI_CHAR('m03_1'), MULTI_CHAR('m03_2'), - MULTI_CHAR('m03_3'), MULTI_CHAR('m03_4'), MULTI_CHAR('m_04_0'), MULTI_CHAR('m_04_1'), MULTI_CHAR('m_04_2'), MULTI_CHAR('m_04_3'), MULTI_CHAR('m_04_4'), MULTI_CHAR('m_05_0'), MULTI_CHAR('m_05_1'), - MULTI_CHAR('m_05_2'), MULTI_CHAR('m_05_3'), MULTI_CHAR('m_05_4'), MULTI_CHAR('m_06_0'), MULTI_CHAR('m_06_1'), MULTI_CHAR('m_06_2'), MULTI_CHAR('m_06_3'), MULTI_CHAR('m_06_4'), MULTI_CHAR('m_07_0'), - MULTI_CHAR('m_07_1'), MULTI_CHAR('m_07_2'), MULTI_CHAR('m_07_3'), MULTI_CHAR('m_07_4'), MULTI_CHAR('m_08_0'), MULTI_CHAR('m_08_1'), MULTI_CHAR('m_08_2'), MULTI_CHAR('m_08_3'), MULTI_CHAR('m_08_4'), - MULTI_CHAR('m_09_0'), MULTI_CHAR('m_09_1'), MULTI_CHAR('m_09_2'), MULTI_CHAR('m_09_3'), MULTI_CHAR('m_09_4'), MULTI_CHAR('m_10_0'), MULTI_CHAR('m_10_1'), MULTI_CHAR('m_10_2'), MULTI_CHAR('m_10_3'), - MULTI_CHAR('m_10_4'), MULTI_CHAR('m_11_0'), MULTI_CHAR('m_11_1'), MULTI_CHAR('m_11_2'), MULTI_CHAR('m_11_3'), MULTI_CHAR('m_11_4'), MULTI_CHAR('m12_0'), MULTI_CHAR('m12_1'), MULTI_CHAR('m12_2'), - MULTI_CHAR('m12_3'), MULTI_CHAR('m12_4'), - }; - - for (u32 i = 0; i < 65; i++) { - nameIn.NameInScr->search(l_tagName[i])->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); + static bool cachedPanes = false; + // Get pre-scale values for each pane + if (!cachedPanes) { + for (PaneCache& entry : l_tagName) { + J2DPane* pane = nameIn.NameInScr->search(entry.tag); + if (!entry.cached) { + entry.origTransX = pane->getTranslateX(); + entry.origTransY = pane->getTranslateY(); + entry.cached = true; + } + } + for (PaneCache& entry : l_nameTagName) { + J2DPane* pane = nameIn.NameInScr->search(entry.tag); + if (!entry.cached) { + entry.origTransX = pane->getTranslateX(); + entry.origTransY = pane->getTranslateY(); + entry.cached = true; + } + } + for (PaneCache& entry : l_nameCurTagName) { + J2DPane* pane = nameIn.NameInScr->search(entry.tag); + if (!entry.cached) { + entry.origTransX = pane->getTranslateX(); + entry.origTransY = pane->getTranslateY(); + entry.cached = true; + } + } + cachedPanes = true; } - // "END" Text - nameIn.NameInScr->search(MULTI_CHAR('p_end_2'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - nameIn.NameInScr->search(MULTI_CHAR('p_end_1'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - nameIn.NameInScr->search(MULTI_CHAR('p_end_0'))->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); - - // Letters being typed - static u64 l_nameTagName[8] = { - MULTI_CHAR('name_00'), MULTI_CHAR('name_01'), MULTI_CHAR('name_02'), MULTI_CHAR('name_03'), MULTI_CHAR('name_04'), MULTI_CHAR('name_05'), MULTI_CHAR('name_06'), MULTI_CHAR('name_07'), - }; - - for (u32 i = 0; i < 8; i++) { - nameIn.NameInScr->search(l_nameTagName[i])->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); + // Reset all panes + nameIn.NameInScr->scale(1.0f, 1.0f); + nameIn.NameInScr->translate(0.0f, 0.0f); + for (PaneCache& entry : l_tagName) { + J2DPane* pane = nameIn.NameInScr->search(entry.tag); + pane->setBasePosition(J2DBasePosition_4); + pane->scale(1.0f, 1.0f); + pane->translate(entry.origTransX, entry.origTransY); + } + for (PaneCache& entry : l_nameTagName) { + J2DPane* pane = nameIn.NameInScr->search(entry.tag); + pane->setBasePosition(J2DBasePosition_4); + pane->scale(1.0f, 1.0f); + pane->translate(entry.origTransX, entry.origTransY); + } + for (PaneCache& entry : l_nameCurTagName) { + J2DPane* pane = nameIn.NameInScr->search(entry.tag); + pane->setBasePosition(J2DBasePosition_4); + pane->scale(1.0f, 1.0f); + pane->translate(entry.origTransX, entry.origTransY); } - // Underscores when typing below letters - static u64 l_nameCurTagName[8] = { - MULTI_CHAR('s__n_00'), MULTI_CHAR('s__n_01'), MULTI_CHAR('s__n_02'), MULTI_CHAR('s__n_03'), MULTI_CHAR('s__n_04'), MULTI_CHAR('s__n_05'), MULTI_CHAR('s__n_06'), MULTI_CHAR('s__n_07'), - }; - - for (u32 i = 0; i < 8; i++) { - nameIn.NameInScr->search(l_nameCurTagName[i]) - ->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); + switch (dusk::getSettings().game.menuScalingMode) { + case (dusk::MenuScaling::GameCube): + // Selection Cursor + if (mSelIcon) { + mSelIcon->refreshAspectScale(1.0f); + } + break; + default: // Wii and Dusklight + // List of Characters Box + for (PaneCache& entry : l_tagName) { + J2DPane* pane = nameIn.NameInScr->search(entry.tag); + pane->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); + } + // Letters being typed + for (PaneCache& entry : l_nameTagName) { + J2DPane* pane = nameIn.NameInScr->search(entry.tag); + pane->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); + } + // Underscores when typing below letters + for (PaneCache& entry : l_nameCurTagName) { + J2DPane* pane = nameIn.NameInScr->search(entry.tag); + pane->scale(mDoGph_gInf_c::hudAspectScaleDown, 1.0f); + } + // Selection Cursor + if (mSelIcon) { + mSelIcon->refreshAspectScale(mDoGph_gInf_c::hudAspectScaleUp); + } + break; } } #endif