diff options
| author | Trueffeloot <geiloking135@gmail.com> | 2023-07-22 03:46:09 +0200 |
|---|---|---|
| committer | Trueffeloot <geiloking135@gmail.com> | 2023-07-22 03:46:09 +0200 |
| commit | 4682deae990086677d01b65679d3bcac8aff0244 (patch) | |
| tree | 3256f14b0045468f6bf1dd23f8b2797658f06e97 /src/d/menu/d_menu_skill.cpp | |
| parent | 5ec69e491ad024fc07793959f51a354b7f1a94f3 (diff) | |
d_menu_skill basically OK
Diffstat (limited to 'src/d/menu/d_menu_skill.cpp')
| -rw-r--r-- | src/d/menu/d_menu_skill.cpp | 1238 |
1 files changed, 597 insertions, 641 deletions
diff --git a/src/d/menu/d_menu_skill.cpp b/src/d/menu/d_menu_skill.cpp index 7ee09c9eaf..b4be2d9c76 100644 --- a/src/d/menu/d_menu_skill.cpp +++ b/src/d/menu/d_menu_skill.cpp @@ -1,254 +1,54 @@ -// -// Generated By: dol2asm -// Translation Unit: d/menu/d_menu_skill -// +/** + * d_menu_skill.cpp + * Hidden Skills - Menu + */ #include "d/menu/d_menu_skill.h" +#include "JSystem/J2DGraph/J2DTextBox.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "JSystem/JKernel/JKRMemArchive.h" #include "MSL_C/string.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_lib.h" +#include "d/d_select_cursor.h" +#include "d/meter/d_meter2_info.h" +#include "d/meter/d_meter_HIO.h" +#include "d/msg/d_msg_class.h" +#include "d/msg/d_msg_string.h" #include "dol2asm.h" #include "dolphin/types.h" #include "global.h" +#include "m_Do/m_Do_controller_pad.h" +#include "m_Do/m_Do_graphic.h" -// -// Types: -// - -struct mDoGph_gInf_c { - static u8 mFader[4]; -}; - -struct mDoDvdThd_mountArchive_c { - /* 80015E14 */ void create(char const*, u8, JKRHeap*); -}; - -struct mDoCPd_c { - static u8 m_cpadInfo[256]; -}; - -struct dSv_event_flag_c { - static u8 saveBitLabels[1644 + 4 /* padding */]; -}; - -struct dSv_event_c { - /* 800349BC */ void isEventBit(u16) const; -}; - -struct dMsgString_c { - /* 80249C20 */ dMsgString_c(); - /* 80249D28 */ ~dMsgString_c(); -}; - -struct JMSMesgEntry_c {}; - -struct dMeter2Info_c { - /* 8021C544 */ void getStringKanji(u32, char*, JMSMesgEntry_c*); -}; - -// -// Forward References: -// - -extern "C" void __ct__13dMenu_Skill_cFP10JKRExpHeapP9STControlP10CSTControl(); extern "C" void __dt__13dMenu_Skill_cFv(); -extern "C" void _create__13dMenu_Skill_cFv(); -extern "C" void _move__13dMenu_Skill_cFv(); extern "C" void _draw__13dMenu_Skill_cFv(); -extern "C" void isSync__13dMenu_Skill_cFv(); -extern "C" void skill_init_calc__13dMenu_Skill_cFv(); -extern "C" void init__13dMenu_Skill_cFv(); -extern "C" void _open__13dMenu_Skill_cFv(); -extern "C" void _close__13dMenu_Skill_cFv(); -extern "C" void wait_init__13dMenu_Skill_cFv(); -extern "C" void wait_move__13dMenu_Skill_cFv(); -extern "C" void read_open_init__13dMenu_Skill_cFv(); -extern "C" void read_open_move__13dMenu_Skill_cFv(); -extern "C" void read_move_init__13dMenu_Skill_cFv(); -extern "C" void read_move_move__13dMenu_Skill_cFv(); -extern "C" void read_close_init__13dMenu_Skill_cFv(); -extern "C" void read_close_move__13dMenu_Skill_cFv(); -extern "C" void screenSetMenu__13dMenu_Skill_cFv(); -extern "C" void screenSetLetter__13dMenu_Skill_cFv(); -extern "C" void screenSetDoIcon__13dMenu_Skill_cFv(); -extern "C" void setCursorPos__13dMenu_Skill_cFv(); -extern "C" void changeActiveColor__13dMenu_Skill_cFv(); -extern "C" void setPageText__13dMenu_Skill_cFv(); -extern "C" void setAButtonString__13dMenu_Skill_cFUs(); -extern "C" void setBButtonString__13dMenu_Skill_cFUs(); -extern "C" void setNameString__13dMenu_Skill_cFUs(); -extern "C" void getSkillNum__13dMenu_Skill_cFv(); -extern "C" void setHIO__13dMenu_Skill_cFb(); extern "C" void draw__13dMenu_Skill_cFv(); -extern "C" void __sinit_d_menu_skill_cpp(); -extern "C" extern char const* const d_menu_d_menu_skill__stringBase0; - -// -// External References: -// - -extern "C" void mDoExt_setCurrentHeap__FP7JKRHeap(); -extern "C" void mDoExt_getMesgFont__Fv(); -extern "C" void mDoExt_getSubFont__Fv(); -extern "C" void create__24mDoDvdThd_mountArchive_cFPCcUcP7JKRHeap(); -extern "C" void checkUpTrigger__9STControlFv(); -extern "C" void checkDownTrigger__9STControlFv(); -extern "C" void isEventBit__11dSv_event_cCFUs(); -extern "C" void __ct__Q28JUtility6TColorFv(); -extern "C" void __ct__16dSelect_cursor_cFUcfP10JKRArchive(); -extern "C" void setPos__16dSelect_cursor_cFffP7J2DPaneb(); -extern "C" void setParam__16dSelect_cursor_cFfffff(); -extern "C" void setScale__16dSelect_cursor_cFf(); -extern "C" void setAlphaRate__16dSelect_cursor_cFf(); -extern "C" void getStringKanji__13dMeter2Info_cFUlPcP14JMSMesgEntry_c(); -extern "C" void dMeter2Info_set2DVibration__Fv(); -extern "C" void __ct__12dMsgString_cFv(); -extern "C" void __dt__12dMsgString_cFv(); -extern "C" void __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap(); -extern "C" void paneTrans__8CPaneMgrFff(); -extern "C" void getGlobalVtxCenter__8CPaneMgrFP7J2DPanebs(); -extern "C" void dPaneClass_showNullPane__FP9J2DScreen(); -extern "C" void setAlphaRate__13CPaneMgrAlphaFf(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void __ct__9J2DScreenFv(); -extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive(); -extern "C" void draw__9J2DScreenFffPC14J2DGrafContext(); -extern "C" void __ct__10J2DPictureFPC7ResTIMG(); -extern "C" void getStringPtr__10J2DTextBoxCFv(); -extern "C" void setString__10J2DTextBoxFsPCce(); -extern "C" void __construct_array(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_14(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_14(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_25(); -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 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; -extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_drawHIO[3880]; -extern "C" extern u8 g_meter2_info[248]; -extern "C" u8 mFader__13mDoGph_gInf_c[4]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; - -// -// Declarations: -// - -/* ############################################################################################## */ + /* 803BE7D8-803BE7E4 01B8F8 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { +static u8 cNullVec__6Z2Calc[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; -/* 803BE7E4-803BE7F0 -00001 000C+00 0/1 0/0 0/0 .data @3795 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3795[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait_init__13dMenu_Skill_cFv, +typedef void (dMenu_Skill_c::*initFunc)(); +static initFunc map_init_process[] = { + &dMenu_Skill_c::wait_init, + &dMenu_Skill_c::read_open_init, + &dMenu_Skill_c::read_move_init, + &dMenu_Skill_c::read_close_init, }; -#pragma pop -/* 803BE7F0-803BE7FC -00001 000C+00 0/1 0/0 0/0 .data @3796 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3796[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)read_open_init__13dMenu_Skill_cFv, -}; -#pragma pop - -/* 803BE7FC-803BE808 -00001 000C+00 0/1 0/0 0/0 .data @3797 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3797[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)read_move_init__13dMenu_Skill_cFv, -}; -#pragma pop - -/* 803BE808-803BE814 -00001 000C+00 0/1 0/0 0/0 .data @3798 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3798[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)read_close_init__13dMenu_Skill_cFv, -}; -#pragma pop - -/* 803BE814-803BE844 01B934 0030+00 2/3 0/0 0/0 .data map_init_process */ -SECTION_DATA static u8 map_init_process[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 803BE844-803BE850 -00001 000C+00 0/1 0/0 0/0 .data @3799 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3799[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait_move__13dMenu_Skill_cFv, -}; -#pragma pop - -/* 803BE850-803BE85C -00001 000C+00 0/1 0/0 0/0 .data @3800 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3800[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)read_open_move__13dMenu_Skill_cFv, -}; -#pragma pop - -/* 803BE85C-803BE868 -00001 000C+00 0/1 0/0 0/0 .data @3801 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3801[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)read_move_move__13dMenu_Skill_cFv, -}; -#pragma pop - -/* 803BE868-803BE874 -00001 000C+00 0/1 0/0 0/0 .data @3802 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3802[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)read_close_move__13dMenu_Skill_cFv, -}; -#pragma pop - -/* 803BE874-803BE8A4 01B994 0030+00 1/2 0/0 0/0 .data map_move_process */ -SECTION_DATA static u8 map_move_process[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +typedef void (dMenu_Skill_c::*moveFunc)(); +static moveFunc map_move_process[] = { + &dMenu_Skill_c::wait_move, + &dMenu_Skill_c::read_open_move, + &dMenu_Skill_c::read_move_move, + &dMenu_Skill_c::read_close_move, }; /* 803BE8A4-803BE8C0 01B9C4 001C+00 1/1 0/0 0/0 .data evt_id$4557 */ -SECTION_DATA static u8 evt_id[28] = { - 0x00, 0x00, 0x01, 0x53, 0x00, 0x00, 0x01, 0x52, 0x00, 0x00, 0x01, 0x54, 0x00, 0x00, - 0x01, 0x55, 0x00, 0x00, 0x01, 0x56, 0x00, 0x00, 0x01, 0x57, 0x00, 0x00, 0x01, 0x58, +static u32 evt_id[7] = { + 339, 338, 340, 341, 342, 343, 344, }; /* 803BE8C0-803BE8E0 01B9E0 0010+10 2/2 0/0 0/0 .data __vt__13dMenu_Skill_c */ @@ -264,597 +64,769 @@ SECTION_DATA extern void* __vt__13dMenu_Skill_c[4 + 4 /* padding */] = { NULL, }; -/* 80454488-8045448C 002A88 0004+00 8/8 0/0 0/0 .sdata2 @3808 */ -SECTION_SDATA2 static u8 lit_3808[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 8045448C-80454490 002A8C 0004+00 6/6 0/0 0/0 .sdata2 @3809 */ -SECTION_SDATA2 static f32 lit_3809 = 1.0f; - /* 801F7224-801F7348 1F1B64 0124+00 0/0 2/2 0/0 .text * __ct__13dMenu_Skill_cFP10JKRExpHeapP9STControlP10CSTControl */ -dMenu_Skill_c::dMenu_Skill_c(JKRExpHeap* param_0, STControl* param_1, CSTControl* param_2) { - field_0x4 = param_0; - field_0x8 = NULL; - field_0x14 = NULL; - field_0xc = param_1; - field_0x10 = param_2; +dMenu_Skill_c::dMenu_Skill_c(JKRExpHeap* i_heap, STControl* i_stcontrol, CSTControl* i_cstcontrol) { + mpHeap = i_heap; + mpArchive = NULL; + mpMount = NULL; + mpStick = i_stcontrol; + mpCStick = i_cstcontrol; mStatus = 1; - field_0x205 = 0; - field_0x200 = 0; - field_0x1fc = 0; - field_0x202 = 0; - field_0x206 = 0; + mProcess = PROC_CLOSE_MOVE; + mFrame = 0; + mStringID = 0; + mProcFrame = 0; + mIndex = 0; field_0x209 = 255; field_0x20a = 255; skill_init_calc(); - field_0x1f0 = FLOAT_LABEL(lit_3808); - f32 tmp_1 = lit_3809; - field_0x1f8 = tmp_1; - field_0x1f4 = tmp_1; + mPosX = 0.0f; + mBarScale[1] = 1.0f; + mBarScale[0] = 1.0f; } /* 801F7348-801F763C 1F1C88 02F4+00 1/0 0/0 0/0 .text __dt__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMenu_Skill_c::~dMenu_Skill_c() { - nofralloc -#include "asm/d/menu/d_menu_skill/__dt__13dMenu_Skill_cFv.s" +dMenu_Skill_c::~dMenu_Skill_c() { + delete mpDrawCursor; + mpDrawCursor = NULL; + + delete mpString; + mpString = NULL; + + delete mpMenuScreen; + mpMenuScreen = NULL; + + delete mpLetterScreen; + mpLetterScreen = NULL; + + delete mpTextPane; + mpTextPane = NULL; + + delete mpExpName; + mpExpName = NULL; + + delete mpTextParent; + mpTextParent = NULL; + + delete mpBlackTex; + mpBlackTex = NULL; + + delete mpParent; + mpParent = NULL; + + for (int i = 0; i < 7; i++) { + delete mpLetterParent[i]; + mpLetterParent[i] = NULL; + } + + delete mpIconScreen; + mpIconScreen = NULL; + + for (int i = 0; i < 2; i++) { + if (mpButtonAB[i] != NULL) { + delete mpButtonAB[i]; + mpButtonAB[i] = NULL; + } + if (mpButtonText[i] != NULL) { + delete mpButtonText[i]; + mpButtonText[i] = NULL; + } + } + + if (mpMount != NULL) { + mpMount->getArchive()->unmount(); + delete mpMount; + mpMount = NULL; + } + + if (mpArchive != NULL) { + mpArchive->unmount(); + mpArchive = NULL; + } } -#pragma pop - -/* ############################################################################################## */ -/* 80454490-80454494 002A90 0004+00 1/1 0/0 0/0 .sdata2 @3904 */ -SECTION_SDATA2 static f32 lit_3904 = 101.0f / 100.0f; - -/* 80454494-80454498 002A94 0004+00 1/1 0/0 0/0 .sdata2 @3905 */ -SECTION_SDATA2 static f32 lit_3905 = 17.0f / 20.0f; - -/* 80454498-8045449C 002A98 0004+00 1/1 0/0 0/0 .sdata2 @3906 */ -SECTION_SDATA2 static f32 lit_3906 = 1.0f / 50.0f; - -/* 8045449C-804544A0 002A9C 0004+00 1/1 0/0 0/0 .sdata2 @3907 */ -SECTION_SDATA2 static f32 lit_3907 = 0.5f; /* 801F763C-801F7718 1F1F7C 00DC+00 1/1 0/0 0/0 .text _create__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::_create() { - nofralloc -#include "asm/d/menu/d_menu_skill/_create__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::_create() { + mpDrawCursor = new dSelect_cursor_c(2, 1.0f, NULL); + mpDrawCursor->setParam(1.01f, 0.85f, 0.02f, 0.5f, 0.5f); + mpDrawCursor->setAlphaRate(0.0f); + mpDrawCursor->setScale(0.0f); + mpDrawCursor->offPlayAnime(0); + mpString = new dMsgString_c(); + screenSetMenu(); + screenSetLetter(); + screenSetDoIcon(); + setHIO(true); + init(); } -#pragma pop /* 801F7718-801F77B0 1F2058 0098+00 0/0 2/2 0/0 .text _move__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::_move() { - nofralloc -#include "asm/d/menu/d_menu_skill/_move__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::_move() { + JKRHeap* heap = mDoExt_setCurrentHeap((JKRHeap*)mpHeap); + u8 process = mProcess; + (this->*map_move_process[mProcess])(); + if (process != mProcess) { + (this->*map_init_process[mProcess])(); + } + setHIO(false); + mDoExt_setCurrentHeap(heap); } -#pragma pop - -/* ############################################################################################## */ -/* 804544A0-804544A4 002AA0 0004+00 1/1 0/0 0/0 .sdata2 @3944 */ -SECTION_SDATA2 static f32 lit_3944 = 608.0f; - -/* 804544A4-804544A8 002AA4 0004+00 1/1 0/0 0/0 .sdata2 @3945 */ -SECTION_SDATA2 static f32 lit_3945 = 448.0f; - -/* 804544A8-804544B0 002AA8 0004+04 3/3 0/0 0/0 .sdata2 @3946 */ -SECTION_SDATA2 static f32 lit_3946[1 + 1 /* padding */] = { - -1.0f, - /* padding */ - 0.0f, -}; /* 801F77B0-801F7950 1F20F0 01A0+00 1/1 1/1 0/0 .text _draw__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::_draw() { - nofralloc -#include "asm/d/menu/d_menu_skill/_draw__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::_draw() { + if (mpArchive != NULL) { + J2DGrafContext* context = dComIfGp_getCurrentGrafPort(); + u8 alpha = mpBlackTex->mAlpha; + mpBlackTex->setAlpha(0xff); + mpBlackTex->draw(0.0f, 0.0f, 608.0f, 448.0f, 0, 0, 0); + mpBlackTex->setAlpha(alpha); + mpMenuScreen->draw(mPosX, 0.0f, context); + mpDrawCursor->draw(); + if (mProcess == 1 || mProcess == 2 || mProcess == 3) { + mpBlackTex->draw(0.0f, 0.0f, 608.0f, 448.0f, 0, 0, 0); + mpLetterScreen->draw(0.0f, 0.0f, context); + if (mStringID != 0) { + mpString->getString(mStringID, (J2DTextBox*)mpTextPane->getPanePtr(), NULL, NULL, + NULL, 0); + mpString->drawOutFont((J2DTextBox*)mpTextPane->getPanePtr(), -1.0f); + } + } + mpIconScreen->draw(0.0f, 0.0f, context); + } } -#pragma pop /* 801F7950-801F7978 1F2290 0028+00 0/0 2/2 0/0 .text isSync__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool dMenu_Skill_c::isSync() { - nofralloc -#include "asm/d/menu/d_menu_skill/isSync__13dMenu_Skill_cFv.s" +bool dMenu_Skill_c::isSync() { + if (mpMount != NULL && mpMount->sync() == false) { + return 0; + } + return 1; } -#pragma pop /* 801F7978-801F79EC 1F22B8 0074+00 1/1 0/0 0/0 .text skill_init_calc__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::skill_init_calc() { - nofralloc -#include "asm/d/menu/d_menu_skill/skill_init_calc__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::skill_init_calc() { + mTotalSkillNum = getSkillNum(); + if (mTotalSkillNum < 7) { + mSkillNum = mTotalSkillNum; + } else { + mSkillNum = 7; + } + + if (mTotalSkillNum % 7 == 0) { + mRemainder = mTotalSkillNum / 7; + } else { + mRemainder = mTotalSkillNum / 7 + 1; + } } -#pragma pop /* 801F79EC-801F7A40 1F232C 0054+00 1/1 0/0 0/0 .text init__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::init() { - nofralloc -#include "asm/d/menu/d_menu_skill/init__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::init() { + setPageText(); + changeActiveColor(); + (this->*map_init_process[mProcess])(); } -#pragma pop - -/* ############################################################################################## */ -/* 80397DB8-80397DB8 024418 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80397DB8 = "/res/Layout/skillres.arc"; -#pragma pop - -/* 804544B0-804544B8 002AB0 0008+00 4/4 0/0 0/0 .sdata2 @4016 */ -SECTION_SDATA2 static f64 lit_4016 = 4503601774854144.0 /* cast s32 to float */; /* 801F7A40-801F7C1C 1F2380 01DC+00 0/0 2/2 0/0 .text _open__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::_open() { - nofralloc -#include "asm/d/menu/d_menu_skill/_open__13dMenu_Skill_cFv.s" +int dMenu_Skill_c::_open() { + if (!mpMount) { + mpMount = mDoDvdThd_mountArchive_c::create("/res/Layout/skillres.arc", 0, NULL); + } + if (!mpArchive) { + if (mpMount->sync() != 0) { + if (!mpArchive) { + mpArchive = (JKRArchive*)mpMount->getArchive(); + delete mpMount; + mpMount = NULL; + _create(); + } + } else { + return 0; + } + } + + s16 openFrame = g_drawHIO.mSkillListScreen.mOpenFrame[0]; + s16 closeFrame = g_drawHIO.mSkillListScreen.mCloseFrame[0]; + mFrame = g_drawHIO.mSkillListScreen.mOpenFrame[0]; + if (mFrame >= openFrame) { + mFrame = closeFrame; + mStatus = 2; + J2DPane* pane = mpParent->getPanePtr(); + pane->mScaleX = 1.0f; + pane->mScaleY = 1.0f; + pane->calcMtx(); + mpParent->setAlphaRate(1.0f); + setCursorPos(); + mpDrawCursor->setAlphaRate(1.0f); + mpDrawCursor->setScale(1.0f); + mpDrawCursor->onPlayAnime(0); + return 1; + } else { + f32 div = (f32)mFrame / (f32)openFrame; + J2DPane* pane = mpParent->getPanePtr(); + pane->mScaleX = div; + pane->mScaleY = div; + pane->calcMtx(); + mpParent->setAlphaRate(div); + setCursorPos(); + mpDrawCursor->setAlphaRate(div); + mpDrawCursor->setScale(div); + return 0; + } } -#pragma pop /* 801F7C1C-801F7D58 1F255C 013C+00 0/0 1/1 0/0 .text _close__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::_close() { - nofralloc -#include "asm/d/menu/d_menu_skill/_close__13dMenu_Skill_cFv.s" +int dMenu_Skill_c::_close() { + s16 closeFrame = g_drawHIO.mSkillListScreen.mCloseFrame[0]; + mFrame = 0; + if (mFrame <= 0) { + mFrame = 0; + mStatus = 0; + J2DPane* pane = mpParent->getPanePtr(); + pane->mScaleX = 0.0f; + pane->mScaleY = 0.0f; + pane->calcMtx(); + mpParent->setAlphaRate(0.0f); + setCursorPos(); + mpDrawCursor->setAlphaRate(0.0f); + mpDrawCursor->setScale(0.0f); + return 1; + } else { + f32 div = (f32)mFrame / (f32)closeFrame; + J2DPane* pane = mpParent->getPanePtr(); + pane->mScaleX = div; + pane->mScaleY = div; + pane->calcMtx(); + mpParent->setAlphaRate(div); + setCursorPos(); + mpDrawCursor->setAlphaRate(div); + mpDrawCursor->setScale(div); + return 0; + } + return mFrame <= 0; } -#pragma pop /* 801F7D58-801F7D94 1F2698 003C+00 1/0 0/0 0/0 .text wait_init__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::wait_init() { - nofralloc -#include "asm/d/menu/d_menu_skill/wait_init__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::wait_init() { + setAButtonString(0x40C); + setBButtonString(0x3f9); } -#pragma pop /* 801F7D94-801F7F24 1F26D4 0190+00 1/0 0/0 0/0 .text wait_move__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::wait_move() { - nofralloc -#include "asm/d/menu/d_menu_skill/wait_move__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::wait_move() { + u8 oldIndex = mIndex; + if (mDoGph_gInf_c::getFader()->getStatus() == 1) { + if ((mDoCPd_c::getTrig(0) & 0x200) != 0) { + mpDrawCursor->offPlayAnime(0); + mStatus = 3; + } else if (mDoCPd_c::getTrigA(0)) { + mProcess = PROC_WAIT_MOVE; + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_EXP_WIN_OPEN, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + dMeter2Info_set2DVibration(); + } else if (mpStick->checkUpTrigger()) { + if (mIndex) { + mIndex--; + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_CURSOR_ITEM, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + } + + } else if (mpStick->checkDownTrigger() && mIndex < mSkillNum - 1) { + mIndex++; + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_CURSOR_ITEM, NULL, 0, 0, 1.0f, 1.0f, -1.0f, + -1.0f, 0); + } + if (oldIndex != mIndex) { + changeActiveColor(); + } + } } -#pragma pop -/* ############################################################################################## */ /* 80397A18-80397A34 024078 001C+00 2/2 0/0 0/0 .rodata i_id$4087 */ -SECTION_RODATA static u8 const i_id[28] = { - 0x00, 0x00, 0x06, 0xB4, 0x00, 0x00, 0x06, 0xB3, 0x00, 0x00, 0x06, 0xB5, 0x00, 0x00, - 0x06, 0xB6, 0x00, 0x00, 0x06, 0xB7, 0x00, 0x00, 0x06, 0xB8, 0x00, 0x00, 0x06, 0xB9, +static const u32 i_id[7] = { + 1716, 1715, 1717, 1718, 1719, 1720, 1721, }; -COMPILER_STRIP_GATE(0x80397A18, &i_id); /* 80397A34-80397A50 024094 001C+00 1/1 0/0 0/0 .rodata i_id1$4088 */ -SECTION_RODATA static u8 const i_id1_4088[28] = { - 0x00, 0x00, 0x06, 0xAD, 0x00, 0x00, 0x06, 0xAC, 0x00, 0x00, 0x06, 0xAE, 0x00, 0x00, - 0x06, 0xAF, 0x00, 0x00, 0x06, 0xB0, 0x00, 0x00, 0x06, 0xB1, 0x00, 0x00, 0x06, 0xB2, +static const u32 i_id1_4088[7] = { + 1709, 1708, 1710, 1711, 1712, 1713, 1714, }; -COMPILER_STRIP_GATE(0x80397A34, &i_id1_4088); /* 801F7F24-801F7FF8 1F2864 00D4+00 1/0 0/0 0/0 .text read_open_init__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::read_open_init() { - nofralloc -#include "asm/d/menu/d_menu_skill/read_open_init__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::read_open_init() { + mProcFrame = 0; + int index = mIndex; + mStringID = i_id[index]; + mpTextParent->setAlphaRate(0.0f); + setNameString(i_id1_4088[index]); + mpString->getString(mStringID, (J2DTextBox*)mpTextPane->getPanePtr(), NULL, NULL, NULL, 0); + setAButtonString(0); + setBButtonString(0); + mpBlackTex->setAlpha(0); } -#pragma pop - -/* ############################################################################################## */ -/* 804544B8-804544C0 002AB8 0008+00 2/2 0/0 0/0 .sdata2 @4104 */ -SECTION_SDATA2 static f64 lit_4104 = 4503599627370496.0 /* cast u32 to float */; /* 801F7FF8-801F8114 1F2938 011C+00 1/0 0/0 0/0 .text read_open_move__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::read_open_move() { - nofralloc -#include "asm/d/menu/d_menu_skill/read_open_move__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::read_open_move() { + s16 openFrame = g_drawHIO.mSkillListScreen.mOpenFrame[1]; + mProcFrame++; + if (mProcFrame >= openFrame) { + mProcess = PROC_OPEN_MOVE; + mpTextParent->setAlphaRate(1.0f); + mpBlackTex->setAlpha(g_drawHIO.mSkillListScreen.mWindowBGalpha); + } else { + f32 alphaRate = (f32)mProcFrame / (f32)openFrame; + mpTextParent->setAlphaRate(alphaRate); + mpBlackTex->setAlpha(g_drawHIO.mSkillListScreen.mWindowBGalpha * alphaRate); + } } -#pragma pop /* 801F8114-801F8150 1F2A54 003C+00 1/0 0/0 0/0 .text read_move_init__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::read_move_init() { - nofralloc -#include "asm/d/menu/d_menu_skill/read_move_init__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::read_move_init() { + setAButtonString(0); + setBButtonString(0x3f9); } -#pragma pop /* 801F8150-801F8218 1F2A90 00C8+00 1/0 0/0 0/0 .text read_move_move__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::read_move_move() { - nofralloc -#include "asm/d/menu/d_menu_skill/read_move_move__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::read_move_move() { + if (mDoCPd_c::getTrigA(0) != 0) { + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_EXP_WIN_CLOSE, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, + 0); + dMeter2Info_set2DVibration(); + mProcess = PROC_MOVE_MOVE; + + } else if ((mDoCPd_c::getTrig(0) & 0x200) != 0) { + Z2GetAudioMgr()->mSeMgr.seStart(Z2SE_SY_EXP_WIN_CLOSE, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, + 0); + dMeter2Info_set2DVibration(); + mProcess = PROC_MOVE_MOVE; + } } -#pragma pop /* 801F8218-801F826C 1F2B58 0054+00 1/0 0/0 0/0 .text read_close_init__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::read_close_init() { - nofralloc -#include "asm/d/menu/d_menu_skill/read_close_init__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::read_close_init() { + mProcFrame = g_drawHIO.mSkillListScreen.mCloseFrame[1]; + mStringID = 0; + setAButtonString(0); + setBButtonString(0); } -#pragma pop /* 801F826C-801F8388 1F2BAC 011C+00 1/0 0/0 0/0 .text read_close_move__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::read_close_move() { - nofralloc -#include "asm/d/menu/d_menu_skill/read_close_move__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::read_close_move() { + s16 closeFrame = g_drawHIO.mSkillListScreen.mCloseFrame[1]; + mProcFrame--; + if (mProcFrame <= 0) { + mProcess = PROC_CLOSE_MOVE; + mpTextParent->setAlphaRate(0.0f); + mpBlackTex->setAlpha(g_drawHIO.mSkillListScreen.mWindowBGalpha); + } else { + f32 alphaRate = (f32)mProcFrame / (f32)closeFrame; + mpTextParent->setAlphaRate(alphaRate); + mpBlackTex->setAlpha(g_drawHIO.mSkillListScreen.mWindowBGalpha * alphaRate); + } } -#pragma pop -/* ############################################################################################## */ /* 80397A50-80397A88 0240B0 0038+00 0/1 0/0 0/0 .rodata tag_sub0$4148 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_sub0[56] = { - 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x30, 0x73, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, - 0x31, 0x73, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x32, 0x73, 0x6D, 0x65, 0x6E, 0x75, - 0x5F, 0x74, 0x33, 0x73, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x34, 0x73, 0x6D, 0x65, - 0x6E, 0x75, 0x5F, 0x74, 0x35, 0x73, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x35, 0x31, +static const u64 tag_sub0[7] = { + 'menu_t0s', 'menu_t1s', 'menu_t2s', 'menu_t3s', 'menu_t4s', 'menu_t5s', 'menu_t51', }; -COMPILER_STRIP_GATE(0x80397A50, &tag_sub0); #pragma pop /* 80397A88-80397AC0 0240E8 0038+00 0/1 0/0 0/0 .rodata tag_sub1$4149 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_sub1[56] = { - 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x30, 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, - 0x74, 0x31, 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x32, 0x00, 0x6D, 0x65, 0x6E, - 0x75, 0x5F, 0x74, 0x33, 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x34, 0x00, 0x6D, - 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x35, 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x36, +static const u64 tag_sub1[7] = { + 'menu_t0', 'menu_t1', 'menu_t2', 'menu_t3', 'menu_t4', 'menu_t5', 'menu_t6', }; -COMPILER_STRIP_GATE(0x80397A88, &tag_sub1); #pragma pop /* 80397AC0-80397AF8 024120 0038+00 0/1 0/0 0/0 .rodata tag_name0$4150 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_name0[56] = { - 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x36, 0x73, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x66, - 0x37, 0x73, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x66, 0x38, 0x73, 0x6D, 0x65, 0x6E, 0x75, - 0x5F, 0x74, 0x39, 0x73, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x31, 0x30, 0x73, 0x6D, 0x65, - 0x6E, 0x75, 0x5F, 0x31, 0x31, 0x73, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x31, 0x31, 0x32, +static const u64 tag_name0[7] = { + 'menu_t6s', 'menu_f7s', 'menu_f8s', 'menu_t9s', 'menu_10s', 'menu_11s', 'menu_112', }; -COMPILER_STRIP_GATE(0x80397AC0, &tag_name0); #pragma pop /* 80397AF8-80397B30 024158 0038+00 0/1 0/0 0/0 .rodata tag_name1$4151 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_name1[56] = { - 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x66, 0x36, 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, - 0x66, 0x37, 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x38, 0x00, 0x6D, 0x65, 0x6E, - 0x75, 0x5F, 0x74, 0x39, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x31, 0x30, 0x6D, 0x65, - 0x6E, 0x75, 0x5F, 0x74, 0x31, 0x31, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x30, 0x31, +static const u64 tag_name1[7] = { + 'menu_f6', 'menu_f7', 'menu_t8', 'menu_t9', 'menu_t10', 'menu_t11', 'menu_t01', }; -COMPILER_STRIP_GATE(0x80397AF8, &tag_name1); #pragma pop /* 80397B30-80397B68 024190 0038+00 0/1 0/0 0/0 .rodata ftag_sub0$4152 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const ftag_sub0[56] = { - 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x30, 0x73, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, - 0x31, 0x73, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x32, 0x73, 0x66, 0x65, 0x6E, 0x75, - 0x5F, 0x74, 0x33, 0x73, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x34, 0x73, 0x66, 0x65, - 0x6E, 0x75, 0x5F, 0x74, 0x35, 0x73, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x36, 0x73, +static const u64 ftag_sub0[7] = { + 'fenu_t0s', 'fenu_t1s', 'fenu_t2s', 'fenu_t3s', 'fenu_t4s', 'fenu_t5s', 'fenu_t6s', }; -COMPILER_STRIP_GATE(0x80397B30, &ftag_sub0); #pragma pop /* 80397B68-80397BA0 0241C8 0038+00 0/1 0/0 0/0 .rodata ftag_sub1$4153 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const ftag_sub1[56] = { - 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x30, 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, - 0x74, 0x31, 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x32, 0x00, 0x66, 0x65, 0x6E, - 0x75, 0x5F, 0x74, 0x33, 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x34, 0x00, 0x66, - 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x35, 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x36, +static const u64 ftag_sub1[7] = { + 'fenu_t0', 'fenu_t1', 'fenu_t2', 'fenu_t3', 'fenu_t4', 'fenu_t5', 'fenu_t6', }; -COMPILER_STRIP_GATE(0x80397B68, &ftag_sub1); #pragma pop /* 80397BA0-80397BD8 024200 0038+00 0/1 0/0 0/0 .rodata ftag_name0$4154 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const ftag_name0[56] = { - 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x37, 0x73, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, - 0x38, 0x73, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x39, 0x73, 0x66, 0x65, 0x6E, 0x75, - 0x5F, 0x31, 0x30, 0x73, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x31, 0x31, 0x73, 0x66, 0x65, - 0x6E, 0x75, 0x5F, 0x31, 0x32, 0x73, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x31, 0x33, 0x73, +static const u64 ftag_name0[7] = { + 'fenu_t7s', 'fenu_t8s', 'fenu_t9s', 'fenu_10s', 'fenu_11s', 'fenu_12s', 'fenu_13s', }; -COMPILER_STRIP_GATE(0x80397BA0, &ftag_name0); #pragma pop /* 80397BD8-80397C10 024238 0038+00 0/1 0/0 0/0 .rodata ftag_name1$4155 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const ftag_name1[56] = { - 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x37, 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, - 0x74, 0x38, 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x39, 0x00, 0x66, 0x65, 0x6E, - 0x75, 0x5F, 0x31, 0x30, 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x31, 0x31, 0x00, 0x66, - 0x65, 0x6E, 0x75, 0x5F, 0x31, 0x32, 0x00, 0x66, 0x65, 0x6E, 0x75, 0x5F, 0x31, 0x33, +static const u64 ftag_name1[7] = { + 'fenu_t7', 'fenu_t8', 'fenu_t9', 'fenu_10', 'fenu_11', 'fenu_12', 'fenu_13', }; -COMPILER_STRIP_GATE(0x80397BD8, &ftag_name1); #pragma pop /* 80397C10-80397C48 024270 0038+00 0/1 0/0 0/0 .rodata tag_letter$4166 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_letter[56] = { - 0x6C, 0x65, 0x74, 0x5F, 0x30, 0x30, 0x5F, 0x6E, 0x6C, 0x65, 0x74, 0x5F, 0x30, 0x31, - 0x5F, 0x6E, 0x6C, 0x65, 0x74, 0x5F, 0x30, 0x32, 0x5F, 0x6E, 0x6C, 0x65, 0x74, 0x5F, - 0x30, 0x33, 0x5F, 0x6E, 0x6C, 0x65, 0x74, 0x5F, 0x30, 0x34, 0x5F, 0x6E, 0x6C, 0x65, - 0x74, 0x5F, 0x30, 0x35, 0x5F, 0x6E, 0x6C, 0x65, 0x74, 0x5F, 0x30, 0x36, 0x5F, 0x6E, +static const u64 tag_letter[7] = { + 'let_00_n', 'let_01_n', 'let_02_n', 'let_03_n', 'let_04_n', 'let_05_n', 'let_06_n', }; -COMPILER_STRIP_GATE(0x80397C10, &tag_letter); #pragma pop /* 80397C48-80397C80 0242A8 0038+00 0/1 0/0 0/0 .rodata tag_frame$4173 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_frame[56] = { - 0x66, 0x6C, 0x61, 0x6D, 0x65, 0x5F, 0x30, 0x30, 0x66, 0x6C, 0x61, 0x6D, 0x65, 0x5F, - 0x30, 0x31, 0x66, 0x6C, 0x61, 0x6D, 0x65, 0x5F, 0x30, 0x32, 0x66, 0x6C, 0x61, 0x6D, - 0x65, 0x5F, 0x30, 0x33, 0x66, 0x6C, 0x61, 0x6D, 0x65, 0x5F, 0x30, 0x34, 0x66, 0x6C, - 0x61, 0x6D, 0x65, 0x5F, 0x30, 0x35, 0x66, 0x6C, 0x61, 0x6D, 0x65, 0x5F, 0x30, 0x36, +static const u64 tag_frame[7] = { + 'flame_00', 'flame_01', 'flame_02', 'flame_03', 'flame_04', 'flame_05', 'flame_06', }; -COMPILER_STRIP_GATE(0x80397C48, &tag_frame); #pragma pop /* 80397C80-80397CB8 0242E0 0038+00 0/1 0/0 0/0 .rodata tag_maki$4174 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_maki[56] = { - 0x00, 0x6D, 0x61, 0x6B, 0x69, 0x5F, 0x30, 0x6E, 0x00, 0x6D, 0x61, 0x6B, 0x69, 0x5F, - 0x31, 0x6E, 0x00, 0x6D, 0x61, 0x6B, 0x69, 0x5F, 0x32, 0x6E, 0x00, 0x6D, 0x61, 0x6B, - 0x69, 0x5F, 0x33, 0x6E, 0x00, 0x6D, 0x61, 0x6B, 0x69, 0x5F, 0x34, 0x6E, 0x00, 0x6D, - 0x61, 0x6B, 0x69, 0x5F, 0x35, 0x6E, 0x00, 0x6D, 0x61, 0x6B, 0x69, 0x5F, 0x36, 0x6E, +static const u64 tag_maki[7] = { + 'maki_0n', 'maki_1n', 'maki_2n', 'maki_3n', 'maki_4n', 'maki_5n', 'maki_6n', }; -COMPILER_STRIP_GATE(0x80397C80, &tag_maki); #pragma pop /* 80397CB8-80397CF0 024318 0038+00 0/1 0/0 0/0 .rodata tag_makic$4175 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const tag_makic[56] = { - 0x00, 0x00, 0x6D, 0x61, 0x6B, 0x69, 0x5F, 0x30, 0x00, 0x00, 0x6D, 0x61, 0x6B, 0x69, - 0x5F, 0x31, 0x00, 0x00, 0x6D, 0x61, 0x6B, 0x69, 0x5F, 0x32, 0x00, 0x00, 0x6D, 0x61, - 0x6B, 0x69, 0x5F, 0x33, 0x00, 0x00, 0x6D, 0x61, 0x6B, 0x69, 0x5F, 0x34, 0x00, 0x00, - 0x6D, 0x61, 0x6B, 0x69, 0x5F, 0x35, 0x00, 0x00, 0x6D, 0x61, 0x6B, 0x69, 0x5F, 0x36, +static const u64 tag_makic[7] = { + 'maki_0', 'maki_1', 'maki_2', 'maki_3', 'maki_4', 'maki_5', 'maki_6', }; -COMPILER_STRIP_GATE(0x80397CB8, &tag_makic); -#pragma pop - -/* 80397DB8-80397DB8 024418 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80397DD1 = "zelda_ougi_window.blo"; -SECTION_DEAD static char const* const stringBase_80397DE7 = ""; #pragma pop /* 801F8388-801F8A18 1F2CC8 0690+00 1/1 0/0 0/0 .text screenSetMenu__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::screenSetMenu() { - nofralloc -#include "asm/d/menu/d_menu_skill/screenSetMenu__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::screenSetMenu() { + mpMenuScreen = new J2DScreen(); + mpMenuScreen->setPriority("zelda_ougi_window.blo", 0x20000, mpArchive); + dPaneClass_showNullPane(mpMenuScreen); + mpParent = new CPaneMgr(mpMenuScreen, 'n_all', 2, NULL); + mpParent->setAlphaRate(0.0f); + for (int i = 0; i < 7; i++) { + mpFTagPicture[i][0] = (J2DTextBox*)mpMenuScreen->search(ftag_sub0[i]); + mpFTagPicture[i][1] = (J2DTextBox*)mpMenuScreen->search(ftag_sub1[i]); + mpFTagPicture[i][2] = (J2DTextBox*)mpMenuScreen->search(ftag_name0[i]); + mpFTagPicture[i][3] = (J2DTextBox*)mpMenuScreen->search(ftag_name1[i]); + mpMenuScreen->search(tag_sub0[i])->hide(); + mpMenuScreen->search(tag_sub1[i])->hide(); + mpMenuScreen->search(tag_name0[i])->hide(); + mpMenuScreen->search(tag_name1[i])->hide(); + for (int j = 0; j < 4; j++) { + mpFTagPicture[i][j]->setFont(mDoExt_getMesgFont()); + mpFTagPicture[i][j]->setString(0x40, ""); + } + } + for (int i = 0; i < 7; i++) { + mpLetterParent[i] = new CPaneMgr(mpMenuScreen, tag_letter[i], 0, NULL); + } + for (int i = 0; i < 7; i++) { + mpTagPicture[i][0] = (J2DPicture*)mpMenuScreen->search(tag_frame[i]); + mpTagPicture[i][1] = (J2DPicture*)mpMenuScreen->search(tag_maki[i]); + mpTagPicture[i][2] = (J2DPicture*)mpMenuScreen->search(tag_letter[i]); + field_0x94[i] = (J2DPicture*)mpMenuScreen->search(tag_makic[i]); + if (i < mSkillNum) { + mpTagPicture[i][1]->show(); + mpTagPicture[i][2]->show(); + } else { + mpTagPicture[i][1]->hide(); + mpTagPicture[i][2]->hide(); + } + } + for (int i = 0; i < 4; i++) { + if (i == 0) { + mUnselectBlack[i] = mpTagPicture[0][i]->getBlack(); + mUnselectWhite[i] = mpTagPicture[0][i]->getWhite(); + mSelectBlack[i] = mpTagPicture[1][i]->getBlack(); + mSelectWhite[i] = mpTagPicture[1][i]->getWhite(); + mUnselectBlack[i].a = 255; + mSelectBlack[i].a = 255; + } else if (i == 3) { + mUnselectBlack[i] = mpFTagPicture[0][i]->getBlack(); + mUnselectWhite[i] = mpFTagPicture[0][i]->getWhite(); + mSelectBlack[i] = mpFTagPicture[1][i]->getBlack(); + mSelectWhite[i] = mpFTagPicture[1][i]->getWhite(); + } + } + J2DTextBox* textBox = (J2DTextBox*)mpMenuScreen->search('f_t00'); + mpMenuScreen->search('t_t00')->hide(); + textBox->setFont(mDoExt_getSubFont()); + textBox->setString(0x200, ""); + mpString->getString(0x6a4, textBox, NULL, NULL, NULL, 0); } -#pragma pop -/* ############################################################################################## */ -/* 80397CF0-80397D10 024350 0020+00 1/1 0/0 0/0 .rodata name_tag$4306 */ -SECTION_RODATA static u8 const name_tag[32] = { - 0x69, 0x74, 0x65, 0x6D, 0x5F, 0x6E, 0x30, 0x34, 0x69, 0x74, 0x65, 0x6D, 0x5F, 0x6E, 0x30, 0x35, - 0x69, 0x74, 0x65, 0x6D, 0x5F, 0x6E, 0x30, 0x36, 0x69, 0x74, 0x65, 0x6D, 0x5F, 0x6E, 0x30, 0x37, +static const u64 name_tag[4] = { + 'item_n04', + 'item_n05', + 'item_n06', + 'item_n07', }; -COMPILER_STRIP_GATE(0x80397CF0, &name_tag); -/* 80397D10-80397D30 024370 0020+00 1/1 0/0 0/0 .rodata fame_tag$4307 */ -SECTION_RODATA static u8 const fame_tag[32] = { - 0x66, 0x5F, 0x69, 0x74, 0x65, 0x6D, 0x5F, 0x31, 0x66, 0x5F, 0x69, 0x74, 0x65, 0x6D, 0x5F, 0x32, - 0x66, 0x5F, 0x69, 0x74, 0x65, 0x6D, 0x5F, 0x33, 0x66, 0x5F, 0x69, 0x74, 0x65, 0x6D, 0x5F, 0x34, +static const u64 fame_tag[4] = { + 'f_item_1', + 'f_item_2', + 'f_item_3', + 'f_item_4', }; -COMPILER_STRIP_GATE(0x80397D10, &fame_tag); - -/* 80397DB8-80397DB8 024418 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80397DE8 = "zelda_ougi_info.blo"; -SECTION_DEAD static char const* const stringBase_80397DFC = "tt_block8x8.bti"; -#pragma pop /* 801F8A18-801F8D20 1F3358 0308+00 1/1 0/0 0/0 .text screenSetLetter__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::screenSetLetter() { - nofralloc -#include "asm/d/menu/d_menu_skill/screenSetLetter__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::screenSetLetter() { + mpLetterScreen = new J2DScreen(); + mpLetterScreen->setPriority("zelda_ougi_info.blo", 0x20000, mpArchive); + dPaneClass_showNullPane(mpLetterScreen); + mpTextPane = new CPaneMgr(mpLetterScreen, 'mg_e4lin', 0, NULL); + mpLetterScreen->search('n_3line')->hide(); + mpExpName = new CPaneMgr(mpLetterScreen, 'label_n', 0, NULL); + J2DTextBox* paneFont = (J2DTextBox*)mpTextPane->getPanePtr(); + paneFont->setFont(mDoExt_getMesgFont()); + J2DTextBox* paneString = (J2DTextBox*)mpTextPane->getPanePtr(); + paneString->setString(0x200, ""); + for (int i = 0; i < 4; i++) { + mpNameString[i] = (J2DTextBox*)mpLetterScreen->search(fame_tag[i]); + mpLetterScreen->search(name_tag[i])->hide(); + mpNameString[i]->setFont(mDoExt_getMesgFont()); + mpNameString[i]->setString(0x40, ""); + } + mpTextParent = new CPaneMgr(mpLetterScreen, 'n_all', 2, NULL); + mpTextParent->setAlphaRate(0.0f); + ResTIMG* timg = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', "tt_block8x8.bti"); + mpBlackTex = new J2DPicture(timg); + mpBlackTex->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 0xff)); + mpBlackTex->setAlpha(0); } -#pragma pop -/* ############################################################################################## */ /* 80397D30-80397D58 024390 0028+00 1/1 0/0 0/0 .rodata text_a_tag$4365 */ -SECTION_RODATA static u64 const text_a_tag[5] = { +static const u64 text_a_tag[5] = { 'atext1_1', 'atext1_2', 'atext1_3', 'atext1_4', 'atext1_5', }; -COMPILER_STRIP_GATE(0x80397D30, &text_a_tag); /* 80397D58-80397D80 0243B8 0028+00 1/1 0/0 0/0 .rodata text_b_tag$4366 */ -SECTION_RODATA static u64 const text_b_tag[5] = { +static const u64 text_b_tag[5] = { 'btext1_1', 'btext1_2', 'btext1_3', 'btext1_4', 'btext1_5', }; -COMPILER_STRIP_GATE(0x80397D58, &text_b_tag); - -/* 80397DB8-80397DB8 024418 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80397E0C = "zelda_collect_soubi_do_icon_parts.blo"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_80397E32 = "\0\0\0\0\0"; -#pragma pop /* 801F8D20-801F8E9C 1F3660 017C+00 1/1 0/0 0/0 .text screenSetDoIcon__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::screenSetDoIcon() { - nofralloc -#include "asm/d/menu/d_menu_skill/screenSetDoIcon__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::screenSetDoIcon() { + mpIconScreen = new J2DScreen(); + mpIconScreen->setPriority("zelda_collect_soubi_do_icon_parts.blo", 0x20000, mpArchive); + for (int i = 0; i < 2; i++) { + mpButtonAB[i] = 0; + mpButtonText[i] = 0; + } + dPaneClass_showNullPane(mpIconScreen); + for (int i = 0; i < 5; i++) { + mpAButtonString[i] = (J2DTextBox*)mpIconScreen->search(text_a_tag[i]); + mpBButtonString[i] = (J2DTextBox*)mpIconScreen->search(text_b_tag[i]); + mpAButtonString[i]->setFont(mDoExt_getMesgFont()); + mpBButtonString[i]->setFont(mDoExt_getMesgFont()); + mpAButtonString[i]->setString(0x20, ""); + mpBButtonString[i]->setString(0x20, ""); + } } -#pragma pop /* 801F8E9C-801F8F28 1F37DC 008C+00 3/3 0/0 0/0 .text setCursorPos__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::setCursorPos() { - nofralloc -#include "asm/d/menu/d_menu_skill/setCursorPos__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::setCursorPos() { + Vec pos = mpLetterParent[mIndex]->getGlobalVtxCenter(mpLetterParent[mIndex]->mPane, false, 0); + mpDrawCursor->setPos(pos.x, pos.y, mpLetterParent[mIndex]->getPanePtr(), false); } -#pragma pop /* 801F8F28-801F9144 1F3868 021C+00 2/2 0/0 0/0 .text changeActiveColor__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::changeActiveColor() { - nofralloc -#include "asm/d/menu/d_menu_skill/changeActiveColor__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::changeActiveColor() { + setCursorPos(); + for (int i = 0; i < 7; i++) { + if (i == mIndex) { + mpTagPicture[i][0]->setBlackWhite(mSelectBlack[0], mSelectWhite[0]); + mpFTagPicture[i][1]->setBlackWhite(mSelectBlack[3], mSelectWhite[3]); + mpFTagPicture[i][3]->setBlackWhite(mSelectBlack[3], mSelectWhite[3]); + mpLetterParent[i]->scale(mBarScale[0], mBarScale[0]); + field_0x94[i]->setBlackWhite(mSelectBlack[4], mSelectWhite[4]); + } else { + mpTagPicture[i][0]->setBlackWhite(mUnselectBlack[0], mUnselectWhite[0]); + mpFTagPicture[i][1]->setBlackWhite(mUnselectBlack[3], mUnselectWhite[3]); + mpFTagPicture[i][3]->setBlackWhite(mUnselectBlack[3], mUnselectWhite[3]); + mpLetterParent[i]->scale(mBarScale[1], mBarScale[1]); + field_0x94[i]->setBlackWhite(mUnselectBlack[4], mUnselectWhite[4]); + } + } } -#pragma pop -/* ############################################################################################## */ /* 80397D80-80397D9C 0243E0 001C+00 1/1 0/0 0/0 .rodata i_id0$4478 */ -SECTION_RODATA static u8 const i_id0[28] = { - 0x00, 0x00, 0x06, 0xA5, 0x00, 0x00, 0x06, 0xA6, 0x00, 0x00, 0x06, 0xA7, 0x00, 0x00, - 0x06, 0xA8, 0x00, 0x00, 0x06, 0xA9, 0x00, 0x00, 0x06, 0xAA, 0x00, 0x00, 0x06, 0xAB, +static const u32 i_id0[7] = { + 1701, 1702, 1703, 1704, 1705, 1706, 1707, }; -COMPILER_STRIP_GATE(0x80397D80, &i_id0); /* 80397D9C-80397DB8 0243FC 001C+00 1/1 0/0 0/0 .rodata i_id1$4479 */ -SECTION_RODATA static u8 const i_id1_4479[28] = { - 0x00, 0x00, 0x06, 0xAD, 0x00, 0x00, 0x06, 0xAC, 0x00, 0x00, 0x06, 0xAE, 0x00, 0x00, - 0x06, 0xAF, 0x00, 0x00, 0x06, 0xB0, 0x00, 0x00, 0x06, 0xB1, 0x00, 0x00, 0x06, 0xB2, +static const u32 i_id1_4479[7] = { + 1709, 1708, 1710, 1711, 1712, 1713, 1714, }; -COMPILER_STRIP_GATE(0x80397D9C, &i_id1_4479); /* 801F9144-801F9260 1F3A84 011C+00 1/1 0/0 0/0 .text setPageText__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::setPageText() { - nofralloc -#include "asm/d/menu/d_menu_skill/setPageText__13dMenu_Skill_cFv.s" +void dMenu_Skill_c::setPageText() { + for (int i = 0; i < mSkillNum; i++) { + mpString->getString(i_id0[i], mpFTagPicture[i][0], NULL, NULL, NULL, 0); + mpString->getString(i_id0[i], mpFTagPicture[i][1], NULL, NULL, NULL, 0); + mpString->getString(i_id1_4479[i], mpFTagPicture[i][2], NULL, NULL, NULL, 0); + mpString->getString(i_id1_4479[i], mpFTagPicture[i][3], NULL, NULL, NULL, 0); + } } -#pragma pop /* 801F9260-801F9310 1F3BA0 00B0+00 4/4 0/0 0/0 .text setAButtonString__13dMenu_Skill_cFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::setAButtonString(u16 param_0) { - nofralloc -#include "asm/d/menu/d_menu_skill/setAButtonString__13dMenu_Skill_cFUs.s" +void dMenu_Skill_c::setAButtonString(u16 i_stringID) { + if (i_stringID == 0) { + for (int i = 0; i < 5; i++) { + strcpy(mpAButtonString[i]->getStringPtr(), ""); + } + } else { + for (int i = 0; i < 5; i++) { + dMeter2Info_getStringKanji(i_stringID, mpAButtonString[i]->getStringPtr(), NULL); + } + } } -#pragma pop /* 801F9310-801F93C0 1F3C50 00B0+00 4/4 0/0 0/0 .text setBButtonString__13dMenu_Skill_cFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::setBButtonString(u16 param_0) { - nofralloc -#include "asm/d/menu/d_menu_skill/setBButtonString__13dMenu_Skill_cFUs.s" +void dMenu_Skill_c::setBButtonString(u16 i_stringID) { + if (i_stringID == 0) { + for (int i = 0; i < 5; i++) { + strcpy(mpBButtonString[i]->getStringPtr(), ""); + } + } else { + for (int i = 0; i < 5; i++) { + dMeter2Info_getStringKanji(i_stringID, mpBButtonString[i]->getStringPtr(), NULL); + } + } } -#pragma pop /* 801F93C0-801F9470 1F3D00 00B0+00 1/1 0/0 0/0 .text setNameString__13dMenu_Skill_cFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::setNameString(u16 param_0) { - nofralloc -#include "asm/d/menu/d_menu_skill/setNameString__13dMenu_Skill_cFUs.s" +void dMenu_Skill_c::setNameString(u16 i_stringID) { + if (i_stringID == 0) { + for (int i = 0; i < 4; i++) { + strcpy(mpNameString[i]->getStringPtr(), ""); + } + } else { + for (int i = 0; i < 4; i++) { + dMeter2Info_getStringKanji(i_stringID, mpNameString[i]->getStringPtr(), NULL); + } + } } -#pragma pop /* 801F9470-801F9500 1F3DB0 0090+00 1/1 0/0 0/0 .text getSkillNum__13dMenu_Skill_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::getSkillNum() { - nofralloc -#include "asm/d/menu/d_menu_skill/getSkillNum__13dMenu_Skill_cFv.s" +u8 dMenu_Skill_c::getSkillNum() { + u8 skillNum = 0; + for (int i = 0; i < 7; i++) { + if (i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[evt_id[i]])) { + skillNum++; + } + } + return skillNum; } -#pragma pop /* 801F9500-801F9A08 1F3E40 0508+00 2/2 0/0 0/0 .text setHIO__13dMenu_Skill_cFb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Skill_c::setHIO(bool param_0) { - nofralloc -#include "asm/d/menu/d_menu_skill/setHIO__13dMenu_Skill_cFb.s" +void dMenu_Skill_c::setHIO(bool i_useHIO) { + if (i_useHIO || g_drawHIO.mSkillListScreen.mDebug) { + mSelectBlack[0].set(g_drawHIO.mSkillListScreen.mSelectBarBlack); + mSelectWhite[0].set(g_drawHIO.mSkillListScreen.mSelectBarWhite); + mSelectBlack[3].set(g_drawHIO.mSkillListScreen.mSelectTextBlack); + mSelectWhite[3].set(g_drawHIO.mSkillListScreen.mSelectTextWhite); + mBarScale[0] = g_drawHIO.mSkillListScreen.mSelectBarScale; + mBarScale[1] = g_drawHIO.mSkillListScreen.mUnselectBarScale; + mSelectBlack[4].set(g_drawHIO.mSkillListScreen.mSelectScrollIconBlack); + mSelectWhite[4].set(g_drawHIO.mSkillListScreen.mSelectScrollIconWhite); + mUnselectBlack[4].set(g_drawHIO.mSkillListScreen.mUnselectScrollIconBlack); + mUnselectWhite[4].set(g_drawHIO.mSkillListScreen.mUnselectScrollIconWhite); + for (int i = 0; i < 7; i++) { + if (i == mIndex) { + mpTagPicture[i][0]->setBlackWhite(mSelectBlack[0], mSelectWhite[0]); + mpFTagPicture[i][1]->setBlackWhite(mSelectBlack[3], mSelectWhite[3]); + mpFTagPicture[i][3]->setBlackWhite(mSelectBlack[3], mSelectWhite[3]); + mpLetterParent[i]->scale(mBarScale[0], mBarScale[0]); + field_0x94[i]->setBlackWhite(mSelectBlack[4], mSelectWhite[4]); + } else { + mpLetterParent[i]->scale(mBarScale[1], mBarScale[1]); + field_0x94[i]->setBlackWhite(mUnselectBlack[4], mUnselectWhite[4]); + } + } + mpTextParent->paneTrans(g_drawHIO.mSkillListScreen.mSkillDescPosX, + g_drawHIO.mSkillListScreen.mSkillDescPosY); + mpTextParent->scale(g_drawHIO.mSkillListScreen.mSkillDescScale, + g_drawHIO.mSkillListScreen.mSkillDescScale); + if (mProcess == 2) { + mpBlackTex->setAlpha(g_drawHIO.mSkillListScreen.mWindowBGalpha); + } + mpExpName->paneTrans(g_drawHIO.mSkillListScreen.mSkillTitlePosX, + g_drawHIO.mSkillListScreen.mSkillTitlePosY); + mpExpName->scale(g_drawHIO.mSkillListScreen.mSkillTitleScale, + g_drawHIO.mSkillListScreen.mSkillTitleScale); + } + if (g_drawHIO.mCollectScreen.mButtonDebugON != false || i_useHIO) { + if (mpButtonAB[0]) { + mpButtonAB[0]->paneTrans(g_drawHIO.mCollectScreen.mAButtonPosX, + g_drawHIO.mCollectScreen.mAButtonPosY); + mpButtonAB[0]->scale(g_drawHIO.mCollectScreen.mAButtonScale, + g_drawHIO.mCollectScreen.mAButtonScale); + } + if (mpButtonAB[1]) { + mpButtonAB[1]->paneTrans(g_drawHIO.mCollectScreen.mBButtonPosX, + g_drawHIO.mCollectScreen.mBButtonPosY); + mpButtonAB[1]->scale(g_drawHIO.mCollectScreen.mBButtonScale, + g_drawHIO.mCollectScreen.mBButtonScale); + } + if (mpButtonText[0]) { + mpButtonText[0]->paneTrans(g_drawHIO.mCollectScreen.mAButtonTextPosX, + g_drawHIO.mCollectScreen.mAButtonTextPosY); + mpButtonText[0]->scale(g_drawHIO.mCollectScreen.mAButtonTextScale, + g_drawHIO.mCollectScreen.mAButtonTextScale); + } + if (mpButtonText[1]) { + mpButtonText[1]->paneTrans(g_drawHIO.mCollectScreen.mBButtonTextPosX, + g_drawHIO.mCollectScreen.mBButtonTextPosY); + mpButtonText[1]->scale(g_drawHIO.mCollectScreen.mBButtonTextScale, + g_drawHIO.mCollectScreen.mBButtonTextScale); + } + } } -#pragma pop /* 801F9A08-801F9A28 1F4348 0020+00 1/0 0/0 0/0 .text draw__13dMenu_Skill_cFv */ +#ifdef NONMATCHING +// Size of vtable doesn't match. Same padding occours in d_menu_calibration +void dMenu_Skill_c::draw() { + _draw(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -864,20 +836,4 @@ extern "C" asm void draw__13dMenu_Skill_cFv() { #include "asm/d/menu/d_menu_skill/draw__13dMenu_Skill_cFv.s" } #pragma pop - -/* 801F9A28-801F9AFC 1F4368 00D4+00 0/0 1/0 0/0 .text __sinit_d_menu_skill_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_d_menu_skill_cpp() { - nofralloc -#include "asm/d/menu/d_menu_skill/__sinit_d_menu_skill_cpp.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x801F9A28, __sinit_d_menu_skill_cpp); -#pragma pop - -/* 80397DB8-80397DB8 024418 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +#endif |
