mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-09-10 03:01:56 -04:00
Merge branch 'master' of https://github.com/zeldaret/tp into talk
This commit is contained in:
@@ -128,11 +128,11 @@ asm void daAlink_c::endDemoMode() {
|
||||
#ifdef NONMATCHING
|
||||
fopAc_ac_c* daAlink_c::getDemoLookActor() {
|
||||
if (mDemo.getParam0() == 1) {
|
||||
return (fopAc_ac_c*)dComIfGp_event_getPt1();
|
||||
return dComIfGp_event_getPt1();
|
||||
} else if (mDemo.getParam0() == 2) {
|
||||
return (fopAc_ac_c*)dComIfGp_event_getPt2();
|
||||
return dComIfGp_event_getPt2();
|
||||
} else if (mDemo.getParam0() == 3) {
|
||||
return (fopAc_ac_c*)fopAcM_getTalkEventPartner(this);
|
||||
return fopAcM_getTalkEventPartner(this);
|
||||
} else if (mDemo.getParam0() == 4) {
|
||||
return getMidnaActor();
|
||||
}
|
||||
|
||||
+1093
-835
File diff suppressed because it is too large
Load Diff
+22
-18
@@ -305,32 +305,36 @@ struct cBgS_dzb_strgroup {
|
||||
|
||||
/* 80074578-80074618 06EEB8 00A0+00 0/0 1/1 0/0 .text ConvDzb__4cBgSFPv */
|
||||
#ifdef NONMATCHING
|
||||
void cBgS::ConvDzb(void* p_dzb) {
|
||||
void* cBgS::ConvDzb(void* p_dzb) {
|
||||
cBgS_dzb_data* pbgd = (cBgS_dzb_data*)p_dzb;
|
||||
|
||||
if (!(pbgd->field_0x30 & 0x80000000)) {
|
||||
pbgd->field_0x30 |= 0x80000000;
|
||||
|
||||
if (pbgd->m_v_tbl != 0) {
|
||||
pbgd->m_v_tbl += (u32)p_dzb;
|
||||
}
|
||||
|
||||
pbgd->m_t_tbl += (u32)p_dzb;
|
||||
pbgd->m_b_tbl += (u32)p_dzb;
|
||||
pbgd->m_tree_tbl += (u32)p_dzb;
|
||||
pbgd->m_g_tbl += (u32)p_dzb;
|
||||
pbgd->m_ti_tbl += (u32)p_dzb;
|
||||
|
||||
for (int i = 0; i < pbgd->m_g_num; i++) {
|
||||
((cBgS_dzb_strgroup*)pbgd->m_g_tbl)[i].strOffset += (u32)p_dzb;
|
||||
}
|
||||
if ((pbgd->field_0x30 & 0x80000000)) {
|
||||
return;
|
||||
}
|
||||
|
||||
pbgd->field_0x30 |= 0x80000000;
|
||||
|
||||
if (pbgd->m_v_tbl != 0) {
|
||||
pbgd->m_v_tbl += (u32)p_dzb;
|
||||
}
|
||||
|
||||
pbgd->m_t_tbl += (u32)p_dzb;
|
||||
pbgd->m_b_tbl += (u32)p_dzb;
|
||||
pbgd->m_tree_tbl += (u32)p_dzb;
|
||||
pbgd->m_g_tbl += (u32)p_dzb;
|
||||
pbgd->m_ti_tbl += (u32)p_dzb;
|
||||
|
||||
for (int i = 0; i < pbgd->m_g_num; i++) {
|
||||
((cBgS_dzb_strgroup*)pbgd->m_g_tbl)[i].strOffset = (u32)p_dzb + ((cBgS_dzb_strgroup*)pbgd->m_g_tbl)[i].strOffset;
|
||||
}
|
||||
|
||||
return p_dzb;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void cBgS::ConvDzb(void* param_0) {
|
||||
asm void* cBgS::ConvDzb(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/bg/d_bg_s/ConvDzb__4cBgSFPv.s"
|
||||
}
|
||||
|
||||
@@ -1270,7 +1270,7 @@ BOOL dComIfG_resetToOpening(scene_class* i_scene) {
|
||||
}
|
||||
|
||||
static int phase_1(char* i_arcName) {
|
||||
if (!dComIfG_setObjectRes(i_arcName, 0, NULL)) {
|
||||
if (!dComIfG_setObjectRes(i_arcName, (u8)0, NULL)) {
|
||||
OSReport_Error("%s.arc Read Error !!\n", i_arcName);
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
@@ -1310,7 +1310,7 @@ int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* i_arcNa
|
||||
|
||||
/* 8002CEFC-8002CF5C 02783C 0060+00 1/0 0/0 0/0 .text phase_01__FP12phaseParam_c */
|
||||
static int phase_01(phaseParam_c* i_phasePrm) {
|
||||
if (dComIfG_setObjectRes(i_phasePrm->mResName, 0, i_phasePrm->mpHeap) == 0) {
|
||||
if (dComIfG_setObjectRes(i_phasePrm->mResName, (u8)0, i_phasePrm->mpHeap) == 0) {
|
||||
return 5;
|
||||
}
|
||||
|
||||
@@ -2388,10 +2388,14 @@ bool dComIfGs_shake_kandelaar_check() {
|
||||
|
||||
/* 8002FA54-8002FA84 02A394 0030+00 0/0 4/4 96/96 .text dComIfGs_wolfeye_effect_check__Fv
|
||||
*/
|
||||
bool dComIfGs_wolfeye_effect_check() {
|
||||
BOOL dComIfGs_wolfeye_effect_check() {
|
||||
dScnKy_env_light_c* env_light = i_dKy_getEnvlight();
|
||||
BOOL ret = false;
|
||||
|
||||
return env_light->field_0xf3d == 1 && env_light->field_0xf40 > 0.6;
|
||||
if (env_light->field_0xf3d == 1 && env_light->field_0xf40 > 0.6) {
|
||||
ret = true;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
void dComIfGs_Grass_hide_Set(s8 param_0) {
|
||||
|
||||
+143
-75
@@ -6,65 +6,56 @@
|
||||
#include "d/d_bright_check.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "d/d_drawlist.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/msg/d_msg_string.h"
|
||||
#include "d/meter/d_meter2_info.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "JSystem/J2DGraph/J2DTextBox.h"
|
||||
#include "JSystem/J2DGraph/J2DGrafContext.h"
|
||||
#include "JSystem/J2DGraph/J2DScreen.h"
|
||||
#include "JSystem/JKernel/JKRArchive.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoCPd_c {
|
||||
static u8 m_cpadInfo[256];
|
||||
};
|
||||
|
||||
struct dMsgString_c {
|
||||
/* 80249C20 */ dMsgString_c();
|
||||
/* 80249D28 */ ~dMsgString_c();
|
||||
};
|
||||
|
||||
struct dDlst_base_c {};
|
||||
|
||||
struct dDlst_list_c {
|
||||
/* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*);
|
||||
};
|
||||
|
||||
struct dDlst_BrightCheck_c {
|
||||
struct dDlst_BrightCheck_c
|
||||
#ifdef NONMATCHING
|
||||
: public dDlst_base_c
|
||||
#endif
|
||||
{
|
||||
#ifdef NONMATCHING
|
||||
/* 801935D0 */ virtual void draw();
|
||||
/* 80193648 */ virtual ~dDlst_BrightCheck_c() {};
|
||||
#else
|
||||
/* 801935D0 */ void draw();
|
||||
/* 80193648 */ ~dDlst_BrightCheck_c();
|
||||
void* vtable;
|
||||
#endif
|
||||
J2DScreen* mScreen;
|
||||
};
|
||||
|
||||
struct JKRArchive {};
|
||||
|
||||
struct dBrightCheck_c {
|
||||
/* 80192F10 */ dBrightCheck_c(JKRArchive*);
|
||||
#ifdef NONMATCHING
|
||||
/* 80192F98 */ virtual ~dBrightCheck_c();
|
||||
#else
|
||||
void * vtable;
|
||||
/* 80192F98 */ ~dBrightCheck_c();
|
||||
#endif
|
||||
/* 80193030 */ void screenSet();
|
||||
/* 801934D0 */ void _move();
|
||||
/* 80193508 */ void modeWait();
|
||||
/* 8019350C */ void modeMove();
|
||||
/* 80193594 */ void _draw();
|
||||
};
|
||||
|
||||
struct JAISoundID {};
|
||||
|
||||
struct Vec {};
|
||||
|
||||
struct Z2SeMgr {
|
||||
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
|
||||
};
|
||||
|
||||
struct Z2AudioMgr {
|
||||
static u8 mAudioMgrPtr[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct J2DTextBox {
|
||||
/* 8030074C */ void setString(s16, char const*, ...);
|
||||
};
|
||||
|
||||
struct J2DGrafContext {};
|
||||
|
||||
struct J2DScreen {
|
||||
/* 802F8498 */ J2DScreen();
|
||||
/* 802F8648 */ void setPriority(char const*, u32, JKRArchive*);
|
||||
/* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*);
|
||||
|
||||
/* 0x04 */ JKRArchive* mArchive;
|
||||
/* 0x08 */ dDlst_BrightCheck_c mDlstBrightCheck;
|
||||
/* 0x10 */ u8 field_0x10[4];
|
||||
/* 0x14 */ dMsgString_c* mMsgString;
|
||||
/* 0x18 */ u8 field_0x18;
|
||||
/* 0x19 */ u8 field_0x19;
|
||||
};
|
||||
|
||||
//
|
||||
@@ -104,7 +95,6 @@ extern "C" void _savegpr_22();
|
||||
extern "C" void _restgpr_22();
|
||||
extern "C" extern void* __vt__12dDlst_base_c[3];
|
||||
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
@@ -117,6 +107,13 @@ SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
typedef void (dBrightCheck_c::*BrightCheckFunc)();
|
||||
|
||||
#ifdef NONMATCHING
|
||||
SECTION_DATA static BrightCheckFunc brightChackProc[2] = {
|
||||
&dBrightCheck_c::modeWait, &dBrightCheck_c::modeMove,
|
||||
};
|
||||
#else
|
||||
/* 803BB5BC-803BB5C8 -00001 000C+00 0/1 0/0 0/0 .data @3797 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
@@ -163,7 +160,19 @@ SECTION_DATA extern void* __vt__14dBrightCheck_c[3 + 4 /* padding */] = {
|
||||
NULL,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
/* 80192F10-80192F98 18D850 0088+00 0/0 1/1 0/0 .text __ct__14dBrightCheck_cFP10JKRArchive */
|
||||
// Matches without vtables
|
||||
#ifdef NONMATCHING
|
||||
dBrightCheck_c::dBrightCheck_c(JKRArchive* param_0) {
|
||||
mArchive = param_0;
|
||||
mMsgString = new dMsgString_c();
|
||||
screenSet();
|
||||
field_0x19 = 0;
|
||||
field_0x18 = 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -172,8 +181,15 @@ asm dBrightCheck_c::dBrightCheck_c(JKRArchive* param_0) {
|
||||
#include "asm/d/d_bright_check/__ct__14dBrightCheck_cFP10JKRArchive.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80192F98-80193030 18D8D8 0098+00 1/0 0/0 0/0 .text __dt__14dBrightCheck_cFv */
|
||||
#ifdef NONMATCHING
|
||||
dBrightCheck_c::~dBrightCheck_c() {
|
||||
delete mDlstBrightCheck.mScreen;
|
||||
delete mMsgString;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -182,23 +198,20 @@ asm dBrightCheck_c::~dBrightCheck_c() {
|
||||
#include "asm/d/d_bright_check/__dt__14dBrightCheck_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80394910-80394938 020F70 0028+00 1/1 0/0 0/0 .rodata tv_btnA$3744 */
|
||||
SECTION_RODATA static u8 const tv_btnA[40] = {
|
||||
0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74, 0x31, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61,
|
||||
0x74, 0x32, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74, 0x33, 0x63, 0x6F, 0x6E, 0x74,
|
||||
0x5F, 0x61, 0x74, 0x34, 0x00, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74,
|
||||
SECTION_RODATA static u64 const tv_btnA[5] = {
|
||||
'cont_at1', 'cont_at2', 'cont_at3', 'cont_at4', 'cont_at',
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80394910, &tv_btnA);
|
||||
|
||||
/* 80394938-80394960 020F98 0028+00 0/1 0/0 0/0 .rodata ftv_btnA$3745 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const ftv_btnA[40] = {
|
||||
0x00, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x31, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x61,
|
||||
0x74, 0x32, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74, 0x33, 0x66, 0x6F, 0x6E, 0x74,
|
||||
0x5F, 0x61, 0x74, 0x34, 0x00, 0x66, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74,
|
||||
SECTION_RODATA static u64 const ftv_btnA[5] = {
|
||||
'font_a1', 'font_at2', 'font_at3' , 'font_at4', 'font_at',
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80394938, &ftv_btnA);
|
||||
#pragma pop
|
||||
@@ -206,12 +219,9 @@ COMPILER_STRIP_GATE(0x80394938, &ftv_btnA);
|
||||
/* 80394960-803949B0 020FC0 0050+00 0/1 0/0 0/0 .rodata txTV$3751 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const txTV[80] = {
|
||||
0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x36, 0x31, 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x32,
|
||||
0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x39, 0x31, 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x31,
|
||||
0x6D, 0x65, 0x6E, 0x75, 0x74, 0x31, 0x30, 0x31, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x30, 0x31,
|
||||
0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x37, 0x31, 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x33,
|
||||
0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x38, 0x31, 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x74, 0x34,
|
||||
SECTION_RODATA static u64 const txTV[10] = {
|
||||
'menu_t61', 'menu_t2', 'menu_t91', 'menu_t1', 'menut101', 'menu_t01', 'menu_t71',
|
||||
'menu_t3', 'menu_t81', 'menu_t4',
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80394960, &txTV);
|
||||
#pragma pop
|
||||
@@ -219,10 +229,8 @@ COMPILER_STRIP_GATE(0x80394960, &txTV);
|
||||
/* 803949B0-803949D8 021010 0028+00 0/1 0/0 0/0 .rodata txTVhide$3752 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const txTVhide[40] = {
|
||||
0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x36, 0x6E, 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F,
|
||||
0x39, 0x6E, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x31, 0x30, 0x6E, 0x00, 0x6D, 0x65, 0x6E,
|
||||
0x75, 0x5F, 0x37, 0x6E, 0x00, 0x6D, 0x65, 0x6E, 0x75, 0x5F, 0x38, 0x6E,
|
||||
SECTION_RODATA static u64 const txTVhide[5] = {
|
||||
'menu_6n', 'menu_9n', 'menu_10n', 'menu_7n', 'menu_8n',
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x803949B0, &txTVhide);
|
||||
#pragma pop
|
||||
@@ -243,6 +251,56 @@ SECTION_SDATA2 static u8 lit_3792[4] = {
|
||||
};
|
||||
|
||||
/* 80193030-801934D0 18D970 04A0+00 1/1 0/0 0/0 .text screenSet__14dBrightCheck_cFv */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void dBrightCheck_c::screenSet() {
|
||||
mDlstBrightCheck.mScreen = new J2DScreen();
|
||||
mDlstBrightCheck.mScreen->setPriority("zelda_option_check.blo", 0x1100000, mArchive);
|
||||
mDlstBrightCheck.mScreen->search('g_abtn_n')->hide();
|
||||
J2DTextBox* textBox = (J2DTextBox*)mDlstBrightCheck.mScreen->search('f_t00');
|
||||
mDlstBrightCheck.mScreen->search('f_t00')->show();
|
||||
mDlstBrightCheck.mScreen->search('t_t00')->hide();
|
||||
textBox->setFont(mDoExt_getRubyFont());
|
||||
textBox->setString(0x40, "");
|
||||
mMsgString->getString(0x55c, textBox, NULL, NULL, NULL, 0);
|
||||
|
||||
J2DTextBox* texts[5];
|
||||
for (int i = 0; i < 5; i++) {
|
||||
texts[i] = (J2DTextBox*)mDlstBrightCheck.mScreen->search(ftv_btnA[i]);
|
||||
mDlstBrightCheck.mScreen->search(tv_btnA[i])->hide();
|
||||
texts[i]->setFont(mDoExt_getMesgFont());
|
||||
texts[i]->setString(0x40, "");
|
||||
mMsgString->getString(0x564, texts[i], NULL, NULL, NULL, 0);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
mDlstBrightCheck.mScreen->search(txTVhide[i])->hide();
|
||||
}
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
textBox = (J2DTextBox*)mDlstBrightCheck.mScreen->search(txTV[i]);
|
||||
textBox->setFont(mDoExt_getMesgFont());
|
||||
textBox->setCharSpace(0.0f);
|
||||
|
||||
if (i < 2) {
|
||||
textBox->setString(0x100, "");
|
||||
mMsgString->getString(0x558, textBox, NULL, NULL, NULL, 0);
|
||||
} else if (i < 4) {
|
||||
textBox->setString(0x100, "");
|
||||
mMsgString->getString(0x557, textBox, NULL, NULL, NULL, 0);
|
||||
} else if (i < 6) {
|
||||
textBox->setString(0x100, "");
|
||||
mMsgString->getString(0x559, textBox, NULL, NULL, NULL, 0);
|
||||
} else if (i < 8) {
|
||||
textBox->setString(0x100, "");
|
||||
mMsgString->getString(0x55a, textBox, NULL, NULL, NULL, 0);
|
||||
} else {
|
||||
textBox->setString(0x100, "");
|
||||
mMsgString->getString(0x55b, textBox, NULL, NULL, NULL, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -251,16 +309,12 @@ asm void dBrightCheck_c::screenSet() {
|
||||
#include "asm/d/d_bright_check/screenSet__14dBrightCheck_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 801934D0-80193508 18DE10 0038+00 0/0 1/1 0/0 .text _move__14dBrightCheck_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dBrightCheck_c::_move() {
|
||||
nofralloc
|
||||
#include "asm/d/d_bright_check/_move__14dBrightCheck_cFv.s"
|
||||
void dBrightCheck_c::_move() {
|
||||
(this->*(((BrightCheckFunc*)brightChackProc)[field_0x18]))();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80193508-8019350C 18DE48 0004+00 1/0 0/0 0/0 .text modeWait__14dBrightCheck_cFv */
|
||||
void dBrightCheck_c::modeWait() {
|
||||
@@ -279,16 +333,21 @@ SECTION_SDATA2 static f32 lit_3822[1 + 1 /* padding */] = {
|
||||
};
|
||||
|
||||
/* 8019350C-80193594 18DE4C 0088+00 1/0 0/0 0/0 .text modeMove__14dBrightCheck_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dBrightCheck_c::modeMove() {
|
||||
nofralloc
|
||||
#include "asm/d/d_bright_check/modeMove__14dBrightCheck_cFv.s"
|
||||
void dBrightCheck_c::modeMove() {
|
||||
if (mDoCPd_c::getTrigA(0) || mDoCPd_c::getTrigStart(0)) {
|
||||
mDoAud_seStart(1, 0, 0, 0);
|
||||
field_0x19 = 1;
|
||||
field_0x18 = 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80193594-801935D0 18DED4 003C+00 0/0 1/1 0/0 .text _draw__14dBrightCheck_cFv */
|
||||
// Matches with mDlstBrightCheck inheritance
|
||||
#ifdef NONMATCHING
|
||||
void dBrightCheck_c::_draw() {
|
||||
dComIfGd_set2DOpa(&mDlstBrightCheck);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -297,8 +356,16 @@ asm void dBrightCheck_c::_draw() {
|
||||
#include "asm/d/d_bright_check/_draw__14dBrightCheck_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 801935D0-80193608 18DF10 0038+00 1/0 0/0 0/0 .text draw__19dDlst_BrightCheck_cFv */
|
||||
// Matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void dDlst_BrightCheck_c::draw() {
|
||||
J2DGrafContext* grafContext = dComIfGp_getCurrentGrafPort();
|
||||
mScreen->draw(0.0f, 0.0f, grafContext);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -307,6 +374,7 @@ asm void dDlst_BrightCheck_c::draw() {
|
||||
#include "asm/d/d_bright_check/draw__19dDlst_BrightCheck_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80193608-80193648 18DF48 0040+00 0/0 1/0 0/0 .text __sinit_d_bright_check_cpp */
|
||||
#pragma push
|
||||
|
||||
@@ -22,10 +22,6 @@ namespace std {
|
||||
/* 80182D10 */ void fabs(f32);
|
||||
}; // namespace std
|
||||
|
||||
struct mDoLib_clipper {
|
||||
/* 8001528C */ void setup(f32, f32, f32, f32);
|
||||
};
|
||||
|
||||
struct daTagMwait_c {
|
||||
/* 80182D9C */ void checkEndMessage();
|
||||
};
|
||||
|
||||
+449
-212
@@ -13,6 +13,7 @@
|
||||
#include "JSystem/J3DGraphLoader/J3DModelLoader.h"
|
||||
#include "JSystem/JKernel/JKRMemArchive.h"
|
||||
#include "JSystem/JKernel/JKRSolidHeap.h"
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include "MSL_C/stdio.h"
|
||||
#include "MSL_C/string.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
@@ -27,7 +28,7 @@
|
||||
//
|
||||
|
||||
struct dBgWKCol {
|
||||
/* 8007E7D0 */ void initKCollision(void*);
|
||||
/* 8007E7D0 */ static void* initKCollision(void*);
|
||||
};
|
||||
|
||||
//
|
||||
@@ -222,23 +223,31 @@ static void setAlpha(J3DMaterialTable* pMatTable) {
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803798B8-803798B8 005F18 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_803798C1 = "fbtex_dummy";
|
||||
SECTION_DEAD static char const* const stringBase_803798CD = "dummy";
|
||||
SECTION_DEAD static char const* const stringBase_803798D3 = "Zbuffer";
|
||||
#pragma pop
|
||||
|
||||
/* 8003A490-8003A81C 034DD0 038C+00 1/1 0/0 0/0 .text setIndirectTex__FP12J3DModelData */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void setIndirectTex(J3DModelData* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/setIndirectTex__FP12J3DModelData.s"
|
||||
static void setIndirectTex(J3DModelData* param_0) {
|
||||
const char* textureName;
|
||||
J3DMaterialTable& materialTable = param_0->getMaterialTable();
|
||||
J3DTexture* texture = materialTable.getTexture();
|
||||
if (texture == NULL)
|
||||
return;
|
||||
JUTNameTab* nameTab = materialTable.getTextureName();
|
||||
if (nameTab == NULL)
|
||||
return;
|
||||
|
||||
for (u16 i = 0; i < texture->getNum(); i++) {
|
||||
textureName = nameTab->getName(i);
|
||||
if (memcmp(textureName, "fbtex_dummy", 0xc) == 0) {
|
||||
texture->setResTIMG(i, *mDoGph_gInf_c::getFrameBufferTimg());
|
||||
}
|
||||
if (memcmp(textureName, "dummy", 6) == 0) {
|
||||
texture->setResTIMG(i, *mDoGph_gInf_c::getFrameBufferTimg());
|
||||
}
|
||||
if (memcmp(textureName, "Zbuffer", 8) == 0) {
|
||||
texture->setResTIMG(i, *mDoGph_gInf_c::getZbufferTimg());
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003A81C-8003A840 03515C 0024+00 1/1 0/0 0/0 .text setAlpha__FP12J3DModelData */
|
||||
static void setAlpha(J3DModelData* pModelData) {
|
||||
@@ -247,16 +256,18 @@ static void setAlpha(J3DModelData* pModelData) {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80379840-803798A4 005EA0 0064+00 2/2 0/0 0/0 .rodata l_texMtxInfo */
|
||||
SECTION_RODATA static u8 const l_texMtxInfo[100] = {
|
||||
0x00, 0x08, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x3D, 0xCC, 0xCC, 0xCD, 0x3D, 0xCC, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
|
||||
SECTION_RODATA static const J3DTexMtxInfo l_texMtxInfo = {
|
||||
0x00,
|
||||
0x08,
|
||||
{0.5f, 0.5f, 0.0f},
|
||||
{ 0.1f, 0.1f, 0, 0.0f, 0.0f},
|
||||
{
|
||||
{ 0.5f, 0.0f, 0.0f, 0.5f },
|
||||
{ 0.0f, 0.5f, 0.0f, 0.5f },
|
||||
{ 0.0f, 0.0f, 0.0f, 1.0f },
|
||||
{ 0.0f, 0.0f, 0.0f, 1.0f },
|
||||
},
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80379840, &l_texMtxInfo);
|
||||
|
||||
/* 803798A4-803798B8 005F04 0014+00 1/1 0/0 0/0 .rodata l_tevStageInfo$3774 */
|
||||
SECTION_RODATA static u8 const l_tevStageInfo[20] = {
|
||||
@@ -265,22 +276,15 @@ SECTION_RODATA static u8 const l_tevStageInfo[20] = {
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x803798A4, &l_tevStageInfo);
|
||||
|
||||
/* 803798B8-803798B8 005F18 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_803798DB = "Always";
|
||||
#pragma pop
|
||||
|
||||
/* 80450628-8045062C 0000A8 0004+00 1/1 0/0 0/0 .sdata l_texCoordInfo$3772 */
|
||||
SECTION_SDATA static u8 l_texCoordInfo[4] = {
|
||||
SECTION_SDATA static J3DTexCoordInfo l_texCoordInfo = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x27,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* 8045062C-80450630 0000AC 0004+00 1/1 0/0 0/0 .sdata l_tevOrderInfo$3773 */
|
||||
SECTION_SDATA static u8 l_tevOrderInfo[4] = {
|
||||
SECTION_SDATA static J3DTevOrderInfo l_tevOrderInfo = {
|
||||
0x00,
|
||||
0x03,
|
||||
0xFF,
|
||||
@@ -288,20 +292,46 @@ SECTION_SDATA static u8 l_tevOrderInfo[4] = {
|
||||
};
|
||||
|
||||
/* 80451DF0-80451DF8 0003F0 0008+00 1/1 0/0 0/0 .sdata2 l_alphaCompInfo$3775 */
|
||||
SECTION_SDATA2 static u8 l_alphaCompInfo[8] = {
|
||||
0x04, 0x80, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x00,
|
||||
SECTION_SDATA2 static J3DAlphaCompInfo l_alphaCompInfo = {
|
||||
0x04, 0x80, 0x00, 0x03, 0xFF,
|
||||
};
|
||||
|
||||
/* 8003A840-8003AACC 035180 028C+00 1/1 0/0 0/0 .text addWarpMaterial__FP12J3DModelData
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void addWarpMaterial(J3DModelData* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/addWarpMaterial__FP12J3DModelData.s"
|
||||
static void addWarpMaterial(J3DModelData* param_1) {
|
||||
ResTIMG* objectRes = (ResTIMG*)dComIfG_getObjectRes("Always", 0x5d);
|
||||
J3DTexture* texture = param_1->getTexture();
|
||||
u16 textureNum = texture->getNum();
|
||||
texture->addResTIMG(1, objectRes - textureNum);
|
||||
J3DTexMtx* texMtxInfo = new J3DTexMtx(l_texMtxInfo);
|
||||
|
||||
for (u16 i = 0; i < param_1->getMaterialNum(); i++) {
|
||||
J3DMaterial* pMaterial = param_1->getMaterialNodePointer(i);
|
||||
J3DTexGenBlock* texGenBlock = pMaterial->getTexGenBlock();
|
||||
u32 texGenNum = texGenBlock->getTexGenNum();
|
||||
J3DTexCoord* coord = texGenBlock->getTexCoord(texGenNum);
|
||||
l_texCoordInfo.mTexGenMtx = texGenNum * 3 + 0x1e;
|
||||
coord->setTexCoordInfo(&l_texCoordInfo);
|
||||
coord->resetTexMtxReg();
|
||||
texGenBlock->setTexGenNum(texGenNum + 1);
|
||||
texGenBlock->setTexMtx(texGenNum, texMtxInfo);
|
||||
J3DTevBlock* tevBlock = pMaterial->getTevBlock();
|
||||
u8 tevStageNum = tevBlock->getTevStageNum();
|
||||
l_tevOrderInfo.field_0x0 = texGenNum;
|
||||
tevBlock->setTexNo(3, textureNum);
|
||||
tevBlock->setTevOrder(tevStageNum, l_tevOrderInfo);
|
||||
tevBlock->setTevStage(tevStageNum, J3DTevStage(*(J3DTevStageInfo*)l_tevStageInfo));
|
||||
tevBlock->setTevStageNum(tevStageNum + 1);
|
||||
J3DShape* pShape = pMaterial->getShape();
|
||||
GXAttr attr = (GXAttr)(texGenNum + 1);
|
||||
pShape->addTexMtxIndexInDL(attr, 0);
|
||||
pShape->addTexMtxIndexInVcd(attr);
|
||||
J3DPEBlock* peBlock = pMaterial->getPEBlock();
|
||||
J3DAlphaComp* alphaComp = peBlock->getAlphaComp();
|
||||
alphaComp->setAlphaCompInfo(&l_alphaCompInfo);
|
||||
peBlock->setZCompLoc((u8)0);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003AACC-8003AB2C 03540C 0060+00 1/1 2/2 0/0 .text __ct__11J3DTevStageFRC15J3DTevStageInfo */
|
||||
#pragma push
|
||||
@@ -320,37 +350,54 @@ void J3DTexGenBlock::setTexMtx(u32 param_0, J3DTexMtx* param_1) {
|
||||
|
||||
/* 8003AB30-8003AC1C 035470 00EC+00 0/0 2/1 0/0 .text
|
||||
* onWarpMaterial__11dRes_info_cFP12J3DModelData */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dRes_info_c::onWarpMaterial(J3DModelData* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/onWarpMaterial__11dRes_info_cFP12J3DModelData.s"
|
||||
void dRes_info_c::onWarpMaterial(J3DModelData* param_0) {
|
||||
for (u16 i = 0; i < param_0->getMaterialNum(); i++) {
|
||||
J3DMaterial* pMaterial = param_0->getMaterialNodePointer(i);
|
||||
J3DTevBlock* tevBlock = pMaterial->getTevBlock();
|
||||
u8 tevStageNum = tevBlock->getTevStageNum();
|
||||
J3DTevOrder* tevorder = tevBlock->getTevOrder(tevStageNum - 1);
|
||||
if (tevorder->getTexMap() == 3) {
|
||||
break;
|
||||
}
|
||||
tevBlock->setTevStageNum(tevStageNum + 1);
|
||||
J3DTexGenBlock* texGenBlock = pMaterial->getTexGenBlock();
|
||||
texGenBlock->setTexGenNum(texGenBlock->getTexGenNum() + 1);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003AC1C-8003AD08 03555C 00EC+00 0/0 2/1 0/0 .text
|
||||
* offWarpMaterial__11dRes_info_cFP12J3DModelData */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dRes_info_c::offWarpMaterial(J3DModelData* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/offWarpMaterial__11dRes_info_cFP12J3DModelData.s"
|
||||
void dRes_info_c::offWarpMaterial(J3DModelData* modelData) {
|
||||
for (u16 i = 0; i < modelData->getMaterialNum(); i++) {
|
||||
J3DMaterial* pMaterial = modelData->getMaterialNodePointer(i);
|
||||
J3DTevBlock* tevBlock = pMaterial->getTevBlock();
|
||||
u8 tevStageNum = tevBlock->getTevStageNum();
|
||||
J3DTevOrder* tevorder = tevBlock->getTevOrder(tevStageNum - 1);
|
||||
if (tevorder->getTexMap() != 3) {
|
||||
break;
|
||||
}
|
||||
tevBlock->setTevStageNum(tevStageNum - 1);
|
||||
J3DTexGenBlock* texGenBlock = pMaterial->getTexGenBlock();
|
||||
texGenBlock->setTexGenNum(texGenBlock->getTexGenNum() - 1);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003AD08-8003AE14 035648 010C+00 0/0 1/1 0/0 .text
|
||||
* setWarpSRT__11dRes_info_cFP12J3DModelDataRC4cXyzff */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dRes_info_c::setWarpSRT(J3DModelData* param_0, cXyz const& param_1, f32 param_2,
|
||||
f32 param_3) {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/setWarpSRT__11dRes_info_cFP12J3DModelDataRC4cXyzff.s"
|
||||
void dRes_info_c::setWarpSRT(J3DModelData* modelData, cXyz const& param_1, f32 translationX, f32 translationY) {
|
||||
J3DMaterial* pMaterial = modelData->getMaterialNodePointer(0);
|
||||
J3DTexGenBlock* texGenBlock = pMaterial->getTexGenBlock();
|
||||
u32 texGenNum = texGenBlock->getTexGenNum();
|
||||
J3DTexMtx* texMtx = texGenBlock->getTexMtx(texGenNum - 1);
|
||||
J3DTexMtxInfo& texMtxInfo = texMtx->getTexMtxInfo();
|
||||
texMtxInfo.mSRT.mTranslationX = translationX;
|
||||
texMtxInfo.mSRT.mTranslationY = translationY;
|
||||
mDoMtx_stack_c::transS(-param_1.x, -param_1.y, -param_1.z);
|
||||
s16 angleY = fopCamM_GetAngleY(dComIfGp_getCamera(i_dComIfGp_getPlayerCameraID(0)));
|
||||
mDoMtx_stack_c::YrotM(angleY);
|
||||
MtxP stackMtx = mDoMtx_stack_c::get();
|
||||
cMtx_concat(l_texMtxInfo.mEffectMtx, stackMtx, texMtxInfo.mEffectMtx);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A7C18-803A7C38 -00001 0020+00 1/1 0/0 0/0 .data @4017 */
|
||||
@@ -367,6 +414,77 @@ SECTION_DATA static void* lit_4017[8] = {
|
||||
|
||||
/* 8003AE14-8003B150 035754 033C+00 2/1 1/1 0/0 .text loaderBasicBmd__11dRes_info_cFUlPv
|
||||
*/
|
||||
// regalloc
|
||||
#ifdef NONMATCHING
|
||||
J3DModelData* dRes_info_c::loaderBasicBmd(u32 param_1, void* param_2) {
|
||||
u32 pvVar5 = 0x59020010;
|
||||
J3DMaterial* pMaterial;
|
||||
J3DModelData* modelData;
|
||||
u8 lightMask;
|
||||
if (param_1 == 'BMDE' || param_1 == 'BMDV') {
|
||||
pvVar5 |= 0x20;
|
||||
} else if (param_1 == 'BMWR' || param_1 == 'BMWE') {
|
||||
pvVar5 ^= 0x60020;
|
||||
}
|
||||
modelData = (J3DModelData*)J3DModelLoaderDataBase::load(param_2, pvVar5);
|
||||
if (modelData == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ((param_1 == 'BMDE' || param_1 == 'BMDV') || param_1 == 'BMWE') {
|
||||
for (u16 i = 0; i < modelData->getShapeNum(); i++) {
|
||||
modelData->getShapeNodePointer(i)->setTexMtxLoadType(0x2000);
|
||||
}
|
||||
}
|
||||
for (u16 i = 0; i < modelData->getMaterialNum(); i++) {
|
||||
pMaterial = modelData->getMaterialNodePointer(i);
|
||||
lightMask = pMaterial->getColorBlock()->getColorChan(0)->getLightMask();
|
||||
switch (g_env_light.field_0x1308) {
|
||||
case 1:
|
||||
lightMask &= 4;
|
||||
break;
|
||||
case 2:
|
||||
lightMask &= 0xc;
|
||||
break;
|
||||
case 3:
|
||||
lightMask &= 0xd;
|
||||
break;
|
||||
case 4:
|
||||
lightMask &= 0xf;
|
||||
break;
|
||||
case 5:
|
||||
lightMask &= 0x1f;
|
||||
break;
|
||||
case 6:
|
||||
lightMask &= 0x3f;
|
||||
break;
|
||||
case 7:
|
||||
lightMask &= 0x7f;
|
||||
}
|
||||
pMaterial->getColorBlock()->getColorChan(0)->setLightMask(lightMask);
|
||||
pMaterial->change();
|
||||
J3DMaterialAnm* local_38 = new J3DMaterialAnm();
|
||||
if (local_38 == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
pMaterial->setMaterialAnm(local_38);
|
||||
}
|
||||
setIndirectTex(modelData);
|
||||
if ((param_1 == 'BMWR') || (param_1 == 'BMWE')) {
|
||||
addWarpMaterial(modelData);
|
||||
}
|
||||
if ((param_1 == 'BMDR') || (param_1 == 'BMWR')) {
|
||||
if (modelData->newSharedDisplayList(0x40000) == 0) {
|
||||
modelData->simpleCalcMaterial(0, (float (*)[4])j3dDefaultMtx);
|
||||
modelData->makeSharedDL();
|
||||
} else {
|
||||
modelData = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return modelData;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -375,12 +493,14 @@ asm J3DModelData* dRes_info_c::loaderBasicBmd(u32 param_0, void* param_1) {
|
||||
#include "asm/d/d_resorce/loaderBasicBmd__11dRes_info_cFUlPv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8003B150-8003B18C 035A90 003C+00 2/2 8/8 0/0 .text __dt__15J3DTevKColorAnmFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DTevKColorAnm::~J3DTevKColorAnm() {
|
||||
// asm J3DTevKColorAnm::~J3DTevKColorAnm() {
|
||||
extern "C" asm void __dt__15J3DTevKColorAnmFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/__dt__15J3DTevKColorAnmFv.s"
|
||||
}
|
||||
@@ -390,7 +510,8 @@ asm J3DTevKColorAnm::~J3DTevKColorAnm() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DTevKColorAnm::J3DTevKColorAnm() {
|
||||
// asm J3DTevKColorAnm::J3DTevKColorAnm() {
|
||||
extern "C" asm void __ct__15J3DTevKColorAnmFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/__ct__15J3DTevKColorAnmFv.s"
|
||||
}
|
||||
@@ -400,7 +521,8 @@ asm J3DTevKColorAnm::J3DTevKColorAnm() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DTevColorAnm::~J3DTevColorAnm() {
|
||||
// asm J3DTevColorAnm::~J3DTevColorAnm() {
|
||||
extern "C" asm void __dt__14J3DTevColorAnmFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/__dt__14J3DTevColorAnmFv.s"
|
||||
}
|
||||
@@ -410,7 +532,8 @@ asm J3DTevColorAnm::~J3DTevColorAnm() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DTevColorAnm::J3DTevColorAnm() {
|
||||
// asm J3DTevColorAnm::J3DTevColorAnm() {
|
||||
extern "C" asm void __ct__14J3DTevColorAnmFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/__ct__14J3DTevColorAnmFv.s"
|
||||
}
|
||||
@@ -474,7 +597,8 @@ extern "C" asm void __dt__11J3DTexNoAnmFv() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DTexNoAnm::J3DTexNoAnm() {
|
||||
// asm J3DTexNoAnm::J3DTexNoAnm() {
|
||||
extern "C" asm void __ct__11J3DTexNoAnmFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/__ct__11J3DTexNoAnmFv.s"
|
||||
}
|
||||
@@ -484,7 +608,8 @@ asm J3DTexNoAnm::J3DTexNoAnm() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DTexMtxAnm::~J3DTexMtxAnm() {
|
||||
// asm J3DTexMtxAnm::~J3DTexMtxAnm() {
|
||||
extern "C" asm void __dt__12J3DTexMtxAnmFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/__dt__12J3DTexMtxAnmFv.s"
|
||||
}
|
||||
@@ -494,7 +619,8 @@ asm J3DTexMtxAnm::~J3DTexMtxAnm() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DTexMtxAnm::J3DTexMtxAnm() {
|
||||
// asm J3DTexMtxAnm::J3DTexMtxAnm() {
|
||||
extern "C" asm void __ct__12J3DTexMtxAnmFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/__ct__12J3DTexMtxAnmFv.s"
|
||||
}
|
||||
@@ -504,7 +630,8 @@ asm J3DTexMtxAnm::J3DTexMtxAnm() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DMatColorAnm::~J3DMatColorAnm() {
|
||||
// asm J3DMatColorAnm::~J3DMatColorAnm() {
|
||||
extern "C" asm void __dt__14J3DMatColorAnmFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/__dt__14J3DMatColorAnmFv.s"
|
||||
}
|
||||
@@ -514,7 +641,8 @@ asm J3DMatColorAnm::~J3DMatColorAnm() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DMatColorAnm::J3DMatColorAnm() {
|
||||
// asm J3DMatColorAnm::J3DMatColorAnm() {
|
||||
extern "C" asm void __ct__14J3DMatColorAnmFv() {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/__ct__14J3DMatColorAnmFv.s"
|
||||
}
|
||||
@@ -530,6 +658,142 @@ SECTION_DEAD static char const* const stringBase_80379912 = "<%s> res == NULL !!
|
||||
#pragma pop
|
||||
|
||||
/* 8003B30C-8003B8D0 035C4C 05C4+00 2/2 0/0 0/0 .text loadResource__11dRes_info_cFv */
|
||||
// J3DXXX ctor/dtor inlines
|
||||
#ifdef NONMATCHING
|
||||
int dRes_info_c::loadResource() {
|
||||
s32 pJVar4 = mArchive->countFile();
|
||||
mRes = new void*[pJVar4];
|
||||
if (mRes == NULL) {
|
||||
OSReport_Error("<%s.arc> setRes: res pointer buffer nothing !!\n", this);
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (int i = 0; i < pJVar4; i++) {
|
||||
mRes[i] = NULL;
|
||||
}
|
||||
JKRArchive::SDIDirEntry* node = mArchive->mNodes;
|
||||
|
||||
for (int i = 0; i < mArchive->countDirectory(); i++) {
|
||||
u32 nodeType = node->type;
|
||||
u32 firstFileIndex = node->first_file_index;
|
||||
J3DModelData* modelData;
|
||||
void* result;
|
||||
for (int j = 0; j < node->num_entries; j++) {
|
||||
if (mArchive->isFileEntry(firstFileIndex)) {
|
||||
result = mArchive->getIdxResource(firstFileIndex);
|
||||
if (result == NULL) {
|
||||
OSReport_Error("<%s> res == NULL !!\n", mArchive->mStringTable + (mArchive->findIdxResource(firstFileIndex)->type_flags_and_name_offset & 0xFFFFFF));
|
||||
}
|
||||
else if (nodeType == 'ARC ') {
|
||||
JKRArchive::SDIFileEntry* fileEntry = mArchive->findIdxResource(firstFileIndex);
|
||||
const char* __s = mArchive->mStringTable + fileEntry->getNameOffset();
|
||||
size_t len = strlen(__s) - 4;
|
||||
char aJStack_24[9];
|
||||
strncpy(aJStack_24, __s, len);
|
||||
aJStack_24[len] = '\0';
|
||||
JKRHeap* local_58 = JKRHeap::findFromRoot(JKRHeap::getCurrentHeap());
|
||||
JKRHeap* pJVar3 = local_58;
|
||||
|
||||
if (local_58 == (JKRHeap*)mDoExt_getGameHeap()) {
|
||||
local_58 = NULL;
|
||||
}
|
||||
dComIfG_setObjectRes(aJStack_24, result, fileEntry->data_size);
|
||||
} else if (nodeType == 'BMDP') {
|
||||
result = (J3DModelData*) J3DModelLoaderDataBase::load(result, 0x59020030);
|
||||
if (result == NULL) {
|
||||
return -1;
|
||||
}
|
||||
modelData = (J3DModelData*)result;
|
||||
for (u16 k = 0; k < modelData->getMaterialNum(); k++) {
|
||||
J3DMaterial* pMaterial = modelData->getMaterialNodePointer(k);
|
||||
pMaterial->change();
|
||||
J3DMaterialAnm* materialAnm = new J3DMaterialAnm();
|
||||
if (materialAnm == (J3DMaterialAnm*)0x0) {
|
||||
return -1;
|
||||
}
|
||||
pMaterial->setMaterialAnm(materialAnm);
|
||||
}
|
||||
setAlpha(modelData);
|
||||
if (modelData->newSharedDisplayList(0x40000) != 0) {
|
||||
return -1;
|
||||
}
|
||||
modelData->simpleCalcMaterial(0, (float (*)[4])j3dDefaultMtx);
|
||||
modelData->makeSharedDL();
|
||||
} else if ((((nodeType == 'BMDR') ||
|
||||
(nodeType == 'BMDV')) ||
|
||||
(nodeType == 'BMDE')) ||
|
||||
((nodeType == 'BMWR' ||
|
||||
(nodeType == 'BMWE'))))
|
||||
{
|
||||
result = loaderBasicBmd(nodeType, result);
|
||||
if (result == NULL) {
|
||||
return -1;
|
||||
}
|
||||
} else if (nodeType == 'BMDG') {
|
||||
result = (J3DModelData*)J3DModelLoaderDataBase::load(result, 0x59020010);
|
||||
if (result == NULL) {
|
||||
return -1;
|
||||
}
|
||||
modelData = (J3DModelData*)result;
|
||||
if (modelData->newSharedDisplayList(0x40000) != 0) {
|
||||
return -1;
|
||||
}
|
||||
modelData->simpleCalcMaterial(0, (float (*)[4])j3dDefaultMtx);
|
||||
modelData->makeSharedDL();
|
||||
} else if (nodeType == 'BMDA') {
|
||||
result = (J3DModelData*)J3DModelLoaderDataBase::load(result, 0x59020010);
|
||||
if (result == NULL) {
|
||||
return -1;
|
||||
}
|
||||
modelData = (J3DModelData*)result;
|
||||
if (modelData->newSharedDisplayList(0x40000) != 0) {
|
||||
return -1;
|
||||
}
|
||||
modelData->simpleCalcMaterial(0, (float (*)[4])j3dDefaultMtx);
|
||||
modelData->makeSharedDL();
|
||||
} else if (nodeType == 'BLS ') {
|
||||
result = J3DClusterLoaderDataBase::load(result);
|
||||
if (result == NULL) {
|
||||
return -1;
|
||||
}
|
||||
} else if ((nodeType == 'BCKS') ||
|
||||
(nodeType == 'BCK '))
|
||||
{
|
||||
int sVar1 = *(int*)((int)result + 0x1c);
|
||||
void* local_9c = sVar1 != 0xffffffff ? (void*)(sVar1 + (u32)result) : NULL;
|
||||
mDoExt_transAnmBas* transAnmBas = new mDoExt_transAnmBas(local_9c);
|
||||
if (transAnmBas == NULL) {
|
||||
return -1;
|
||||
}
|
||||
J3DAnmLoaderDataBase::setResource(transAnmBas, result);
|
||||
result = transAnmBas;
|
||||
} else if ((((nodeType == 'BTP ') ||
|
||||
(nodeType == 'BTK ')) ||
|
||||
(nodeType == 'BPK ')) ||
|
||||
(((nodeType == 'BRK ' ||
|
||||
(nodeType == 'BLK ')) ||
|
||||
((nodeType == 'BVA ' ||
|
||||
(nodeType == 'BXA '))))))
|
||||
{
|
||||
result = J3DAnmLoaderDataBase::load(result, J3DLOADER_UNK_FLAG0);
|
||||
if (result == NULL) {
|
||||
return -1;
|
||||
}
|
||||
} else if (nodeType == 'DZB ') {
|
||||
result = ((cBgS*)result)->ConvDzb(result);
|
||||
} else if (nodeType == 'KCL ') {
|
||||
result = dBgWKCol::initKCollision(result);
|
||||
}
|
||||
mRes[firstFileIndex] = result;
|
||||
}
|
||||
firstFileIndex++;
|
||||
}
|
||||
node++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -538,6 +802,7 @@ asm int dRes_info_c::loadResource() {
|
||||
#include "asm/d/d_resorce/loadResource__11dRes_info_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8003B8D0-8003B93C 036210 006C+00 1/0 0/0 0/0 .text __dt__18J3DAnmTransformKeyFv */
|
||||
#pragma push
|
||||
@@ -563,24 +828,39 @@ extern "C" asm void __dt__15J3DAnmTransformFv() {
|
||||
|
||||
/* 8003B998-8003BA9C 0362D8 0104+00 1/1 0/0 0/0 .text deleteArchiveRes__11dRes_info_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dRes_info_c::deleteArchiveRes() {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/deleteArchiveRes__11dRes_info_cFv.s"
|
||||
void dRes_info_c::deleteArchiveRes() {
|
||||
JKRArchive::SDIDirEntry* nodes = mArchive->mNodes;
|
||||
for (int i = 0; i < mArchive->countDirectory(); nodes++, i++) {
|
||||
if (nodes->type == 0x41524320) {
|
||||
u32 firstFileIndex = nodes->first_file_index;
|
||||
for (int j = 0; j < nodes->num_entries; j++) {
|
||||
if (mArchive->isFileEntry(firstFileIndex)) {
|
||||
JKRArchive::SDIFileEntry* fileEntry = mArchive->findIdxResource(firstFileIndex);
|
||||
u32 nameOffset = fileEntry->getNameOffset();
|
||||
char* fileName = mArchive->mStringTable + nameOffset;
|
||||
size_t nameLen = strlen(fileName) - 4;
|
||||
char nameBuffer[12];
|
||||
strncpy(nameBuffer, fileName, nameLen);
|
||||
nameBuffer[nameLen] = '\0';
|
||||
dComIfG_deleteObjectResMain(nameBuffer);
|
||||
}
|
||||
firstFileIndex++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003BA9C-8003BAC4 0363DC 0028+00 2/2 0/0 0/0 .text getArcHeader__FP10JKRArchive */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void* getArcHeader(JKRArchive* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/getArcHeader__FP10JKRArchive.s"
|
||||
static SArcHeader* getArcHeader(JKRArchive* param_0) {
|
||||
if (param_0 != NULL) {
|
||||
switch(param_0->getMountMode()) {
|
||||
case JKRArchive::MOUNT_MEM:
|
||||
return ((JKRMemArchive*)param_0)->getArcHeader();
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003BAC4-8003BAF8 036404 0034+00 1/1 0/0 0/0 .text setRes__11dRes_info_cFP10JKRArchiveP7JKRHeap
|
||||
*/
|
||||
@@ -670,28 +950,24 @@ static s32 myGetMemBlockSize0(void* param_0) {
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_8037997F = "%5.1f %5x %5.1f %5x %3d %s\n";
|
||||
SECTION_DEAD static char const* const stringBase_8037999B = "dRes_info_c::dump_long %08x %d\n";
|
||||
SECTION_DEAD static char const* const stringBase_803799BB =
|
||||
"No Command Archive ArcHeader(size) SolidHeap(si"
|
||||
"ze) Resource Cnt ArchiveName\n";
|
||||
SECTION_DEAD static char const* const stringBase_80379A09 =
|
||||
"%2d %08x %08x %08x(%6x) %08x(%5x) %08x %3d %s\n";
|
||||
#pragma pop
|
||||
|
||||
/* 8003BD2C-8003BE38 03666C 010C+00 1/1 0/0 0/0 .text dump_long__11dRes_info_cFP11dRes_info_ci */
|
||||
#ifdef NONMATCHING
|
||||
void dRes_info_c::dump_long(dRes_info_c* param_0, int param_1) {
|
||||
int i;
|
||||
void* header;
|
||||
int blockSize1;
|
||||
int blockSize2;
|
||||
JKRArchive* archive;
|
||||
JKRSolidHeap* dataHeap;
|
||||
|
||||
JUTReportConsole_f("dRes_info_c::dump_long %08x %d\n", param_0, param_1);
|
||||
JUTReportConsole_f(
|
||||
"No Command Archive ArcHeader(size) SolidHeap(size) Resource Cnt ArchiveName\n");
|
||||
|
||||
for (int i = 0; i < param_1; i++) {
|
||||
for (i = 0; i < param_1; i++) {
|
||||
if (param_0->getCount() != 0) {
|
||||
JKRArchive* archive = param_0->getArchive();
|
||||
archive = param_0->getArchive();
|
||||
header = NULL;
|
||||
blockSize1 = 0;
|
||||
|
||||
@@ -700,7 +976,7 @@ void dRes_info_c::dump_long(dRes_info_c* param_0, int param_1) {
|
||||
blockSize1 = myGetMemBlockSize0(header);
|
||||
}
|
||||
|
||||
JKRSolidHeap* dataHeap = param_0->mDataHeap;
|
||||
dataHeap = param_0->mDataHeap;
|
||||
blockSize2 = 0;
|
||||
if (dataHeap != NULL) {
|
||||
blockSize2 = myGetMemBlockSize0((void*)dataHeap);
|
||||
@@ -708,22 +984,12 @@ void dRes_info_c::dump_long(dRes_info_c* param_0, int param_1) {
|
||||
|
||||
JUTReportConsole_f("%2d %08x %08x %08x(%6x) %08x(%5x) %08x %3d %s\n", i,
|
||||
param_0->getDMCommand(), archive, header, blockSize1,
|
||||
¶m_0->mDataHeap, blockSize2, param_0->mRes,
|
||||
dataHeap, blockSize2, param_0->mRes, param_0->getCount(),
|
||||
param_0->getArchiveName());
|
||||
}
|
||||
param_0++;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dRes_info_c::dump_long(dRes_info_c* param_0, int param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/dump_long__11dRes_info_cFP11dRes_info_ci.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803798B8-803798B8 005F18 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -751,6 +1017,33 @@ SECTION_SDATA2 static f32 lit_4333[1 + 1 /* padding */] = {
|
||||
|
||||
/* 8003BE38-8003BFB0 036778 0178+00 1/1 0/0 0/0 .text dump__11dRes_info_cFP11dRes_info_ci
|
||||
*/
|
||||
// float literal order
|
||||
#ifdef NONMATCHING
|
||||
void dRes_info_c::dump(dRes_info_c* param_0, int param_1) {
|
||||
int totalArcHeaderSize;
|
||||
int totalHeapSize;
|
||||
int arcHeaderSize;
|
||||
int heapSize;
|
||||
char* archiveName;
|
||||
JUTReportConsole_f("dRes_info_c::dump %08x %d\n", param_0, param_1);
|
||||
JUTReportConsole_f("No ArchiveSize(KB) SolidHeapSize(KB) Cnt ArchiveName\n");
|
||||
totalArcHeaderSize = 0;
|
||||
totalHeapSize = 0;
|
||||
for (int i = 0; i < param_1; i++) {
|
||||
if (param_0->getCount()) {
|
||||
arcHeaderSize = JKRGetMemBlockSize(NULL, getArcHeader(param_0->getArchive()));
|
||||
heapSize = JKRGetMemBlockSize(NULL, param_0->mDataHeap);
|
||||
archiveName = param_0->getArchiveName();
|
||||
JUTReportConsole_f("%2d %6.1f %6x %6.1f %6x %3d %s\n", i, arcHeaderSize / 1024.0f, arcHeaderSize, heapSize / 1024.0f, heapSize, param_0->getCount(), archiveName);
|
||||
totalArcHeaderSize += arcHeaderSize;
|
||||
totalHeapSize += heapSize;
|
||||
}
|
||||
param_0++;
|
||||
}
|
||||
JUTReportConsole_f(
|
||||
"----------------------------------------------\n %6.1f %6x %6.1f %6x Total\n\n", totalArcHeaderSize / 1024.0f, totalArcHeaderSize, totalHeapSize / 1024.0f, totalHeapSize);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -759,37 +1052,23 @@ asm void dRes_info_c::dump(dRes_info_c* param_0, int param_1) {
|
||||
#include "asm/d/d_resorce/dump__11dRes_info_cFP11dRes_info_ci.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8003BFB0-8003C078 0368F0 00C8+00 0/0 1/1 0/0 .text __dt__14dRes_control_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dRes_control_c::~dRes_control_c() {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/__dt__14dRes_control_cFv.s"
|
||||
dRes_control_c::~dRes_control_c() {
|
||||
for (int i = 0; i < (int)ARRAY_SIZE(mObjectInfo); i++) {
|
||||
mObjectInfo[i].~dRes_info_c();
|
||||
}
|
||||
|
||||
for (int i = 0; i < (int)ARRAY_SIZE(mStageInfo); i++) {
|
||||
mStageInfo[i].~dRes_info_c();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803798B8-803798B8 005F18 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
// MWCC ignores mapping of some japanese characters using the
|
||||
// byte 0x5C (ASCII '\'). This is why this string is hex-encoded.
|
||||
SECTION_DEAD static char const* const stringBase_80379AF9 =
|
||||
"\x3C\x25\x73\x2E\x61\x72\x63\x3E\x20\x64\x52\x65\x73\x5F\x63\x6F\x6E\x74\x72\x6F\x6C\x5F\x63"
|
||||
"\x3A\x3A\x73\x65\x74\x52\x65\x73\x3A\x20\x8B\xF3\x82\xAB\x83\x8A\x83\x5C\x81\x5B\x83\x58\x8F"
|
||||
"\xEE\x95"
|
||||
"\xF1\x83\x7C\x83\x43\x83\x93\x83\x5E\x82\xAA\x82\xA0\x82\xE8\x82\xDC\x82\xB9\x82\xF1\x0A";
|
||||
SECTION_DEAD static char const* const stringBase_80379B40 =
|
||||
"<%s.arc> dRes_control_c::setRes: res info set er"
|
||||
"ror !!\n";
|
||||
#pragma pop
|
||||
|
||||
/* 8003C078-8003C160 0369B8 00E8+00 2/2 8/8 0/0 .text
|
||||
* setRes__14dRes_control_cFPCcP11dRes_info_ciPCcUcP7JKRHeap */
|
||||
// matches except resInfo destructor issues?
|
||||
#ifdef NONMATCHING
|
||||
int dRes_control_c::setRes(char const* arcName, dRes_info_c* pInfo, int infoSize,
|
||||
char const* arcPath, u8 param_4, JKRHeap* pHeap) {
|
||||
dRes_info_c* resInfo = getResInfo(arcName, pInfo, infoSize);
|
||||
@@ -798,6 +1077,8 @@ int dRes_control_c::setRes(char const* arcName, dRes_info_c* pInfo, int infoSize
|
||||
resInfo = newResInfo(pInfo, infoSize);
|
||||
|
||||
if (resInfo == NULL) {
|
||||
// MWCC ignores mapping of some japanese characters using the
|
||||
// byte 0x5C (ASCII '\'). This is why this string is hex-encoded.
|
||||
// "<%s.arc> dRes_control_c::setRes: 空きリソース情報ポインタがありません\n"
|
||||
// "<%s.arc> dRes_control_c::setRes: There isn't a free Resource Info pointer\n"
|
||||
OSReport_Error(
|
||||
@@ -806,31 +1087,20 @@ int dRes_control_c::setRes(char const* arcName, dRes_info_c* pInfo, int infoSize
|
||||
"\x5C\x81\x5B\x83\x58\x8F\xEE\x95\xF1\x83\x7C\x83\x43\x83\x93\x83\x5E\x82\xAA\x82"
|
||||
"\xA0\x82\xE8\x82\xDC\x82\xB9\x82\xF1\x0A",
|
||||
arcName);
|
||||
delete resInfo;
|
||||
resInfo->~dRes_info_c();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int resStatus = resInfo->set(arcName, arcPath, param_4, pHeap);
|
||||
if (resStatus == 0) {
|
||||
OSReport_Error("<%s.arc> dRes_control_c::setRes: res info set error !!\n", arcName);
|
||||
delete resInfo;
|
||||
resInfo->~dRes_info_c();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
resInfo->incCount();
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dRes_control_c::setRes(char const* param_0, dRes_info_c* param_1, int param_2,
|
||||
char const* param_3, u8 param_4, JKRHeap* param_5) {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/setRes__14dRes_control_cFPCcP11dRes_info_ciPCcUcP7JKRHeap.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8003C160-8003C194 036AA0 0034+00 0/0 10/10 1/1 .text
|
||||
* syncRes__14dRes_control_cFPCcP11dRes_info_ci */
|
||||
@@ -846,7 +1116,6 @@ int dRes_control_c::syncRes(char const* arcName, dRes_info_c* pInfo, int infoSiz
|
||||
|
||||
/* 8003C194-8003C1E4 036AD4 0050+00 1/1 7/7 0/0 .text
|
||||
* deleteRes__14dRes_control_cFPCcP11dRes_info_ci */
|
||||
#ifdef NONMATCHING
|
||||
int dRes_control_c::deleteRes(char const* arcName, dRes_info_c* pInfo, int infoSize) {
|
||||
dRes_info_c* resInfo = getResInfo(arcName, pInfo, infoSize);
|
||||
|
||||
@@ -854,21 +1123,11 @@ int dRes_control_c::deleteRes(char const* arcName, dRes_info_c* pInfo, int infoS
|
||||
return 0;
|
||||
} else {
|
||||
if (resInfo->decCount() == 0) {
|
||||
delete resInfo;
|
||||
resInfo->~dRes_info_c();
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dRes_control_c::deleteRes(char const* param_0, dRes_info_c* param_1, int param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/deleteRes__14dRes_control_cFPCcP11dRes_info_ci.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8003C1E4-8003C260 036B24 007C+00 5/5 5/5 3/3 .text
|
||||
* getResInfo__14dRes_control_cFPCcP11dRes_info_ci */
|
||||
@@ -912,87 +1171,64 @@ dRes_info_c* dRes_control_c::getResInfoLoaded(char const* arcName, dRes_info_c*
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803798B8-803798B8 005F18 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80379BA0 =
|
||||
"<%s.arc> getRes: res index over !! index=%d coun"
|
||||
"t=%d\n";
|
||||
#pragma pop
|
||||
|
||||
/* 8003C2EC-8003C37C 036C2C 0090+00 1/1 54/54 894/894 .text
|
||||
* getRes__14dRes_control_cFPCclP11dRes_info_ci */
|
||||
// weird branching
|
||||
#ifdef NONMATCHING
|
||||
void* dRes_control_c::getRes(char const* arcName, s32 resIdx, dRes_info_c* pInfo, int infoSize) {
|
||||
dRes_info_c* resInfo = getResInfoLoaded(arcName, pInfo, infoSize);
|
||||
|
||||
if (resInfo == NULL) {
|
||||
JKRArchive* archive = resInfo->getArchive();
|
||||
u32 fileCount = archive->countFile();
|
||||
return resInfo;
|
||||
}
|
||||
JKRArchive* archive = resInfo->getArchive();
|
||||
u32 fileCount = archive->countFile();
|
||||
|
||||
if (resIdx >= (int)fileCount) {
|
||||
OSReport_Error("<%s.arc> getRes: res index over !! index=%d count=%d\n", arcName,
|
||||
resIdx, fileCount);
|
||||
return NULL;
|
||||
}
|
||||
if (resIdx >= (int)fileCount) {
|
||||
OSReport_Error("<%s.arc> getRes: res index over !! index=%d count=%d\n", arcName,
|
||||
resIdx, fileCount);
|
||||
return NULL;
|
||||
}
|
||||
return resInfo->getRes(resIdx);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void* dRes_control_c::getRes(char const* param_0, s32 param_1, dRes_info_c* param_2,
|
||||
int param_3) {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/getRes__14dRes_control_cFPCclP11dRes_info_ci.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8003C37C-8003C400 036CBC 0084+00 0/0 18/18 109/109 .text
|
||||
* getRes__14dRes_control_cFPCcPCcP11dRes_info_ci */
|
||||
// same weird branch issue
|
||||
#ifdef NONMATCHING
|
||||
void* dRes_control_c::getRes(char const* arcName, char const* resName, dRes_info_c* pInfo,
|
||||
int infoSize) {
|
||||
dRes_info_c* resInfo = getResInfoLoaded(arcName, pInfo, infoSize);
|
||||
|
||||
if (resInfo == NULL) {
|
||||
JKRArchive* archive = resInfo->getArchive();
|
||||
JKRArchive::SDIFileEntry* entry = archive->findNameResource(resName);
|
||||
return resInfo;
|
||||
}
|
||||
|
||||
if (entry != NULL) {
|
||||
return resInfo->getRes(entry - archive->mFiles);
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
JKRArchive* archive = resInfo->getArchive();
|
||||
JKRArchive::SDIFileEntry* entry = archive->findNameResource(resName);
|
||||
|
||||
if (entry != NULL) {
|
||||
return resInfo->getRes(entry - archive->mFiles);
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void* dRes_control_c::getRes(char const* param_0, char const* param_1, dRes_info_c* param_2,
|
||||
int param_3) {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/getRes__14dRes_control_cFPCcPCcP11dRes_info_ci.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8003C400-8003C470 036D40 0070+00 0/0 7/7 4/4 .text
|
||||
* getIDRes__14dRes_control_cFPCcUsP11dRes_info_ci */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void* dRes_control_c::getIDRes(char const* param_0, u16 param_1, dRes_info_c* param_2,
|
||||
int param_3) {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/getIDRes__14dRes_control_cFPCcUsP11dRes_info_ci.s"
|
||||
void* dRes_control_c::getIDRes(char const* arcName, u16 param_1, dRes_info_c* pInfo, int infoSize) {
|
||||
dRes_info_c* resInfo = getResInfoLoaded(arcName, pInfo, infoSize);
|
||||
|
||||
if (resInfo == NULL) {
|
||||
return resInfo;
|
||||
}
|
||||
|
||||
JKRArchive* archive = resInfo->getArchive();
|
||||
int index = mDoExt_resIDToIndex(archive, param_1);
|
||||
|
||||
if (index < 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return resInfo->getRes(index);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003C470-8003C4E4 036DB0 0074+00 0/0 3/3 0/0 .text syncAllRes__14dRes_control_cFP11dRes_info_ci
|
||||
*/
|
||||
@@ -1114,7 +1350,8 @@ asm void J3DAnmTransformKey::getTransform(u16 param_0, J3DTransformInfo* param_1
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DTexNoAnm::calc(u16* param_0) const {
|
||||
// asm void J3DTexNoAnm::calc(u16* param_0) const {
|
||||
extern "C" asm void calc__11J3DTexNoAnmCFPUs() {
|
||||
nofralloc
|
||||
#include "asm/d/d_resorce/calc__11J3DTexNoAnmCFPUs.s"
|
||||
}
|
||||
|
||||
+69
-115
@@ -8,65 +8,28 @@
|
||||
#include "d/map/d_map_path_dmap.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "d/d_path.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void createWork__7dTres_cFv();
|
||||
extern "C" void create__7dTres_cFv();
|
||||
extern "C" void remove__7dTres_cFv();
|
||||
extern "C" void reset__7dTres_cFv();
|
||||
extern "C" void addData__7dTres_cFPQ27dTres_c10list_classSc();
|
||||
extern "C" void checkTreasureBox__7dTres_cFPQ27dTres_c6data_s();
|
||||
extern "C" void onStatus__7dTres_cFUcii();
|
||||
extern "C" void offStatus__7dTres_cFUcii();
|
||||
extern "C" void getBossIconFloorNo__7dTres_cFPi();
|
||||
extern "C" void getFirstData__7dTres_cFUc();
|
||||
extern "C" void getNextData__7dTres_cFPQ27dTres_c15typeGroupData_c();
|
||||
extern "C" void getNextData__7dTres_cFPCQ27dTres_c15typeGroupData_c();
|
||||
extern "C" void setPosition__7dTres_cFiUcPC3Veci();
|
||||
extern "C" void getTypeGroupNoToType__7dTres_cFUc();
|
||||
extern "C" void getTypeToTypeGroupNo__7dTres_cFUc();
|
||||
extern "C" u8 const typeToTypeGroup__7dTres_c[34 + 6 /* padding */];
|
||||
extern "C" u8 mTypeGroupListAll__7dTres_c[204 + 4 /* padding */];
|
||||
extern "C" u8 mTypeGroupData__7dTres_c[4];
|
||||
extern "C" u8 mNum__7dTres_c[2 + 2 /* padding */];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_YrotS__FPA4_fs();
|
||||
extern "C" void isDungeonItem__12dSv_memBit_cCFi();
|
||||
extern "C" void isSwitch__10dSv_info_cCFii();
|
||||
extern "C" void correctionOriginPos__10dMapInfo_nFScP3Vec();
|
||||
extern "C" void calcFloorNo__10dMapInfo_cFfbi();
|
||||
extern "C" void dPath_GetRoomPath__Fii();
|
||||
extern "C" void* __nwa__FUl();
|
||||
extern "C" void __construct_new_array();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern bool data_80450680;
|
||||
extern bool data_80450680;
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450F98-80450F9C 000498 0004+00 2/2 0/0 0/0 .sbss mTypeGroupData__7dTres_c */
|
||||
dTres_c::typeGroupData_c* dTres_c::mTypeGroupData;
|
||||
|
||||
/* 8009BBD8-8009BC18 096518 0040+00 0/0 1/1 0/0 .text createWork__7dTres_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dTres_c::createWork() {
|
||||
nofralloc
|
||||
#include "asm/d/d_tresure/createWork__7dTres_cFv.s"
|
||||
int dTres_c::createWork() {
|
||||
mTypeGroupData = new dTres_c::typeGroupData_c[0x40];
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8009BC18-8009BC60 096558 0048+00 0/0 1/1 0/0 .text create__7dTres_cFv */
|
||||
void dTres_c::create() {
|
||||
@@ -82,7 +45,7 @@ void dTres_c::remove() {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80425438-80425508 052158 00CC+04 6/6 3/3 0/0 .bss mTypeGroupListAll__7dTres_c */
|
||||
dTres_c::list_class dTres_c::mTypeGroupListAll[17];
|
||||
dTres_c::type_group_list dTres_c::mTypeGroupListAll[17];
|
||||
|
||||
/* 80450F9C-80450FA0 00049C 0002+02 2/2 0/0 0/0 .sbss mNum__7dTres_c */
|
||||
u16 dTres_c::mNum;
|
||||
@@ -103,88 +66,92 @@ void dTres_c::reset() {
|
||||
|
||||
/* 8009BCB4-8009BE28 0965F4 0174+00 0/0 1/1 0/0 .text addData__7dTres_cFPQ27dTres_c10list_classSc
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
void dTres_c::addData(dTres_c::list_class* p_list, s8 roomNo) {
|
||||
if (dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()) != ST_BOSS_ROOM) {
|
||||
reset();
|
||||
|
||||
typeGroupData_c* listData = p_list->field_0x4;
|
||||
data_s* listData = p_list->field_0x4->getDataPointer();
|
||||
typeGroupData_c* groupData = &mTypeGroupData[mNum];
|
||||
for (int i = 0; i < (int)p_list->field_0x0; i++) {
|
||||
groupData->mData = listData->mData;
|
||||
groupData->mData.mRoomNo = roomNo;
|
||||
groupData->mData.mStatus = 0;
|
||||
for (int i = 0; i < p_list->field_0x0; i++, listData++, groupData++) {
|
||||
*(data_s*)groupData = *listData;
|
||||
groupData->mRoomNo = roomNo;
|
||||
groupData->mStatus = 0;
|
||||
|
||||
u8 typeGroupNo = getTypeToTypeGroupNo(groupData->mData.mType);
|
||||
u32 typeGroupNo = getTypeToTypeGroupNo(groupData->mType);
|
||||
groupData->setNextDataPointer(NULL);
|
||||
groupData->setTypeGroupNo(typeGroupNo);
|
||||
|
||||
list_class* typeGroupList = mTypeGroupListAll + typeGroupNo;
|
||||
type_group_list* typeGroupList = mTypeGroupListAll + typeGroupNo;
|
||||
if (typeGroupList->field_0x0 == NULL) {
|
||||
typeGroupList->field_0x0 = groupData;
|
||||
}
|
||||
|
||||
if (mTypeGroupListAll[i].field_0x4 != NULL) {
|
||||
mTypeGroupListAll[i].field_0x4->setNextDataPointer(groupData);
|
||||
if (typeGroupList->field_0x4 != NULL) {
|
||||
typeGroupList->field_0x4->setNextDataPointer(groupData);
|
||||
}
|
||||
mTypeGroupListAll[i].field_0x4 = groupData;
|
||||
mTypeGroupListAll[i].mNumber++;
|
||||
typeGroupList->field_0x4 = groupData;
|
||||
typeGroupList->mNumber++;
|
||||
|
||||
if ((s32)groupData->mData.mType == 0xFF) {
|
||||
checkTreasureBox(&groupData->mData);
|
||||
switch (groupData->mType) {
|
||||
case 0xFF:
|
||||
checkTreasureBox(groupData);
|
||||
break;
|
||||
}
|
||||
|
||||
mNum++;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dTres_c::addData(dTres_c::list_class* param_0, s8 param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/d_tresure/addData__7dTres_cFPQ27dTres_c10list_classSc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80452BE8-80452BEC 0011E8 0004+00 1/1 0/0 0/0 .sdata2 @3839 */
|
||||
SECTION_SDATA2 static f32 lit_3839 = 182.04444885253906f;
|
||||
|
||||
/* 80452BEC-80452BF0 0011EC 0004+00 1/1 0/0 0/0 .sdata2 @3840 */
|
||||
SECTION_SDATA2 static u8 lit_3840[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* 80452BF0-80452BF8 0011F0 0008+00 1/1 0/0 0/0 .sdata2 @3841 */
|
||||
SECTION_SDATA2 static f64 lit_3841 = 0.5;
|
||||
|
||||
/* 80452BF8-80452C00 0011F8 0008+00 1/1 0/0 0/0 .sdata2 @3842 */
|
||||
SECTION_SDATA2 static f64 lit_3842 = 3.0;
|
||||
|
||||
/* 80452C00-80452C08 001200 0008+00 1/1 0/0 0/0 .sdata2 @3843 */
|
||||
SECTION_SDATA2 static u8 lit_3843[8] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* 80452C08-80452C10 001208 0008+00 1/1 0/0 0/0 .sdata2 @3845 */
|
||||
SECTION_SDATA2 static f64 lit_3845 = 4503601774854144.0 /* cast s32 to float */;
|
||||
|
||||
/* 8009BE28-8009C168 096768 0340+00 1/1 0/0 0/0 .text
|
||||
* checkTreasureBox__7dTres_cFPQ27dTres_c6data_s */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dTres_c::checkTreasureBox(dTres_c::data_s* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_tresure/checkTreasureBox__7dTres_cFPQ27dTres_c6data_s.s"
|
||||
void dTres_c::checkTreasureBox(dTres_c::data_s* param_0) {
|
||||
if (param_0->mSwBit != 0xff && param_0->mArg1 != 0xff){
|
||||
dPath* path = dPath_GetRoomPath(param_0->mArg1, -1);
|
||||
|
||||
if (path == NULL) return;
|
||||
|
||||
if (param_0->mArg2 == 0) {
|
||||
s16 sVar5 = 0;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
int sStack_62;
|
||||
if (dComIfGs_isSwitch(param_0->mSwBit + i, param_0->mRoomNo) != 0) {
|
||||
sStack_62 = (1 << i);
|
||||
} else {
|
||||
sStack_62 = 0;
|
||||
}
|
||||
sVar5 += sStack_62;
|
||||
}
|
||||
if (sVar5 != 0) {
|
||||
s16 uStack_34 = cM_deg2s((sVar5 - 1) * 0x18 + 12);
|
||||
cXyz cStack_48(path->m_points[0].m_position);
|
||||
cXyz cStack_54(path->m_points[path->m_num - 1].m_position);
|
||||
f32 dVar7 = cStack_48.absXZ(cStack_54);
|
||||
cXyz local_60(0.0f, 0.0f, dVar7);
|
||||
mDoMtx_stack_c::YrotS(uStack_34);
|
||||
mDoMtx_stack_c::multVec(&local_60, &local_60);
|
||||
local_60 += cStack_48;
|
||||
local_60.y = cStack_54.y;
|
||||
param_0->mPos = local_60;
|
||||
} else {
|
||||
param_0->mPos = path->m_points[0].m_position;
|
||||
}
|
||||
dMapInfo_n::correctionOriginPos(param_0->mRoomNo, ¶m_0->mPos);
|
||||
} else {
|
||||
dStage_dPnt_c* point;
|
||||
if (dComIfGs_isSwitch(param_0->mSwBit, param_0->mRoomNo)) {
|
||||
point = &path->m_points[path->m_num - 1];
|
||||
} else {
|
||||
point = &path->m_points[0];
|
||||
}
|
||||
|
||||
param_0->mPos = point->m_position;
|
||||
dMapInfo_n::correctionOriginPos(param_0->mRoomNo, ¶m_0->mPos);
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8009C168-8009C1F0 096AA8 0088+00 0/0 0/0 3/3 .text onStatus__7dTres_cFUcii */
|
||||
void dTres_c::onStatus(u8 listIdx, int param_1, int flag) {
|
||||
@@ -203,10 +170,9 @@ void dTres_c::onStatus(u8 listIdx, int param_1, int flag) {
|
||||
}
|
||||
|
||||
/* 8009C1F0-8009C27C 096B30 008C+00 0/0 0/0 3/3 .text offStatus__7dTres_cFUcii */
|
||||
#ifdef NONMATCHING
|
||||
void dTres_c::offStatus(u8 listIdx, int param_1, int flag) {
|
||||
typeGroupData_c* groupData = getFirstData(listIdx);
|
||||
int typeGroupNo = getTypeGroupNumber(listIdx);
|
||||
s32 typeGroupNo = getTypeGroupNumber(listIdx);
|
||||
|
||||
for (int i = 0; i < typeGroupNo; i++) {
|
||||
if (param_1 == groupData->getNo()) {
|
||||
@@ -218,16 +184,6 @@ void dTres_c::offStatus(u8 listIdx, int param_1, int flag) {
|
||||
groupData = getNextData(groupData);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dTres_c::offStatus(u8 param_0, int param_1, int param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/d_tresure/offStatus__7dTres_cFUcii.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8009C27C-8009C360 096BBC 00E4+00 0/0 1/1 0/0 .text getBossIconFloorNo__7dTres_cFPi */
|
||||
int dTres_c::getBossIconFloorNo(int* o_floorNo) {
|
||||
@@ -265,8 +221,7 @@ dTres_c::typeGroupData_c* dTres_c::getFirstData(u8 listIdx) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// this is wrong, fix later
|
||||
return (dTres_c::typeGroupData_c*)mTypeGroupListAll[listIdx].field_0x0;
|
||||
return mTypeGroupListAll[listIdx].field_0x0;
|
||||
}
|
||||
|
||||
/* 8009C39C-8009C3B4 096CDC 0018+00 2/2 3/3 0/0 .text
|
||||
@@ -314,12 +269,11 @@ void dTres_c::setPosition(int dataNo, u8 listIdx, Vec const* i_pos, int i_roomNo
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8037B0D8-8037B100 007738 0022+06 2/2 0/0 0/0 .rodata typeToTypeGroup__7dTres_c */
|
||||
SECTION_RODATA u8 const dTres_c::typeToTypeGroup[17][2] = {
|
||||
u8 const dTres_c::typeToTypeGroup[17][2] = {
|
||||
{0xFF, 0x00}, {0x00, 0x01}, {0x01, 0x02}, {0x02, 0x03}, {0x03, 0x04}, {0x04, 0x05},
|
||||
{0x05, 0x06}, {0x06, 0x07}, {0x07, 0x08}, {0x80, 0x09}, {0x81, 0x0A}, {0x82, 0x0B},
|
||||
{0x83, 0x0C}, {0x84, 0x0D}, {0x85, 0x0E}, {0x87, 0x0F}, {0x88, 0x10},
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8037B0D8, &dTres_c::typeToTypeGroup);
|
||||
|
||||
/* 8009C49C-8009C4B0 096DDC 0014+00 0/0 1/1 0/0 .text getTypeGroupNoToType__7dTres_cFUc
|
||||
*/
|
||||
|
||||
+308
-43
@@ -8,15 +8,16 @@
|
||||
#include "dolphin/types.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void func_8006F168();
|
||||
extern "C" static void func_8006F184();
|
||||
extern "C" static void func_8006F1A4();
|
||||
extern "C" static void func_8006F1D8();
|
||||
extern "C" static void func_8006F168__FPUsUll();
|
||||
extern "C" static void func_8006F184__FUlll();
|
||||
extern "C" static u32 func_8006F1A4__FUlll();
|
||||
extern "C" static void func_8006F1D8__Fll();
|
||||
extern "C" void Run__12dVibration_cFv();
|
||||
extern "C" void StartShock__12dVibration_cFii4cXyz();
|
||||
extern "C" void StartQuake__12dVibration_cFii4cXyz();
|
||||
@@ -63,64 +64,284 @@ extern "C" u8 m_gamePad__8mDoCPd_c[16];
|
||||
|
||||
/* 8006F168-8006F184 069AA8 001C+00 1/1 0/0 0/0 .text makedata__25@unnamed@d_vibration_cpp@FPUsUll
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_8006F168() {
|
||||
nofralloc
|
||||
#include "asm/d/d_vibration/func_8006F168.s"
|
||||
static u16* func_8006F168(u16* param_0, u32 param_1, s32 param_2) {
|
||||
param_0[0] = param_2;
|
||||
param_0[1] = param_1 >> 16;
|
||||
param_0[2] = param_1;
|
||||
param_0[3] = 0;
|
||||
return param_0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8006F184-8006F1A4 069AC4 0020+00 1/1 0/0 0/0 .text rollshift__25@unnamed@d_vibration_cpp@FUlll
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_8006F184() {
|
||||
nofralloc
|
||||
#include "asm/d/d_vibration/func_8006F184.s"
|
||||
static s32 func_8006F184(u32 param_0, s32 param_1, s32 param_2) {
|
||||
s32 temp = param_2 / param_1;
|
||||
temp = temp * param_1;
|
||||
temp = param_2 - temp;
|
||||
param_2 = param_0 >> temp;
|
||||
temp = param_1 - temp;
|
||||
temp = param_0 << temp;
|
||||
return param_2 | temp;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8006F1A4-8006F1D8 069AE4 0034+00 2/2 0/0 0/0 .text makebits__25@unnamed@d_vibration_cpp@FUlll
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_8006F1A4() {
|
||||
nofralloc
|
||||
#include "asm/d/d_vibration/func_8006F1A4.s"
|
||||
static u32 func_8006F1A4(u32 param_0, s32 param_1, s32 param_2) {
|
||||
s32 uVar1 = -1;
|
||||
u32 temp = param_0 & (uVar1 << (32 - param_1));
|
||||
param_0 = temp;
|
||||
uVar1 = param_1;
|
||||
while (uVar1 < param_2) {
|
||||
param_0 = temp | (param_0 >> param_1);
|
||||
uVar1 += param_1;
|
||||
}
|
||||
return param_0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80452620-80452628 000C20 0008+00 1/1 0/0 0/0 .sdata2 @3756 */
|
||||
SECTION_SDATA2 static f64 lit_3756 = 4503601774854144.0 /* cast s32 to float */;
|
||||
|
||||
/* 8006F1D8-8006F268 069B18 0090+00 1/1 0/0 0/0 .text randombit__25@unnamed@d_vibration_cpp@Fll */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void func_8006F1D8() {
|
||||
nofralloc
|
||||
#include "asm/d/d_vibration/func_8006F1D8.s"
|
||||
static u32 func_8006F1D8(s32 param_0, s32 param_1) {
|
||||
u32 uVar3 = 0;
|
||||
|
||||
for (s32 iVar2 = 0; iVar2 < param_0; iVar2++) {
|
||||
u32 dVar4 = param_1 * cM_rnd();
|
||||
uVar3 |= 0x40000000 >> dVar4;
|
||||
}
|
||||
return uVar3;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450F50-80450F58 000450 0008+00 1/1 0/0 0/0 .sbss data$3831 */
|
||||
static u8 data[8];
|
||||
static u16 data[4];
|
||||
|
||||
/* 8006F268-8006FA24 069BA8 07BC+00 0/0 2/2 0/0 .text Run__12dVibration_cFv */
|
||||
// Stack issues
|
||||
#ifdef NONMATCHING
|
||||
int dVibration_c::Run() {
|
||||
|
||||
field_0x8c = 1;
|
||||
if (dComIfGs_checkOptVibration() != 1) {
|
||||
if (field_0x54 != -1) {
|
||||
field_0x54 = -1;
|
||||
field_0x50 |= 1;
|
||||
}
|
||||
if (field_0x70 != -1) {
|
||||
field_0x70 = -1;
|
||||
field_0x6c |= 1;
|
||||
}
|
||||
field_0x80 = -99;
|
||||
field_0x64 = 0xffffff9d;
|
||||
}
|
||||
|
||||
if (((field_0x0.mShock.field_0x0 & 1) != 0) && (field_0x0.mShock.field_0x24 != -99)) {
|
||||
field_0x0.mShock.field_0x24 = 0;
|
||||
field_0x0.mShock.field_0x4 = -1;
|
||||
}
|
||||
if (((field_0x0.mQuake.field_0x0 & 1) != 0) && (field_0x0.mQuake.field_0x24 != -99)) {
|
||||
field_0x0.mQuake.field_0x24 = 0;
|
||||
field_0x0.mQuake.field_0x4 = -1;
|
||||
}
|
||||
|
||||
if (field_0x0.mShock.field_0x24 == 0 || field_0x0.mQuake.field_0x24 == 0) {
|
||||
s32 local_68 = 0;
|
||||
if (field_0x0.mShock.field_0x4 == -1 || (field_0x0.mShock.field_0x0 & 1) != 0) {
|
||||
field_0x0.mShock.field_0x24 = -99;
|
||||
field_0x0.mShock.field_0x8 = 0;
|
||||
field_0x0.mShock.field_0xc = 0;
|
||||
field_0x0.mShock.field_0x10 = 0;
|
||||
} else if (field_0x0.mShock.field_0x24 >= 0) {
|
||||
local_68 |= 1;
|
||||
}
|
||||
|
||||
if (field_0x0.mQuake.field_0x4 == -1 || (field_0x0.mQuake.field_0x0 & 1) != 0) {
|
||||
field_0x0.mQuake.field_0x24 = -99;
|
||||
field_0x0.mQuake.field_0x8 = 0;
|
||||
field_0x0.mQuake.field_0xc = 0;
|
||||
field_0x0.mQuake.field_0x10 = 0;
|
||||
} else if (field_0x0.mQuake.field_0x24 >= 0) {
|
||||
local_68 |= 2;
|
||||
}
|
||||
|
||||
switch (local_68) {
|
||||
case 1:
|
||||
s32 x = field_0x0.mShock.field_0xc;
|
||||
u32 local_60 = field_0x0.mShock.field_0x8;
|
||||
local_60 |= func_8006F1D8(field_0x0.mShock.field_0x10, x);
|
||||
s32 uVar3 = field_0x0.mShock.field_0x14;
|
||||
if (dKy_darkworld_check()) {
|
||||
uVar3 &= ~0x30;
|
||||
}
|
||||
camera_class* pCamera = dComIfGp_getCamera(0);
|
||||
if (pCamera && pCamera->field_0x22f == 0x47) {
|
||||
dCam_getBody()->StartShake(x, (u8*)&local_60, uVar3, field_0x0.mShock.field_0x18.norm());
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
x = field_0x0.mQuake.field_0xc;
|
||||
local_60 = func_8006F184(field_0x0.mQuake.field_0x8, x, field_0x88);
|
||||
local_60 |= func_8006F1D8(field_0x0.mQuake.field_0x10, x);
|
||||
uVar3 = field_0x0.mQuake.field_0x14;
|
||||
if (dKy_darkworld_check()) {
|
||||
uVar3 &= ~0x30;
|
||||
}
|
||||
pCamera = dComIfGp_getCamera(0);
|
||||
if (pCamera && pCamera->field_0x22f == 0x47) {
|
||||
dCam_getBody()->StartShake(x, (u8*)&local_60, uVar3, field_0x0.mQuake.field_0x18.norm());
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
local_60 = field_0x0.mShock.field_0x8 << field_0x0.mShock.field_0x24;
|
||||
x = field_0x0.mShock.field_0xc - field_0x0.mShock.field_0x24;
|
||||
local_60 |= func_8006F184(func_8006F1A4(field_0x0.mQuake.field_0x8, field_0x0.mQuake.field_0xc, x), x, field_0x88);
|
||||
local_60 |= func_8006F1D8(
|
||||
field_0x0.mShock.field_0x10 > field_0x0.mQuake.field_0x10 ? field_0x0.mShock.field_0x10 : field_0x0.mQuake.field_0x10,
|
||||
x
|
||||
);
|
||||
uVar3 = field_0x0.mShock.field_0x14 | field_0x0.mQuake.field_0x14;
|
||||
if (dKy_darkworld_check()) {
|
||||
uVar3 &= ~0x30;
|
||||
}
|
||||
pCamera = dComIfGp_getCamera(0);
|
||||
if (pCamera && pCamera->field_0x22f == 0x47) {
|
||||
cXyz tempSum = field_0x0.mShock.field_0x18 + field_0x0.mQuake.field_0x18;
|
||||
dCam_getBody()->StartShake(x, (u8*)&local_60, uVar3, tempSum.norm());
|
||||
}
|
||||
field_0x0.mQuake.field_0x24 = 0;
|
||||
field_0x0.mShock.field_0x24 = 0;
|
||||
break;
|
||||
default:
|
||||
pCamera = dComIfGp_getCamera(0);
|
||||
if (pCamera && pCamera->field_0x22f == 0x47) {
|
||||
dCam_getBody()->StopShake();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (((field_0x50 & 1) != 0) && (field_0x64 != -99)) {
|
||||
field_0x64 = 0;
|
||||
field_0x54 = -1;
|
||||
}
|
||||
|
||||
if (((field_0x6c & 1) != 0) && (field_0x80 != -99)) {
|
||||
field_0x80 = 0;
|
||||
field_0x70 = -1;
|
||||
}
|
||||
|
||||
if (field_0x64 == 0 || field_0x80 == 0) {
|
||||
s32 local_68 = 0;
|
||||
if (field_0x54 == -1 || (field_0x50 & 1) != 0) {
|
||||
field_0x64 = -99;
|
||||
field_0x58 = 0;
|
||||
field_0x5c = 0;
|
||||
field_0x60 = 0;
|
||||
} else if (field_0x64 >= 0) {
|
||||
local_68 |= 1;
|
||||
}
|
||||
|
||||
if (field_0x70 == -1 || (field_0x6c & 1) != 0) {
|
||||
field_0x80 = -99;
|
||||
field_0x74 = 0;
|
||||
field_0x78 = 0;
|
||||
field_0x7c = 0;
|
||||
} else if (field_0x80 >= 0) {
|
||||
local_68 |= 2;
|
||||
}
|
||||
switch (local_68) {
|
||||
case 1:
|
||||
u32 local_60;
|
||||
s32 x = field_0x5c;
|
||||
local_60 = field_0x58;
|
||||
local_60 |= func_8006F1D8(field_0x60, x);
|
||||
field_0x68 = x;
|
||||
mDoCPd_c::startMotorWave(0, func_8006F168(data, local_60, x), JUTGamePad::CRumble::VAL_0, 0x3c);
|
||||
break;
|
||||
case 2:
|
||||
x = field_0x78;
|
||||
local_60 = func_8006F184(field_0x74, x, field_0x88);
|
||||
local_60 |= func_8006F1D8(field_0x7c, x);
|
||||
field_0x84 = 0x7fffffff;
|
||||
mDoCPd_c::startMotorWave(0, func_8006F168(data, local_60, x), JUTGamePad::CRumble::VAL_1, 0x3c);
|
||||
break;
|
||||
case 3:
|
||||
local_60 = field_0x58 << field_0x64;
|
||||
x = field_0x5c - field_0x64;
|
||||
local_60 |= func_8006F184(func_8006F1A4(field_0x74, field_0x78, x), x, field_0x88);
|
||||
local_60 |= func_8006F1D8(
|
||||
field_0x60 > field_0x7c ? field_0x60 : field_0x7c,
|
||||
x
|
||||
);
|
||||
field_0x84 = x;
|
||||
field_0x68 = x;
|
||||
field_0x80 = 0;
|
||||
field_0x64 = 0;
|
||||
mDoCPd_c::startMotorWave(0, func_8006F168(data, local_60, x), JUTGamePad::CRumble::VAL_0, 0x3c);
|
||||
break;
|
||||
default:
|
||||
mDoCPd_c::stopMotorWave(0);
|
||||
mDoCPd_c::stopMotor(0);
|
||||
field_0x84 = -99;
|
||||
field_0x68 = -99;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
field_0x0.mQuake.field_0x0 = 0;
|
||||
field_0x0.mShock.field_0x0 = 0;
|
||||
field_0x6c = 0;
|
||||
field_0x50 = 0;
|
||||
|
||||
if (field_0x0.mShock.field_0x24 >= 0) {
|
||||
field_0x0.mShock.field_0x24++;
|
||||
|
||||
if (field_0x0.mShock.field_0x24 > field_0x0.mShock.field_0xc) {
|
||||
field_0x0.mShock.field_0x0 |= 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (field_0x64 >= 0) {
|
||||
field_0x64++;
|
||||
|
||||
if (field_0x64 > field_0x68) {
|
||||
field_0x50 |= 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (field_0x0.mQuake.field_0x24 >= 0) {
|
||||
field_0x0.mQuake.field_0x24++;
|
||||
|
||||
if (field_0x0.mQuake.field_0x24 > field_0x0.mQuake.field_0xc) {
|
||||
field_0x0.mQuake.field_0x24 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (field_0x80 >= 930) {
|
||||
field_0x80 = 0;
|
||||
} else if (field_0x80 >= 900) {
|
||||
mDoCPd_c::stopMotorWave(0);
|
||||
mDoCPd_c::stopMotor(0);
|
||||
field_0x80++;
|
||||
} else if (field_0x80 >= 0) {
|
||||
field_0x80++;
|
||||
if (field_0x80 > field_0x84) {
|
||||
field_0x80 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
field_0x88++;
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dVibration_c::Run() {
|
||||
asm int dVibration_c::Run() {
|
||||
nofralloc
|
||||
#include "asm/d/d_vibration/Run__12dVibration_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8006FA24-8006FB10 06A364 00EC+00 0/0 62/62 298/298 .text StartShock__12dVibration_cFii4cXyz */
|
||||
bool dVibration_c::StartShock(int param_0, int param_1, cXyz param_2) {
|
||||
@@ -170,14 +391,58 @@ bool dVibration_c::StartQuake(int param_0, int param_1, cXyz param_2) {
|
||||
}
|
||||
|
||||
/* 8006FC0C-8006FD94 06A54C 0188+00 0/0 2/2 2/2 .text StartQuake__12dVibration_cFPCUcii4cXyz */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dVibration_c::StartQuake(u8 const* param_0, int param_1, int param_2, cXyz param_3) {
|
||||
nofralloc
|
||||
#include "asm/d/d_vibration/StartQuake__12dVibration_cFPCUcii4cXyz.s"
|
||||
bool dVibration_c::StartQuake(u8 const* param_0, int param_1, int param_2, cXyz param_3) {
|
||||
int iVar7;
|
||||
int iVar6;
|
||||
int iVar5;
|
||||
int iVar4;
|
||||
bool bVar8 = false;
|
||||
int uVar1 = (param_0[0] << 8) | param_0[1];
|
||||
if (uVar1 >= 9) {
|
||||
iVar7 = 3;
|
||||
} else {
|
||||
iVar7 = 0;
|
||||
}
|
||||
if (uVar1 >= 1) {
|
||||
iVar6 = 2;
|
||||
} else {
|
||||
iVar6 = 0;
|
||||
}
|
||||
|
||||
if (uVar1 >= 0x11) {
|
||||
iVar5 = 4;
|
||||
} else {
|
||||
iVar5 = 0;
|
||||
}
|
||||
if (uVar1 >= 0x19) {
|
||||
iVar4 = 5;
|
||||
} else {
|
||||
iVar4 = 0;
|
||||
}
|
||||
u32 this_00 =
|
||||
param_0[iVar6] << 24 | param_0[iVar7] << 16 | param_0[iVar5] << 8 | (param_0[iVar4]);
|
||||
if ((param_2 & 0x7e) != 0) {
|
||||
field_0x0.mQuake.field_0x4 = 0;
|
||||
field_0x0.mQuake.field_0x24 = 0;
|
||||
field_0x0.mQuake.field_0x14 = param_2;
|
||||
field_0x0.mQuake.field_0x18 = param_3;
|
||||
field_0x0.mQuake.field_0x8 = func_8006F1A4(this_00, param_0[1], 0x20);
|
||||
field_0x0.mQuake.field_0xc = 0x20;
|
||||
field_0x0.mQuake.field_0x10 = param_1;
|
||||
bVar8 = true;
|
||||
}
|
||||
if (((param_2 & 1) != 0) &&
|
||||
(dComIfGs_checkOptVibration() == 1))
|
||||
{
|
||||
field_0x70 = 0;
|
||||
field_0x80 = 0;
|
||||
field_0x74 = func_8006F1A4(this_00, param_0[1], 0x20);
|
||||
field_0x78 = 0x20;
|
||||
field_0x7c = param_1;
|
||||
bVar8 = true;
|
||||
}
|
||||
return bVar8;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8006FD94-8006FE00 06A6D4 006C+00 0/0 6/6 82/82 .text StopQuake__12dVibration_cFi */
|
||||
int dVibration_c::StopQuake(int param_0) {
|
||||
|
||||
+11
-11
@@ -489,12 +489,12 @@ int dEvt_control_c::catchCheck(dEvt_order_c* p_order) {
|
||||
|
||||
/* 80041D34-80041DDC 03C674 00A8+00 1/1 0/0 0/0 .text talkEnd__14dEvt_control_cFv */
|
||||
int dEvt_control_c::talkEnd() {
|
||||
fopAc_ac_c* actor = (fopAc_ac_c*)getPt1();
|
||||
fopAc_ac_c* actor = getPt1();
|
||||
if (actor != NULL) {
|
||||
actor->mEvtInfo.setCommand(0);
|
||||
}
|
||||
|
||||
actor = (fopAc_ac_c*)getPt2();
|
||||
actor = getPt2();
|
||||
if (actor != NULL) {
|
||||
actor->mEvtInfo.setCommand(0);
|
||||
}
|
||||
@@ -560,12 +560,12 @@ int dEvt_control_c::demoCheck(dEvt_order_c* p_order) {
|
||||
|
||||
/* 80041F18-80041FA0 03C858 0088+00 1/1 0/0 0/0 .text demoEnd__14dEvt_control_cFv */
|
||||
int dEvt_control_c::demoEnd() {
|
||||
fopAc_ac_c* actor = (fopAc_ac_c*)getPt1();
|
||||
fopAc_ac_c* actor = getPt1();
|
||||
if (actor != NULL) {
|
||||
actor->mEvtInfo.setCommand(0);
|
||||
}
|
||||
|
||||
actor = (fopAc_ac_c*)getPt2();
|
||||
actor = getPt2();
|
||||
if (actor != NULL) {
|
||||
actor->mEvtInfo.setCommand(0);
|
||||
}
|
||||
@@ -597,7 +597,7 @@ int dEvt_control_c::doorCheck(dEvt_order_c* p_order) {
|
||||
if (commonCheck(p_order, 4, 3)) {
|
||||
mMode = EVT_MODE_DEMO;
|
||||
|
||||
fopAc_ac_c* actor2 = (fopAc_ac_c*)getPt2();
|
||||
fopAc_ac_c* actor2 = getPt2();
|
||||
if (actor2 != NULL) {
|
||||
i_dComIfGp_getEventManager().setObjectArchive(actor2->mEvtInfo.getArchiveName());
|
||||
}
|
||||
@@ -754,9 +754,9 @@ int dEvt_control_c::entry() {
|
||||
/* 80042468-80042518 03CDA8 00B0+00 1/1 8/8 388/388 .text reset__14dEvt_control_cFv */
|
||||
void dEvt_control_c::reset() {
|
||||
if (field_0xec != 0xFF) {
|
||||
void* pt1 = getPt1();
|
||||
fopAc_ac_c* pt1 = getPt1();
|
||||
s16 eventIdx = i_dComIfGp_getEventManager().getEventIdx(NULL, field_0xec, -1);
|
||||
void* pt2 = getPt2();
|
||||
fopAc_ac_c* pt2 = getPt2();
|
||||
|
||||
order(EVT_TYPE_OTHER, 3, 0x201, mHindFlag, pt1, pt2, eventIdx, field_0xec);
|
||||
mChangeOK = pt1;
|
||||
@@ -769,7 +769,7 @@ void dEvt_control_c::reset() {
|
||||
void dEvt_control_c::reset(void* param_0) {
|
||||
if (field_0xec != 0xFF) {
|
||||
s16 eventIdx = i_dComIfGp_getEventManager().getEventIdx((fopAc_ac_c*)param_0, field_0xec);
|
||||
void* pt2 = getPt2();
|
||||
fopAc_ac_c* pt2 = getPt2();
|
||||
order(EVT_TYPE_OTHER, 3, 0x201, mHindFlag, param_0, pt2, eventIdx, field_0xec);
|
||||
}
|
||||
|
||||
@@ -970,7 +970,7 @@ bool dEvt_control_c::skipper() {
|
||||
if (startSkip) {
|
||||
dMsgObject_onKillMessageFlag();
|
||||
|
||||
void* ptr = convPId(field_0x104);
|
||||
fopAc_ac_c* ptr = convPId(field_0x104);
|
||||
if (ptr == NULL) {
|
||||
ptr = dComIfGp_getPlayer(0);
|
||||
}
|
||||
@@ -1240,8 +1240,8 @@ u32 dEvt_control_c::getPId(void* actor) {
|
||||
}
|
||||
|
||||
/* 800432EC-8004331C 03DC2C 0030+00 7/7 13/13 16/16 .text convPId__14dEvt_control_cFUi */
|
||||
void* dEvt_control_c::convPId(unsigned int id) {
|
||||
return fopAcIt_Judge(fpcSch_JudgeByID, &id);
|
||||
fopAc_ac_c* dEvt_control_c::convPId(unsigned int id) {
|
||||
return (fopAc_ac_c*)fopAcIt_Judge(fpcSch_JudgeByID, &id);
|
||||
}
|
||||
|
||||
/* 8004331C-800433F0 03DC5C 00D4+00 0/0 1/1 0/0 .text getStbDemoData__14dEvt_control_cFPc
|
||||
|
||||
@@ -464,7 +464,7 @@ void dEvent_manager_c::Sequencer() {
|
||||
evtControl.onSkipFade();
|
||||
}
|
||||
|
||||
void* actor = evtControl.getPt1();
|
||||
fopAc_ac_c* actor = evtControl.getPt1();
|
||||
if (actor == NULL) {
|
||||
actor = evtControl.getPt2();
|
||||
}
|
||||
@@ -1042,7 +1042,6 @@ int dEvent_manager_c::getMySubstanceNum(int index, char const* name) {
|
||||
|
||||
/* 8004817C-800481F4 042ABC 0078+00 1/1 78/78 182/182 .text cutEnd__16dEvent_manager_cFi
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
void dEvent_manager_c::cutEnd(int cutIndex) {
|
||||
if (i_dComIfGp_getEvent().getMode() == EVT_MODE_NONE) {
|
||||
return;
|
||||
@@ -1052,19 +1051,10 @@ void dEvent_manager_c::cutEnd(int cutIndex) {
|
||||
return;
|
||||
} else {
|
||||
// instruction swap
|
||||
mFlags.flagSet(getBase().getCutStaffCurrentCutP(cutIndex)->getFlagId());
|
||||
dEvDtCut_c* cut = getBase().getCutStaffCurrentCutP(cutIndex);
|
||||
mFlags.flagSet(cut->getFlagId());
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvent_manager_c::cutEnd(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event_manager/cutEnd__16dEvent_manager_cFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800481F4-800482CC 042B34 00D8+00 0/0 4/4 0/0 .text
|
||||
* getEventPrio__16dEvent_manager_cFP10fopAc_ac_cs */
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "dolphin/types.h"
|
||||
#include "m_Do/m_Do_MemCard.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
|
||||
|
||||
//
|
||||
@@ -1904,11 +1905,28 @@ SECTION_SDATA2 static f32 lit_4166[1 + 1 /* padding */] = {
|
||||
};
|
||||
|
||||
/* 801843CC-801844FC 17ED0C 0130+00 0/0 1/1 0/0 .text _create__14dFile_select_cFv */
|
||||
// Matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void dFile_select_c::_create() {
|
||||
mDoGph_gInf_c::setFadeColor(static_cast<JUtility::TColor&>(g_blackColor));
|
||||
mStick = new STControl();
|
||||
mStick = new STControl(2, 2, 1, 1, 0.9f, 0.5f, 0, 0x2000);
|
||||
g_fsHIO.field_0x0004 = -1;
|
||||
for (int iVar2 = 0; iVar2 < 3; iVar2++) {
|
||||
mDataNew[iVar2] = 0;
|
||||
field_0x025b[iVar2] = 0;
|
||||
}
|
||||
|
||||
mSelectNum = 0;
|
||||
dComIfGs_init();
|
||||
dComIfGp_itemDataInit();
|
||||
dComIfGs_setNewFile(0);
|
||||
mHasDrawn = 0;
|
||||
screenSet();
|
||||
screenSetCopySel();
|
||||
screenSet3Menu();
|
||||
screenSetYesNo();
|
||||
screenSetDetail();
|
||||
displayInit();
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
|
||||
@@ -301,23 +301,21 @@ Vec dMapInfo_n::getMapRestartPos() {
|
||||
|
||||
/* 8003F0F8-8003F19C 039A38 00A4+00 1/1 1/1 0/0 .text getMapRestartAngleY__10dMapInfo_nFv
|
||||
*/
|
||||
// small regalloc
|
||||
#ifdef NONMATCHING
|
||||
s16 dMapInfo_n::getMapRestartAngleY() {
|
||||
int angle = dComIfGs_getRestartRoomAngleY();
|
||||
|
||||
const dTres_c::typeGroupData_c* icon_data = getConstRestartIconPointer();
|
||||
if (icon_data != NULL) {
|
||||
int icon_angle = icon_data->getAngleY();
|
||||
bool tmp = icon_angle > 0;
|
||||
angle = icon_data->getAngleY();
|
||||
bool tmp = angle > 0;
|
||||
|
||||
if (tmp) {
|
||||
icon_angle = -icon_angle;
|
||||
angle = -angle;
|
||||
}
|
||||
|
||||
angle = icon_angle * 0x0100;
|
||||
angle = angle * 0x0100;
|
||||
if (tmp) {
|
||||
angle = icon_angle * -0x0100;
|
||||
angle = -angle;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -329,16 +327,6 @@ s16 dMapInfo_n::getMapRestartAngleY() {
|
||||
|
||||
return angle;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s16 dMapInfo_n::getMapRestartAngleY() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_dmap/getMapRestartAngleY__10dMapInfo_nFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8003F19C-8003F1F4 039ADC 0058+00 0/0 1/1 0/0 .text getRoomCenter__10dMapInfo_nFiPfPf
|
||||
*/
|
||||
@@ -896,24 +884,49 @@ asm int renderingDAmap_c::getNextDrawRoomNo(int param_0) {
|
||||
#endif
|
||||
|
||||
/* 80040134-800401E8 03AA74 00B4+00 3/0 3/0 0/0 .text getFirstRoomPointer__16renderingDAmap_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dDrawPath_c::room_class* renderingDAmap_c::getFirstRoomPointer() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_dmap/getFirstRoomPointer__16renderingDAmap_cFv.s"
|
||||
dDrawPath_c::room_class* renderingDAmap_c::getFirstRoomPointer() {
|
||||
dDrawPath_c::room_class* pRoomClass = NULL;
|
||||
mRoomNo = getFirstDrawRoomNo();
|
||||
if (mRoomNo >= 0) {
|
||||
field_0x28 = getFirstDrawLayerNo();
|
||||
|
||||
pRoomClass = dMpath_c::getRoomPointer(field_0x28, mRoomNo);
|
||||
if (pRoomClass == NULL) {
|
||||
pRoomClass = getNextRoomPointer();
|
||||
}
|
||||
}
|
||||
|
||||
if(pRoomClass != NULL) {
|
||||
setSingleRoomSetting();
|
||||
}
|
||||
return pRoomClass;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800401E8-800402C0 03AB28 00D8+00 3/0 3/0 0/0 .text getNextRoomPointer__16renderingDAmap_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dDrawPath_c::room_class* renderingDAmap_c::getNextRoomPointer() {
|
||||
nofralloc
|
||||
#include "asm/d/map/d_map_path_dmap/getNextRoomPointer__16renderingDAmap_cFv.s"
|
||||
dDrawPath_c::room_class* renderingDAmap_c::getNextRoomPointer() {
|
||||
dDrawPath_c::room_class* pRoomClass = NULL;
|
||||
bool bVar1 = false;
|
||||
do {
|
||||
mRoomNo = getNextDrawRoomNo(mRoomNo);
|
||||
if (mRoomNo < 0) {
|
||||
field_0x28 = getNextDrawLayerNo(field_0x28);
|
||||
if (field_0x28 < 0) {
|
||||
bVar1 = true;
|
||||
} else {
|
||||
mRoomNo = getFirstDrawRoomNo();
|
||||
}
|
||||
}
|
||||
|
||||
if (!bVar1) {
|
||||
pRoomClass = dMpath_c::getRoomPointer(field_0x28, mRoomNo);
|
||||
}
|
||||
} while(pRoomClass == NULL && !bVar1);
|
||||
|
||||
if (pRoomClass != NULL) {
|
||||
setSingleRoomSetting();
|
||||
}
|
||||
return pRoomClass;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800402C0-800402E0 03AC00 0020+00 3/0 3/0 0/0 .text isDrawPath__16renderingDAmap_cFv */
|
||||
bool renderingDAmap_c::isDrawPath() {
|
||||
@@ -921,8 +934,8 @@ bool renderingDAmap_c::isDrawPath() {
|
||||
}
|
||||
|
||||
/* 800402E0-800402E8 03AC20 0008+00 3/0 3/0 0/0 .text getFirstDrawLayerNo__16renderingDAmap_cFv */
|
||||
bool renderingDAmap_c::getFirstDrawLayerNo() {
|
||||
return false;
|
||||
int renderingDAmap_c::getFirstDrawLayerNo() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 800402E8-800402FC 03AC28 0014+00 3/0 3/0 0/0 .text getNextDrawLayerNo__16renderingDAmap_cFi */
|
||||
@@ -1232,8 +1245,9 @@ void renderingPlusDoorAndCursor_c::drawTreasure() {
|
||||
setTevSettingIntensityTextureToCI();
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
dTres_c::typeGroupData_c* typeGroupData_p;
|
||||
u8 tmp = l_treasureDispList_4524[i].field_0x0;
|
||||
dTres_c::typeGroupData_c* typeGroupData_p = getFirstData(tmp);
|
||||
typeGroupData_p = getFirstData(tmp);
|
||||
int group_num = getIconGroupNumber(tmp);
|
||||
|
||||
if (group_num != 0) {
|
||||
@@ -1256,7 +1270,7 @@ void renderingPlusDoorAndCursor_c::drawTreasure() {
|
||||
GXSetTevColor(GX_TEVREG2, sp18);
|
||||
|
||||
for (int j = 0; j < group_num && typeGroupData_p != NULL; j++) {
|
||||
Vec* icon_pos = getIconPosition(typeGroupData_p);
|
||||
const Vec* icon_pos = getIconPosition(typeGroupData_p);
|
||||
|
||||
if (tmp == 0) {
|
||||
if (mRoomNoSingle != typeGroupData_p->getRoomNo()) {
|
||||
|
||||
@@ -277,7 +277,7 @@ void dMenu_Fmap_room_data_c::buildTresTypeGroup(int param_0, int param_1, int pa
|
||||
dTres_c::list_class* tresure_p = mp_fmapData->getTresure();
|
||||
if (tresure_p != NULL) {
|
||||
int num = tresure_p->field_0x0;
|
||||
dTres_c::data_s* data_p = tresure_p->field_0x4;
|
||||
dTres_c::data_s* data_p = tresure_p->field_0x4->getDataPointer();
|
||||
|
||||
if (mp_fmpTresTypeGroupDataListAll == NULL) {
|
||||
mp_fmpTresTypeGroupDataListAll = new fmpTresTypeGroupDataListAll_c();
|
||||
|
||||
+641
-490
File diff suppressed because it is too large
Load Diff
@@ -717,7 +717,7 @@ asm void dMenu_Insect_c::screenSetDoIcon() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMenu_Insect_c::getGetInsectNum() {
|
||||
asm u8 dMenu_Insect_c::getGetInsectNum() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_insect/getGetInsectNum__14dMenu_Insect_cFv.s"
|
||||
}
|
||||
|
||||
@@ -1883,7 +1883,7 @@ void dMenu_save_c::memCardMakeGameFileWait() {
|
||||
errorTxtSet(0x3C6); // An error might have occurred when creating a save file.
|
||||
mMenuProc = PROC_MEMCARD_COMMAND_END;
|
||||
} else if (mCmdState == 1) {
|
||||
dComIfGs_setNewFile(1);
|
||||
dComIfGs_setNewFile(dComIfGs_getNewFile() | 1);
|
||||
errorTxtSet(0x3C7); // A save file has been created.
|
||||
mMenuProc = PROC_MEMCARD_COMMAND_END;
|
||||
}
|
||||
|
||||
@@ -2436,39 +2436,16 @@ bool dMw_c::isPauseReady() {
|
||||
}
|
||||
|
||||
/* 801FCE08-801FCE78 1F7748 0070+00 10/10 3/3 0/0 .text dMw_fade_out__5dMw_cFv */
|
||||
// instructions switched
|
||||
#ifdef NONMATCHING
|
||||
void dMw_c::dMw_fade_out() {
|
||||
mDoGph_gInf_c::startFadeOut(13);
|
||||
mDoGph_gInf_c::setFadeColor(static_cast<JUtility::TColor&>(g_blackColor));
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMw_c::dMw_fade_out() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window/dMw_fade_out__5dMw_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 801FCE78-801FCEE8 1F77B8 0070+00 9/9 4/4 0/0 .text dMw_fade_in__5dMw_cFv */
|
||||
#ifdef NONMATCHING
|
||||
void dMw_c::dMw_fade_in() {
|
||||
mDoGph_gInf_c::startFadeIn(13);
|
||||
mDoGph_gInf_c::setFadeColor(static_cast<JUtility::TColor&>(g_blackColor));
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMw_c::dMw_fade_in() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window/dMw_fade_in__5dMw_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 801FCEE8-801FCF84 1F7828 009C+00 1/1 0/0 0/0 .text checkCStickTrigger__5dMw_cFv */
|
||||
int dMw_c::checkCStickTrigger() {
|
||||
|
||||
+18
-37
@@ -107,11 +107,9 @@ bool dMeterMap_c::isEnableDispMap() {
|
||||
}
|
||||
|
||||
/* 8020D528-8020D650 207E68 0128+00 3/3 0/0 0/0 .text getMapDispSizeTypeNo__11dMeterMap_cFv */
|
||||
// stayNo load block in wrong order
|
||||
#ifdef NONMATCHING
|
||||
int dMeterMap_c::getMapDispSizeTypeNo() {
|
||||
int uvar6 = 7;
|
||||
int stayNo = dComIfGp_roomControl_getStayNo();
|
||||
s32 stayNo = dComIfGp_roomControl_getStayNo();
|
||||
|
||||
dStage_FileList_dt_c* fList =
|
||||
dComIfGp_roomControl_getStatusRoomDt(stayNo)->mRoomDt.getFileListInfo();
|
||||
@@ -155,16 +153,6 @@ int dMeterMap_c::getMapDispSizeTypeNo() {
|
||||
|
||||
return mapDispSizeType;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dMeterMap_c::getMapDispSizeTypeNo() {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter_map/getMapDispSizeTypeNo__11dMeterMap_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8020D650-8020D690 207F90 0040+00 5/5 3/3 0/0 .text
|
||||
* isEnableDispMapAndMapDispSizeTypeNo__11dMeterMap_cFv */
|
||||
@@ -277,17 +265,17 @@ SECTION_SDATA2 static f32 lit_4159 = -36.0f;
|
||||
|
||||
/* 8020D7EC-8020D874 20812C 0088+00 2/2 0/0 0/0 .text getDispPosOutSide_OffsetX__11dMeterMap_cFv
|
||||
*/
|
||||
// calculation order is wrong
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
s16 dMeterMap_c::getDispPosOutSide_OffsetX() {
|
||||
f32 dvar3 = -36.0f - mSizeW;
|
||||
f32 tmp = 0.0f;
|
||||
f32 offset = 0.0f;
|
||||
if (mMap != NULL) {
|
||||
tmp = (mMap->getTexelPerCm() * mMap->getPackX()) +
|
||||
(mMap->getRightEdgePlus() + (mMap->getTexelPerCm() * mMap->getPackPlusZ()));
|
||||
tmp += dvar3;
|
||||
offset = mMap->getTexelPerCm() * mMap->getPackX();
|
||||
offset +=(mMap->getRightEdgePlus() + (mMap->getTexelPerCm() * mMap->getPackPlusZ()));
|
||||
}
|
||||
return tmp - getMapDispEdgeLeftX_Layout();
|
||||
dvar3 += offset;
|
||||
return dvar3 - getMapDispEdgeLeftX_Layout();
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
@@ -474,7 +462,7 @@ SECTION_DEAD static char const* const stringBase_80398208 = "F_SP115";
|
||||
#pragma pop
|
||||
|
||||
/* 8020DCE4-8020DF1C 208624 0238+00 0/0 1/1 0/0 .text _move__11dMeterMap_cFUl */
|
||||
// just regalloc
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void dMeterMap_c::_move(u32 param_0) {
|
||||
if (!field_0x2b && i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[118])) {
|
||||
@@ -485,7 +473,7 @@ void dMeterMap_c::_move(u32 param_0) {
|
||||
dMeter2Info_setPauseStatus(2);
|
||||
}
|
||||
}
|
||||
int stayNo = dComIfGp_roomControl_getStayNo();
|
||||
s32 stayNo = dComIfGp_roomControl_getStayNo();
|
||||
|
||||
field_0x14 = param_0;
|
||||
field_0x2a = checkMoveStatus();
|
||||
@@ -654,30 +642,23 @@ asm void dMeterMap_c::ctrlShowMap() {
|
||||
#endif
|
||||
|
||||
/* 8020E45C-8020E4C8 208D9C 006C+00 1/1 0/0 0/0 .text checkMoveStatus__11dMeterMap_cFv */
|
||||
// field_0x2d compare is weird
|
||||
#ifdef NONMATCHING
|
||||
u8 dMeterMap_c::checkMoveStatus() {
|
||||
u8 rv;
|
||||
if (isShow(field_0x14)) {
|
||||
if (isEnableDispMapAndMapDispSizeTypeNo()) {
|
||||
if (isDispPosInsideFlg()) {
|
||||
return 1;
|
||||
rv = 1;
|
||||
} else {
|
||||
rv = 2;
|
||||
}
|
||||
return 2;
|
||||
} else {
|
||||
rv = 3;
|
||||
}
|
||||
return 3;
|
||||
} else {
|
||||
rv = 0;
|
||||
}
|
||||
return 0;
|
||||
return rv;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm u8 dMeterMap_c::checkMoveStatus() {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter_map/checkMoveStatus__11dMeterMap_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8020E4C8-8020E620 208E08 0158+00 2/2 0/0 0/0 .text isShow__11dMeterMap_cFUl */
|
||||
// extra gameinfo label load for dComIfGp_event_checkHind
|
||||
|
||||
+83
-28
@@ -18,6 +18,7 @@
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "f_op/f_op_msg_mng.h"
|
||||
#include "m_Do/m_Do_audio.h"
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
@@ -1559,36 +1560,50 @@ int dMsgFlow_c::query038(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, in
|
||||
|
||||
/* 8024BDB0-8024BE4C 2466F0 009C+00 1/0 0/0 0/0 .text
|
||||
* query039__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dMsgFlow_c::query039(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_flow/query039__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s"
|
||||
int dMsgFlow_c::query039(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) {
|
||||
u16 uVar2 = *(u16*)param_0->params;
|
||||
u8 iVar4 = dComIfGs_getTmpReg(0xfbff);
|
||||
u8 bombNum = dComIfGs_getBombNum(iVar4 - 1);
|
||||
return dComIfGs_getBombMax(NORMAL_BOMB) >= bombNum + uVar2;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8024BE4C-8024BF50 24678C 0104+00 1/0 0/0 0/0 .text
|
||||
* query040__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dMsgFlow_c::query040(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_flow/query040__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s"
|
||||
int dMsgFlow_c::query040(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) {
|
||||
s32 uVar7 = *(u16*)param_0->params;
|
||||
u8 unaff_r30;
|
||||
if (uVar7 >= 1 && uVar7 < 4) {
|
||||
unaff_r30 = uVar7 - 1;
|
||||
} else if (uVar7 == 4) {
|
||||
if (dMeter2Info_getRentalBombBag() != 0xff) {
|
||||
unaff_r30 = dMeter2Info_getRentalBombBag();
|
||||
}
|
||||
} else {
|
||||
unaff_r30 = dComIfGs_getTmpReg(0xfbff) - 1;
|
||||
}
|
||||
|
||||
u8 bombNum = dComIfGs_getBombNum(unaff_r30);
|
||||
u8 uVar4 = dComIfGs_getItem((u8)(unaff_r30 + SLOT_15), 0);
|
||||
u8 bombMax = dComIfGs_getBombMax(uVar4);
|
||||
u8 rv;
|
||||
if (bombNum == 0) {
|
||||
rv = 0;
|
||||
} else if (bombNum >= bombMax) {
|
||||
rv = 2;
|
||||
} else {
|
||||
rv = 1;
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8024BF50-8024BFEC 246890 009C+00 1/0 0/0 0/0 .text
|
||||
* query041__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dMsgFlow_c::query041(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_flow/query041__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s"
|
||||
int dMsgFlow_c::query041(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) {
|
||||
u16 uVar2 = *(u16*)param_0->params;
|
||||
u8 iVar4 = dComIfGs_getTmpReg(0xfbff);
|
||||
u8 bombNum = dComIfGs_getBombNum(iVar4 - 1);
|
||||
return dComIfGs_getBombMax(WATER_BOMB) >= bombNum + uVar2;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8024BFEC-8024C0A8 24692C 00BC+00 1/0 0/0 0/0 .text
|
||||
* query042__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
|
||||
@@ -1627,14 +1642,23 @@ int dMsgFlow_c::query044(mesg_flow_node_branch*, fopAc_ac_c*, int) {
|
||||
|
||||
/* 8024C18C-8024C218 246ACC 008C+00 1/0 0/0 0/0 .text
|
||||
* query045__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dMsgFlow_c::query045(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_flow/query045__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s"
|
||||
int dMsgFlow_c::query045(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) {
|
||||
u8 insectNum = dComIfGs_checkGetInsectNum();
|
||||
u8 rv = 0;
|
||||
if (insectNum == 0) {
|
||||
rv = 0;
|
||||
} else if (insectNum >= 1 && insectNum <= 11) {
|
||||
rv = 1;
|
||||
} else if (insectNum >= 12 && insectNum <= 22) {
|
||||
rv = 2;
|
||||
} else if (insectNum == 23) {
|
||||
rv = 3;
|
||||
} else if (insectNum == 24) {
|
||||
rv = 4;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8024C218-8024C248 246B58 0030+00 1/0 0/0 0/0 .text
|
||||
* query046__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */
|
||||
@@ -2094,6 +2118,12 @@ int dMsgFlow_c::event020(mesg_flow_node_event* flow_node, fopAc_ac_c* actor) {
|
||||
|
||||
/* 8024CD84-8024CDAC 2476C4 0028+00 1/0 0/0 0/0 .text
|
||||
* event021__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
|
||||
#ifdef NONMATCHING
|
||||
int dMsgFlow_c::event021(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) {
|
||||
cLib_calcTimer(&field_0x3c);
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -2102,6 +2132,7 @@ asm int dMsgFlow_c::event021(mesg_flow_node_event* param_0, fopAc_ac_c* param_1)
|
||||
#include "asm/d/msg/d_msg_flow/event021__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80454DA8-80454DAC 0033A8 0004+00 1/1 0/0 0/0 .sdata2 @6273 */
|
||||
@@ -2435,6 +2466,29 @@ asm int dMsgFlow_c::event032(mesg_flow_node_event* param_0, fopAc_ac_c* param_1)
|
||||
|
||||
/* 8024D6BC-8024D788 247FFC 00CC+00 1/0 0/0 0/0 .text
|
||||
* event033__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
|
||||
#ifdef NONMATCHING
|
||||
// Matches with literals
|
||||
int dMsgFlow_c::event033(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) {
|
||||
u16 uVar1;
|
||||
u16 uVar2;
|
||||
GXColor color;
|
||||
|
||||
getParam(&uVar2, &uVar1, param_0->params);
|
||||
if (uVar1 + 1 == field_0x3c) {
|
||||
if (uVar2 == 0) {
|
||||
color.r = 0;
|
||||
color.g = 0;
|
||||
color.b = 0;
|
||||
color.a = 0;
|
||||
} else {
|
||||
color = g_saftyWhiteColor;
|
||||
}
|
||||
mDoGph_gInf_c::fadeOut(1.0f / uVar1, color);
|
||||
}
|
||||
cLib_calcTimer(&field_0x3c);
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -2443,6 +2497,7 @@ asm int dMsgFlow_c::event033(mesg_flow_node_event* param_0, fopAc_ac_c* param_1)
|
||||
#include "asm/d/msg/d_msg_flow/event033__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8024D788-8024D7C8 2480C8 0040+00 1/0 0/0 0/0 .text
|
||||
* event034__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */
|
||||
|
||||
@@ -793,11 +793,10 @@ void COutFont_c::reset(J2DTextBox* p_textBox) {
|
||||
|
||||
/* 80228490-80228530 222DD0 00A0+00 1/1 0/0 0/0 .text setBlendAnime__10COutFont_cFP10J2DPictures
|
||||
*/
|
||||
// regalloc
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void COutFont_c::setBlendAnime(J2DPicture* param_0, s16 param_1) {
|
||||
s32 iVar5 = param_1;
|
||||
iVar5 = 0x14 - iVar5 / 0x14 * 0x14;
|
||||
int iVar5 = param_1 % 0x14;
|
||||
if (iVar5 < 10) {
|
||||
f32 dVar6 = fopMsgM_valueIncrease(10, iVar5, 0);
|
||||
param_0->setBlendRatio(1.0f - dVar6, dVar6);
|
||||
|
||||
+24
-166
@@ -18,6 +18,8 @@
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include "m_Do/m_Do_machine.h"
|
||||
#include "dolphin/os/OSRtc.h"
|
||||
#include "dolphin/vi/vi.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
@@ -34,123 +36,10 @@ public:
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__10dLog_HIO_cFv();
|
||||
extern "C" void preLoad_dyl_create__10dScnLogo_cFv();
|
||||
extern "C" void preLoad_dyl_remove__10dScnLogo_cFv();
|
||||
extern "C" void preLoad_dyl__10dScnLogo_cFv();
|
||||
extern "C" void checkProgSelect__10dScnLogo_cFv();
|
||||
extern "C" void draw__10dScnLogo_cFv();
|
||||
extern "C" void progInDraw__10dScnLogo_cFv();
|
||||
extern "C" void progSelDraw__10dScnLogo_cFv();
|
||||
extern "C" void progOutDraw__10dScnLogo_cFv();
|
||||
extern "C" void progSetDraw__10dScnLogo_cFv();
|
||||
extern "C" void progSet2Draw__10dScnLogo_cFv();
|
||||
extern "C" void progChangeDraw__10dScnLogo_cFv();
|
||||
extern "C" void warningInDraw__10dScnLogo_cFv();
|
||||
extern "C" void warningDispDraw__10dScnLogo_cFv();
|
||||
extern "C" void warningOutDraw__10dScnLogo_cFv();
|
||||
extern "C" void nintendoInDraw__10dScnLogo_cFv();
|
||||
extern "C" void nintendoOutDraw__10dScnLogo_cFv();
|
||||
extern "C" void dolbyInDraw__10dScnLogo_cFv();
|
||||
extern "C" void dolbyOutDraw__10dScnLogo_cFv();
|
||||
extern "C" void dolbyOutDraw2__10dScnLogo_cFv();
|
||||
extern "C" void dvdWaitDraw__10dScnLogo_cFv();
|
||||
extern "C" void nextSceneChange__10dScnLogo_cFv();
|
||||
extern "C" void __dt__10dScnLogo_cFv();
|
||||
extern "C" static void phase_0__FP10dScnLogo_c();
|
||||
extern "C" static void phase_1__FP10dScnLogo_c();
|
||||
extern "C" static void phase_2__FP10dScnLogo_c();
|
||||
extern "C" static void resLoad__FP30request_of_phase_process_classP10dScnLogo_c();
|
||||
extern "C" void create__10dScnLogo_cFv();
|
||||
extern "C" void logoInitGC__10dScnLogo_cFv();
|
||||
extern "C" void dvdDataLoad__10dScnLogo_cFv();
|
||||
extern "C" static void dScnLogo_Create__FP11scene_class();
|
||||
extern "C" static void dScnLogo_Execute__FP10dScnLogo_c();
|
||||
extern "C" static void dScnLogo_Draw__FP10dScnLogo_c();
|
||||
extern "C" static void dScnLogo_Delete__FP10dScnLogo_c();
|
||||
extern "C" static bool dScnLogo_IsDelete__FP10dScnLogo_c();
|
||||
extern "C" void setProgressiveMode__10dScnLogo_cFUc();
|
||||
extern "C" void getProgressiveMode__10dScnLogo_cFv();
|
||||
extern "C" void isProgressiveMode__10dScnLogo_cFv();
|
||||
extern "C" void setRenderMode__10dScnLogo_cFv();
|
||||
extern "C" void __dt__10dLog_HIO_cFv();
|
||||
extern "C" void func_802585A4(u16*);
|
||||
extern "C" void __sinit_d_s_logo_cpp();
|
||||
extern "C" extern char const* const d_s_d_s_logo__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoExt_getGameHeap__Fv();
|
||||
extern "C" void mDoExt_getJ2dHeap__Fv();
|
||||
extern "C" void mDoExt_setCurrentHeap__FP7JKRHeap();
|
||||
extern "C" void mDoExt_getMesgFont__Fv();
|
||||
extern "C" void mDoExt_getRubyFont__Fv();
|
||||
extern "C" void mDoExt_getSubFont__Fv();
|
||||
extern "C" void mDoExt_setAraCacheSize__FUl();
|
||||
extern "C" void mDoRst_reset__FiUli();
|
||||
extern "C" void mDoRst_resetCallBack__FiPv();
|
||||
extern "C" void create__25mDoDvdThd_mountXArchive_cFPCcUcQ210JKRArchive10EMountModeP7JKRHeap();
|
||||
extern "C" void create__21mDoDvdThd_toMainRam_cFPCcUcP7JKRHeap();
|
||||
extern "C" void cDyl_InitAsyncIsDone__Fv();
|
||||
extern "C" void Link__7cDylPhsFP30request_of_phase_process_classs();
|
||||
extern "C" void fopScnM_ChangeReq__FP11scene_classssUs();
|
||||
extern "C" void createParticle__14dComIfG_play_cFv();
|
||||
extern "C" void dComIfG_changeOpeningScene__FP11scene_classs();
|
||||
extern "C" void dComLbG_PhaseHandler__FP30request_of_phase_process_classPPFPv_iPv();
|
||||
extern "C" void setRes__14dRes_control_cFPCcP11dRes_info_ciPCcUcP7JKRHeap();
|
||||
extern "C" void deleteRes__14dRes_control_cFPCcP11dRes_info_ci();
|
||||
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
|
||||
extern "C" void syncAllRes__14dRes_control_cFP11dRes_info_ci();
|
||||
extern "C" void createWork__8dMpath_cFv();
|
||||
extern "C" void createCommon__13dPa_control_cFPCv();
|
||||
extern "C" void __ct__10dDlst_2D_cFP7ResTIMGssssUc();
|
||||
extern "C" void setSimpleTex__21dDlst_shadowControl_cFPC7ResTIMG();
|
||||
extern "C" void set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c();
|
||||
extern "C" void createWork__7dTres_cFv();
|
||||
extern "C" void waitBlanking__10JFWDisplayFi();
|
||||
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void loadStaticWaves__10Z2SceneMgrFv();
|
||||
extern "C" bool checkFirstWaves__10Z2SceneMgrFv();
|
||||
extern "C" void resetProcess__10Z2AudioMgrFUlb();
|
||||
extern "C" void becomeCurrentHeap__7JKRHeapFv();
|
||||
extern "C" void destroy__7JKRHeapFv();
|
||||
extern "C" void alloc__7JKRHeapFUli();
|
||||
extern "C" void free__7JKRHeapFPvP7JKRHeap();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void* __nwa__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __dla__FPv();
|
||||
extern "C" void create__10JKRExpHeapFUlP7JKRHeapb();
|
||||
extern "C" void create__10JKRExpHeapFPvUlP7JKRHeapb();
|
||||
extern "C" void getTotalFreeSize__11JKRAramHeapFv();
|
||||
extern "C" void __dt__10J2DPictureFv();
|
||||
extern "C" u32 OSGetProgressiveMode();
|
||||
extern "C" void OSSetProgressiveMode(u32);
|
||||
extern "C" u32 VIGetDTVStatus();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void __ptmf_scall();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
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__10dDlst_2D_c[3];
|
||||
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
|
||||
extern "C" void* mRenderModeObj__15mDoMch_render_c[1 + 1 /* padding */];
|
||||
extern "C" extern u8 mInitFlag__17mDoAud_zelAudio_c[4];
|
||||
extern "C" u8 mFader__13mDoGph_gInf_c[4];
|
||||
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
|
||||
extern "C" u8 mData__12dEnemyItem_c[4 + 4 /* padding */];
|
||||
extern "C" u8 sManager__10JFWDisplay[4];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
extern "C" u8 sAramObject__7JKRAram[4];
|
||||
extern "C" u8 sCallback__Q210JUTGamePad13C3ButtonReset[4];
|
||||
extern "C" u8 sCallbackArg__Q210JUTGamePad13C3ButtonReset[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
@@ -158,7 +47,7 @@ extern "C" u8 sCallbackArg__Q210JUTGamePad13C3ButtonReset[4 + 4 /* padding */];
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C2E38-803C2E44 01FF58 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,
|
||||
};
|
||||
|
||||
@@ -166,7 +55,7 @@ SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
|
||||
static dLog_HIO_c g_LogHIO;
|
||||
|
||||
typedef void (dScnLogo_c::*execFunc)();
|
||||
SECTION_DATA static execFunc l_execFunc[16] = {
|
||||
static execFunc l_execFunc[16] = {
|
||||
&dScnLogo_c::warningInDraw, &dScnLogo_c::warningDispDraw, &dScnLogo_c::warningOutDraw,
|
||||
&dScnLogo_c::nintendoInDraw, &dScnLogo_c::nintendoOutDraw, &dScnLogo_c::dolbyInDraw,
|
||||
&dScnLogo_c::dolbyOutDraw, &dScnLogo_c::dolbyOutDraw2, &dScnLogo_c::progInDraw,
|
||||
@@ -632,8 +521,6 @@ dScnLogo_c::~dScnLogo_c() {
|
||||
}
|
||||
|
||||
/* 80257910-802579BC 252250 00AC+00 1/0 0/0 0/0 .text phase_0__FP10dScnLogo_c */
|
||||
// setFadeColor instruction reordering
|
||||
#ifdef NONMATCHING
|
||||
static int phase_0(dScnLogo_c* logo) {
|
||||
mDoGph_gInf_c::setFadeColor(*(JUtility::TColor*)&g_blackColor);
|
||||
dComIfGp_particle_create();
|
||||
@@ -644,16 +531,6 @@ static int phase_0(dScnLogo_c* logo) {
|
||||
|
||||
return 2;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm int phase_0(dScnLogo_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_logo/phase_0__FP10dScnLogo_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802579BC-80257A70 2522FC 00B4+00 1/0 0/0 0/0 .text phase_1__FP10dScnLogo_c */
|
||||
static int phase_1(dScnLogo_c* logo) {
|
||||
@@ -666,7 +543,7 @@ static int phase_1(dScnLogo_c* logo) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
dComIfG_setObjectRes("LogoUs", 0, logo->field_0x1d0);
|
||||
dComIfG_setObjectRes("LogoUs", (u8)0, logo->field_0x1d0);
|
||||
mDoRst::setLogoScnFlag(1);
|
||||
archiveHeap->dump_sort();
|
||||
return 2;
|
||||
@@ -761,10 +638,10 @@ void dScnLogo_c::logoInitGC() {
|
||||
|
||||
/* 80257FEC-80258420 25292C 0434+00 1/1 0/0 0/0 .text dvdDataLoad__10dScnLogo_cFv */
|
||||
void dScnLogo_c::dvdDataLoad() {
|
||||
dComIfG_setObjectRes("Always", 0, NULL);
|
||||
dComIfG_setObjectRes("Always", (u8)0, NULL);
|
||||
archiveHeap->dump_sort();
|
||||
|
||||
dComIfG_setObjectRes("Alink", 0, NULL);
|
||||
dComIfG_setObjectRes("Alink", (u8)0, NULL);
|
||||
|
||||
mpField0Command = mDoDvdThd_mountXArchive_c::create(
|
||||
"/res/FieldMap/Field0.arc", 0, JKRArchive::MOUNT_ARAM, mDoExt_getJ2dHeap());
|
||||
@@ -822,20 +699,9 @@ void dScnLogo_c::dvdDataLoad() {
|
||||
}
|
||||
|
||||
/* 80258420-80258444 252D60 0024+00 1/0 0/0 0/0 .text dScnLogo_Create__FP11scene_class */
|
||||
#ifdef NONMATCHING
|
||||
static int dScnLogo_Create(scene_class* scn) {
|
||||
return static_cast<dScnLogo_c*>(scn)->create();
|
||||
return (new (scn) dScnLogo_c())->create();
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dScnLogo_Create(scene_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_logo/dScnLogo_Create__FP11scene_class.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80258444-80258484 252D84 0040+00 1/0 0/0 0/0 .text dScnLogo_Execute__FP10dScnLogo_c */
|
||||
static int dScnLogo_Execute(dScnLogo_c* logo) {
|
||||
@@ -889,34 +755,26 @@ void dScnLogo_c::setRenderMode() {
|
||||
/* 8025855C-802585A4 252E9C 0048+00 2/1 0/0 0/0 .text __dt__10dLog_HIO_cFv */
|
||||
dLog_HIO_c::~dLog_HIO_c() {}
|
||||
|
||||
/* 802585A4-802585C0 252EE4 001C+00 1/1 0/0 0/0 .text cLib_calcTimer<Us>__FPUs */
|
||||
template <typename T>
|
||||
T cLib_calcTimer(T* value) {
|
||||
if (*value != 0) {
|
||||
*value = *value - 1;
|
||||
}
|
||||
return *value;
|
||||
}
|
||||
|
||||
/* 803C2FD0-803C2FE4 -00001 0014+00 1/0 0/0 0/0 .data l_dScnLogo_Method */
|
||||
SECTION_DATA static void* l_dScnLogo_Method[5] = {
|
||||
(void*)dScnLogo_Create__FP11scene_class, (void*)dScnLogo_Delete__FP10dScnLogo_c,
|
||||
(void*)dScnLogo_Execute__FP10dScnLogo_c, (void*)dScnLogo_IsDelete__FP10dScnLogo_c,
|
||||
(void*)dScnLogo_Draw__FP10dScnLogo_c,
|
||||
static dScnLogo_Method l_dScnLogo_Method[5] = {
|
||||
(dScnLogo_Method) dScnLogo_Create, dScnLogo_Delete,
|
||||
dScnLogo_Execute, dScnLogo_IsDelete,
|
||||
dScnLogo_Draw,
|
||||
};
|
||||
|
||||
/* 803C2FE4-803C300C -00001 0028+00 0/0 0/0 1/0 .data g_profile_LOGO_SCENE */
|
||||
SECTION_DATA extern void* g_profile_LOGO_SCENE[10] = {
|
||||
(void*)NULL,
|
||||
(void*)0x0001FFFD,
|
||||
(void*)0x00090000,
|
||||
(void*)&g_fpcNd_Method,
|
||||
(void*)0x000002A8,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)&g_fopScn_Method,
|
||||
(void*)&l_dScnLogo_Method,
|
||||
(void*)NULL,
|
||||
extern scene_process_profile_definition g_profile_LOGO_SCENE = {
|
||||
0,
|
||||
1,
|
||||
-3,
|
||||
PROC_LOGO_SCENE,
|
||||
&g_fpcNd_Method.mBase,
|
||||
sizeof(dScnLogo_c),
|
||||
0,
|
||||
0,
|
||||
&g_fopScn_Method.mBase,
|
||||
(process_method_class*)&l_dScnLogo_Method,
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 80399FFC-80399FFC 02665C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
+58
-263
@@ -8,10 +8,9 @@
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/meter/d_meter2_info.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_overlap_mng.h"
|
||||
#include "f_op/f_op_scene.h"
|
||||
#include "f_op/f_op_scene_mng.h"
|
||||
#include "f_pc/f_pc_manager.h"
|
||||
#include "global.h"
|
||||
#include "m_Do/m_Do_Reset.h"
|
||||
@@ -33,12 +32,7 @@ public:
|
||||
/* 0x5 */ u8 mFileSelWaitTime;
|
||||
};
|
||||
|
||||
class dScnName_camera_c : public camera_process_class {
|
||||
public:
|
||||
dScnName_camera_c() { field_0x22f = 84; }
|
||||
/* 80259294 */ virtual ~dScnName_camera_c() {}
|
||||
};
|
||||
|
||||
// TODO: Remove when dFile_select_c virtual functions are properly defined in header
|
||||
class dFile_select_c {
|
||||
public:
|
||||
/* 8018366C */ dFile_select_c(JKRArchive*);
|
||||
@@ -67,6 +61,7 @@ private:
|
||||
/* 0x2375 */ u8 field_0x2375[0x237c - 0x2375];
|
||||
};
|
||||
|
||||
// TODO: Remove when dBrightCheck_c virtual functions are properly defined in header
|
||||
class dBrightCheck_c {
|
||||
public:
|
||||
/* 80192F10 */ dBrightCheck_c(JKRArchive*);
|
||||
@@ -80,129 +75,19 @@ public:
|
||||
/* 0x19 */ bool mEnd;
|
||||
};
|
||||
|
||||
class dScnName_c : public scene_class {
|
||||
public:
|
||||
dScnName_c() {}
|
||||
|
||||
/* 802588A0 */ s32 create();
|
||||
/* 80258B2C */ void setView();
|
||||
/* 80258BC8 */ s32 execute();
|
||||
/* 80258C5C */ s32 draw();
|
||||
/* 80258CC8 */ ~dScnName_c();
|
||||
/* 80258DD0 */ void FileSelectOpen();
|
||||
/* 80258E34 */ void FileSelectMain();
|
||||
/* 80258E78 */ void FileSelectMainNormal();
|
||||
/* 80258F20 */ void FileSelectClose();
|
||||
/* 80258FD4 */ void brightCheckOpen();
|
||||
/* 80259008 */ void brightCheck();
|
||||
/* 802590F8 */ void changeGameScene();
|
||||
|
||||
private:
|
||||
/* 0x1C4 */ request_of_phase_process_class field_0x1c4;
|
||||
/* 0x1CC */ JKRExpHeap* mHeap;
|
||||
/* 0x1D0 */ JKRExpHeap* field_0x1d0;
|
||||
/* 0x1D4 */ dScnName_camera_c mCamera;
|
||||
/* 0x414 */ dFile_select_c* dFs_c;
|
||||
/* 0x418 */ dBrightCheck_c* mBrightCheck;
|
||||
/* 0x41C */ u8 field_0x41c;
|
||||
/* 0x41D */ u8 field_0x41d;
|
||||
/* 0x41E */ u8 field_0x41e;
|
||||
/* 0x41F */ u8 field_0x41f;
|
||||
/* 0x420 */ u8 field_0x420;
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__9dSn_HIO_cFv();
|
||||
extern "C" static void phase_1__FPc();
|
||||
extern "C" static void phase_2__FPc();
|
||||
extern "C" static void resLoad__FP30request_of_phase_process_classPc();
|
||||
extern "C" void create__10dScnName_cFv();
|
||||
extern "C" void setView__10dScnName_cFv();
|
||||
extern "C" void execute__10dScnName_cFv();
|
||||
extern "C" void draw__10dScnName_cFv();
|
||||
extern "C" void __dt__10dScnName_cFv();
|
||||
extern "C" void FileSelectOpen__10dScnName_cFv();
|
||||
extern "C" void FileSelectMain__10dScnName_cFv();
|
||||
extern "C" void FileSelectMainNormal__10dScnName_cFv();
|
||||
extern "C" void FileSelectClose__10dScnName_cFv();
|
||||
extern "C" void brightCheckOpen__10dScnName_cFv();
|
||||
extern "C" void brightCheck__10dScnName_cFv();
|
||||
extern "C" void changeGameScene__10dScnName_cFv();
|
||||
extern "C" static void dScnName_Draw__FP10dScnName_c();
|
||||
extern "C" static void dScnName_Execute__FP10dScnName_c();
|
||||
extern "C" static void dScnName_IsDelete__FP10dScnName_c();
|
||||
extern "C" static void dScnName_Delete__FP10dScnName_c();
|
||||
extern "C" static void dScnName_Create__FP11scene_class();
|
||||
extern "C" void __dt__17dScnName_camera_cFv();
|
||||
extern "C" void __dt__9dSn_HIO_cFv();
|
||||
extern "C" void __sinit_d_s_name_cpp();
|
||||
extern "C" extern char const* const d_s_d_s_name__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_lookAt__FPA4_fPC3VecPC3Vecs();
|
||||
extern "C" void mDoMtx_concatProjView__FPA4_CfPA4_CfPA4_f();
|
||||
extern "C" void mDoExt_getGameHeap__Fv();
|
||||
extern "C" void mDoExt_setCurrentHeap__FP7JKRHeap();
|
||||
extern "C" void fopOvlpM_IsPeek__Fv();
|
||||
extern "C" void fopScnM_ChangeReq__FP11scene_classssUs();
|
||||
extern "C" void dComIfG_resetToOpening__FP11scene_class();
|
||||
extern "C" void dComIfGp_setNextStage__FPCcsScSc();
|
||||
extern "C" void dComIfGs_gameStart__Fv();
|
||||
extern "C" void dComLbG_PhaseHandler__FP30request_of_phase_process_classPPFPv_iPv();
|
||||
extern "C" void offFirstBit__21dSv_player_get_item_cFUc();
|
||||
extern "C" void setRes__14dRes_control_cFPCcP11dRes_info_ciPCcUcP7JKRHeap();
|
||||
extern "C" void syncRes__14dRes_control_cFPCcP11dRes_info_ci();
|
||||
extern "C" void deleteRes__14dRes_control_cFPCcP11dRes_info_ci();
|
||||
extern "C" void getResInfo__14dRes_control_cFPCcP11dRes_info_ci();
|
||||
extern "C" void cleanup__13dPa_control_cFv();
|
||||
extern "C" void setViewPort__14dDlst_window_cFffffff();
|
||||
extern "C" void setScissor__14dDlst_window_cFffff();
|
||||
extern "C" void Run__12dVibration_cFv();
|
||||
extern "C" void Init__12dVibration_cFv();
|
||||
extern "C" void __ct__14dFile_select_cFP10JKRArchive();
|
||||
extern "C" void _create__14dFile_select_cFv();
|
||||
extern "C" void _move__14dFile_select_cFv();
|
||||
extern "C" void _draw__14dFile_select_cFv();
|
||||
extern "C" void __ct__14dBrightCheck_cFP10JKRArchive();
|
||||
extern "C" void _move__14dBrightCheck_cFv();
|
||||
extern "C" void _draw__14dBrightCheck_cFv();
|
||||
extern "C" void dKy_clear_game_init__Fv();
|
||||
extern "C" void dKy_setLight_init__Fv();
|
||||
extern "C" void changeWater__13dMeter2Info_cFUc();
|
||||
extern "C" void bgmStart__8Z2SeqMgrFUlUll();
|
||||
extern "C" void bgmStop__8Z2SeqMgrFUll();
|
||||
extern "C" void bgmStreamPrepare__8Z2SeqMgrFUl();
|
||||
extern "C" void bgmStreamPlay__8Z2SeqMgrFv();
|
||||
extern "C" void becomeCurrentHeap__7JKRHeapFv();
|
||||
extern "C" void destroy__7JKRHeapFv();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void create__10JKRExpHeapFUlP7JKRHeapb();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void __ptmf_scall();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _restgpr_28();
|
||||
// extern "C" extern void* g_fopScn_Method[5 + 1 /* padding */];
|
||||
// extern "C" extern void* g_fpcNd_Method[5 + 1 /* padding */];
|
||||
extern "C" void* mRenderModeObj__15mDoMch_render_c[1 + 1 /* padding */];
|
||||
extern "C" u8 mFader__13mDoGph_gInf_c[4];
|
||||
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
|
||||
extern "C" u8 sManager__10JFWDisplay[4];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C3040-803C304C 020160 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,
|
||||
};
|
||||
|
||||
@@ -211,46 +96,11 @@ static dSn_HIO_c g_snHIO;
|
||||
|
||||
/* 803C3094-803C30DC 0201B4 0048+00 1/2 0/0 0/0 .data MainProc */
|
||||
typedef void (dScnName_c::*mainProcFunc)(void);
|
||||
SECTION_DATA static mainProcFunc MainProc[6] = {
|
||||
static mainProcFunc MainProc[6] = {
|
||||
&dScnName_c::FileSelectOpen, &dScnName_c::FileSelectMain, &dScnName_c::FileSelectClose,
|
||||
&dScnName_c::brightCheckOpen, &dScnName_c::brightCheck, &dScnName_c::changeGameScene,
|
||||
};
|
||||
|
||||
/* 803C30DC-803C30F0 -00001 0014+00 2/0 0/0 0/0 .data l_dScnName_Method */
|
||||
SECTION_DATA static void* l_dScnName_Method[5] = {
|
||||
(void*)dScnName_Create__FP11scene_class, (void*)dScnName_Delete__FP10dScnName_c,
|
||||
(void*)dScnName_Execute__FP10dScnName_c, (void*)dScnName_IsDelete__FP10dScnName_c,
|
||||
(void*)dScnName_Draw__FP10dScnName_c,
|
||||
};
|
||||
|
||||
/* 803C30F0-803C3118 -00001 0028+00 0/0 0/0 1/0 .data g_profile_NAME_SCENE */
|
||||
SECTION_DATA extern void* g_profile_NAME_SCENE[10] = {
|
||||
(void*)NULL,
|
||||
(void*)0x0001FFFD,
|
||||
(void*)0x000D0000,
|
||||
(void*)&g_fpcNd_Method,
|
||||
(void*)0x00000424,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)&g_fopScn_Method,
|
||||
(void*)&l_dScnName_Method,
|
||||
(void*)NULL,
|
||||
};
|
||||
|
||||
/* 803C3118-803C3140 -00001 0028+00 0/0 0/0 1/0 .data g_profile_NAMEEX_SCENE */
|
||||
SECTION_DATA extern void* g_profile_NAMEEX_SCENE[10] = {
|
||||
(void*)NULL,
|
||||
(void*)0x0001FFFD,
|
||||
(void*)0x000E0000,
|
||||
(void*)&g_fpcNd_Method,
|
||||
(void*)0x00000424,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)&g_fopScn_Method,
|
||||
(void*)&l_dScnName_Method,
|
||||
(void*)NULL,
|
||||
};
|
||||
|
||||
/* 8025878C-802587A4 2530CC 0018+00 1/1 0/0 0/0 .text __ct__9dSn_HIO_cFv */
|
||||
dSn_HIO_c::dSn_HIO_c() {
|
||||
mFileSelWaitTime = 15;
|
||||
@@ -259,7 +109,7 @@ dSn_HIO_c::dSn_HIO_c() {
|
||||
/* 802587A4-80258820 2530E4 007C+00 1/0 0/0 0/0 .text phase_1__FPc */
|
||||
static s32 phase_1(char* resName) {
|
||||
mDoAud_bgmStart(-1);
|
||||
if (dComIfG_setObjectRes(resName, 0, NULL) == 0) {
|
||||
if (dComIfG_setObjectRes(resName, (u8)0, NULL) == 0) {
|
||||
return 5;
|
||||
}
|
||||
|
||||
@@ -286,47 +136,12 @@ static s32 resLoad(request_of_phase_process_class* i_phase, char* param_1) {
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8039A2A8-8039A2A8 026908 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_8039A2B5 = "fileSel";
|
||||
#pragma pop
|
||||
|
||||
/* 80454EF8-80454EFC 0034F8 0004+00 2/2 0/0 0/0 .sdata2 @3923 */
|
||||
SECTION_SDATA2 static u8 lit_3923[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* 80454EFC-80454F00 0034FC 0004+00 1/1 0/0 0/0 .sdata2 @3924 */
|
||||
SECTION_SDATA2 static f32 lit_3924 = 1.0f;
|
||||
|
||||
/* 80454F00-80454F04 003500 0004+00 1/1 0/0 0/0 .sdata2 @3925 */
|
||||
SECTION_SDATA2 static f32 lit_3925 = 100000.0f;
|
||||
|
||||
/* 80454F04-80454F08 003504 0004+00 1/1 0/0 0/0 .sdata2 @3926 */
|
||||
SECTION_SDATA2 static f32 lit_3926 = 45.0f;
|
||||
|
||||
/* 80454F08-80454F0C 003508 0004+00 1/1 0/0 0/0 .sdata2 @3927 */
|
||||
SECTION_SDATA2 static f32 lit_3927 = 19.0f / 14.0f;
|
||||
|
||||
/* 80454F0C-80454F10 00350C 0004+00 1/1 0/0 0/0 .sdata2 @3928 */
|
||||
SECTION_SDATA2 static f32 lit_3928 = -1000.0f;
|
||||
|
||||
/* 80454F10-80454F18 003510 0008+00 1/1 0/0 0/0 .sdata2 @3930 */
|
||||
SECTION_SDATA2 static f64 lit_3930 = 4503599627370496.0 /* cast u32 to float */;
|
||||
|
||||
/* 802588A0-80258B2C 2531E0 028C+00 1/1 0/0 0/0 .text create__10dScnName_cFv */
|
||||
#ifdef NONMATCHING
|
||||
s32 dScnName_c::create() {
|
||||
int phase_state = resLoad(&field_0x1c4, "fileSel");
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
mHeap = JKRExpHeap::create(0x180000, mDoExt_getGameHeap(), false);
|
||||
JKRExpHeap* heap = mHeap;
|
||||
mDoExt_setCurrentHeap(heap);
|
||||
field_0x1d0 = heap;
|
||||
field_0x1d0 = (JKRExpHeap*)mDoExt_setCurrentHeap(mHeap);
|
||||
|
||||
dRes_info_c* res = dComIfG_getObjectResInfo("fileSel");
|
||||
dFs_c = new dFile_select_c(res->getArchive());
|
||||
@@ -346,28 +161,20 @@ s32 dScnName_c::create() {
|
||||
dComIfGp_setWindowNum(1);
|
||||
dComIfGp_setWindow(0, 0.0f, 0.0f, mDoMch_render_c::getFbWidth(),
|
||||
mDoMch_render_c::getEfbHeight(), 0.0f, 1.0f, 0, 2);
|
||||
dComIfGp_setCamera(0, &mCamera);
|
||||
// dDlst_window_c* window = &g_dComIfG_gameInfo.play.mWindow[0];
|
||||
|
||||
/* fopCamM_SetNear(&mCamera, 1.0f);
|
||||
fopCamM_SetFar(&mCamera, 100000.0f);
|
||||
fopCamM_SetFovy(&mCamera, 45.0f);
|
||||
fopCamM_SetAspect(&mCamera, mDoGph_gInf_c::getWidthF() / mDoGph_gInf_c::getHeightF());
|
||||
fopCamM_SetEye(&mCamera, 0.0f, 0.0f, -1000.0f);
|
||||
fopCamM_SetCenter(&mCamera, 0.0f, 0.0f, 0.0f);
|
||||
fopCamM_SetBank(&mCamera, 0); */
|
||||
dDlst_window_c* window = dComIfGp_getWindow(0);
|
||||
dComIfGp_setCamera(0, (camera_class*)&mCamera);
|
||||
|
||||
mCamera.mNear = 1.0f;
|
||||
mCamera.mFar = 100000.0f;
|
||||
mCamera.mFovy = 45.0f;
|
||||
mCamera.mAspect = mDoGph_gInf_c::getWidthF() / mDoGph_gInf_c::getHeightF();
|
||||
mCamera.field_0xd8.mEye.set(0.0f, 0.0f, -1000.0f);
|
||||
mCamera.field_0xd8.mCenter.set(0.0f, 0.0f, 0.0f);
|
||||
mCamera.mLookat.mEye.set(0.0f, 0.0f, -1000.0f);
|
||||
mCamera.mLookat.mCenter.set(0.0f, 0.0f, 0.0f);
|
||||
mCamera.mBank = 0;
|
||||
|
||||
dComIfGp_setPlayer(0, NULL);
|
||||
dComIfGd_setWindow(g_dComIfG_gameInfo.play.mWindow);
|
||||
dComIfGd_setViewport(g_dComIfG_gameInfo.play.mWindow->getViewPort());
|
||||
dComIfGd_setWindow(window);
|
||||
dComIfGd_setViewport(window->getViewPort());
|
||||
dComIfGd_setView(&mCamera);
|
||||
mDoGph_gInf_c::offAutoForcus();
|
||||
setView();
|
||||
@@ -381,16 +188,6 @@ s32 dScnName_c::create() {
|
||||
}
|
||||
return phase_state;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 dScnName_c::create() {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_name/create__10dScnName_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80258B2C-80258BC8 25346C 009C+00 1/1 0/0 0/0 .text setView__10dScnName_cFv */
|
||||
void dScnName_c::setView() {
|
||||
@@ -400,10 +197,9 @@ void dScnName_c::setView() {
|
||||
mCamera.mBank);
|
||||
PSMTXInverse(mCamera.mViewMtx, mCamera.mInvViewMtx);
|
||||
PSMTXCopy(mCamera.mViewMtx, mCamera.mViewMtxNoTrans);
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_3923);
|
||||
mCamera.mViewMtxNoTrans[0][3] = tmp_0;
|
||||
mCamera.mViewMtxNoTrans[1][3] = tmp_0;
|
||||
mCamera.mViewMtxNoTrans[2][3] = tmp_0;
|
||||
mCamera.mViewMtxNoTrans[0][3] = 0.0f;
|
||||
mCamera.mViewMtxNoTrans[1][3] = 0.0f;
|
||||
mCamera.mViewMtxNoTrans[2][3] = 0.0f;
|
||||
PSMTXCopy(mCamera.mViewMtx, j3dSys.mViewMtx);
|
||||
mDoMtx_concatProjView(mCamera.mProjMtx, mCamera.mViewMtx, mCamera.mProjViewMtx);
|
||||
}
|
||||
@@ -474,29 +270,19 @@ void dScnName_c::FileSelectMain() {
|
||||
}
|
||||
|
||||
/* 80258E78-80258F20 2537B8 00A8+00 1/1 0/0 0/0 .text FileSelectMainNormal__10dScnName_cFv */
|
||||
#ifdef NONMATCHING
|
||||
void dScnName_c::FileSelectMainNormal() {
|
||||
if (dFs_c->isSelectEnd() == true) {
|
||||
switch(dFs_c->isSelectEnd()) {
|
||||
case 1:
|
||||
field_0x41e = 15;
|
||||
mDoGph_gInf_c::setFadeColor(*(JUtility::TColor*)&g_blackColor);
|
||||
mDoGph_gInf_c::startFadeOut(15);
|
||||
field_0x41d = 2;
|
||||
field_0x420 = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dScnName_c::FileSelectMainNormal() {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_name/FileSelectMainNormal__10dScnName_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80258F20-80258FD4 253860 00B4+00 1/0 0/0 0/0 .text FileSelectClose__10dScnName_cFv */
|
||||
#ifdef NONMATCHING
|
||||
void dScnName_c::FileSelectClose() {
|
||||
field_0x41e--;
|
||||
|
||||
@@ -509,16 +295,6 @@ void dScnName_c::FileSelectClose() {
|
||||
field_0x420 = 0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dScnName_c::FileSelectClose() {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_name/FileSelectClose__10dScnName_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80258FD4-80259008 253914 0034+00 1/0 0/0 0/0 .text brightCheckOpen__10dScnName_cFv */
|
||||
void dScnName_c::brightCheckOpen() {
|
||||
@@ -552,21 +328,12 @@ void dScnName_c::brightCheck() {
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8039A2A8-8039A2A8 026908 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_8039A2BD = "F_SP108";
|
||||
/* @stringBase0 padding */
|
||||
SECTION_DEAD static char const* const pad_8039A2C5 = "\0\0";
|
||||
#pragma pop
|
||||
|
||||
/* 802590F8-802591C0 253A38 00C8+00 1/0 0/0 0/0 .text changeGameScene__10dScnName_cFv */
|
||||
// weird comparison in changeReq
|
||||
#ifdef NONMATCHING
|
||||
void dScnName_c::changeGameScene() {
|
||||
if (!mDoRst::isReset() && !fopOvlpM_IsPeek()) {
|
||||
dComIfGs_gameStart();
|
||||
fopScnM_ChangeReq(this, field_0x41f == 0 ? PROC_PLAY_SCENE : 10, 0, 5);
|
||||
fopScnM_ChangeReq(this, field_0x41f == 0 ? PROC_PLAY_SCENE : PROC_PLAY_SCENE, 0, 5);
|
||||
dComIfGp_offEnableNextStage();
|
||||
|
||||
if (dFs_c->isDataNew(dFs_c->getSelectNum())) {
|
||||
@@ -577,16 +344,6 @@ void dScnName_c::changeGameScene() {
|
||||
dComIfGs_setRestartRoomParam(0);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dScnName_c::changeGameScene() {
|
||||
nofralloc
|
||||
#include "asm/d/s/d_s_name/changeGameScene__10dScnName_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802591C0-802591E0 253B00 0020+00 1/0 0/0 0/0 .text dScnName_Draw__FP10dScnName_c */
|
||||
static void dScnName_Draw(dScnName_c* scn) {
|
||||
@@ -618,3 +375,41 @@ static void dScnName_Create(scene_class* scn) {
|
||||
}
|
||||
|
||||
/* 8039A2A8-8039A2A8 026908 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
|
||||
/* 803C30DC-803C30F0 -00001 0014+00 2/0 0/0 0/0 .data l_dScnName_Method */
|
||||
static leafdraw_method_class l_dScnName_Method = {
|
||||
(process_method_func)dScnName_Create, (process_method_func)dScnName_Delete,
|
||||
(process_method_func)dScnName_Execute, (process_method_func)dScnName_IsDelete,
|
||||
(process_method_func)dScnName_Draw,
|
||||
};
|
||||
|
||||
/* 803C30F0-803C3118 -00001 0028+00 0/0 0/0 1/0 .data g_profile_NAME_SCENE */
|
||||
extern scene_process_profile_definition g_profile_NAME_SCENE = {
|
||||
0,
|
||||
1,
|
||||
-3,
|
||||
PROC_NAME_SCENE,
|
||||
&g_fpcNd_Method.mBase,
|
||||
sizeof(dScnName_c),
|
||||
0,
|
||||
0,
|
||||
&g_fopScn_Method.mBase,
|
||||
(process_method_class*)&l_dScnName_Method,
|
||||
NULL,
|
||||
};
|
||||
|
||||
/* 803C3118-803C3140 -00001 0028+00 0/0 0/0 1/0 .data g_profile_NAMEEX_SCENE */
|
||||
extern scene_process_profile_definition g_profile_NAMEEX_SCENE = {
|
||||
0,
|
||||
1,
|
||||
-3,
|
||||
PROC_NAMEEX_SCENE,
|
||||
&g_fpcNd_Method.mBase,
|
||||
sizeof(dScnName_c),
|
||||
0,
|
||||
0,
|
||||
&g_fopScn_Method.mBase,
|
||||
(process_method_class*)&l_dScnName_Method,
|
||||
NULL,
|
||||
};
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "m_Do/m_Do_Reset.h"
|
||||
#include "m_Do/m_Do_audio.h"
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include "d/d_eye_hl.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
@@ -387,7 +388,7 @@ asm dScnPly_env_debugHIO_c::dScnPly_env_debugHIO_c() {
|
||||
SECTION_SDATA2 static u32 lit_4100 = 0x2A1E46FF;
|
||||
|
||||
/* 802594AC-802597B8 253DEC 030C+00 1/0 0/0 0/0 .text dScnPly_Draw__FP9dScnPly_c */
|
||||
// some small issues like instruction reordering
|
||||
// bool comparison issues
|
||||
#ifdef NONMATCHING
|
||||
static int dScnPly_Draw(dScnPly_c* scn) {
|
||||
dComIfG_Ccsp()->Move();
|
||||
@@ -425,7 +426,7 @@ static int dScnPly_Draw(dScnPly_c* scn) {
|
||||
}
|
||||
dMdl_mng_c::reset();
|
||||
|
||||
if (!dComIfGp_isPauseFlag() && pauseTimer == 0) {
|
||||
if (!dComIfGp_isPauseFlag() && dScnPly_c::pauseTimer == 0) {
|
||||
if (fpcM_GetName(scn) == PROC_PLAY_SCENE) {
|
||||
dComIfGp_getVibration().Run();
|
||||
}
|
||||
@@ -436,9 +437,9 @@ static int dScnPly_Draw(dScnPly_c* scn) {
|
||||
cCt_execCounter();
|
||||
} else {
|
||||
dPa_control_c::onStatus(1);
|
||||
if (pauseTimer == 0) {
|
||||
if (dScnPly_c::pauseTimer == 0) {
|
||||
dPa_control_c::onStatus(2);
|
||||
if (pauseTimer == 0) {
|
||||
if (dScnPly_c::pauseTimer == 0) {
|
||||
dComIfGp_getVibration().Pause();
|
||||
}
|
||||
}
|
||||
@@ -770,9 +771,9 @@ static int phase_1_0(dScnPly_c* param_0) {
|
||||
return cPhs_ZERO_e;
|
||||
} else {
|
||||
dStage_infoCreate();
|
||||
dComIfG_setObjectRes("Event", 0, NULL);
|
||||
dComIfG_setObjectRes("Event", (u8)0, NULL);
|
||||
dComIfGp_setCameraParamFileName(0, camparamarc);
|
||||
dComIfG_setObjectRes("CamParam", 0, NULL);
|
||||
dComIfG_setObjectRes("CamParam", (u8)0, NULL);
|
||||
return cPhs_TWO_e;
|
||||
}
|
||||
}
|
||||
|
||||
+127
-549
@@ -5,651 +5,229 @@
|
||||
|
||||
#include "d/save/d_save_HIO.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__29dSvBit_childSwPerfectionHIO_cFv();
|
||||
extern "C" void init__29dSvBit_childSwPerfectionHIO_cFv();
|
||||
extern "C" void __ct__26dSvBit_childSwDungeonHIO_cFv();
|
||||
extern "C" void init__26dSvBit_childSwDungeonHIO_cFv();
|
||||
extern "C" void __ct__23dSvBit_childSwZoneHIO_cFv();
|
||||
extern "C" void init__23dSvBit_childSwZoneHIO_cFv();
|
||||
extern "C" void __ct__26dSvBit_childSwOneZoneHIO_cFv();
|
||||
extern "C" void init__26dSvBit_childSwOneZoneHIO_cFv();
|
||||
extern "C" void __ct__29dSvBit_childItPerfectionHIO_cFv();
|
||||
extern "C" void init__29dSvBit_childItPerfectionHIO_cFv();
|
||||
extern "C" void __ct__26dSvBit_childItDungeonHIO_cFv();
|
||||
extern "C" void init__26dSvBit_childItDungeonHIO_cFv();
|
||||
extern "C" void __ct__23dSvBit_childItZoneHIO_cFv();
|
||||
extern "C" void init__23dSvBit_childItZoneHIO_cFv();
|
||||
extern "C" void __ct__26dSvBit_childItOneZoneHIO_cFv();
|
||||
extern "C" void init__26dSvBit_childItOneZoneHIO_cFv();
|
||||
extern "C" void __ct__29dSvBit_childTbPerfectionHIO_cFv();
|
||||
extern "C" void init__29dSvBit_childTbPerfectionHIO_cFv();
|
||||
extern "C" void __ct__25dSvBit_childDarknessHIO_cFv();
|
||||
extern "C" void init__25dSvBit_childDarknessHIO_cFv();
|
||||
extern "C" void __ct__26dSvBit_childTransformHIO_cFv();
|
||||
extern "C" void init__26dSvBit_childTransformHIO_cFv();
|
||||
extern "C" void __ct__22dSvBit_childOtherHIO_cFv();
|
||||
extern "C" void init__22dSvBit_childOtherHIO_cFv();
|
||||
extern "C" void init__12dSvBit_HIO_cFv();
|
||||
extern "C" void __dt__22dSvBit_childOtherHIO_cFv();
|
||||
extern "C" void __dt__26dSvBit_childTransformHIO_cFv();
|
||||
extern "C" void __dt__25dSvBit_childDarknessHIO_cFv();
|
||||
extern "C" void __dt__29dSvBit_childTbPerfectionHIO_cFv();
|
||||
extern "C" void __dt__26dSvBit_childItOneZoneHIO_cFv();
|
||||
extern "C" void __dt__23dSvBit_childItZoneHIO_cFv();
|
||||
extern "C" void __dt__26dSvBit_childItDungeonHIO_cFv();
|
||||
extern "C" void __dt__29dSvBit_childItPerfectionHIO_cFv();
|
||||
extern "C" void __dt__26dSvBit_childSwOneZoneHIO_cFv();
|
||||
extern "C" void __dt__23dSvBit_childSwZoneHIO_cFv();
|
||||
extern "C" void __dt__26dSvBit_childSwDungeonHIO_cFv();
|
||||
extern "C" void __dt__29dSvBit_childSwPerfectionHIO_cFv();
|
||||
extern "C" void __sinit_d_save_HIO_cpp();
|
||||
extern "C" void __dt__12dSvBit_HIO_cFv();
|
||||
extern "C" void __dt__25dSvBit_childTreasureHIO_cFv();
|
||||
extern "C" void __dt__21dSvBit_childItemHIO_cFv();
|
||||
extern "C" void __dt__23dSvBit_childSwitchHIO_cFv();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void isDarkClearLV__21dSv_player_status_b_cCFi();
|
||||
extern "C" void isTransformLV__21dSv_player_status_b_cCFi();
|
||||
extern "C" void getLightDropNum__16dSv_light_drop_cCFUc();
|
||||
extern "C" void isLightDropGetFlag__16dSv_light_drop_cCFUc();
|
||||
extern "C" void isTbox__12dSv_memBit_cCFi();
|
||||
extern "C" void isSwitch__12dSv_memBit_cCFi();
|
||||
extern "C" void isItem__12dSv_memBit_cCFi();
|
||||
extern "C" void isEventBit__11dSv_event_cCFUs();
|
||||
extern "C" void isSwitch__12dSv_danBit_cCFi();
|
||||
extern "C" void isItem__12dSv_danBit_cCFi();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C3300-803C330C 020420 000C+00 3/3 0/0 0/0 .data __vt__22dSvBit_childOtherHIO_c */
|
||||
SECTION_DATA extern void* __vt__22dSvBit_childOtherHIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__22dSvBit_childOtherHIO_cFv,
|
||||
};
|
||||
|
||||
/* 803C330C-803C3318 02042C 000C+00 3/3 0/0 0/0 .data __vt__26dSvBit_childTransformHIO_c
|
||||
*/
|
||||
SECTION_DATA extern void* __vt__26dSvBit_childTransformHIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__26dSvBit_childTransformHIO_cFv,
|
||||
};
|
||||
|
||||
/* 803C3318-803C3324 020438 000C+00 3/3 0/0 0/0 .data __vt__25dSvBit_childDarknessHIO_c
|
||||
*/
|
||||
SECTION_DATA extern void* __vt__25dSvBit_childDarknessHIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__25dSvBit_childDarknessHIO_cFv,
|
||||
};
|
||||
|
||||
/* 803C3324-803C3330 020444 000C+00 4/4 0/0 0/0 .data __vt__29dSvBit_childTbPerfectionHIO_c */
|
||||
SECTION_DATA extern void* __vt__29dSvBit_childTbPerfectionHIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__29dSvBit_childTbPerfectionHIO_cFv,
|
||||
};
|
||||
|
||||
/* 803C3330-803C333C 020450 000C+00 4/4 0/0 0/0 .data __vt__26dSvBit_childItOneZoneHIO_c
|
||||
*/
|
||||
SECTION_DATA extern void* __vt__26dSvBit_childItOneZoneHIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__26dSvBit_childItOneZoneHIO_cFv,
|
||||
};
|
||||
|
||||
/* 803C333C-803C3348 02045C 000C+00 4/4 0/0 0/0 .data __vt__23dSvBit_childItZoneHIO_c */
|
||||
SECTION_DATA extern void* __vt__23dSvBit_childItZoneHIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__23dSvBit_childItZoneHIO_cFv,
|
||||
};
|
||||
|
||||
/* 803C3348-803C3354 020468 000C+00 4/4 0/0 0/0 .data __vt__26dSvBit_childItDungeonHIO_c
|
||||
*/
|
||||
SECTION_DATA extern void* __vt__26dSvBit_childItDungeonHIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__26dSvBit_childItDungeonHIO_cFv,
|
||||
};
|
||||
|
||||
/* 803C3354-803C3360 020474 000C+00 4/4 0/0 0/0 .data __vt__29dSvBit_childItPerfectionHIO_c */
|
||||
SECTION_DATA extern void* __vt__29dSvBit_childItPerfectionHIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__29dSvBit_childItPerfectionHIO_cFv,
|
||||
};
|
||||
|
||||
/* 803C3360-803C336C 020480 000C+00 4/4 0/0 0/0 .data __vt__26dSvBit_childSwOneZoneHIO_c
|
||||
*/
|
||||
SECTION_DATA extern void* __vt__26dSvBit_childSwOneZoneHIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__26dSvBit_childSwOneZoneHIO_cFv,
|
||||
};
|
||||
|
||||
/* 803C336C-803C3378 02048C 000C+00 4/4 0/0 0/0 .data __vt__23dSvBit_childSwZoneHIO_c */
|
||||
SECTION_DATA extern void* __vt__23dSvBit_childSwZoneHIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__23dSvBit_childSwZoneHIO_cFv,
|
||||
};
|
||||
|
||||
/* 803C3378-803C3384 020498 000C+00 4/4 0/0 0/0 .data __vt__26dSvBit_childSwDungeonHIO_c
|
||||
*/
|
||||
SECTION_DATA extern void* __vt__26dSvBit_childSwDungeonHIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__26dSvBit_childSwDungeonHIO_cFv,
|
||||
};
|
||||
|
||||
/* 803C3384-803C3390 0204A4 000C+00 4/4 0/0 0/0 .data __vt__29dSvBit_childSwPerfectionHIO_c */
|
||||
SECTION_DATA extern void* __vt__29dSvBit_childSwPerfectionHIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__29dSvBit_childSwPerfectionHIO_cFv,
|
||||
};
|
||||
|
||||
/* 8025BB78-8025BBAC 2564B8 0034+00 1/1 0/0 0/0 .text __ct__29dSvBit_childSwPerfectionHIO_cFv */
|
||||
dSvBit_childSwPerfectionHIO_c::dSvBit_childSwPerfectionHIO_c() {
|
||||
for (int i = 0; i < 0x80; i++) {
|
||||
field_0x5[i] = false;
|
||||
field_0x85[i] = false;
|
||||
field_0x5[i] = 0;
|
||||
field_0x85[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8025BBAC-8025BC14 2564EC 0068+00 1/1 0/0 0/0 .text init__29dSvBit_childSwPerfectionHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dSvBit_childSwPerfectionHIO_c::init() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/init__29dSvBit_childSwPerfectionHIO_cFv.s"
|
||||
void dSvBit_childSwPerfectionHIO_c::init() {
|
||||
for (int i = 0; i < 0x80; i++) {
|
||||
field_0x5[i] = dComIfGs_isSaveSwitch(i);
|
||||
field_0x85[i] = field_0x5[i];
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025BC14-8025BC48 256554 0034+00 1/1 0/0 0/0 .text __ct__26dSvBit_childSwDungeonHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dSvBit_childSwDungeonHIO_c::dSvBit_childSwDungeonHIO_c() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__ct__26dSvBit_childSwDungeonHIO_cFv.s"
|
||||
dSvBit_childSwDungeonHIO_c::dSvBit_childSwDungeonHIO_c() {
|
||||
for (int i = 0; i < 0x40; i++) {
|
||||
field_0x5[i] = 0;
|
||||
field_0x45[i] = 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025BC48-8025BCB0 256588 0068+00 1/1 0/0 0/0 .text init__26dSvBit_childSwDungeonHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dSvBit_childSwDungeonHIO_c::init() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/init__26dSvBit_childSwDungeonHIO_cFv.s"
|
||||
void dSvBit_childSwDungeonHIO_c::init() {
|
||||
for (int i = 0; i < 0x40; i++) {
|
||||
field_0x5[i] = dComIfGs_isSaveDunSwitch(i);
|
||||
field_0x45[i] = field_0x5[i];
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025BCB0-8025BCE4 2565F0 0034+00 1/1 0/0 0/0 .text __ct__23dSvBit_childSwZoneHIO_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dSvBit_childSwZoneHIO_c::dSvBit_childSwZoneHIO_c() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__ct__23dSvBit_childSwZoneHIO_cFv.s"
|
||||
dSvBit_childSwZoneHIO_c::dSvBit_childSwZoneHIO_c() {
|
||||
for (int i = 0; i < 0x20; i++) {
|
||||
field_0x5[i] = 0;
|
||||
field_0x25[i] = 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025BCE4-8025BD10 256624 002C+00 1/1 0/0 0/0 .text init__23dSvBit_childSwZoneHIO_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dSvBit_childSwZoneHIO_c::init() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/init__23dSvBit_childSwZoneHIO_cFv.s"
|
||||
void dSvBit_childSwZoneHIO_c::init() {
|
||||
for (int i = 0; i < 0x20; i++) {
|
||||
field_0x5[i] = 0;
|
||||
field_0x25[i] = field_0x5[i];
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025BD10-8025BD44 256650 0034+00 1/1 0/0 0/0 .text __ct__26dSvBit_childSwOneZoneHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dSvBit_childSwOneZoneHIO_c::dSvBit_childSwOneZoneHIO_c() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__ct__26dSvBit_childSwOneZoneHIO_cFv.s"
|
||||
dSvBit_childSwOneZoneHIO_c::dSvBit_childSwOneZoneHIO_c() {
|
||||
for (int i = 0; i < 0x10; i++) {
|
||||
field_0x5[i] = 0;
|
||||
field_0x15[i] = 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025BD44-8025BD70 256684 002C+00 1/1 0/0 0/0 .text init__26dSvBit_childSwOneZoneHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dSvBit_childSwOneZoneHIO_c::init() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/init__26dSvBit_childSwOneZoneHIO_cFv.s"
|
||||
void dSvBit_childSwOneZoneHIO_c::init() {
|
||||
for (int i = 0; i < 0x10; i++) {
|
||||
field_0x5[i] = 0;
|
||||
field_0x15[i] = field_0x5[i];
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025BD70-8025BDA4 2566B0 0034+00 1/1 0/0 0/0 .text __ct__29dSvBit_childItPerfectionHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dSvBit_childItPerfectionHIO_c::dSvBit_childItPerfectionHIO_c() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__ct__29dSvBit_childItPerfectionHIO_cFv.s"
|
||||
dSvBit_childItPerfectionHIO_c::dSvBit_childItPerfectionHIO_c() {
|
||||
for (int i = 0; i < 0x20; i++) {
|
||||
field_0x5[i] = 0;
|
||||
field_0x25[i] = 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025BDA4-8025BE0C 2566E4 0068+00 1/1 0/0 0/0 .text init__29dSvBit_childItPerfectionHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dSvBit_childItPerfectionHIO_c::init() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/init__29dSvBit_childItPerfectionHIO_cFv.s"
|
||||
void dSvBit_childItPerfectionHIO_c::init() {
|
||||
for (int i = 0; i < 0x20; i++) {
|
||||
field_0x5[i] = dComIfGs_isSaveItem(i);
|
||||
field_0x25[i] = field_0x5[i];
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025BE0C-8025BE40 25674C 0034+00 1/1 0/0 0/0 .text __ct__26dSvBit_childItDungeonHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dSvBit_childItDungeonHIO_c::dSvBit_childItDungeonHIO_c() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__ct__26dSvBit_childItDungeonHIO_cFv.s"
|
||||
dSvBit_childItDungeonHIO_c::dSvBit_childItDungeonHIO_c() {
|
||||
for (int i = 0; i < 0x80; i++) {
|
||||
field_0x5[i] = 0;
|
||||
field_0x85[i] = 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025BE40-8025BEA8 256780 0068+00 1/1 0/0 0/0 .text init__26dSvBit_childItDungeonHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dSvBit_childItDungeonHIO_c::init() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/init__26dSvBit_childItDungeonHIO_cFv.s"
|
||||
void dSvBit_childItDungeonHIO_c::init() {
|
||||
for (int i = 0; i < 0x80; i++) {
|
||||
field_0x5[i] = dComIfGs_isSaveDunItem(i);
|
||||
field_0x85[i] = field_0x5[i];
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025BEA8-8025BEDC 2567E8 0034+00 1/1 0/0 0/0 .text __ct__23dSvBit_childItZoneHIO_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dSvBit_childItZoneHIO_c::dSvBit_childItZoneHIO_c() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__ct__23dSvBit_childItZoneHIO_cFv.s"
|
||||
dSvBit_childItZoneHIO_c::dSvBit_childItZoneHIO_c() {
|
||||
for (int i = 0; i < 0x20; i++) {
|
||||
field_0x5[i] = 0;
|
||||
field_0x25[i] = 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025BEDC-8025BF08 25681C 002C+00 1/1 0/0 0/0 .text init__23dSvBit_childItZoneHIO_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dSvBit_childItZoneHIO_c::init() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/init__23dSvBit_childItZoneHIO_cFv.s"
|
||||
void dSvBit_childItZoneHIO_c::init() {
|
||||
for (int i = 0; i < 0x20; i++) {
|
||||
field_0x5[i] = 0;
|
||||
field_0x25[i] = field_0x5[i];
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025BF08-8025BF3C 256848 0034+00 1/1 0/0 0/0 .text __ct__26dSvBit_childItOneZoneHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dSvBit_childItOneZoneHIO_c::dSvBit_childItOneZoneHIO_c() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__ct__26dSvBit_childItOneZoneHIO_cFv.s"
|
||||
dSvBit_childItOneZoneHIO_c::dSvBit_childItOneZoneHIO_c() {
|
||||
for (int i = 0; i < 0x10; i++) {
|
||||
field_0x5[i] = 0;
|
||||
field_0x15[i] = 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025BF3C-8025BF68 25687C 002C+00 1/1 0/0 0/0 .text init__26dSvBit_childItOneZoneHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dSvBit_childItOneZoneHIO_c::init() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/init__26dSvBit_childItOneZoneHIO_cFv.s"
|
||||
void dSvBit_childItOneZoneHIO_c::init() {
|
||||
for (int i = 0; i < 0x10; i++) {
|
||||
field_0x5[i] = 0;
|
||||
field_0x15[i] = field_0x5[i];
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025BF68-8025BF9C 2568A8 0034+00 1/1 0/0 0/0 .text __ct__29dSvBit_childTbPerfectionHIO_cFv */
|
||||
dSvBit_childTbPerfectionHIO_c::dSvBit_childTbPerfectionHIO_c() {
|
||||
for (int i = 0; i < 0x40; i++) {
|
||||
field_0x5[i] = false;
|
||||
field_0x45[i] = false;
|
||||
field_0x5[i] = 0;
|
||||
field_0x45[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 8025BF9C-8025C004 2568DC 0068+00 1/1 0/0 0/0 .text init__29dSvBit_childTbPerfectionHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dSvBit_childTbPerfectionHIO_c::init() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/init__29dSvBit_childTbPerfectionHIO_cFv.s"
|
||||
void dSvBit_childTbPerfectionHIO_c::init() {
|
||||
for (int i = 0; i < 0x40; i++) {
|
||||
field_0x5[i] = dComIfGs_isTbox(i);
|
||||
field_0x45[i] = field_0x5[i];
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C004-8025C038 256944 0034+00 1/1 0/0 0/0 .text __ct__25dSvBit_childDarknessHIO_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dSvBit_childDarknessHIO_c::dSvBit_childDarknessHIO_c() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__ct__25dSvBit_childDarknessHIO_cFv.s"
|
||||
dSvBit_childDarknessHIO_c::dSvBit_childDarknessHIO_c() {
|
||||
for (int i = 0; i < 6; i++) {
|
||||
TW[i] = 0;
|
||||
field_0xB[i] = 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C038-8025C0A0 256978 0068+00 1/1 0/0 0/0 .text init__25dSvBit_childDarknessHIO_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dSvBit_childDarknessHIO_c::init() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/init__25dSvBit_childDarknessHIO_cFv.s"
|
||||
void dSvBit_childDarknessHIO_c::init() {
|
||||
for (int i = 0; i < 6; i++) {
|
||||
TW[i] = dComIfGs_isDarkClearLV(i);
|
||||
field_0xB[i] = TW[i];
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C0A0-8025C0D4 2569E0 0034+00 1/1 0/0 0/0 .text __ct__26dSvBit_childTransformHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dSvBit_childTransformHIO_c::dSvBit_childTransformHIO_c() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__ct__26dSvBit_childTransformHIO_cFv.s"
|
||||
dSvBit_childTransformHIO_c::dSvBit_childTransformHIO_c() {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
WF[i] = 0;
|
||||
field_0x9[i] = 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C0D4-8025C13C 256A14 0068+00 1/1 0/0 0/0 .text init__26dSvBit_childTransformHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dSvBit_childTransformHIO_c::init() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/init__26dSvBit_childTransformHIO_cFv.s"
|
||||
void dSvBit_childTransformHIO_c::init() {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
WF[i] = dComIfGs_isTransformLV(i);
|
||||
field_0x9[i] = WF[i];
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C13C-8025C178 256A7C 003C+00 1/1 0/0 0/0 .text __ct__22dSvBit_childOtherHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dSvBit_childOtherHIO_c::dSvBit_childOtherHIO_c() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__ct__22dSvBit_childOtherHIO_cFv.s"
|
||||
dSvBit_childOtherHIO_c::dSvBit_childOtherHIO_c() {
|
||||
mDropNum = 0;
|
||||
field_0x6 = 0;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mLightVessel[i] = 0;
|
||||
field_0xb[i] = 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C178-8025C1F8 256AB8 0080+00 1/1 0/0 0/0 .text init__22dSvBit_childOtherHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dSvBit_childOtherHIO_c::init() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/init__22dSvBit_childOtherHIO_cFv.s"
|
||||
void dSvBit_childOtherHIO_c::init() {
|
||||
mDropNum = dComIfGs_getLightDropNum(dComIfGp_getStartStageDarkArea());
|
||||
field_0x6 = mDropNum;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
mLightVessel[i] = dComIfGs_isLightDropGetFlag(i);
|
||||
field_0xb[i] = mLightVessel[i];
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C1F8-8025C29C 256B38 00A4+00 0/0 1/1 0/0 .text init__12dSvBit_HIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dSvBit_HIO_c::init() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/init__12dSvBit_HIO_cFv.s"
|
||||
void dSvBit_HIO_c::init() {
|
||||
mSwitch.init();
|
||||
mItem.init();
|
||||
mTreasure.init();
|
||||
mDarkness.init();
|
||||
mTransform.init();
|
||||
mOther.init();
|
||||
mTransformFlag = field_0x49d = i_dComIfGs_isEventBit(dSv_event_flag_c::M_077);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C29C-8025C2E4 256BDC 0048+00 1/0 0/0 0/0 .text __dt__22dSvBit_childOtherHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm dSvBit_childOtherHIO_c::~dSvBit_childOtherHIO_c() {
|
||||
extern "C" asm void __dt__22dSvBit_childOtherHIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__dt__22dSvBit_childOtherHIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C2E4-8025C32C 256C24 0048+00 1/0 0/0 0/0 .text __dt__26dSvBit_childTransformHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm dSvBit_childTransformHIO_c::~dSvBit_childTransformHIO_c() {
|
||||
extern "C" asm void __dt__26dSvBit_childTransformHIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__dt__26dSvBit_childTransformHIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C32C-8025C374 256C6C 0048+00 1/0 0/0 0/0 .text __dt__25dSvBit_childDarknessHIO_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm dSvBit_childDarknessHIO_c::~dSvBit_childDarknessHIO_c() {
|
||||
extern "C" asm void __dt__25dSvBit_childDarknessHIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__dt__25dSvBit_childDarknessHIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C374-8025C3BC 256CB4 0048+00 1/0 0/0 0/0 .text __dt__29dSvBit_childTbPerfectionHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm dSvBit_childTbPerfectionHIO_c::~dSvBit_childTbPerfectionHIO_c() {
|
||||
extern "C" asm void __dt__29dSvBit_childTbPerfectionHIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__dt__29dSvBit_childTbPerfectionHIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C3BC-8025C404 256CFC 0048+00 1/0 0/0 0/0 .text __dt__26dSvBit_childItOneZoneHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm dSvBit_childItOneZoneHIO_c::~dSvBit_childItOneZoneHIO_c() {
|
||||
extern "C" asm void __dt__26dSvBit_childItOneZoneHIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__dt__26dSvBit_childItOneZoneHIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C404-8025C44C 256D44 0048+00 1/0 0/0 0/0 .text __dt__23dSvBit_childItZoneHIO_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm dSvBit_childItZoneHIO_c::~dSvBit_childItZoneHIO_c() {
|
||||
extern "C" asm void __dt__23dSvBit_childItZoneHIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__dt__23dSvBit_childItZoneHIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C44C-8025C494 256D8C 0048+00 1/0 0/0 0/0 .text __dt__26dSvBit_childItDungeonHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm dSvBit_childItDungeonHIO_c::~dSvBit_childItDungeonHIO_c() {
|
||||
extern "C" asm void __dt__26dSvBit_childItDungeonHIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__dt__26dSvBit_childItDungeonHIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C494-8025C4DC 256DD4 0048+00 1/0 0/0 0/0 .text __dt__29dSvBit_childItPerfectionHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm dSvBit_childItPerfectionHIO_c::~dSvBit_childItPerfectionHIO_c() {
|
||||
extern "C" asm void __dt__29dSvBit_childItPerfectionHIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__dt__29dSvBit_childItPerfectionHIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C4DC-8025C524 256E1C 0048+00 1/0 0/0 0/0 .text __dt__26dSvBit_childSwOneZoneHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm dSvBit_childSwOneZoneHIO_c::~dSvBit_childSwOneZoneHIO_c() {
|
||||
extern "C" asm void __dt__26dSvBit_childSwOneZoneHIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__dt__26dSvBit_childSwOneZoneHIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C524-8025C56C 256E64 0048+00 1/0 0/0 0/0 .text __dt__23dSvBit_childSwZoneHIO_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm dSvBit_childSwZoneHIO_c::~dSvBit_childSwZoneHIO_c() {
|
||||
extern "C" asm void __dt__23dSvBit_childSwZoneHIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__dt__23dSvBit_childSwZoneHIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C56C-8025C5B4 256EAC 0048+00 1/0 0/0 0/0 .text __dt__26dSvBit_childSwDungeonHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm dSvBit_childSwDungeonHIO_c::~dSvBit_childSwDungeonHIO_c() {
|
||||
extern "C" asm void __dt__26dSvBit_childSwDungeonHIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__dt__26dSvBit_childSwDungeonHIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C5B4-8025C5FC 256EF4 0048+00 1/0 0/0 0/0 .text __dt__29dSvBit_childSwPerfectionHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm dSvBit_childSwPerfectionHIO_c::~dSvBit_childSwPerfectionHIO_c() {
|
||||
extern "C" asm void __dt__29dSvBit_childSwPerfectionHIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__dt__29dSvBit_childSwPerfectionHIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C3390-803C339C 0204B0 000C+00 3/3 0/0 0/0 .data __vt__25dSvBit_childTreasureHIO_c
|
||||
*/
|
||||
SECTION_DATA extern void* __vt__25dSvBit_childTreasureHIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__25dSvBit_childTreasureHIO_cFv,
|
||||
};
|
||||
|
||||
/* 803C339C-803C33A8 0204BC 000C+00 3/3 0/0 0/0 .data __vt__21dSvBit_childItemHIO_c */
|
||||
SECTION_DATA extern void* __vt__21dSvBit_childItemHIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__21dSvBit_childItemHIO_cFv,
|
||||
};
|
||||
|
||||
/* 803C33A8-803C33B4 0204C8 000C+00 3/3 0/0 0/0 .data __vt__23dSvBit_childSwitchHIO_c */
|
||||
SECTION_DATA extern void* __vt__23dSvBit_childSwitchHIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__23dSvBit_childSwitchHIO_cFv,
|
||||
};
|
||||
|
||||
/* 803C33B4-803C33C0 0204D4 000C+00 2/2 0/0 0/0 .data __vt__12dSvBit_HIO_c */
|
||||
SECTION_DATA extern void* __vt__12dSvBit_HIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12dSvBit_HIO_cFv,
|
||||
};
|
||||
|
||||
/* 804307E0-804307EC 05D500 000C+00 1/1 0/0 0/0 .bss @3659 */
|
||||
static u8 lit_3659[12];
|
||||
|
||||
/* 804307EC-80430C90 05D50C 04A0+04 1/1 2/2 0/0 .bss g_save_bit_HIO */
|
||||
extern u8 g_save_bit_HIO[1184 + 4 /* padding */];
|
||||
u8 g_save_bit_HIO[1184 + 4 /* padding */];
|
||||
dSvBit_HIO_c g_save_bit_HIO;
|
||||
|
||||
/* 8025C5FC-8025C6FC 256F3C 0100+00 0/0 1/0 0/0 .text __sinit_d_save_HIO_cpp */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __sinit_d_save_HIO_cpp() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__sinit_d_save_HIO_cpp.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
REGISTER_CTORS(0x8025C5FC, __sinit_d_save_HIO_cpp);
|
||||
#pragma pop
|
||||
|
||||
/* 8025C6FC-8025C874 25703C 0178+00 2/1 0/0 0/0 .text __dt__12dSvBit_HIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm dSvBit_HIO_c::~dSvBit_HIO_c() {
|
||||
extern "C" asm void __dt__12dSvBit_HIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__dt__12dSvBit_HIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C874-8025C8D4 2571B4 0060+00 1/0 0/0 0/0 .text __dt__25dSvBit_childTreasureHIO_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm dSvBit_childTreasureHIO_c::~dSvBit_childTreasureHIO_c() {
|
||||
extern "C" asm void __dt__25dSvBit_childTreasureHIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__dt__25dSvBit_childTreasureHIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C8D4-8025C970 257214 009C+00 1/0 0/0 0/0 .text __dt__21dSvBit_childItemHIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm dSvBit_childItemHIO_c::~dSvBit_childItemHIO_c() {
|
||||
extern "C" asm void __dt__21dSvBit_childItemHIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__dt__21dSvBit_childItemHIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8025C970-8025CA0C 2572B0 009C+00 1/0 0/0 0/0 .text __dt__23dSvBit_childSwitchHIO_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
// asm dSvBit_childSwitchHIO_c::~dSvBit_childSwitchHIO_c() {
|
||||
extern "C" asm void __dt__23dSvBit_childSwitchHIO_cFv() {
|
||||
nofralloc
|
||||
#include "asm/d/save/d_save_HIO/__dt__23dSvBit_childSwitchHIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
+135
-271
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#include "d/shop/d_shop_system.h"
|
||||
#include "rel/d/a/tag/d_a_tag_shop_item/d_a_tag_shop_item.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/a/d_a_shop_item_static.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
@@ -208,7 +209,7 @@ SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
|
||||
};
|
||||
|
||||
/* 803BB8A4-803BB8C0 0189C4 001C+00 6/6 0/0 0/0 .data dShopSystem_itemActor */
|
||||
SECTION_DATA static fopAc_ac_c* dShopSystem_itemActor[7] = {
|
||||
SECTION_DATA static daTag_ShopItem_c* dShopSystem_itemActor[7] = {
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
};
|
||||
|
||||
@@ -249,10 +250,10 @@ static int dShopSystem_searchItemActor(void* param_0, void* param_1) {
|
||||
} else {
|
||||
if (param2 == 0) {
|
||||
data_80451060 = 1;
|
||||
dShopSystem_itemActor[dShopSystem_item_count] = (fopAc_ac_c*) param_0;
|
||||
dShopSystem_itemActor[dShopSystem_item_count] = (daTag_ShopItem_c*) param_0;
|
||||
dShopSystem_itemNo[dShopSystem_item_count] = item_no;
|
||||
} else if (dShopSystem_itemActor[param2 - 1] == NULL) {
|
||||
dShopSystem_itemActor[param2 - 1] = (fopAc_ac_c*) param_0;
|
||||
dShopSystem_itemActor[param2 - 1] = (daTag_ShopItem_c*) param_0;
|
||||
dShopSystem_itemNo[param2 - 1] = item_no;
|
||||
}
|
||||
dShopSystem_item_count++;
|
||||
@@ -298,25 +299,9 @@ static int dShopSystem_searchCameraActor(void* param_0, void* param_1) {
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80453B00-80453B04 002100 0004+00 1/1 0/0 0/0 .sdata2 @4097 */
|
||||
SECTION_SDATA2 static f32 lit_4097 = 9.0f / 10.0f;
|
||||
|
||||
/* 80453B04-80453B08 002104 0004+00 2/2 0/0 0/0 .sdata2 @4098 */
|
||||
SECTION_SDATA2 static f32 lit_4098 = 0.5f;
|
||||
|
||||
/* 80453B08-80453B0C 002108 0004+00 5/5 0/0 0/0 .sdata2 @4099 */
|
||||
SECTION_SDATA2 static f32 lit_4099 = 1.0f;
|
||||
|
||||
/* 80453B0C-80453B10 00210C 0004+00 1/1 0/0 0/0 .sdata2 @4100 */
|
||||
SECTION_SDATA2 static f32 lit_4100 = 1.0f / 10.0f;
|
||||
|
||||
/* 80453B10-80453B14 002110 0004+00 1/1 0/0 0/0 .sdata2 @4101 */
|
||||
SECTION_SDATA2 static f32 lit_4101 = 7.0f / 10.0f;
|
||||
|
||||
/* 80197338-801974E4 191C78 01AC+00 0/0 0/0 19/19 .text initShopSystem__13dShopSystem_cFv
|
||||
*/
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void dShopSystem_c::initShopSystem() {
|
||||
data_80451058 = 3;
|
||||
data_80451060 = 0;
|
||||
@@ -362,16 +347,6 @@ void dShopSystem_c::initShopSystem() {
|
||||
field_0xf78 = -1;
|
||||
mFlow.onNonStopJunpFlowFlag();
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dShopSystem_c::initShopSystem() {
|
||||
nofralloc
|
||||
#include "asm/d/shop/d_shop_system/initShopSystem__13dShopSystem_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
struct shop_item_data {
|
||||
Vec mItemPos[3];
|
||||
@@ -396,16 +371,6 @@ static processFunc process[22] = {
|
||||
&dShopSystem_c::seq_decide_no,
|
||||
&dShopSystem_c::seq_finish,
|
||||
(processFunc)&dShopSystem_c::seq_event,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
};
|
||||
#else
|
||||
/* 803BB8E4-803BB8F0 -00001 000C+00 0/1 0/0 0/0 .data @4056 */
|
||||
@@ -900,21 +865,8 @@ int dShopSystem_c::checkController(u8 seq, dMsgFlow_c* p_flow) {
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80453B14-80453B18 002114 0004+00 4/4 0/0 0/0 .sdata2 @4493 */
|
||||
SECTION_SDATA2 static f32 lit_4493 = -1.0f;
|
||||
|
||||
/* 80453B18-80453B1C 002118 0004+00 8/8 0/0 0/0 .sdata2 @4494 */
|
||||
SECTION_SDATA2 static f32 lit_4494 = 0.25f;
|
||||
|
||||
/* 80453B1C-80453B20 00211C 0004+00 9/9 0/0 0/0 .sdata2 @4495 */
|
||||
SECTION_SDATA2 static f32 lit_4495 = 20.0f;
|
||||
|
||||
/* 80453B20-80453B24 002120 0004+00 9/9 0/0 0/0 .sdata2 @4496 */
|
||||
SECTION_SDATA2 static f32 lit_4496 = 5.0f;
|
||||
|
||||
/* 80197808-80197DD0 192148 05C8+00 1/1 0/0 0/0 .text chooseItem3__13dShopSystem_cFUc */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int dShopSystem_c::chooseItem3(u8 seq) {
|
||||
u8 old_cursor = mLastCursorPos;
|
||||
if (checkLeftTrigger(mpStick) && seq != SEQ_SELECT_WAIT) {
|
||||
@@ -1051,20 +1003,8 @@ up:
|
||||
ret:
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dShopSystem_c::chooseItem3(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/shop/d_shop_system/chooseItem3__13dShopSystem_cFUc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80197DD0-80198250 192710 0480+00 1/1 0/0 0/0 .text chooseItem5__13dShopSystem_cFUc */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int dShopSystem_c::chooseItem5(u8 seq) {
|
||||
u8 old_cursor = mLastCursorPos;
|
||||
if (checkLeftTrigger(mpStick) && seq != SEQ_SELECT_WAIT) {
|
||||
@@ -1178,20 +1118,8 @@ down:
|
||||
ret:
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dShopSystem_c::chooseItem5(u8 seq) {
|
||||
nofralloc
|
||||
#include "asm/d/shop/d_shop_system/chooseItem5__13dShopSystem_cFUc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80198250-80198444 192B90 01F4+00 1/1 0/0 0/0 .text chooseItem4__13dShopSystem_cFUc */
|
||||
// matches with literals. gotos can probably be removed
|
||||
#ifdef NONMATCHING
|
||||
int dShopSystem_c::chooseItem4(u8 seq) {
|
||||
u8 old_cursor = mLastCursorPos;
|
||||
if (checkLeftTrigger(mpStick) && seq != SEQ_SELECT_WAIT && mCursorPos != 0) {
|
||||
@@ -1233,16 +1161,6 @@ right:
|
||||
ret:
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dShopSystem_c::chooseItem4(u8 seq) {
|
||||
nofralloc
|
||||
#include "asm/d/shop/d_shop_system/chooseItem4__13dShopSystem_cFUc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80198444-80198488 192D84 0044+00 5/5 0/0 0/0 .text moveCursor__13dShopSystem_cFiUc */
|
||||
int dShopSystem_c::moveCursor(int control_status, u8 param_1) {
|
||||
@@ -1258,8 +1176,6 @@ int dShopSystem_c::moveCursor(int control_status, u8 param_1) {
|
||||
}
|
||||
|
||||
/* 80198488-80198708 192DC8 0280+00 1/1 0/0 0/0 .text moveCursor0__13dShopSystem_cFiUc */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int dShopSystem_c::moveCursor0(int control_status, u8 param_1) {
|
||||
offFlag(7);
|
||||
|
||||
@@ -1313,23 +1229,16 @@ int dShopSystem_c::moveCursor0(int control_status, u8 param_1) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dShopSystem_c::moveCursor0(int param_0, u8 param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/shop/d_shop_system/moveCursor0__13dShopSystem_cFiUc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80198708-80198878 193048 0170+00 1/1 0/0 0/0 .text moveCursor1__13dShopSystem_cFiUc */
|
||||
#ifdef NONMATCHING
|
||||
int dShopSystem_c::moveCursor1(int control_status, u8 param_1) {
|
||||
offFlag(7);
|
||||
|
||||
switch (control_status) {
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
if (mCursorPos == 0) {
|
||||
return getFlowNodeNum() + 1;
|
||||
@@ -1362,16 +1271,6 @@ int dShopSystem_c::moveCursor1(int control_status, u8 param_1) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dShopSystem_c::moveCursor1(int param_0, u8 param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/shop/d_shop_system/moveCursor1__13dShopSystem_cFiUc.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80198878-80198950 1931B8 00D8+00 0/0 0/0 9/9 .text drawCursor__13dShopSystem_cFv */
|
||||
int dShopSystem_c::drawCursor() {
|
||||
@@ -1426,39 +1325,8 @@ int dShopSystem_c::itemRotate() {
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80394C10-80394C10 021270 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80394C10 = "R_SP01";
|
||||
#pragma pop
|
||||
|
||||
/* 80453B24-80453B28 002124 0004+00 1/1 0/0 0/0 .sdata2 @5000 */
|
||||
SECTION_SDATA2 static f32 lit_5000 = -25.0f;
|
||||
|
||||
/* 80453B28-80453B2C 002128 0004+00 1/1 0/0 0/0 .sdata2 @5001 */
|
||||
SECTION_SDATA2 static f32 lit_5001 = 150.0f;
|
||||
|
||||
/* 80453B2C-80453B30 00212C 0004+00 1/1 0/0 0/0 .sdata2 @5002 */
|
||||
SECTION_SDATA2 static f32 lit_5002 = -50.0f;
|
||||
|
||||
/* 80453B30-80453B34 002130 0004+00 1/1 0/0 0/0 .sdata2 @5003 */
|
||||
SECTION_SDATA2 static f32 lit_5003 = 250.0f;
|
||||
|
||||
/* 80453B34-80453B38 002134 0004+00 1/1 0/0 0/0 .sdata2 @5004 */
|
||||
SECTION_SDATA2 static f32 lit_5004 = 60.0f;
|
||||
|
||||
/* 80453B38-80453B3C 002138 0004+00 1/1 0/0 0/0 .sdata2 @5005 */
|
||||
SECTION_SDATA2 static f32 lit_5005 = -130.0f;
|
||||
|
||||
/* 80453B3C-80453B40 00213C 0004+00 2/2 0/0 0/0 .sdata2 @5006 */
|
||||
SECTION_SDATA2 static f32 lit_5006 = 215.0f;
|
||||
|
||||
/* 80453B40-80453B44 002140 0004+00 1/1 0/0 0/0 .sdata2 @5007 */
|
||||
SECTION_SDATA2 static f32 lit_5007 = 15.0f;
|
||||
|
||||
/* 80198A2C-801990B0 19336C 0684+00 0/0 0/0 9/9 .text itemZoom__13dShopSystem_cFP4cXyz */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int dShopSystem_c::itemZoom(cXyz* param_0) {
|
||||
cXyz local_1c;
|
||||
|
||||
@@ -1519,11 +1387,11 @@ int dShopSystem_c::itemZoom(cXyz* param_0) {
|
||||
if (dShopSystem_itemNo[mCursorPos - 1] == ARROW_10 ||
|
||||
dShopSystem_itemNo[mCursorPos - 1] == ARROW_20 ||
|
||||
dShopSystem_itemNo[mCursorPos - 1] == ARROW_30) {
|
||||
local_34.set(g_cursorHIO.mObjZoom.x, 5.0f + g_cursorHIO.mObjZoom.y + -50.0f,
|
||||
local_34.set(g_cursorHIO.mObjZoom.x, -50.0f + g_cursorHIO.mObjZoom.y + 5.0f,
|
||||
(g_cursorHIO.mObjZoom.z + 250.0f) - 60.0f);
|
||||
} else {
|
||||
local_34.set(g_cursorHIO.mObjZoom.x,
|
||||
20.0f + g_cursorHIO.mObjZoom.y + -50.0f,
|
||||
-50.0f + g_cursorHIO.mObjZoom.y + 20.0f,
|
||||
(g_cursorHIO.mObjZoom.z + 250.0f) - 60.0f);
|
||||
}
|
||||
} else if (mCursorPos == 7) {
|
||||
@@ -1589,16 +1457,6 @@ int dShopSystem_c::itemZoom(cXyz* param_0) {
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dShopSystem_c::itemZoom(cXyz* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/shop/d_shop_system/itemZoom__13dShopSystem_cFP4cXyz.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 801990B0-801990B8 1939F0 0008+00 1/0 0/0 0/0 .text
|
||||
* seq_wait__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */
|
||||
@@ -1607,13 +1465,6 @@ int dShopSystem_c::seq_wait(fopAc_ac_c* param_0, dMsgFlow_c* param_1) {
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80453B44-80453B48 002144 0004+00 3/3 0/0 0/0 .sdata2 @5084 */
|
||||
SECTION_SDATA2 static u8 lit_5084[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
inline void pos3Dto2D(Vec* a, Vec* b) {
|
||||
mDoLib_project(a, b);
|
||||
@@ -1621,8 +1472,6 @@ inline void pos3Dto2D(Vec* a, Vec* b) {
|
||||
|
||||
/* 801990B8-8019936C 1939F8 02B4+00 1/0 0/0 0/0 .text
|
||||
* seq_start__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int dShopSystem_c::seq_start(fopAc_ac_c* actor, dMsgFlow_c* p_flow) {
|
||||
if (field_0xf79 != 0) {
|
||||
dComIfGp_setDoStatusForce(0, 0);
|
||||
@@ -1690,16 +1539,6 @@ int dShopSystem_c::seq_start(fopAc_ac_c* actor, dMsgFlow_c* p_flow) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dShopSystem_c::seq_start(fopAc_ac_c* param_0, dMsgFlow_c* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/shop/d_shop_system/seq_start__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8019936C-801993C4 193CAC 0058+00 1/0 0/0 0/0 .text
|
||||
* seq_select_wait__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */
|
||||
@@ -1714,8 +1553,6 @@ int dShopSystem_c::seq_select_wait(fopAc_ac_c*, dMsgFlow_c*) {
|
||||
|
||||
/* 801993C4-8019959C 193D04 01D8+00 1/0 0/0 0/0 .text
|
||||
* seq_select_start__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int dShopSystem_c::seq_select_start(fopAc_ac_c*, dMsgFlow_c*) {
|
||||
if (field_0xf60 < 0 && field_0xf76 == 0 && dShopSystem_item_count != -1) {
|
||||
if (dShopSystem_item_count != data_80451058) {
|
||||
@@ -1765,21 +1602,9 @@ int dShopSystem_c::seq_select_start(fopAc_ac_c*, dMsgFlow_c*) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dShopSystem_c::seq_select_start(fopAc_ac_c* param_0, dMsgFlow_c* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/shop/d_shop_system/seq_select_start__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8019959C-80199A18 193EDC 047C+00 1/0 0/0 0/0 .text
|
||||
* seq_select__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int dShopSystem_c::seq_select(fopAc_ac_c* actor, dMsgFlow_c* p_flow) {
|
||||
if (chkSpMode() && !beforeSelectSeqAction(p_flow, field_0xf5c)) {
|
||||
return 0;
|
||||
@@ -1883,32 +1708,11 @@ int dShopSystem_c::seq_select(fopAc_ac_c* actor, dMsgFlow_c* p_flow) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dShopSystem_c::seq_select(fopAc_ac_c* param_0, dMsgFlow_c* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/shop/d_shop_system/seq_select__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80453B48-80453B50 002148 0004+04 1/1 0/0 0/0 .sdata2 @5296 */
|
||||
SECTION_SDATA2 static f32 lit_5296[1 + 1 /* padding */] = {
|
||||
9.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
|
||||
/* 80453B50-80453B58 002150 0008+00 1/1 0/0 0/0 .sdata2 @5298 */
|
||||
SECTION_SDATA2 static f64 lit_5298 = 4503601774854144.0 /* cast s32 to float */;
|
||||
|
||||
/* 80199A18-80199BF8 194358 01E0+00 1/0 0/0 0/0 .text
|
||||
* seq_moving__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int dShopSystem_c::seq_moving(fopAc_ac_c*, dMsgFlow_c*) {
|
||||
field_0xf68++;
|
||||
|
||||
@@ -1952,16 +1756,6 @@ int dShopSystem_c::seq_moving(fopAc_ac_c*, dMsgFlow_c*) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dShopSystem_c::seq_moving(fopAc_ac_c* param_0, dMsgFlow_c* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/shop/d_shop_system/seq_moving__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80199BF8-80199D14 194538 011C+00 1/0 0/0 0/0 .text
|
||||
* seq_decide__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */
|
||||
@@ -2019,8 +1813,6 @@ int dShopSystem_c::seq_choose(fopAc_ac_c* actor, dMsgFlow_c* p_flow) {
|
||||
|
||||
/* 80199E28-80199FA4 194768 017C+00 1/0 0/0 0/0 .text
|
||||
* seq_decide_yes__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
int dShopSystem_c::seq_decide_yes(fopAc_ac_c* actor, dMsgFlow_c* p_flow) {
|
||||
if (dMsgObject_getMessageID() == 0x1B82) {
|
||||
mShopCamAction.SetSelectIdx(0);
|
||||
@@ -2061,16 +1853,6 @@ int dShopSystem_c::seq_decide_yes(fopAc_ac_c* actor, dMsgFlow_c* p_flow) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dShopSystem_c::seq_decide_yes(fopAc_ac_c* param_0, dMsgFlow_c* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/shop/d_shop_system/seq_decide_yes__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80199FA4-8019A020 1948E4 007C+00 1/0 0/0 0/0 .text
|
||||
* seq_decide_no__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */
|
||||
@@ -2120,11 +1902,9 @@ int dShopSystem_c::shop_init(bool param_0) {
|
||||
|
||||
/* 8019A158-8019A238 194A98 00E0+00 0/0 0/0 9/9 .text
|
||||
* shop_process__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c */
|
||||
// process array match issues
|
||||
#ifdef NONMATCHING
|
||||
int dShopSystem_c::shop_process(fopAc_ac_c* param_0, dMsgFlow_c* param_1) {
|
||||
int iVar1;
|
||||
iVar1 = (this->*process[mSeq])(param_0, param_1);
|
||||
iVar1 = (this->*((processFunc*)process)[mSeq])(param_0, param_1);
|
||||
|
||||
if (mWaitTimer != 0) {
|
||||
mWaitTimer--;
|
||||
@@ -2149,16 +1929,6 @@ int dShopSystem_c::shop_process(fopAc_ac_c* param_0, dMsgFlow_c* param_1) {
|
||||
}
|
||||
return iVar1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm int dShopSystem_c::shop_process(fopAc_ac_c* param_0, dMsgFlow_c* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/shop/d_shop_system/shop_process__13dShopSystem_cFP10fopAc_ac_cP10dMsgFlow_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804506F8-80450700 -00001 0004+04 1/1 0/0 0/0 .sdata shop_item_pos_data_tbl */
|
||||
@@ -2278,40 +2048,134 @@ void dShopSystem_c::deleteObject() {
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80453B60-80453B64 002160 0004+00 1/1 0/0 0/0 .sdata2 @5687 */
|
||||
SECTION_SDATA2 static f32 lit_5687 = -175.0f;
|
||||
|
||||
/* 80453B64-80453B68 002164 0004+00 1/1 0/0 0/0 .sdata2 @5688 */
|
||||
SECTION_SDATA2 static f32 lit_5688 = 165.0f;
|
||||
|
||||
/* 80453B68-80453B6C 002168 0004+00 1/1 0/0 0/0 .sdata2 @5689 */
|
||||
SECTION_SDATA2 static f32 lit_5689 = 10.0f;
|
||||
|
||||
/* 80453B6C-80453B70 00216C 0004+00 1/1 0/0 0/0 .sdata2 @5690 */
|
||||
SECTION_SDATA2 static f32 lit_5690 = 225.0f;
|
||||
|
||||
/* 80453B70-80453B74 002170 0004+00 1/1 0/0 0/0 .sdata2 @5691 */
|
||||
SECTION_SDATA2 static f32 lit_5691 = 370.0f;
|
||||
|
||||
/* 80453B74-80453B78 002174 0004+00 1/1 0/0 0/0 .sdata2 @5692 */
|
||||
SECTION_SDATA2 static f32 lit_5692 = -180.0f;
|
||||
|
||||
/* 80453B78-80453B7C 002178 0004+00 1/1 0/0 0/0 .sdata2 @5693 */
|
||||
SECTION_SDATA2 static f32 lit_5693 = 245.0f;
|
||||
|
||||
/* 80453B7C-80453B80 00217C 0004+00 1/1 0/0 0/0 .sdata2 @5694 */
|
||||
SECTION_SDATA2 static f32 lit_5694 = -380.0f;
|
||||
|
||||
/* 8019A5D0-8019AB00 194F10 0530+00 1/1 0/0 8/8 .text searchItemActor__13dShopSystem_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dShopSystem_c::searchItemActor() {
|
||||
nofralloc
|
||||
#include "asm/d/shop/d_shop_system/searchItemActor__13dShopSystem_cFv.s"
|
||||
int dShopSystem_c::searchItemActor() {
|
||||
u8 temp_data;
|
||||
if ((dShopSystem_item_count != -1 && ((dShopSystem_item_count < (temp_data = data_80451058)) || dShopSystem_camera_count < 2))) {
|
||||
if (dShopSystem_item_count < temp_data) {
|
||||
fpcEx_Search((fpcLyIt_JudgeFunc)dShopSystem_searchItemActor, this);
|
||||
}
|
||||
if (dShopSystem_camera_count < 2) {
|
||||
fpcEx_Search((fpcLyIt_JudgeFunc)dShopSystem_searchCameraActor, this);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (dShopSystem_item_count >= data_80451058 && dShopSystem_camera_count >= 2) {
|
||||
mSoldOutFlag = -1;
|
||||
if (data_80451060) {
|
||||
f32 actorDistArr[7];
|
||||
u8 itemNoArr[7];
|
||||
f32 arr2[7];
|
||||
daTag_ShopItem_c* actorArr[7];
|
||||
u8 arr3[7];
|
||||
for (int i = 0; i < data_80451058; i++) {
|
||||
actorArr[i] = dShopSystem_itemActor[i];
|
||||
itemNoArr[i] = dShopSystem_itemNo[i];
|
||||
actorDistArr[i] = fopAcM_searchActorDistance(this, actorArr[i]);
|
||||
arr2[i] = 0.0f;
|
||||
arr3[i] = 0;
|
||||
}
|
||||
for (int i = 0; i < data_80451058; i++) {
|
||||
arr2[i] = actorDistArr[i];
|
||||
arr3[i] = i;
|
||||
if (i > 0) {
|
||||
for (int j = i; j >= 0; j--) {
|
||||
if (arr2[j] < arr2[j-1]) {
|
||||
f32 temp = arr2[j];
|
||||
arr2[j] = arr2[j-1];
|
||||
arr2[j-1] = temp;
|
||||
u8 temp2 = arr3[j];
|
||||
arr3[j] = arr3[j-1];
|
||||
arr3[j-1] = temp2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < data_80451058; i++) {
|
||||
dShopSystem_itemActor[i] = actorArr[arr3[i]];
|
||||
dShopSystem_itemNo[i] = itemNoArr[arr3[i]];
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < data_80451058; i++) {
|
||||
u32 processId = dShopSystem_itemActor[i]->getProcessID();
|
||||
mItemCtrl.setItemIndex(i, processId);
|
||||
mItemCtrl.setMessageIndex(i, (u16)dShopSystem_itemActor[i]->orig.angle.GetX() != 0xffff ? (u16)dShopSystem_itemActor[i]->orig.angle.GetX() : -1);
|
||||
|
||||
if (processId + 0x10000 == 0xffff) {
|
||||
onFlag(i);
|
||||
onSoldOutItemFlag(i);
|
||||
} else {
|
||||
offFlag(i);
|
||||
if ((u8)fopAcM_GetParam(dShopSystem_itemActor[i]) == 0xff) {
|
||||
onSoldOutItemFlag(i);
|
||||
} else {
|
||||
offSoldOutItemFlag(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (field_0xf77 == 8) {
|
||||
dShopSystem_cameraActor[0]->current.pos.set(-175.0f, 165.0f, 10.0f);
|
||||
dShopSystem_cameraActor[1]->current.pos.set(215.0f, 225.0f, 370.0f);
|
||||
}
|
||||
|
||||
if (data_80451058 > 3) {
|
||||
mShopCamAction.setCamDataIdx2(
|
||||
this, dShopSystem_itemActor[0], dShopSystem_itemActor[1], dShopSystem_itemActor[2],
|
||||
dShopSystem_itemActor[3], dShopSystem_itemActor[4], dShopSystem_itemActor[5], &dShopSystem_cameraActor[0]->current.pos,
|
||||
&dShopSystem_cameraActor[1]->current.pos
|
||||
);
|
||||
|
||||
if (field_0xf77 == 8) {
|
||||
cXyz camCtrPos;
|
||||
camCtrPos.set(-180.0f, 245.0f, -380.0f);
|
||||
mShopCamAction.setMasterCamCtrPos(&camCtrPos);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 7; i++) {
|
||||
if (dShopSystem_itemActor[i] != NULL) {
|
||||
u8 cVar8 = dShopSystem_itemActor[i]->orig.angle.GetZ();
|
||||
u8 cVar4 = ((u16)dShopSystem_itemActor[i]->orig.angle.GetZ()) >> 8;
|
||||
if (((cVar8 != 0xff) &&
|
||||
(dComIfGs_isSaveSwitch(cVar8) == 0)) &&
|
||||
((cVar4 != 0xff &&
|
||||
(dComIfGs_isSaveSwitch(cVar4) == 0)))) {
|
||||
onFlag(i);
|
||||
onSoldOutItemFlag(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
dShopSystem_item_count = -1;
|
||||
} else {
|
||||
mShopCamAction.setCamDataIdx(
|
||||
this, dShopSystem_itemActor[0], dShopSystem_itemActor[1], dShopSystem_itemActor[2],
|
||||
&dShopSystem_cameraActor[0]->current.pos,
|
||||
&dShopSystem_cameraActor[1]->current.pos
|
||||
);
|
||||
|
||||
for (int i = 0; i < 7; i++) {
|
||||
if (dShopSystem_itemActor[i] != NULL) {
|
||||
u8 cVar8 = dShopSystem_itemActor[i]->orig.angle.GetZ();
|
||||
u8 cVar4 = ((u16)dShopSystem_itemActor[i]->orig.angle.GetZ()) >> 8;
|
||||
if (((cVar8 != 0xff) &&
|
||||
(dComIfGs_isSaveSwitch(cVar8) == 0)) &&
|
||||
((cVar4 != 0xff &&
|
||||
(dComIfGs_isSaveSwitch(cVar4) == 0)))) {
|
||||
onFlag(i);
|
||||
onSoldOutItemFlag(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
dShopSystem_item_count = -1;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8019AB00-8019AB1C 195440 001C+00 1/1 0/0 0/0 .text getFlowNodeNum__13dShopSystem_cFv
|
||||
*/
|
||||
|
||||
@@ -1435,18 +1435,18 @@ s32 fopAcM_orderTreasureEvent(fopAc_ac_c* actorA, fopAc_ac_c* actorB, u16 priori
|
||||
|
||||
/* 8001BB14-8001BB44 016454 0030+00 0/0 11/11 10/10 .text
|
||||
* fopAcM_getTalkEventPartner__FPC10fopAc_ac_c */
|
||||
void* fopAcM_getTalkEventPartner(fopAc_ac_c const*) {
|
||||
fopAc_ac_c* fopAcM_getTalkEventPartner(fopAc_ac_c const*) {
|
||||
return dComIfGp_event_getTalkPartner();
|
||||
}
|
||||
|
||||
/* 8001BB44-8001BB74 016484 0030+00 0/0 5/5 0/0 .text fopAcM_getItemEventPartner__FPC10fopAc_ac_c
|
||||
*/
|
||||
void* fopAcM_getItemEventPartner(fopAc_ac_c const*) {
|
||||
fopAc_ac_c* fopAcM_getItemEventPartner(fopAc_ac_c const*) {
|
||||
return dComIfGp_event_getItemPartner();
|
||||
}
|
||||
|
||||
/* 8001BB74-8001BBE8 0164B4 0074+00 0/0 1/1 0/0 .text fopAcM_getEventPartner__FPC10fopAc_ac_c */
|
||||
void* fopAcM_getEventPartner(fopAc_ac_c const* actor) {
|
||||
fopAc_ac_c* fopAcM_getEventPartner(fopAc_ac_c const* actor) {
|
||||
if (dComIfGp_event_getPt1() != actor) {
|
||||
return dComIfGp_event_getPt1();
|
||||
}
|
||||
|
||||
+12
-12
@@ -1620,8 +1620,8 @@ bool J3DPEBlock::getBlend() {
|
||||
}
|
||||
|
||||
/* 8000DF54-8000DF5C 008894 0008+00 0/0 5/0 0/0 .text getAlphaComp__10J3DPEBlockFv */
|
||||
bool J3DPEBlock::getAlphaComp() {
|
||||
return false;
|
||||
J3DAlphaComp* J3DPEBlock::getAlphaComp() {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 8000DF5C-8000DF64 00889C 0008+00 0/0 6/0 0/0 .text getFog__10J3DPEBlockFv */
|
||||
@@ -1688,8 +1688,8 @@ bool J3DTevBlock::getTevKColorSel(u32 param_0) {
|
||||
}
|
||||
|
||||
/* 8000DFB8-8000DFC0 0088F8 0008+00 0/0 2/0 0/0 .text getTevOrder__11J3DTevBlockFUl */
|
||||
bool J3DTevBlock::getTevOrder(u32 param_0) {
|
||||
return false;
|
||||
J3DTevOrder* J3DTevBlock::getTevOrder(u32 param_0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 8000DFC0-8000DFC8 008900 0008+00 0/0 3/0 0/0 .text getTevKColor__11J3DTevBlockFUl */
|
||||
@@ -1713,14 +1713,14 @@ J3DTexMtx* J3DTexGenBlock::getTexMtx(u32 param_0) {
|
||||
}
|
||||
|
||||
/* 8000DFE0-8000DFE8 008920 0008+00 0/0 2/0 0/0 .text getTexCoord__14J3DTexGenBlockFUl */
|
||||
bool J3DTexGenBlock::getTexCoord(u32 param_0) {
|
||||
return false;
|
||||
J3DTexCoord* J3DTexGenBlock::getTexCoord(u32 param_0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 8000DFE8-8000DFF0 008928 0008+00 0/0 2/0 0/0 .text getTexGenNum__14J3DTexGenBlockCFv
|
||||
*/
|
||||
bool J3DTexGenBlock::getTexGenNum() const {
|
||||
return false;
|
||||
u32 J3DTexGenBlock::getTexGenNum() const {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* 8000DFF0-8000DFF8 008930 0008+00 0/0 3/0 0/0 .text getAmbColor__13J3DColorBlockFUl */
|
||||
@@ -1729,8 +1729,8 @@ bool J3DColorBlock::getAmbColor(u32 param_0) {
|
||||
}
|
||||
|
||||
/* 8000DFF8-8000E000 008938 0008+00 0/0 2/0 0/0 .text getColorChan__13J3DColorBlockFUl */
|
||||
bool J3DColorBlock::getColorChan(u32 param_0) {
|
||||
return false;
|
||||
J3DColorChan* J3DColorBlock::getColorChan(u32 param_0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 8000E000-8000E008 008940 0008+00 0/0 2/0 0/0 .text getMatColor__13J3DColorBlockFUl */
|
||||
@@ -2828,8 +2828,8 @@ asm void mDoExt_McaMorfSO::calc() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoExt_McaMorfSO::setAnm(J3DAnmTransform* param_0, int param_1, f32 param_2, f32 param_3,
|
||||
f32 param_4, f32 param_5) {
|
||||
asm void mDoExt_McaMorfSO::setAnm(J3DAnmTransform* i_anm, int i_attr, f32 i_morf, f32 i_rate,
|
||||
f32 i_start, f32 i_end) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_ext/setAnm__16mDoExt_McaMorfSOFP15J3DAnmTransformiffff.s"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user