summaryrefslogtreecommitdiff
path: root/src/d/menu/d_menu_skill.cpp
diff options
context:
space:
mode:
authorTrueffeloot <geiloking135@gmail.com>2023-07-22 03:46:09 +0200
committerTrueffeloot <geiloking135@gmail.com>2023-07-22 03:46:09 +0200
commit4682deae990086677d01b65679d3bcac8aff0244 (patch)
tree3256f14b0045468f6bf1dd23f8b2797658f06e97 /src/d/menu/d_menu_skill.cpp
parent5ec69e491ad024fc07793959f51a354b7f1a94f3 (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.cpp1238
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