mirror of
https://github.com/zeldaret/tp
synced 2026-07-30 16:04:03 -04:00
d_a_b_oh2 / d_a_obj_web0 / d_a_obj_web1 (#243)
* d_a_obj_web0 / d_a_obj_web1 * remove asm * d_a_set_bgobj * d_cc_s work * remove asm * build fix * fix tp.py progress check and rel sha1 check * clean up some bg files
This commit is contained in:
@@ -61,7 +61,6 @@ public:
|
||||
/* 0x5AC */ request_of_phase_process_class mPhase;
|
||||
/* 0x5B4 */ mDoExt_McaMorfSO* mpMorf;
|
||||
/* 0x5B8 */ Z2CreatureEnemy mZ2Enemy;
|
||||
/* 0x648 */ u8 field_0x648[0x14];
|
||||
/* 0x65C */ int field_0x65c;
|
||||
/* 0x660 */ u8 field_0x660;
|
||||
/* 0x661 */ u8 field_0x661[0x668 - 0x661];
|
||||
|
||||
+302
-461
@@ -1,496 +1,337 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: d_a_b_oh2
|
||||
//
|
||||
/**
|
||||
* d_a_b_oh2.cpp
|
||||
* Morpheel Tentacle
|
||||
*/
|
||||
|
||||
#include "rel/d/a/b/d_a_b_oh2/d_a_b_oh2.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JMath/JMath.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "c/c_damagereaction.h"
|
||||
#include "d/d_procname.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct request_of_phase_process_class {};
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct J3DModel {};
|
||||
|
||||
struct Vec {};
|
||||
|
||||
struct cXyz {
|
||||
/* 80266B34 */ void operator-(Vec const&) const;
|
||||
/* 8061E19C */ ~cXyz();
|
||||
/* 8061EA2C */ cXyz();
|
||||
};
|
||||
|
||||
struct mDoExt_invisibleModel {
|
||||
/* 8000E53C */ void create(J3DModel*, u8);
|
||||
/* 8000E7C0 */ void entryDL(cXyz*);
|
||||
};
|
||||
|
||||
struct J3DMaterialTable {};
|
||||
|
||||
struct J3DAnmTextureSRTKey {};
|
||||
|
||||
struct mDoExt_btkAnm {
|
||||
/* 8000D63C */ void init(J3DMaterialTable*, J3DAnmTextureSRTKey*, int, int, f32, s16, s16);
|
||||
/* 8000D6D8 */ void entry(J3DMaterialTable*, f32);
|
||||
};
|
||||
|
||||
struct J3DAnmTevRegKey {};
|
||||
|
||||
struct mDoExt_brkAnm {
|
||||
/* 8000D70C */ void init(J3DMaterialTable*, J3DAnmTevRegKey*, int, int, f32, s16, s16);
|
||||
/* 8000D7A8 */ void entry(J3DMaterialTable*, f32);
|
||||
};
|
||||
|
||||
struct mDoExt_baseAnm {
|
||||
/* 8000D428 */ void play();
|
||||
};
|
||||
|
||||
struct mDoExt_McaMorfCallBack2_c {};
|
||||
|
||||
struct mDoExt_McaMorfCallBack1_c {};
|
||||
|
||||
struct J3DAnmTransform {};
|
||||
|
||||
struct J3DModelData {};
|
||||
|
||||
struct Z2Creature {};
|
||||
|
||||
struct mDoExt_McaMorfSO {
|
||||
/* 800107D0 */ mDoExt_McaMorfSO(J3DModelData*, mDoExt_McaMorfCallBack1_c*,
|
||||
mDoExt_McaMorfCallBack2_c*, J3DAnmTransform*, int, f32, int,
|
||||
int, Z2Creature*, u32, u32);
|
||||
/* 800110B0 */ void play(u32, s8);
|
||||
/* 800111EC */ void modelCalc();
|
||||
/* 80011310 */ void stopZelAnime();
|
||||
};
|
||||
|
||||
struct fopAc_ac_c {
|
||||
/* 80018B64 */ fopAc_ac_c();
|
||||
};
|
||||
|
||||
struct dKy_tevstr_c {};
|
||||
|
||||
struct dScnKy_env_light_c {
|
||||
/* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
|
||||
/* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
|
||||
};
|
||||
|
||||
struct dRes_info_c {};
|
||||
|
||||
struct dRes_control_c {
|
||||
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
|
||||
};
|
||||
|
||||
struct csXyz {
|
||||
/* 8061E9EC */ ~csXyz();
|
||||
/* 8061EA28 */ csXyz();
|
||||
};
|
||||
|
||||
struct b_oh2_class {};
|
||||
|
||||
struct Z2CreatureEnemy {
|
||||
/* 802C0F64 */ Z2CreatureEnemy();
|
||||
/* 802C1094 */ void init(Vec*, Vec*, u8, u8);
|
||||
};
|
||||
|
||||
struct JMath {
|
||||
static u8 sincosTable_[65536];
|
||||
};
|
||||
|
||||
struct J3DJoint {};
|
||||
|
||||
struct J3DFrameCtrl {
|
||||
/* 803283FC */ void init(s16);
|
||||
/* 8061E820 */ ~J3DFrameCtrl();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void nodeCallBack__FP8J3DJointi();
|
||||
extern "C" static void daB_OH2_Draw__FP11b_oh2_class();
|
||||
extern "C" static void dmcalc__FP11b_oh2_class();
|
||||
extern "C" void __dt__4cXyzFv();
|
||||
extern "C" static void action__FP11b_oh2_class();
|
||||
extern "C" static void daB_OH2_Execute__FP11b_oh2_class();
|
||||
extern "C" static bool daB_OH2_IsDelete__FP11b_oh2_class();
|
||||
extern "C" static void daB_OH2_Delete__FP11b_oh2_class();
|
||||
extern "C" static void useHeapInit__FP10fopAc_ac_c();
|
||||
extern "C" void __dt__12J3DFrameCtrlFv();
|
||||
extern "C" static void daB_OH2_Create__FP10fopAc_ac_c();
|
||||
extern "C" void __dt__5csXyzFv();
|
||||
extern "C" void __ct__5csXyzFv();
|
||||
extern "C" void __ct__4cXyzFv();
|
||||
extern "C" extern char const* const d_a_b_oh2__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_XrotM__FPA4_fs();
|
||||
extern "C" void mDoMtx_YrotS__FPA4_fs();
|
||||
extern "C" void mDoMtx_YrotM__FPA4_fs();
|
||||
extern "C" void play__14mDoExt_baseAnmFv();
|
||||
extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss();
|
||||
extern "C" void entry__13mDoExt_btkAnmFP16J3DMaterialTablef();
|
||||
extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss();
|
||||
extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef();
|
||||
extern "C" void create__21mDoExt_invisibleModelFP8J3DModelUc();
|
||||
extern "C" void entryDL__21mDoExt_invisibleModelFP4cXyz();
|
||||
extern "C" void
|
||||
__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl();
|
||||
extern "C" void play__16mDoExt_McaMorfSOFUlSc();
|
||||
extern "C" void modelCalc__16mDoExt_McaMorfSOFv();
|
||||
extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv();
|
||||
extern "C" void cDmrNowMidnaTalk__Fv();
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void fopAcIt_Judge__FPFPvPv_PvPv();
|
||||
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
|
||||
extern "C" void fpcSch_JudgeByID__FPvPv();
|
||||
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void dComIfGp_getReverb__Fi();
|
||||
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
|
||||
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void __mi__4cXyzCFRC3Vec();
|
||||
extern "C" void cM_atan2s__Fff();
|
||||
extern "C" void cM_rndF__Ff();
|
||||
extern "C" void cM_rndFX__Ff();
|
||||
extern "C" void MtxTrans__FfffUc();
|
||||
extern "C" void MtxScale__FfffUc();
|
||||
extern "C" void MtxPosition__FP4cXyzP4cXyz();
|
||||
extern "C" void __ct__15Z2CreatureEnemyFv();
|
||||
extern "C" void init__15Z2CreatureEnemyFP3VecP3VecUcUc();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void init__12J3DFrameCtrlFs();
|
||||
extern "C" void PSMTXCopy();
|
||||
extern "C" void PSMTXTrans();
|
||||
extern "C" void PSMTXMultVec();
|
||||
extern "C" void __construct_array();
|
||||
extern "C" void _savegpr_24();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_24();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* g_fopAc_Method[8];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
extern "C" extern u8 j3dSys[284];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" extern void* calc_mtx[1 + 1 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8061EA38-8061EA3C 000000 0004+00 5/5 0/0 0/0 .rodata @3678 */
|
||||
SECTION_RODATA static f32 const lit_3678 = 1.0f;
|
||||
COMPILER_STRIP_GATE(0x8061EA38, &lit_3678);
|
||||
extern "C" extern leafdraw_method_class g_fopAc_Method;
|
||||
|
||||
/* 8061DCB8-8061DDB0 000078 00F8+00 1/1 0/0 0/0 .text nodeCallBack__FP8J3DJointi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void nodeCallBack(J3DJoint* param_0, int param_1) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/b/d_a_b_oh2/d_a_b_oh2/nodeCallBack__FP8J3DJointi.s"
|
||||
static int nodeCallBack(J3DJoint* i_joint, int param_1) {
|
||||
if (param_1 == 0) {
|
||||
int jntNo = i_joint->getJntNo();
|
||||
J3DModel* model = j3dSys.getModel();
|
||||
b_oh2_class* area = (b_oh2_class*)model->getUserArea();
|
||||
|
||||
if (area != NULL) {
|
||||
MtxTrans(area->field_0x660[jntNo].x, area->field_0x660[jntNo].y,
|
||||
area->field_0x660[jntNo].z, 0);
|
||||
mDoMtx_YrotM((MtxP)calc_mtx, area->field_0x7d4[jntNo].y);
|
||||
mDoMtx_XrotM((MtxP)calc_mtx, area->field_0x7d4[jntNo].x);
|
||||
mDoMtx_YrotM((MtxP)calc_mtx, -0x4000);
|
||||
|
||||
MtxScale(1.0f, area->field_0x5e8[jntNo], area->field_0x5e8[jntNo], 1);
|
||||
model->setAnmMtx(jntNo, (MtxP)calc_mtx);
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8061DDB0-8061DE4C 000170 009C+00 1/0 0/0 0/0 .text daB_OH2_Draw__FP11b_oh2_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daB_OH2_Draw(b_oh2_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/b/d_a_b_oh2/d_a_b_oh2/daB_OH2_Draw__FP11b_oh2_class.s"
|
||||
static int daB_OH2_Draw(b_oh2_class* i_this) {
|
||||
J3DModel* model = i_this->mpMorf->getModel();
|
||||
|
||||
g_env_light.settingTevStruct(0, &i_this->current.pos, &i_this->mTevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(model, &i_this->mTevStr);
|
||||
|
||||
i_this->mpBtk->entry(model->getModelData());
|
||||
i_this->mpBrk->entry(model->getModelData());
|
||||
i_this->mInvisModel.entryDL(NULL);
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8061EA3C-8061EA40 000004 0004+00 0/2 0/0 0/0 .rodata @3792 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3792[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8061EA3C, &lit_3792);
|
||||
#pragma pop
|
||||
|
||||
/* 8061EA40-8061EA44 000008 0004+00 0/1 0/0 0/0 .rodata @3793 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3793 = 200.0f;
|
||||
COMPILER_STRIP_GATE(0x8061EA40, &lit_3793);
|
||||
#pragma pop
|
||||
|
||||
/* 8061EA44-8061EA48 00000C 0004+00 0/1 0/0 0/0 .rodata @3794 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3794 = 100.0f;
|
||||
COMPILER_STRIP_GATE(0x8061EA44, &lit_3794);
|
||||
#pragma pop
|
||||
|
||||
/* 8061EA48-8061EA4C 000010 0004+00 0/1 0/0 0/0 .rodata @3795 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3795 = 123.0f;
|
||||
COMPILER_STRIP_GATE(0x8061EA48, &lit_3795);
|
||||
#pragma pop
|
||||
|
||||
/* 8061EA4C-8061EA50 000014 0004+00 0/2 0/0 0/0 .rodata @3796 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3796 = -50000.0f;
|
||||
COMPILER_STRIP_GATE(0x8061EA4C, &lit_3796);
|
||||
#pragma pop
|
||||
|
||||
/* 8061EA50-8061EA54 000018 0004+00 0/1 0/0 0/0 .rodata @3797 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3797 = -20.0f;
|
||||
COMPILER_STRIP_GATE(0x8061EA50, &lit_3797);
|
||||
#pragma pop
|
||||
|
||||
/* 8061EA54-8061EA58 00001C 0004+00 0/1 0/0 0/0 .rodata @3798 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3798 = 17.0f / 20.0f;
|
||||
COMPILER_STRIP_GATE(0x8061EA54, &lit_3798);
|
||||
#pragma pop
|
||||
|
||||
/* 8061EA58-8061EA5C 000020 0004+00 0/1 0/0 0/0 .rodata @3799 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3799 = 1.0f / 5.0f;
|
||||
COMPILER_STRIP_GATE(0x8061EA58, &lit_3799);
|
||||
#pragma pop
|
||||
|
||||
/* 8061EAE8-8061EAEC 000000 0004+00 3/3 0/0 0/0 .bss boss */
|
||||
static u8 boss[4];
|
||||
// pointer to main morpheel boss actor
|
||||
static b_ob_class* boss;
|
||||
|
||||
/* 8061DE4C-8061E19C 00020C 0350+00 1/1 0/0 0/0 .text dmcalc__FP11b_oh2_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dmcalc(b_oh2_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/b/d_a_b_oh2/d_a_b_oh2/dmcalc__FP11b_oh2_class.s"
|
||||
static void dmcalc(b_oh2_class* i_this) {
|
||||
cXyz sp20;
|
||||
cXyz sp14;
|
||||
|
||||
i_this->field_0x660[0] = i_this->current.pos;
|
||||
cXyz* var_r30 = &i_this->field_0x660[1];
|
||||
csXyz* var_r29 = &i_this->field_0x7d4[1];
|
||||
|
||||
cXyz sp8;
|
||||
mDoMtx_YrotS((MtxP)calc_mtx, i_this->shape_angle.y);
|
||||
mDoMtx_XrotM((MtxP)calc_mtx, i_this->shape_angle.x);
|
||||
|
||||
sp20.x = 0.0f;
|
||||
sp20.y = 0.0f;
|
||||
if (i_this->field_0x5d2[3] != 0) {
|
||||
sp20.z = 200.0f;
|
||||
} else if (boss->field_0x4752 == 101) {
|
||||
sp20.z = 100.0f;
|
||||
} else {
|
||||
sp20.z = boss->field_0x5d04 * 123.0f;
|
||||
}
|
||||
|
||||
MtxPosition(&sp20, &sp8);
|
||||
sp20.x = 0.0f;
|
||||
sp20.y = 0.0f;
|
||||
sp20.z = i_this->field_0x5e4;
|
||||
|
||||
f32 var_f31 = 1.0f;
|
||||
f32 var_f30 = 0.0f;
|
||||
f32 var_f29 = -50000.0f;
|
||||
|
||||
if (boss->mSpeedF < var_f31) {
|
||||
var_f29 = boss->field_0x47a0 + 100.0f;
|
||||
var_f30 = -20.0f;
|
||||
}
|
||||
|
||||
for (int i = 1; i < 31; i++) {
|
||||
f32 temp_f26 = (var_r30->x - var_r30[-1].x) + sp8.x * var_f31;
|
||||
f32 var_f1 = var_f30 + (var_r30->y + (sp8.y * var_f31));
|
||||
if (var_f1 < var_f29) {
|
||||
var_f1 = var_f29;
|
||||
}
|
||||
|
||||
f32 temp_f25 = var_f1 - var_r30[-1].y;
|
||||
f32 temp_f24 = (var_r30->z - var_r30[-1].z) + sp8.z * var_f31;
|
||||
var_f31 *= 0.85f;
|
||||
|
||||
s16 temp_r25;
|
||||
int temp_r24 = cM_atan2s(temp_f26, temp_f24);
|
||||
temp_r25 = -cM_atan2s(temp_f25, JMAFastSqrt((temp_f26 * temp_f26) + (temp_f24 * temp_f24)));
|
||||
|
||||
mDoMtx_YrotS((MtxP)calc_mtx, temp_r24);
|
||||
mDoMtx_XrotM((MtxP)calc_mtx, temp_r25);
|
||||
MtxPosition(&sp20, &sp14);
|
||||
|
||||
var_r30->x = var_r30[-1].x + sp14.x;
|
||||
var_r30->y = var_r30[-1].y + sp14.y;
|
||||
var_r30->z = var_r30[-1].z + sp14.z;
|
||||
var_r29[-1].x = temp_r25;
|
||||
var_r29[-1].y = temp_r24;
|
||||
|
||||
var_r30++;
|
||||
var_r29++;
|
||||
}
|
||||
|
||||
i_this->field_0x5e0 = 0.2f;
|
||||
i_this->field_0x5dc += 2000;
|
||||
|
||||
int temp_r6 = 0;
|
||||
for (int i = 0; i < 30; i++, temp_r6 += -10000) {
|
||||
if (boss->mSpeedF > 1.0f) {
|
||||
i_this->field_0x5e8[i] = i_this->field_0x5e0 + 1.0f +
|
||||
(i_this->field_0x5e0 * cM_ssin(i_this->field_0x5dc + temp_r6));
|
||||
} else {
|
||||
i_this->field_0x5e8[i] = 1.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8061E19C-8061E1D8 00055C 003C+00 1/1 0/0 0/0 .text __dt__4cXyzFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cXyz::~cXyz() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/b/d_a_b_oh2/d_a_b_oh2/__dt__4cXyzFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8061EA5C-8061EA60 000024 0004+00 0/1 0/0 0/0 .rodata @3875 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3875 = 650.0f;
|
||||
COMPILER_STRIP_GATE(0x8061EA5C, &lit_3875);
|
||||
#pragma pop
|
||||
|
||||
/* 8061EA60-8061EA68 000028 0004+04 0/1 0/0 0/0 .rodata @3876 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3876[1 + 1 /* padding */] = {
|
||||
20.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8061EA60, &lit_3876);
|
||||
#pragma pop
|
||||
|
||||
/* 8061EA68-8061EA70 000030 0008+00 0/1 0/0 0/0 .rodata @3878 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3878[8] = {
|
||||
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x8061EA68, &lit_3878);
|
||||
#pragma pop
|
||||
|
||||
/* 8061E1D8-8061E410 000598 0238+00 1/1 0/0 0/0 .text action__FP11b_oh2_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void action(b_oh2_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/b/d_a_b_oh2/d_a_b_oh2/action__FP11b_oh2_class.s"
|
||||
static void action(b_oh2_class* i_this) {
|
||||
cXyz local_20;
|
||||
cXyz vstack_2C;
|
||||
|
||||
switch (i_this->field_0x5ce) {
|
||||
case 0:
|
||||
break;
|
||||
}
|
||||
|
||||
PSMTXCopy(boss->field_0x5c0->getModel()->i_getAnmMtx(i_this->field_0x5c8 + 8),
|
||||
mDoMtx_stack_c::get());
|
||||
mDoMtx_stack_c::multVecZero(&i_this->current.pos);
|
||||
PSMTXCopy(boss->field_0x5c0->getModel()->i_getAnmMtx(0), mDoMtx_stack_c::get());
|
||||
|
||||
local_20.set(0.0f, 0.0f, i_this->field_0x5c8 * 20.0f + 650.0f);
|
||||
mDoMtx_stack_c::multVec(&local_20, &vstack_2C);
|
||||
local_20 = i_this->current.pos - vstack_2C;
|
||||
|
||||
i_this->shape_angle.y = cM_atan2s(local_20.x, local_20.z);
|
||||
i_this->shape_angle.x =
|
||||
-cM_atan2s(local_20.y, JMAFastSqrt((local_20.x * local_20.x) + (local_20.z * local_20.z)));
|
||||
|
||||
dmcalc(i_this);
|
||||
|
||||
mDoMtx_stack_c::transS(i_this->current.pos.x, i_this->current.pos.y, i_this->current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(i_this->shape_angle.y);
|
||||
mDoMtx_stack_c::XrotM(i_this->shape_angle.x);
|
||||
i_this->mpMorf->getModel()->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
|
||||
int roomNo = fopAcM_GetRoomNo(i_this);
|
||||
i_this->mpMorf->play(0, dComIfGp_getReverb(roomNo));
|
||||
|
||||
if (boss->mSpeedF <= 1.0f) {
|
||||
i_this->mpBrk->setFrame(0.0f);
|
||||
i_this->mpBtk->setFrame(0.0f);
|
||||
} else {
|
||||
i_this->mpBtk->play();
|
||||
i_this->mpBrk->play();
|
||||
}
|
||||
|
||||
i_this->mpMorf->modelCalc();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8061E410-8061E4E8 0007D0 00D8+00 2/1 0/0 0/0 .text daB_OH2_Execute__FP11b_oh2_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daB_OH2_Execute(b_oh2_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/b/d_a_b_oh2/d_a_b_oh2/daB_OH2_Execute__FP11b_oh2_class.s"
|
||||
static int daB_OH2_Execute(b_oh2_class* i_this) {
|
||||
if (cDmrNowMidnaTalk()) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (i_this->field_0x5c8 == 0) {
|
||||
boss = (b_ob_class*)fopAcM_SearchByID(i_this->mParentPcId);
|
||||
}
|
||||
|
||||
if (boss == NULL) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
i_this->field_0x5cc++;
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (i_this->field_0x5d2[i] != 0) {
|
||||
i_this->field_0x5d2[i]--;
|
||||
}
|
||||
}
|
||||
|
||||
if (i_this->field_0x5da != 0) {
|
||||
i_this->field_0x5da--;
|
||||
}
|
||||
|
||||
action(i_this);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8061E4E8-8061E4F0 0008A8 0008+00 1/0 0/0 0/0 .text daB_OH2_IsDelete__FP11b_oh2_class
|
||||
*/
|
||||
static bool daB_OH2_IsDelete(b_oh2_class* param_0) {
|
||||
return true;
|
||||
static int daB_OH2_IsDelete(b_oh2_class* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8061EA84-8061EA84 00004C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_8061EA84 = "B_oh";
|
||||
#pragma pop
|
||||
|
||||
/* 8061E4F0-8061E540 0008B0 0050+00 1/0 0/0 0/0 .text daB_OH2_Delete__FP11b_oh2_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daB_OH2_Delete(b_oh2_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/b/d_a_b_oh2/d_a_b_oh2/daB_OH2_Delete__FP11b_oh2_class.s"
|
||||
static int daB_OH2_Delete(b_oh2_class* i_this) {
|
||||
dComIfG_resDelete(&i_this->mPhase, "B_oh");
|
||||
if (i_this->mHeap != NULL) {
|
||||
i_this->mpMorf->stopZelAnime();
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8061EA70-8061EA74 000038 0004+00 0/1 0/0 0/0 .rodata @4048 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4048 = 39.0f;
|
||||
COMPILER_STRIP_GATE(0x8061EA70, &lit_4048);
|
||||
#pragma pop
|
||||
/* 8061E540-8061E820 000900 02E0+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
|
||||
static int useHeapInit(fopAc_ac_c* i_this) {
|
||||
b_oh2_class* _this = static_cast<b_oh2_class*>(i_this);
|
||||
|
||||
/* 8061EA74-8061EA78 00003C 0004+00 0/1 0/0 0/0 .rodata @4049 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4049 = 1.0f / 10.0f;
|
||||
COMPILER_STRIP_GATE(0x8061EA74, &lit_4049);
|
||||
#pragma pop
|
||||
_this->mpMorf =
|
||||
new mDoExt_McaMorfSO((J3DModelData*)dComIfG_getObjectRes("B_oh", 0x29), NULL, NULL, NULL, 2,
|
||||
1.0f, 0, -1, &_this->mZ2Enemy, 0, 0x11000284);
|
||||
|
||||
if (_this->mpMorf == NULL || _this->mpMorf->getModel() == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!_this->mInvisModel.create(_this->mpMorf->getModel(), 1)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
_this->mpMorf->getModel()->setUserArea((u32)i_this);
|
||||
|
||||
for (u16 i = 0; i < _this->mpMorf->getModel()->getModelData()->getJointNum(); i++) {
|
||||
_this->mpMorf->getModel()->getModelData()->getJointNodePointer(i)->setCallBack(
|
||||
nodeCallBack);
|
||||
}
|
||||
|
||||
_this->mpBtk = new mDoExt_btkAnm();
|
||||
if (_this->mpBtk == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
J3DAnmTextureSRTKey* btk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("B_oh", 0x36);
|
||||
if (!_this->mpBtk->init(_this->mpMorf->getModel()->getModelData(), btk, TRUE, 2, 1.0f, 0, -1)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
_this->mpBtk->setFrame(cM_rndF(39.0f));
|
||||
_this->mpBtk->setPlaySpeed(cM_rndFX(0.1f) + 1.0f);
|
||||
|
||||
_this->mpBrk = new mDoExt_brkAnm();
|
||||
if (_this->mpBrk == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
J3DAnmTevRegKey* brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("B_oh", 0x2F);
|
||||
if (!_this->mpBrk->init(_this->mpMorf->getModel()->getModelData(), brk, TRUE, 2, 1.0f, 0, -1)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
_this->mpBrk->setFrame(cM_rndF(39.0f));
|
||||
_this->mpBrk->setPlaySpeed(cM_rndFX(0.1f) + 1.0f);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 8061E868-8061E9EC 000C28 0184+00 1/0 0/0 0/0 .text daB_OH2_Create__FP10fopAc_ac_c */
|
||||
static int daB_OH2_Create(fopAc_ac_c* i_this) {
|
||||
if (!fopAcM_CheckCondition(i_this, 8)) {
|
||||
new (i_this) b_oh2_class();
|
||||
fopAcM_OnCondition(i_this, 8);
|
||||
}
|
||||
b_oh2_class* _this = static_cast<b_oh2_class*>(i_this);
|
||||
|
||||
int phase = dComIfG_resLoad(&_this->mPhase, "B_oh");
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
_this->field_0x5c8 = fopAcM_GetParam(_this) & 0xFF;
|
||||
|
||||
if (!fopAcM_entrySolidHeap(_this, (heapCallbackFunc)useHeapInit, 0x23E0)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
_this->mZ2Enemy.init(&_this->current.pos, &_this->current.pos, 3, 1);
|
||||
_this->field_0x5cc = cM_rndF(65536.0f);
|
||||
_this->field_0x5dc = cM_rndF(65536.0f);
|
||||
|
||||
for (int i = 0; i < 31; i++) {
|
||||
_this->field_0x660[i].y = -50000.0f;
|
||||
}
|
||||
|
||||
_this->field_0x5d2[3] = 10;
|
||||
_this->field_0x5e4 = cM_rndFX(5.0f) + 50.0f;
|
||||
|
||||
daB_OH2_Execute(_this);
|
||||
}
|
||||
|
||||
return phase;
|
||||
}
|
||||
|
||||
/* 8061EA8C-8061EAAC -00001 0020+00 1/0 0/0 0/0 .data l_daB_OH2_Method */
|
||||
SECTION_DATA static void* l_daB_OH2_Method[8] = {
|
||||
(void*)daB_OH2_Create__FP10fopAc_ac_c,
|
||||
(void*)daB_OH2_Delete__FP11b_oh2_class,
|
||||
(void*)daB_OH2_Execute__FP11b_oh2_class,
|
||||
(void*)daB_OH2_IsDelete__FP11b_oh2_class,
|
||||
(void*)daB_OH2_Draw__FP11b_oh2_class,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
static actor_method_class l_daB_OH2_Method = {
|
||||
(process_method_func)daB_OH2_Create, (process_method_func)daB_OH2_Delete,
|
||||
(process_method_func)daB_OH2_Execute, (process_method_func)daB_OH2_IsDelete,
|
||||
(process_method_func)daB_OH2_Draw,
|
||||
};
|
||||
|
||||
/* 8061EAAC-8061EADC -00001 0030+00 0/0 0/0 1/0 .data g_profile_B_OH2 */
|
||||
SECTION_DATA extern void* g_profile_B_OH2[12] = {
|
||||
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
|
||||
(void*)0x02100000, (void*)&g_fpcLf_Method,
|
||||
(void*)0x00000948, (void*)NULL,
|
||||
(void*)NULL, (void*)&g_fopAc_Method,
|
||||
(void*)0x00DB0000, (void*)&l_daB_OH2_Method,
|
||||
(void*)0x00044000, (void*)0x020E0000,
|
||||
extern actor_process_profile_definition g_profile_B_OH2 = {
|
||||
-3,
|
||||
7,
|
||||
0xFFFD,
|
||||
PROC_B_OH2,
|
||||
0,
|
||||
&g_fpcLf_Method.mBase,
|
||||
sizeof(b_oh2_class),
|
||||
0,
|
||||
0,
|
||||
&g_fopAc_Method,
|
||||
0x00DB,
|
||||
0,
|
||||
0,
|
||||
&l_daB_OH2_Method,
|
||||
0x00044000,
|
||||
2,
|
||||
14,
|
||||
0,
|
||||
0,
|
||||
};
|
||||
|
||||
/* 8061EADC-8061EAE8 000050 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */
|
||||
SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12J3DFrameCtrlFv,
|
||||
};
|
||||
|
||||
/* 8061E540-8061E820 000900 02E0+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void useHeapInit(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/b/d_a_b_oh2/d_a_b_oh2/useHeapInit__FP10fopAc_ac_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8061E820-8061E868 000BE0 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DFrameCtrl::~J3DFrameCtrl() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/b/d_a_b_oh2/d_a_b_oh2/__dt__12J3DFrameCtrlFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8061EA78-8061EA7C 000040 0004+00 0/1 0/0 0/0 .rodata @4105 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4105 = 65536.0f;
|
||||
COMPILER_STRIP_GATE(0x8061EA78, &lit_4105);
|
||||
#pragma pop
|
||||
|
||||
/* 8061EA7C-8061EA80 000044 0004+00 0/1 0/0 0/0 .rodata @4106 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4106 = 50.0f;
|
||||
COMPILER_STRIP_GATE(0x8061EA7C, &lit_4106);
|
||||
#pragma pop
|
||||
|
||||
/* 8061EA80-8061EA84 000048 0004+00 0/1 0/0 0/0 .rodata @4107 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4107 = 5.0f;
|
||||
COMPILER_STRIP_GATE(0x8061EA80, &lit_4107);
|
||||
#pragma pop
|
||||
|
||||
/* 8061E868-8061E9EC 000C28 0184+00 1/0 0/0 0/0 .text daB_OH2_Create__FP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daB_OH2_Create(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/b/d_a_b_oh2/d_a_b_oh2/daB_OH2_Create__FP10fopAc_ac_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8061E9EC-8061EA28 000DAC 003C+00 1/1 0/0 0/0 .text __dt__5csXyzFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm csXyz::~csXyz() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/b/d_a_b_oh2/d_a_b_oh2/__dt__5csXyzFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8061EA28-8061EA2C 000DE8 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */
|
||||
csXyz::csXyz() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 8061EA2C-8061EA30 000DEC 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */
|
||||
cXyz::cXyz() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 8061EA84-8061EA84 00004C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
@@ -653,7 +653,7 @@ extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" extern void* calc_mtx[1 + 1 /* padding */];
|
||||
extern "C" extern u32 __float_nan;
|
||||
extern "C" extern u8 struct_80450C98[4];
|
||||
extern "C" extern u8 struct_80450C9C[4];
|
||||
extern "C" extern u8 cDmr_SkipInfo[4];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
extern "C" void __register_global_object();
|
||||
extern "C" void actionInitWait2__11daObjLife_cFv();
|
||||
|
||||
@@ -1,186 +1,91 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: d_a_set_bgobj
|
||||
//
|
||||
/**
|
||||
* d_a_set_bgobj.cpp
|
||||
*
|
||||
*/
|
||||
|
||||
#include "rel/d/a/d_a_set_bgobj/d_a_set_bgobj.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "d/d_procname.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
extern "C" extern leafdraw_method_class g_fopAc_Method;
|
||||
|
||||
struct request_of_phase_process_class {};
|
||||
|
||||
struct fopAc_ac_c {
|
||||
/* 80018B64 */ fopAc_ac_c();
|
||||
};
|
||||
|
||||
struct daSetBgObj_c {
|
||||
/* 80031870 */ void getArcName(fopAc_ac_c*);
|
||||
/* 80485D78 */ void CreateInit();
|
||||
/* 80485DFC */ void create();
|
||||
/* 80485E88 */ void Delete();
|
||||
};
|
||||
|
||||
struct dRes_info_c {};
|
||||
|
||||
struct dRes_control_c {
|
||||
/* 8003C37C */ void getRes(char const*, char const*, dRes_info_c*, int);
|
||||
};
|
||||
|
||||
struct csXyz {};
|
||||
|
||||
struct cXyz {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void CreateInit__12daSetBgObj_cFv();
|
||||
extern "C" void create__12daSetBgObj_cFv();
|
||||
extern "C" void Delete__12daSetBgObj_cFv();
|
||||
extern "C" static void daSetBgObj_Delete__FP12daSetBgObj_c();
|
||||
extern "C" static void daSetBgObj_Create__FP10fopAc_ac_c();
|
||||
extern "C" extern char const* const d_a_set_bgobj__stringBase0;
|
||||
extern "C" extern void* g_profile_SET_BG_OBJ[12];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc();
|
||||
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void getArcName__12daSetBgObj_cFP10fopAc_ac_c();
|
||||
extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci();
|
||||
extern "C" void sprintf();
|
||||
extern "C" extern void* g_fopAc_Method[8];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80485F00-80485F0C 000000 0009+03 1/1 0/0 0/0 .rodata l_specName */
|
||||
SECTION_RODATA static u8 const l_specName[9 + 3 /* padding */] = {
|
||||
0x73,
|
||||
0x70,
|
||||
0x65,
|
||||
0x63,
|
||||
0x2E,
|
||||
0x64,
|
||||
0x61,
|
||||
0x74,
|
||||
0x00,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80485F00, &l_specName);
|
||||
|
||||
/* 80485F10-80485F1C 000000 000A+02 1/1 0/0 0/0 .data l_bg_profName$3618 */
|
||||
SECTION_DATA static u8 l_bg_profName[10 + 2 /* padding */] = {
|
||||
0x02,
|
||||
0xDE,
|
||||
0x02,
|
||||
0xDE,
|
||||
0x02,
|
||||
0xDE,
|
||||
0x01,
|
||||
0x3C,
|
||||
0x01,
|
||||
0x3D,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
static const char l_specName[] = "spec.dat";
|
||||
|
||||
/* 80485D78-80485DFC 000078 0084+00 1/1 0/0 0/0 .text CreateInit__12daSetBgObj_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daSetBgObj_c::CreateInit() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_set_bgobj/d_a_set_bgobj/CreateInit__12daSetBgObj_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
int daSetBgObj_c::CreateInit() {
|
||||
static s16 l_bg_profName[5] = {
|
||||
PROC_BG_OBJ, PROC_BG_OBJ, PROC_BG_OBJ, PROC_Obj_Flag2, PROC_Obj_Flag3,
|
||||
};
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80485F0C-80485F0C 00000C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80485F0C = "%s";
|
||||
#pragma pop
|
||||
u16* spec_data_p = (u16*)dComIfG_getObjectRes(mArcName, l_specName);
|
||||
fopAcM_create(l_bg_profName[*spec_data_p], fopAcM_GetParam(this), ¤t.pos,
|
||||
fopAcM_GetRoomNo(this), ¤t.angle, &mScale, -1);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80485DFC-80485E88 0000FC 008C+00 1/1 0/0 0/0 .text create__12daSetBgObj_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daSetBgObj_c::create() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_set_bgobj/d_a_set_bgobj/create__12daSetBgObj_cFv.s"
|
||||
int daSetBgObj_c::create() {
|
||||
if (!fopAcM_CheckCondition(this, 8)) {
|
||||
new (this) daSetBgObj_c();
|
||||
fopAcM_OnCondition(this, 8);
|
||||
}
|
||||
|
||||
sprintf(mArcName, "%s", getArcName(this));
|
||||
|
||||
int phase = dComIfG_resLoad(&mPhase, mArcName);
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
CreateInit();
|
||||
phase = cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
return phase;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80485E88-80485EB8 000188 0030+00 1/1 0/0 0/0 .text Delete__12daSetBgObj_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daSetBgObj_c::Delete() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_set_bgobj/d_a_set_bgobj/Delete__12daSetBgObj_cFv.s"
|
||||
int daSetBgObj_c::Delete() {
|
||||
dComIfG_resDelete(&mPhase, mArcName);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80485EB8-80485ED8 0001B8 0020+00 1/0 0/0 0/0 .text daSetBgObj_Delete__FP12daSetBgObj_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daSetBgObj_Delete(daSetBgObj_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_set_bgobj/d_a_set_bgobj/daSetBgObj_Delete__FP12daSetBgObj_c.s"
|
||||
static int daSetBgObj_Delete(daSetBgObj_c* i_this) {
|
||||
return i_this->Delete();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80485ED8-80485EF8 0001D8 0020+00 1/0 0/0 0/0 .text daSetBgObj_Create__FP10fopAc_ac_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daSetBgObj_Create(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/d_a_set_bgobj/d_a_set_bgobj/daSetBgObj_Create__FP10fopAc_ac_c.s"
|
||||
static int daSetBgObj_Create(fopAc_ac_c* i_this) {
|
||||
return static_cast<daSetBgObj_c*>(i_this)->create();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80485F1C-80485F3C -00001 0020+00 1/0 0/0 0/0 .data l_daSetBgObj_Method */
|
||||
SECTION_DATA static void* l_daSetBgObj_Method[8] = {
|
||||
(void*)daSetBgObj_Create__FP10fopAc_ac_c,
|
||||
(void*)daSetBgObj_Delete__FP12daSetBgObj_c,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
static actor_method_class l_daSetBgObj_Method = {
|
||||
(process_method_func)daSetBgObj_Create,
|
||||
(process_method_func)daSetBgObj_Delete,
|
||||
};
|
||||
|
||||
/* 80485F3C-80485F6C -00001 0030+00 0/0 0/0 1/0 .data g_profile_SET_BG_OBJ */
|
||||
SECTION_DATA extern void* g_profile_SET_BG_OBJ[12] = {
|
||||
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
|
||||
(void*)0x02DD0000, (void*)&g_fpcLf_Method,
|
||||
(void*)0x00000580, (void*)NULL,
|
||||
(void*)NULL, (void*)&g_fopAc_Method,
|
||||
(void*)0x02F20000, (void*)&l_daSetBgObj_Method,
|
||||
(void*)0x00040100, (void*)0x000E0000,
|
||||
extern actor_process_profile_definition g_profile_SET_BG_OBJ = {
|
||||
-3,
|
||||
7,
|
||||
-3,
|
||||
PROC_SET_BG_OBJ,
|
||||
0,
|
||||
&g_fpcLf_Method.mBase,
|
||||
sizeof(daSetBgObj_c),
|
||||
0,
|
||||
0,
|
||||
&g_fopAc_Method,
|
||||
0x02F2,
|
||||
0,
|
||||
0,
|
||||
&l_daSetBgObj_Method,
|
||||
0x00040100,
|
||||
0,
|
||||
14,
|
||||
0,
|
||||
0,
|
||||
};
|
||||
|
||||
/* 80485F0C-80485F0C 00000C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
@@ -419,7 +419,7 @@ extern "C" extern u32 g_blackColor;
|
||||
extern "C" extern void* calc_mtx[1 + 1 /* padding */];
|
||||
extern "C" extern u32 __float_nan;
|
||||
extern "C" extern u8 struct_80450C98[4];
|
||||
extern "C" extern u8 struct_80450C9C[4];
|
||||
extern "C" extern u8 cDmr_SkipInfo[4];
|
||||
extern "C" extern u8 data_80450CA0[4];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
extern "C" void __register_global_object();
|
||||
|
||||
@@ -175,7 +175,7 @@ extern "C" u8 mCurrentMtx__6J3DSys[48];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" extern void* calc_mtx[1 + 1 /* padding */];
|
||||
extern "C" extern u32 __float_nan;
|
||||
extern "C" extern u8 struct_80450C9C[4];
|
||||
extern "C" extern u8 cDmr_SkipInfo[4];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
|
||||
@@ -1,186 +1,14 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: d_a_obj_web0
|
||||
//
|
||||
/**
|
||||
* d_a_obj_web0.cpp
|
||||
* Spider Web (Wall)
|
||||
*/
|
||||
|
||||
#include "rel/d/a/obj/d_a_obj_web0/d_a_obj_web0.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct request_of_phase_process_class {};
|
||||
|
||||
struct obj_web0_class {};
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
/* 8000CE38 */ void scaleM(f32, f32, f32);
|
||||
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct J3DMaterialTable {};
|
||||
|
||||
struct J3DAnmTevRegKey {};
|
||||
|
||||
struct mDoExt_brkAnm {
|
||||
/* 8000D70C */ void init(J3DMaterialTable*, J3DAnmTevRegKey*, int, int, f32, s16, s16);
|
||||
/* 8000D7A8 */ void entry(J3DMaterialTable*, f32);
|
||||
};
|
||||
|
||||
struct mDoExt_baseAnm {
|
||||
/* 8000D428 */ void play();
|
||||
};
|
||||
|
||||
struct fopAc_ac_c {
|
||||
/* 80018B64 */ fopAc_ac_c();
|
||||
};
|
||||
|
||||
struct daObj_Web0_HIO_c {
|
||||
/* 80D3452C */ daObj_Web0_HIO_c();
|
||||
/* 80D350E4 */ ~daObj_Web0_HIO_c();
|
||||
};
|
||||
|
||||
struct dSv_info_c {
|
||||
/* 80035200 */ void onSwitch(int, int);
|
||||
/* 80035360 */ void isSwitch(int, int) const;
|
||||
};
|
||||
|
||||
struct dKy_tevstr_c {};
|
||||
|
||||
struct J3DModelData {};
|
||||
|
||||
struct cXyz {};
|
||||
|
||||
struct dScnKy_env_light_c {
|
||||
/* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
|
||||
/* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
|
||||
};
|
||||
|
||||
struct dRes_info_c {};
|
||||
|
||||
struct dRes_control_c {
|
||||
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
|
||||
};
|
||||
|
||||
struct dPa_levelEcallBack {};
|
||||
|
||||
struct csXyz {};
|
||||
|
||||
struct _GXColor {};
|
||||
|
||||
struct dPa_control_c {
|
||||
/* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*,
|
||||
u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*,
|
||||
cXyz const*, f32);
|
||||
};
|
||||
|
||||
struct dCcD_Stts {
|
||||
/* 80083860 */ void Init(int, int, fopAc_ac_c*);
|
||||
};
|
||||
|
||||
struct dCcD_SrcSph {};
|
||||
|
||||
struct dCcD_Sph {
|
||||
/* 80084A34 */ void Set(dCcD_SrcSph const&);
|
||||
};
|
||||
|
||||
struct dCcD_GStts {
|
||||
/* 80083760 */ dCcD_GStts();
|
||||
/* 80083830 */ void Move();
|
||||
};
|
||||
|
||||
struct dCcD_GObjInf {
|
||||
/* 80083A28 */ dCcD_GObjInf();
|
||||
/* 80084460 */ void ChkTgHit();
|
||||
/* 800844F8 */ void GetTgHitObj();
|
||||
/* 80084548 */ void GetTgHitGObj();
|
||||
/* 80084658 */ void ChkCoHit();
|
||||
};
|
||||
|
||||
struct dBgW_Base {};
|
||||
|
||||
struct dBgW {
|
||||
/* 8007B970 */ dBgW();
|
||||
/* 8007B9C0 */ void Move();
|
||||
};
|
||||
|
||||
struct dBgS {
|
||||
/* 80074A08 */ void Regist(dBgW_Base*, fopAc_ac_c*);
|
||||
};
|
||||
|
||||
struct cM3dGSph {
|
||||
/* 8026F648 */ void SetC(cXyz const&);
|
||||
/* 8026F708 */ void SetR(f32);
|
||||
/* 80D35054 */ ~cM3dGSph();
|
||||
};
|
||||
|
||||
struct cM3dGAab {
|
||||
/* 80D3509C */ ~cM3dGAab();
|
||||
};
|
||||
|
||||
struct cCcD_Obj {};
|
||||
|
||||
struct cCcS {
|
||||
/* 80264BA8 */ void Set(cCcD_Obj*);
|
||||
};
|
||||
|
||||
struct cBgD_t {};
|
||||
|
||||
struct cBgW {
|
||||
/* 80079F38 */ void Set(cBgD_t*, u32, f32 (*)[3][4]);
|
||||
};
|
||||
|
||||
struct cBgS_PolyInfo {};
|
||||
|
||||
struct cBgS {
|
||||
/* 80074250 */ void Release(dBgW_Base*);
|
||||
};
|
||||
|
||||
struct JAISoundID {};
|
||||
|
||||
struct Vec {};
|
||||
|
||||
struct Z2SeMgr {
|
||||
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
|
||||
/* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
|
||||
};
|
||||
|
||||
struct Z2AudioMgr {
|
||||
static u8 mAudioMgrPtr[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct JMath {
|
||||
static u8 sincosTable_[65536];
|
||||
};
|
||||
|
||||
struct J3DModel {};
|
||||
|
||||
struct J3DFrameCtrl {
|
||||
/* 803283FC */ void init(s16);
|
||||
/* 80D34D44 */ ~J3DFrameCtrl();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__16daObj_Web0_HIO_cFv();
|
||||
extern "C" static void daObj_Web0_Draw__FP14obj_web0_class();
|
||||
extern "C" static void damage_check__FP14obj_web0_class();
|
||||
extern "C" static void daObj_Web0_Execute__FP14obj_web0_class();
|
||||
extern "C" static bool daObj_Web0_IsDelete__FP14obj_web0_class();
|
||||
extern "C" static void daObj_Web0_Delete__FP14obj_web0_class();
|
||||
extern "C" static void useHeapInit__FP10fopAc_ac_c();
|
||||
extern "C" void __dt__12J3DFrameCtrlFv();
|
||||
extern "C" static void daObj_Web0_Create__FP10fopAc_ac_c();
|
||||
extern "C" void __dt__8cM3dGSphFv();
|
||||
extern "C" void __dt__8cM3dGAabFv();
|
||||
extern "C" void __dt__16daObj_Web0_HIO_cFv();
|
||||
extern "C" void __sinit_d_a_obj_web0_cpp();
|
||||
extern "C" extern char const* const d_a_obj_web0__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
@@ -234,109 +62,30 @@ extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void init__12J3DFrameCtrlFs();
|
||||
extern "C" void PSMTXCopy();
|
||||
extern "C" void PSMTXTrans();
|
||||
extern "C" void _savegpr_28();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* g_fopAc_Method[8];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__8dCcD_Sph[36];
|
||||
extern "C" extern void* __vt__9dCcD_Stts[11];
|
||||
extern "C" extern void* __vt__12cCcD_SphAttr[25];
|
||||
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
|
||||
extern "C" extern void* __vt__9cCcD_Stts[8];
|
||||
extern "C" extern leafdraw_method_class g_fopAc_Method;
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
extern "C" void __register_global_object();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D351C8-80D35208 000000 0040+00 1/1 0/0 0/0 .data cc_sph_src$3944 */
|
||||
SECTION_DATA static u8 cc_sph_src[64] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xD8, 0xFB, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* 80D35208-80D35228 -00001 0020+00 1/0 0/0 0/0 .data l_daObj_Web0_Method */
|
||||
SECTION_DATA static void* l_daObj_Web0_Method[8] = {
|
||||
(void*)daObj_Web0_Create__FP10fopAc_ac_c,
|
||||
(void*)daObj_Web0_Delete__FP14obj_web0_class,
|
||||
(void*)daObj_Web0_Execute__FP14obj_web0_class,
|
||||
(void*)daObj_Web0_IsDelete__FP14obj_web0_class,
|
||||
(void*)daObj_Web0_Draw__FP14obj_web0_class,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
};
|
||||
|
||||
/* 80D35228-80D35258 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_WEB0 */
|
||||
SECTION_DATA extern void* g_profile_OBJ_WEB0[12] = {
|
||||
(void*)0xFFFFFFFD, (void*)0x0003FFFD,
|
||||
(void*)0x00280000, (void*)&g_fpcLf_Method,
|
||||
(void*)0x0000073C, (void*)NULL,
|
||||
(void*)NULL, (void*)&g_fopAc_Method,
|
||||
(void*)0x002F0000, (void*)&l_daObj_Web0_Method,
|
||||
(void*)0x00040100, (void*)0x000E0000,
|
||||
};
|
||||
|
||||
/* 80D35258-80D35264 000090 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGSph */
|
||||
SECTION_DATA extern void* __vt__8cM3dGSph[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__8cM3dGSphFv,
|
||||
};
|
||||
|
||||
/* 80D35264-80D35270 00009C 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */
|
||||
SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__8cM3dGAabFv,
|
||||
};
|
||||
|
||||
/* 80D35270-80D3527C 0000A8 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */
|
||||
SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12J3DFrameCtrlFv,
|
||||
};
|
||||
|
||||
/* 80D3527C-80D35288 0000B4 000C+00 2/2 0/0 0/0 .data __vt__16daObj_Web0_HIO_c */
|
||||
SECTION_DATA extern void* __vt__16daObj_Web0_HIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__16daObj_Web0_HIO_cFv,
|
||||
};
|
||||
|
||||
/* 80D3452C-80D34544 0000EC 0018+00 1/1 0/0 0/0 .text __ct__16daObj_Web0_HIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm daObj_Web0_HIO_c::daObj_Web0_HIO_c() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0/__ct__16daObj_Web0_HIO_cFv.s"
|
||||
daObj_Web0_HIO_c::daObj_Web0_HIO_c() {
|
||||
field_0x4 = -1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D34544-80D345C0 000104 007C+00 1/0 0/0 0/0 .text daObj_Web0_Draw__FP14obj_web0_class
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Web0_Draw(obj_web0_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0/daObj_Web0_Draw__FP14obj_web0_class.s"
|
||||
static int daObj_Web0_Draw(obj_web0_class* i_this) {
|
||||
g_env_light.settingTevStruct(16, &i_this->current.pos, &i_this->mTevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(i_this->mpModel, &i_this->mTevStr);
|
||||
i_this->mpBrk->entry(i_this->mpModel->getModelData());
|
||||
|
||||
mDoExt_modelUpdateDL(i_this->mpModel);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D3517C-80D35180 000000 0004+00 3/3 0/0 0/0 .rodata @3724 */
|
||||
@@ -358,14 +107,58 @@ COMPILER_STRIP_GATE(0x80D35184, &lit_3726);
|
||||
#pragma pop
|
||||
|
||||
/* 80D345C0-80D34794 000180 01D4+00 1/1 0/0 0/0 .text damage_check__FP14obj_web0_class */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
static void damage_check(obj_web0_class* i_this) {
|
||||
i_this->mStts.Move();
|
||||
|
||||
if (i_this->mHitTimer != 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (i_this->mSphCc.ChkTgHit()) {
|
||||
i_this->mHitTimer = 6;
|
||||
|
||||
if (i_this->mSphCc.GetTgHitObj()->ChkAtType(AT_TYPE_IRON_BALL)) {
|
||||
i_this->mDeleteTimer = 41;
|
||||
return;
|
||||
}
|
||||
|
||||
if (i_this->mSphCc.GetTgHitObj()->ChkAtType(AT_TYPE_LANTERN_SWING) &&
|
||||
static_cast<dCcD_GObjInf*>(i_this->mSphCc.GetTgHitObj())->GetAtMtrl() != 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (i_this->mSphCc.GetTgHitObj()->ChkAtType(AT_TYPE_BOMB) ||
|
||||
static_cast<dCcD_GObjInf*>(i_this->mSphCc.GetTgHitObj())->GetAtMtrl() == 1) {
|
||||
i_this->mDeleteTimer = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
i_this->mReboundTimer = 20;
|
||||
fopAcM_seStart(i_this, Z2SE_OBJ_WEB_BOUND_L, 0);
|
||||
}
|
||||
|
||||
if (i_this->mSphCc.ChkCoHit()) {
|
||||
i_this->mReboundTimer = 10;
|
||||
}
|
||||
|
||||
if (daPy_getPlayerActorClass()->checkFrontRollCrash() &&
|
||||
fopAcM_searchPlayerDistanceXZ(i_this) < i_this->mScale.x * 260.0f) {
|
||||
i_this->mReboundTimer = 20;
|
||||
fopAcM_seStart(i_this, Z2SE_OBJ_WEB_BOUND_L, 0);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void damage_check(obj_web0_class* param_0) {
|
||||
static asm void damage_check(obj_web0_class* i_this) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0/damage_check__FP14obj_web0_class.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D35188-80D3518C 00000C 0004+00 0/1 0/0 0/0 .rodata @3850 */
|
||||
@@ -410,149 +203,261 @@ COMPILER_STRIP_GATE(0x80D3519C, &lit_3855);
|
||||
#pragma pop
|
||||
|
||||
/* 80D34794-80D34B24 000354 0390+00 2/1 0/0 0/0 .text daObj_Web0_Execute__FP14obj_web0_class */
|
||||
// reg alloc
|
||||
#ifdef NONMATCHING
|
||||
static int daObj_Web0_Execute(obj_web0_class* i_this) {
|
||||
fopAc_ac_c* player = dComIfGp_getPlayer(0);
|
||||
|
||||
i_this->field_0x57c++;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (i_this->field_0x584[i] != 0) {
|
||||
i_this->field_0x584[i]--;
|
||||
}
|
||||
}
|
||||
|
||||
if (i_this->mHitTimer != 0) {
|
||||
i_this->mHitTimer--;
|
||||
}
|
||||
|
||||
if (i_this->mDeleteTimer != 0) {
|
||||
if (i_this->mDeleteTimer == 1) {
|
||||
cXyz sp30(i_this->mScale);
|
||||
sp30.z = 1.0f;
|
||||
|
||||
dComIfGp_particle_set(0x840C, &i_this->current.pos, &i_this->shape_angle, &sp30);
|
||||
i_this->mpBrk->setPlaySpeed(1.0f);
|
||||
} else if (i_this->mDeleteTimer == 41) {
|
||||
i_this->mpBrk->setPlaySpeed(1.0f);
|
||||
}
|
||||
|
||||
fopAcM_seStartLevel(i_this, Z2SE_OBJ_WEB_BURN, 0);
|
||||
|
||||
if (i_this->mDeleteTimer == 40 || i_this->mDeleteTimer == 80) {
|
||||
dComIfGs_onSwitch(fopAcM_GetParam(i_this) >> 0x18, fopAcM_GetRoomNo(i_this));
|
||||
fopAcM_delete(i_this);
|
||||
}
|
||||
|
||||
i_this->mDeleteTimer++;
|
||||
} else {
|
||||
damage_check(i_this);
|
||||
}
|
||||
|
||||
mDoMtx_stack_c::transS(i_this->current.pos.x, i_this->current.pos.y, i_this->current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(i_this->shape_angle.y);
|
||||
mDoMtx_stack_c::ZrotM(i_this->shape_angle.z);
|
||||
mDoMtx_stack_c::scaleM(i_this->mScale.x, i_this->mScale.y, i_this->mScale.z);
|
||||
|
||||
i_this->mpBrk->play();
|
||||
i_this->mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
|
||||
if (i_this->mReboundTimer != 0) {
|
||||
i_this->mReboundTimer--;
|
||||
}
|
||||
|
||||
i_this->mScale.z = i_this->mReboundTimer * cM_ssin(i_this->mReboundTimer * 0x1900) * 0.075f;
|
||||
|
||||
s16 tmp = (fopAcM_searchPlayerAngleY(i_this) + 0x4000) - i_this->shape_angle.y;
|
||||
if (tmp < 0) {
|
||||
mDoMtx_stack_c::YrotM(-0x8000);
|
||||
}
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), i_this->mMtx);
|
||||
|
||||
i_this->mpBgW->Move();
|
||||
|
||||
cXyz sp3C(i_this->current.pos);
|
||||
if (i_this->field_0x57c & 1) {
|
||||
sp3C.y -= i_this->mScale.x * 70.0f;
|
||||
}
|
||||
|
||||
s16 svar9 = i_this->shape_angle.y;
|
||||
if (tmp < 0) {
|
||||
svar9 += (s16)-0x8000;
|
||||
}
|
||||
|
||||
svar9 -= player->shape_angle.y;
|
||||
if ((svar9 < 20000 && svar9 > -20000) || i_this->mHitTimer != 0) {
|
||||
sp3C.x += 20000.0f;
|
||||
}
|
||||
|
||||
i_this->mSphCc.SetC(sp3C);
|
||||
i_this->mSphCc.SetR(i_this->mScale.x * 150.0f);
|
||||
|
||||
dComIfG_Ccsp()->Set(&i_this->mSphCc);
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Web0_Execute(obj_web0_class* param_0) {
|
||||
static asm int daObj_Web0_Execute(obj_web0_class* i_this) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0/daObj_Web0_Execute__FP14obj_web0_class.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80D34B24-80D34B2C 0006E4 0008+00 1/0 0/0 0/0 .text daObj_Web0_IsDelete__FP14obj_web0_class */
|
||||
static bool daObj_Web0_IsDelete(obj_web0_class* param_0) {
|
||||
return true;
|
||||
static int daObj_Web0_IsDelete(obj_web0_class* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D351BC-80D351BC 000040 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80D351BC = "Obj_web0";
|
||||
#pragma pop
|
||||
|
||||
/* 80D35290-80D35294 000008 0004+00 2/2 0/0 0/0 .bss None */
|
||||
static u8 data_80D35290[4];
|
||||
static u8 data_80D35290;
|
||||
|
||||
/* 80D34B2C-80D34B94 0006EC 0068+00 1/0 0/0 0/0 .text daObj_Web0_Delete__FP14obj_web0_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Web0_Delete(obj_web0_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0/daObj_Web0_Delete__FP14obj_web0_class.s"
|
||||
}
|
||||
#pragma pop
|
||||
static int daObj_Web0_Delete(obj_web0_class* i_this) {
|
||||
dComIfG_resDelete(&i_this->mPhase, "Obj_web0");
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D351A4-80D351A8 000028 0004+00 1/1 0/0 0/0 .rodata @3917 */
|
||||
SECTION_RODATA static u8 const lit_3917[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80D351A4, &lit_3917);
|
||||
if (i_this->field_0x739) {
|
||||
data_80D35290 = 0;
|
||||
}
|
||||
|
||||
dComIfG_Bgsp().Release(i_this->mpBgW);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80D34B94-80D34D44 000754 01B0+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void useHeapInit(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0/useHeapInit__FP10fopAc_ac_c.s"
|
||||
static int useHeapInit(fopAc_ac_c* i_this) {
|
||||
obj_web0_class* _this = static_cast<obj_web0_class*>(i_this);
|
||||
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Obj_web0", 5);
|
||||
_this->mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||
|
||||
if (_this->mpModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
_this->mpBrk = new mDoExt_brkAnm();
|
||||
if (_this->mpBrk == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
J3DAnmTevRegKey* brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("Obj_web0", 8);
|
||||
if (!_this->mpBrk->init(_this->mpModel->getModelData(), brk, TRUE, 0, FLOAT_LABEL(lit_3724), 0,
|
||||
-1)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
_this->mpBrk->setPlaySpeed(0.0f);
|
||||
|
||||
_this->mpBgW = new dBgW();
|
||||
if (_this->mpBgW == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes("Obj_web0", 11);
|
||||
if (_this->mpBgW->Set(dzb, 1, &_this->mMtx) == 1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
_this->mpBgW->SetCrrFunc(dBgS_MoveBGProc_Typical);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D34D44-80D34D8C 000904 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DFrameCtrl::~J3DFrameCtrl() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0/__dt__12J3DFrameCtrlFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D351A8-80D351AC 00002C 0004+00 1/1 0/0 0/0 .rodata @4014 */
|
||||
SECTION_RODATA static f32 const lit_4014 = -1000.0f;
|
||||
COMPILER_STRIP_GATE(0x80D351A8, &lit_4014);
|
||||
|
||||
/* 80D351AC-80D351B4 000030 0004+04 1/1 0/0 0/0 .rodata @4015 */
|
||||
SECTION_RODATA static f32 const lit_4015[1 + 1 /* padding */] = {
|
||||
1000.0f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80D351AC, &lit_4015);
|
||||
|
||||
/* 80D351B4-80D351BC 000038 0008+00 1/1 0/0 0/0 .rodata @4017 */
|
||||
SECTION_RODATA static u8 const lit_4017[8] = {
|
||||
0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80D351B4, &lit_4017);
|
||||
|
||||
/* 80D35294-80D352A0 00000C 000C+00 1/1 0/0 0/0 .bss @3643 */
|
||||
static u8 lit_3643[12];
|
||||
|
||||
/* 80D352A0-80D352A8 000018 0008+00 2/2 0/0 0/0 .bss l_HIO */
|
||||
static u8 l_HIO[8];
|
||||
static daObj_Web0_HIO_c l_HIO;
|
||||
|
||||
/* 80D34D8C-80D35054 00094C 02C8+00 1/0 0/0 0/0 .text daObj_Web0_Create__FP10fopAc_ac_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Web0_Create(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0/daObj_Web0_Create__FP10fopAc_ac_c.s"
|
||||
static int daObj_Web0_Create(fopAc_ac_c* i_this) {
|
||||
if (!fopAcM_CheckCondition(i_this, 8)) {
|
||||
new (i_this) obj_web0_class();
|
||||
fopAcM_OnCondition(i_this, 8);
|
||||
}
|
||||
obj_web0_class* _this = static_cast<obj_web0_class*>(i_this);
|
||||
|
||||
static dCcD_SrcSph cc_sph_src = {
|
||||
{
|
||||
{0, {{0, 0, 0}, {0xD8FBFFFF, 3}, 0}},
|
||||
{dCcD_SE_NONE, 0, 0, 0, {0}},
|
||||
{dCcD_SE_HARD_BODY, 0, 0, 0, {3}},
|
||||
{0},
|
||||
},
|
||||
{
|
||||
{0.0f, 0.0f, 0.0f},
|
||||
40.0f,
|
||||
},
|
||||
};
|
||||
|
||||
int phase = dComIfG_resLoad(&_this->mPhase, "Obj_web0");
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
int switchNo = fopAcM_GetParam(_this) >> 0x18;
|
||||
|
||||
if (switchNo != 0xFF && dComIfGs_isSwitch(switchNo, fopAcM_GetRoomNo(_this))) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
_this->mPrm0 = fopAcM_GetParam(_this);
|
||||
if (_this->mPrm0 == 0xFF) {
|
||||
_this->mPrm0 = 0;
|
||||
}
|
||||
|
||||
_this->mScaleXY = fopAcM_GetParam(_this) >> 8;
|
||||
|
||||
if (!fopAcM_entrySolidHeap(_this, (heapCallbackFunc)useHeapInit, 0xA20)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (_this->mpBgW != NULL && dComIfG_Bgsp().Regist(_this->mpBgW, _this)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (!data_80D35290) {
|
||||
_this->field_0x739 = 1;
|
||||
data_80D35290 = true;
|
||||
l_HIO.field_0x4 = -1;
|
||||
}
|
||||
|
||||
fopAcM_SetMtx(_this, _this->mpModel->getBaseTRMtx());
|
||||
fopAcM_SetMin(_this, -1000.0f, -1000.0f, -1000.0f);
|
||||
fopAcM_SetMax(_this, 1000.0f, 1000.0f, 1000.0f);
|
||||
_this->field_0x562 = 30;
|
||||
_this->field_0x560 = 30;
|
||||
|
||||
_this->mStts.Init(250, 0, _this);
|
||||
_this->mSphCc.Set(cc_sph_src);
|
||||
_this->mSphCc.SetStts(&_this->mStts);
|
||||
_this->mSphCc.OnTgNoHitMark();
|
||||
|
||||
if (_this->mScaleXY != 0xFF && _this->mScaleXY != 0) {
|
||||
_this->mScale.x = _this->mScaleXY;
|
||||
_this->mScale.y = _this->mScaleXY;
|
||||
}
|
||||
|
||||
_this->mEyePos = _this->current.pos;
|
||||
daObj_Web0_Execute(_this);
|
||||
}
|
||||
|
||||
return phase;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D35054-80D3509C 000C14 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cM3dGSph::~cM3dGSph() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0/__dt__8cM3dGSphFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
/* 80D35208-80D35228 -00001 0020+00 1/0 0/0 0/0 .data l_daObj_Web0_Method */
|
||||
static actor_method_class l_daObj_Web0_Method = {
|
||||
(process_method_func)daObj_Web0_Create, (process_method_func)daObj_Web0_Delete,
|
||||
(process_method_func)daObj_Web0_Execute, (process_method_func)daObj_Web0_IsDelete,
|
||||
(process_method_func)daObj_Web0_Draw,
|
||||
};
|
||||
|
||||
/* 80D3509C-80D350E4 000C5C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cM3dGAab::~cM3dGAab() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0/__dt__8cM3dGAabFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D350E4-80D3512C 000CA4 0048+00 2/1 0/0 0/0 .text __dt__16daObj_Web0_HIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm daObj_Web0_HIO_c::~daObj_Web0_HIO_c() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0/__dt__16daObj_Web0_HIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D3512C-80D35168 000CEC 003C+00 0/0 1/0 0/0 .text __sinit_d_a_obj_web0_cpp */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __sinit_d_a_obj_web0_cpp() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0/__sinit_d_a_obj_web0_cpp.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
REGISTER_CTORS(0x80D3512C, __sinit_d_a_obj_web0_cpp);
|
||||
#pragma pop
|
||||
|
||||
/* 80D351BC-80D351BC 000040 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
/* 80D35228-80D35258 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_WEB0 */
|
||||
extern actor_process_profile_definition g_profile_OBJ_WEB0 = {
|
||||
-3,
|
||||
3,
|
||||
-3,
|
||||
PROC_OBJ_WEB0,
|
||||
0,
|
||||
&g_fpcLf_Method.mBase,
|
||||
sizeof(obj_web0_class),
|
||||
0,
|
||||
0,
|
||||
&g_fopAc_Method,
|
||||
0x002F,
|
||||
0,
|
||||
0,
|
||||
&l_daObj_Web0_Method,
|
||||
0x00040100,
|
||||
0,
|
||||
14,
|
||||
0,
|
||||
0,
|
||||
};
|
||||
@@ -1,642 +1,354 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: d_a_obj_web1
|
||||
//
|
||||
/**
|
||||
* d_a_obj_web1.cpp
|
||||
* Spider Web (Floor)
|
||||
*/
|
||||
|
||||
#include "rel/d/a/obj/d_a_obj_web1/d_a_obj_web1.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "JSystem/JMath/JMath.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/d_procname.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct request_of_phase_process_class {};
|
||||
|
||||
struct obj_web1_class {};
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
/* 8000CD9C */ void transM(f32, f32, f32);
|
||||
/* 8000CE38 */ void scaleM(f32, f32, f32);
|
||||
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct J3DMaterialTable {};
|
||||
|
||||
struct J3DAnmTevRegKey {};
|
||||
|
||||
struct mDoExt_brkAnm {
|
||||
/* 8000D70C */ void init(J3DMaterialTable*, J3DAnmTevRegKey*, int, int, f32, s16, s16);
|
||||
/* 8000D7A8 */ void entry(J3DMaterialTable*, f32);
|
||||
};
|
||||
|
||||
struct mDoExt_baseAnm {
|
||||
/* 8000D428 */ void play();
|
||||
};
|
||||
|
||||
struct fopAc_ac_c {
|
||||
/* 80018B64 */ fopAc_ac_c();
|
||||
};
|
||||
|
||||
struct daObj_Web1_HIO_c {
|
||||
/* 80D353AC */ daObj_Web1_HIO_c();
|
||||
/* 80D36028 */ ~daObj_Web1_HIO_c();
|
||||
};
|
||||
|
||||
struct dSv_info_c {
|
||||
/* 80035200 */ void onSwitch(int, int);
|
||||
/* 80035360 */ void isSwitch(int, int) const;
|
||||
};
|
||||
|
||||
struct dKy_tevstr_c {};
|
||||
|
||||
struct J3DModelData {};
|
||||
|
||||
struct cXyz {};
|
||||
|
||||
struct dScnKy_env_light_c {
|
||||
/* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
|
||||
/* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
|
||||
};
|
||||
|
||||
struct dRes_info_c {};
|
||||
|
||||
struct dRes_control_c {
|
||||
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
|
||||
};
|
||||
|
||||
struct dPa_levelEcallBack {};
|
||||
|
||||
struct csXyz {};
|
||||
|
||||
struct _GXColor {};
|
||||
|
||||
struct dPa_control_c {
|
||||
/* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*,
|
||||
u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*,
|
||||
cXyz const*, f32);
|
||||
};
|
||||
|
||||
struct dCcD_Stts {
|
||||
/* 80083860 */ void Init(int, int, fopAc_ac_c*);
|
||||
};
|
||||
|
||||
struct dCcD_SrcCyl {};
|
||||
|
||||
struct dCcD_GStts {
|
||||
/* 80083760 */ dCcD_GStts();
|
||||
};
|
||||
|
||||
struct dCcD_GObjInf {
|
||||
/* 80083A28 */ dCcD_GObjInf();
|
||||
/* 80084460 */ void ChkTgHit();
|
||||
/* 800844F8 */ void GetTgHitObj();
|
||||
/* 80084548 */ void GetTgHitGObj();
|
||||
};
|
||||
|
||||
struct dCcD_Cyl {
|
||||
/* 800848B4 */ void Set(dCcD_SrcCyl const&);
|
||||
};
|
||||
|
||||
struct dBgW_Base {};
|
||||
|
||||
struct dBgW {
|
||||
/* 8007B970 */ dBgW();
|
||||
/* 8007B9C0 */ void Move();
|
||||
};
|
||||
|
||||
struct dBgS {
|
||||
/* 80074A08 */ void Regist(dBgW_Base*, fopAc_ac_c*);
|
||||
};
|
||||
|
||||
struct cM3dGCyl {
|
||||
/* 8026F1DC */ void SetC(cXyz const&);
|
||||
/* 8026F200 */ void SetR(f32);
|
||||
/* 80D35F98 */ ~cM3dGCyl();
|
||||
};
|
||||
|
||||
struct cM3dGAab {
|
||||
/* 80D35FE0 */ ~cM3dGAab();
|
||||
};
|
||||
|
||||
struct cCcD_Obj {};
|
||||
|
||||
struct cCcS {
|
||||
/* 80264BA8 */ void Set(cCcD_Obj*);
|
||||
};
|
||||
|
||||
struct cBgD_t {};
|
||||
|
||||
struct cBgW {
|
||||
/* 80079F38 */ void Set(cBgD_t*, u32, f32 (*)[3][4]);
|
||||
};
|
||||
|
||||
struct cBgS_PolyInfo {};
|
||||
|
||||
struct cBgS {
|
||||
/* 80074250 */ void Release(dBgW_Base*);
|
||||
};
|
||||
|
||||
struct Z2SoundObjSimple {
|
||||
/* 802BE844 */ Z2SoundObjSimple();
|
||||
};
|
||||
|
||||
struct Z2SoundObjBase {
|
||||
/* 802BDFF8 */ void deleteObject();
|
||||
/* 802BE4A4 */ void startCollisionSE(u32, u32, Z2SoundObjBase*);
|
||||
};
|
||||
|
||||
struct JAISoundID {};
|
||||
|
||||
struct Vec {};
|
||||
|
||||
struct Z2SeMgr {
|
||||
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
|
||||
/* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
|
||||
};
|
||||
|
||||
struct Z2AudioMgr {
|
||||
static u8 mAudioMgrPtr[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct JMath {
|
||||
static u8 sincosTable_[65536];
|
||||
};
|
||||
|
||||
struct J3DModel {};
|
||||
|
||||
struct J3DFrameCtrl {
|
||||
/* 803283FC */ void init(s16);
|
||||
/* 80D35C9C */ ~J3DFrameCtrl();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__16daObj_Web1_HIO_cFv();
|
||||
extern "C" static void daObj_Web1_Draw__FP14obj_web1_class();
|
||||
extern "C" static void ride_call_back__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c();
|
||||
extern "C" static void action__FP14obj_web1_class();
|
||||
extern "C" static void daObj_Web1_Execute__FP14obj_web1_class();
|
||||
extern "C" static bool daObj_Web1_IsDelete__FP14obj_web1_class();
|
||||
extern "C" static void daObj_Web1_Delete__FP14obj_web1_class();
|
||||
extern "C" static void useHeapInit__FP10fopAc_ac_c();
|
||||
extern "C" void __dt__12J3DFrameCtrlFv();
|
||||
extern "C" static void daObj_Web1_Create__FP10fopAc_ac_c();
|
||||
extern "C" void __dt__8cM3dGCylFv();
|
||||
extern "C" void __dt__8cM3dGAabFv();
|
||||
extern "C" void __dt__16daObj_Web1_HIO_cFv();
|
||||
extern "C" void __sinit_d_a_obj_web1_cpp();
|
||||
extern "C" extern char const* const d_a_obj_web1__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_YrotM__FPA4_fs();
|
||||
extern "C" void transM__14mDoMtx_stack_cFfff();
|
||||
extern "C" void scaleM__14mDoMtx_stack_cFfff();
|
||||
extern "C" void play__14mDoExt_baseAnmFv();
|
||||
extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss();
|
||||
extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef();
|
||||
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
|
||||
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
|
||||
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
|
||||
extern "C" void fopAcM_SetMin__FP10fopAc_ac_cfff();
|
||||
extern "C" void fopAcM_SetMax__FP10fopAc_ac_cfff();
|
||||
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void dComIfGp_getReverb__Fi();
|
||||
extern "C" void onSwitch__10dSv_info_cFii();
|
||||
extern "C" void isSwitch__10dSv_info_cCFii();
|
||||
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
|
||||
extern "C" void
|
||||
set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
|
||||
extern "C" void Release__4cBgSFP9dBgW_Base();
|
||||
extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c();
|
||||
extern "C" void dBgS_MoveBGProc_Typical__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz();
|
||||
extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f();
|
||||
extern "C" void __ct__4dBgWFv();
|
||||
extern "C" void Move__4dBgWFv();
|
||||
extern "C" void __ct__10dCcD_GSttsFv();
|
||||
extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c();
|
||||
extern "C" void __ct__12dCcD_GObjInfFv();
|
||||
extern "C" void ChkTgHit__12dCcD_GObjInfFv();
|
||||
extern "C" void GetTgHitObj__12dCcD_GObjInfFv();
|
||||
extern "C" void GetTgHitGObj__12dCcD_GObjInfFv();
|
||||
extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl();
|
||||
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void Set__4cCcSFP8cCcD_Obj();
|
||||
extern "C" void SetC__8cM3dGCylFRC4cXyz();
|
||||
extern "C" void SetR__8cM3dGCylFf();
|
||||
extern "C" void cLib_addCalc2__FPffff();
|
||||
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
|
||||
extern "C" void deleteObject__14Z2SoundObjBaseFv();
|
||||
extern "C" void startCollisionSE__14Z2SoundObjBaseFUlUlP14Z2SoundObjBase();
|
||||
extern "C" void __ct__16Z2SoundObjSimpleFv();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void init__12J3DFrameCtrlFs();
|
||||
extern "C" void PSMTXCopy();
|
||||
extern "C" void PSMTXTrans();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* g_fopAc_Method[8];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__8dCcD_Cyl[36];
|
||||
extern "C" extern void* __vt__9dCcD_Stts[11];
|
||||
extern "C" extern void* __vt__12cCcD_CylAttr[25];
|
||||
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
|
||||
extern "C" extern void* __vt__9cCcD_Stts[8];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
extern "C" void __register_global_object();
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D3612C-80D36170 000000 0044+00 1/1 0/0 0/0 .data cc_cyl_src$3969 */
|
||||
SECTION_DATA static u8 cc_cyl_src[68] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xD8, 0xFB, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x02, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* 80D36170-80D36190 -00001 0020+00 1/0 0/0 0/0 .data l_daObj_Web1_Method */
|
||||
SECTION_DATA static void* l_daObj_Web1_Method[8] = {
|
||||
(void*)daObj_Web1_Create__FP10fopAc_ac_c,
|
||||
(void*)daObj_Web1_Delete__FP14obj_web1_class,
|
||||
(void*)daObj_Web1_Execute__FP14obj_web1_class,
|
||||
(void*)daObj_Web1_IsDelete__FP14obj_web1_class,
|
||||
(void*)daObj_Web1_Draw__FP14obj_web1_class,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
};
|
||||
|
||||
/* 80D36190-80D361C0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_WEB1 */
|
||||
SECTION_DATA extern void* g_profile_OBJ_WEB1[12] = {
|
||||
(void*)0xFFFFFFFD, (void*)0x0003FFFD,
|
||||
(void*)0x00290000, (void*)&g_fpcLf_Method,
|
||||
(void*)0x00000770, (void*)NULL,
|
||||
(void*)NULL, (void*)&g_fopAc_Method,
|
||||
(void*)0x00300000, (void*)&l_daObj_Web1_Method,
|
||||
(void*)0x00040100, (void*)0x000E0000,
|
||||
};
|
||||
|
||||
/* 80D361C0-80D361CC 000094 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGCyl */
|
||||
SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__8cM3dGCylFv,
|
||||
};
|
||||
|
||||
/* 80D361CC-80D361D8 0000A0 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */
|
||||
SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__8cM3dGAabFv,
|
||||
};
|
||||
|
||||
/* 80D361D8-80D361E4 0000AC 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */
|
||||
SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12J3DFrameCtrlFv,
|
||||
};
|
||||
|
||||
/* 80D361E4-80D361F0 0000B8 000C+00 2/2 0/0 0/0 .data __vt__16daObj_Web1_HIO_c */
|
||||
SECTION_DATA extern void* __vt__16daObj_Web1_HIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__16daObj_Web1_HIO_cFv,
|
||||
};
|
||||
extern "C" extern leafdraw_method_class g_fopAc_Method;
|
||||
|
||||
/* 80D353AC-80D353C4 0000EC 0018+00 1/1 0/0 0/0 .text __ct__16daObj_Web1_HIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm daObj_Web1_HIO_c::daObj_Web1_HIO_c() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web1/d_a_obj_web1/__ct__16daObj_Web1_HIO_cFv.s"
|
||||
daObj_Web1_HIO_c::daObj_Web1_HIO_c() {
|
||||
field_0x4 = -1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D353C4-80D35440 000104 007C+00 1/0 0/0 0/0 .text daObj_Web1_Draw__FP14obj_web1_class
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Web1_Draw(obj_web1_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web1/d_a_obj_web1/daObj_Web1_Draw__FP14obj_web1_class.s"
|
||||
static int daObj_Web1_Draw(obj_web1_class* i_this) {
|
||||
g_env_light.settingTevStruct(16, &i_this->current.pos, &i_this->mTevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(i_this->mpModel, &i_this->mTevStr);
|
||||
i_this->mpBrk->entry(i_this->mpModel->getModelData());
|
||||
|
||||
mDoExt_modelUpdateDL(i_this->mpModel);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D360C0-80D360C4 000000 0004+00 5/5 0/0 0/0 .rodata @3703 */
|
||||
SECTION_RODATA static u8 const lit_3703[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80D360C0, &lit_3703);
|
||||
|
||||
/* 80D360C4-80D360C8 000004 0004+00 1/1 0/0 0/0 .rodata @3704 */
|
||||
SECTION_RODATA static f32 const lit_3704 = 140.0f;
|
||||
COMPILER_STRIP_GATE(0x80D360C4, &lit_3704);
|
||||
|
||||
/* 80D35440-80D35508 000180 00C8+00 1/1 0/0 0/0 .text
|
||||
* ride_call_back__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void ride_call_back(dBgW* param_0, fopAc_ac_c* param_1, fopAc_ac_c* param_2) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web1/d_a_obj_web1/ride_call_back__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c.s"
|
||||
static void ride_call_back(dBgW* i_bgw, fopAc_ac_c* i_this, fopAc_ac_c* i_actor) {
|
||||
obj_web1_class* _this = static_cast<obj_web1_class*>(i_this);
|
||||
|
||||
f32 x_diff = i_actor->current.pos.x - _this->current.pos.x;
|
||||
f32 z_diff = i_actor->current.pos.z - _this->current.pos.z;
|
||||
_this->mDistToActor = JMAFastSqrt((x_diff * x_diff) + (z_diff * z_diff));
|
||||
|
||||
if (_this->mDistToActor < 140.0f) {
|
||||
if (fopAcM_GetName(i_actor) == PROC_ALINK || fopAcM_GetName(i_actor) == PROC_ALINK) {
|
||||
if (_this->field_0x5aa == 0) {
|
||||
_this->mReboundTimer = 60;
|
||||
}
|
||||
|
||||
if (daPy_getPlayerActorClass()->i_checkEquipHeavyBoots()) {
|
||||
_this->field_0x5aa = 120;
|
||||
} else {
|
||||
_this->field_0x5aa = 6;
|
||||
}
|
||||
} else if (fopAcM_GetName(i_actor) == PROC_OBJ_GM) {
|
||||
_this->field_0x5aa = 120;
|
||||
} else {
|
||||
_this->field_0x5aa = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D360C8-80D360CC 000008 0004+00 1/3 0/0 0/0 .rodata @3798 */
|
||||
SECTION_RODATA static f32 const lit_3798 = 1.0f;
|
||||
COMPILER_STRIP_GATE(0x80D360C8, &lit_3798);
|
||||
|
||||
/* 80D360CC-80D360D0 00000C 0004+00 0/2 0/0 0/0 .rodata @3799 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3799 = -1.0f;
|
||||
COMPILER_STRIP_GATE(0x80D360CC, &lit_3799);
|
||||
#pragma pop
|
||||
|
||||
/* 80D360D0-80D360D4 000010 0004+00 0/1 0/0 0/0 .rodata @3800 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3800 = 1.0f / 50.0f;
|
||||
COMPILER_STRIP_GATE(0x80D360D0, &lit_3800);
|
||||
#pragma pop
|
||||
|
||||
/* 80D360D4-80D360D8 000014 0004+00 0/1 0/0 0/0 .rodata @3801 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3801 = 1.0f / 10.0f;
|
||||
COMPILER_STRIP_GATE(0x80D360D4, &lit_3801);
|
||||
#pragma pop
|
||||
|
||||
/* 80D360D8-80D360DC 000018 0004+00 0/1 0/0 0/0 .rodata @3802 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3802 = 10.0f;
|
||||
COMPILER_STRIP_GATE(0x80D360D8, &lit_3802);
|
||||
#pragma pop
|
||||
|
||||
/* 80D360DC-80D360E0 00001C 0004+00 0/1 0/0 0/0 .rodata @3803 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3803 = 5.0f;
|
||||
COMPILER_STRIP_GATE(0x80D360DC, &lit_3803);
|
||||
#pragma pop
|
||||
|
||||
/* 80D360E0-80D360E4 000020 0004+00 0/1 0/0 0/0 .rodata @3804 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3804 = 2.0f;
|
||||
COMPILER_STRIP_GATE(0x80D360E0, &lit_3804);
|
||||
#pragma pop
|
||||
|
||||
/* 80D360E4-80D360E8 000024 0004+00 0/1 0/0 0/0 .rodata @3805 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u32 const lit_3805 = 0x3BA3D70A;
|
||||
COMPILER_STRIP_GATE(0x80D360E4, &lit_3805);
|
||||
#pragma pop
|
||||
|
||||
/* 80D360E8-80D360F0 000028 0004+04 0/1 0/0 0/0 .rodata @3806 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3806[1 + 1 /* padding */] = {
|
||||
0.5f,
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80D360E8, &lit_3806);
|
||||
#pragma pop
|
||||
|
||||
/* 80D360F0-80D360F8 000030 0008+00 0/1 0/0 0/0 .rodata @3808 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3808[8] = {
|
||||
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80D360F0, &lit_3808);
|
||||
#pragma pop
|
||||
|
||||
/* 80D35508-80D35774 000248 026C+00 1/1 0/0 0/0 .text action__FP14obj_web1_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void action(obj_web1_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web1/d_a_obj_web1/action__FP14obj_web1_class.s"
|
||||
static void action(obj_web1_class* i_this) {
|
||||
if (i_this->mReboundTimer != 0) {
|
||||
if (i_this->mReboundTimer == 60 || i_this->mReboundTimer == 40 ||
|
||||
i_this->mReboundTimer == 20) {
|
||||
fopAcM_seStart(i_this, Z2SE_OBJ_WEB_BOUND_S, 0);
|
||||
}
|
||||
|
||||
i_this->mReboundTimer--;
|
||||
}
|
||||
|
||||
switch (i_this->mActionMode) {
|
||||
case 0:
|
||||
if (i_this->mHitTimer == 0 && i_this->mCylCc.ChkTgHit()) {
|
||||
i_this->mHitTimer = 6;
|
||||
|
||||
if (i_this->mCylCc.GetTgHitObj()->ChkAtType(AT_TYPE_BOMB)) {
|
||||
i_this->mActionMode = 10;
|
||||
}
|
||||
|
||||
if (i_this->mCylCc.GetTgHitGObj()->GetAtMtrl() == 1) {
|
||||
i_this->mActionMode = 10;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (i_this->field_0x5a2[0] == 0) {
|
||||
i_this->mZ2SoundObj.startCollisionSE(0x40000, 0x21, NULL);
|
||||
fopAcM_delete(i_this);
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
i_this->mDeleteTimer = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
i_this->mScale.y = i_this->field_0x5b0 +
|
||||
i_this->mReboundTimer * cM_ssin(i_this->mReboundTimer * 0xF00) * 0.02f;
|
||||
if (i_this->mScale.y < 0.1f) {
|
||||
i_this->mScale.y = 0.1f;
|
||||
}
|
||||
|
||||
f32 target = 0.0f;
|
||||
if (i_this->field_0x5aa != 0) {
|
||||
if (i_this->field_0x5aa > 100) {
|
||||
target = 10.0f;
|
||||
i_this->mActionMode++;
|
||||
i_this->field_0x5a2[0] = 0;
|
||||
} else if (i_this->field_0x5aa > 80) {
|
||||
target = 5.0f;
|
||||
} else if (i_this->field_0x5aa >= 4) {
|
||||
target = 2.0f;
|
||||
} else {
|
||||
target = 1.0f;
|
||||
}
|
||||
|
||||
f32 fvar6 = i_this->mDistToActor * 0.005f;
|
||||
if (fvar6 > 1.0f) {
|
||||
fvar6 = 1.0f;
|
||||
}
|
||||
target *= 1.0f - fvar6;
|
||||
|
||||
i_this->field_0x5aa--;
|
||||
}
|
||||
|
||||
cLib_addCalc2(&i_this->field_0x5b0, target, 0.5f, 0.5f);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D360F8-80D360FC 000038 0004+00 0/1 0/0 0/0 .rodata @3871 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3871 = 1.0f / 20.0f;
|
||||
COMPILER_STRIP_GATE(0x80D360F8, &lit_3871);
|
||||
#pragma pop
|
||||
|
||||
/* 80D360FC-80D36100 00003C 0004+00 0/1 0/0 0/0 .rodata @3872 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3872 = 6.0f / 5.0f;
|
||||
COMPILER_STRIP_GATE(0x80D360FC, &lit_3872);
|
||||
#pragma pop
|
||||
|
||||
/* 80D36100-80D36104 000040 0004+00 0/1 0/0 0/0 .rodata @3873 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3873 = 9.0f;
|
||||
COMPILER_STRIP_GATE(0x80D36100, &lit_3873);
|
||||
#pragma pop
|
||||
|
||||
/* 80D36104-80D36108 000044 0004+00 0/1 0/0 0/0 .rodata @3874 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3874 = -15.0f;
|
||||
COMPILER_STRIP_GATE(0x80D36104, &lit_3874);
|
||||
#pragma pop
|
||||
|
||||
/* 80D36108-80D3610C 000048 0004+00 0/1 0/0 0/0 .rodata @3875 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3875 = 150.0f;
|
||||
COMPILER_STRIP_GATE(0x80D36108, &lit_3875);
|
||||
#pragma pop
|
||||
|
||||
/* 80D35774-80D35A3C 0004B4 02C8+00 2/1 0/0 0/0 .text daObj_Web1_Execute__FP14obj_web1_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Web1_Execute(obj_web1_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web1/d_a_obj_web1/daObj_Web1_Execute__FP14obj_web1_class.s"
|
||||
static int daObj_Web1_Execute(obj_web1_class* i_this) {
|
||||
i_this->field_0x59c++;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (i_this->field_0x5a2[i] != 0) {
|
||||
i_this->field_0x5a2[i]--;
|
||||
}
|
||||
}
|
||||
|
||||
if (i_this->mHitTimer != 0) {
|
||||
i_this->mHitTimer--;
|
||||
}
|
||||
|
||||
int roomNo = fopAcM_GetRoomNo(i_this);
|
||||
i_this->mZ2SoundObj.framework(0, dComIfGp_getReverb(roomNo));
|
||||
|
||||
if (i_this->mDeleteTimer != 0) {
|
||||
if (i_this->mDeleteTimer == 1) {
|
||||
cXyz scale;
|
||||
scale.x = i_this->mScale.x;
|
||||
scale.y = i_this->mScale.x;
|
||||
scale.z = i_this->mScale.x;
|
||||
|
||||
dComIfGp_particle_set(0x840E, &i_this->current.pos, &i_this->shape_angle, &scale);
|
||||
i_this->mpBrk->setPlaySpeed(1.0f);
|
||||
}
|
||||
|
||||
fopAcM_seStartLevel(i_this, Z2SE_OBJ_WEB_BURN, 0);
|
||||
|
||||
if (i_this->mDeleteTimer == 35) {
|
||||
dComIfGs_onSwitch(fopAcM_GetParam(i_this) >> 0x18, fopAcM_GetRoomNo(i_this));
|
||||
fopAcM_delete(i_this);
|
||||
}
|
||||
|
||||
i_this->mDeleteTimer++;
|
||||
} else {
|
||||
action(i_this);
|
||||
}
|
||||
|
||||
mDoMtx_stack_c::transS(i_this->current.pos.x, i_this->current.pos.y, i_this->current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(i_this->shape_angle.y);
|
||||
mDoMtx_stack_c::scaleM(i_this->mScale.x, i_this->mScale.y * i_this->mScale.x + 0.05f,
|
||||
i_this->mScale.x);
|
||||
|
||||
i_this->mpBrk->play();
|
||||
i_this->mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
|
||||
mDoMtx_stack_c::transS(i_this->current.pos.x, i_this->current.pos.y, i_this->current.pos.z);
|
||||
mDoMtx_stack_c::scaleM(i_this->mScale.x * 1.2f, i_this->mScale.x, i_this->mScale.x * 1.2f);
|
||||
mDoMtx_stack_c::transM(0.0f, i_this->mScale.x * i_this->mScale.y * -15.0f + 9.0f, 0.0f);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), i_this->mMtx);
|
||||
|
||||
i_this->mpBgW->Move();
|
||||
i_this->mCylCc.SetC(i_this->current.pos);
|
||||
i_this->mCylCc.SetR(i_this->mScale.x * 150.0f);
|
||||
|
||||
dComIfG_Ccsp()->Set(&i_this->mCylCc);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D35A3C-80D35A44 00077C 0008+00 1/0 0/0 0/0 .text daObj_Web1_IsDelete__FP14obj_web1_class */
|
||||
static bool daObj_Web1_IsDelete(obj_web1_class* param_0) {
|
||||
return true;
|
||||
static int daObj_Web1_IsDelete(obj_web1_class* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D36120-80D36120 000060 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80D36120 = "Obj_web1";
|
||||
#pragma pop
|
||||
|
||||
/* 80D361F8-80D361FC 000008 0004+00 2/2 0/0 0/0 .bss None */
|
||||
static u8 data_80D361F8[4];
|
||||
static u8 data_80D361F8;
|
||||
|
||||
/* 80D35A44-80D35AC0 000784 007C+00 1/0 0/0 0/0 .text daObj_Web1_Delete__FP14obj_web1_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Web1_Delete(obj_web1_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web1/d_a_obj_web1/daObj_Web1_Delete__FP14obj_web1_class.s"
|
||||
static int daObj_Web1_Delete(obj_web1_class* i_this) {
|
||||
dComIfG_resDelete(&i_this->mPhase, "Obj_web1");
|
||||
|
||||
if (i_this->field_0x76c) {
|
||||
data_80D361F8 = 0;
|
||||
}
|
||||
|
||||
dComIfG_Bgsp().Release(i_this->mpBgW);
|
||||
|
||||
if (i_this->mHeap != NULL) {
|
||||
i_this->mZ2SoundObj.deleteObject();
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D35AC0-80D35C9C 000800 01DC+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void useHeapInit(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web1/d_a_obj_web1/useHeapInit__FP10fopAc_ac_c.s"
|
||||
static int useHeapInit(fopAc_ac_c* i_this) {
|
||||
obj_web1_class* _this = static_cast<obj_web1_class*>(i_this);
|
||||
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Obj_web1", 5);
|
||||
_this->mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||
|
||||
if (_this->mpModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
_this->mpBrk = new mDoExt_brkAnm();
|
||||
if (_this->mpBrk == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
J3DAnmTevRegKey* brk = (J3DAnmTevRegKey*)dComIfG_getObjectRes("Obj_web1", 8);
|
||||
if (!_this->mpBrk->init(_this->mpModel->getModelData(), brk, TRUE, 0, 1.0f, 0, -1)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
_this->mpBrk->setPlaySpeed(0.0f);
|
||||
|
||||
_this->mpBgW = new dBgW();
|
||||
if (_this->mpBgW == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes("Obj_web1", 11);
|
||||
if (_this->mpBgW->Set(dzb, 1, &_this->mMtx) == 1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
_this->mpBgW->SetCrrFunc(dBgS_MoveBGProc_Typical);
|
||||
_this->mpBgW->SetRideCallback(ride_call_back);
|
||||
_this->mZ2SoundObj.init(&i_this->current.pos, 1);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D35C9C-80D35CE4 0009DC 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DFrameCtrl::~J3DFrameCtrl() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web1/d_a_obj_web1/__dt__12J3DFrameCtrlFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D3610C-80D36110 00004C 0004+00 0/1 0/0 0/0 .rodata @4036 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4036 = -1000.0f;
|
||||
COMPILER_STRIP_GATE(0x80D3610C, &lit_4036);
|
||||
#pragma pop
|
||||
|
||||
/* 80D36110-80D36114 000050 0004+00 0/1 0/0 0/0 .rodata @4037 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4037 = 1000.0f;
|
||||
COMPILER_STRIP_GATE(0x80D36110, &lit_4037);
|
||||
#pragma pop
|
||||
|
||||
/* 80D36114-80D36118 000054 0004+00 0/1 0/0 0/0 .rodata @4038 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_4038 = 13.0f;
|
||||
COMPILER_STRIP_GATE(0x80D36114, &lit_4038);
|
||||
#pragma pop
|
||||
|
||||
/* 80D36118-80D36120 000058 0008+00 0/1 0/0 0/0 .rodata @4040 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_4040[8] = {
|
||||
0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80D36118, &lit_4040);
|
||||
#pragma pop
|
||||
|
||||
/* 80D361FC-80D36208 00000C 000C+00 1/1 0/0 0/0 .bss @3643 */
|
||||
static u8 lit_3643[12];
|
||||
|
||||
/* 80D36208-80D36210 000018 0008+00 2/2 0/0 0/0 .bss l_HIO */
|
||||
static u8 l_HIO[8];
|
||||
static daObj_Web1_HIO_c l_HIO;
|
||||
|
||||
/* 80D35CE4-80D35F98 000A24 02B4+00 1/0 0/0 0/0 .text daObj_Web1_Create__FP10fopAc_ac_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Web1_Create(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web1/d_a_obj_web1/daObj_Web1_Create__FP10fopAc_ac_c.s"
|
||||
static int daObj_Web1_Create(fopAc_ac_c* i_this) {
|
||||
if (!fopAcM_CheckCondition(i_this, 8)) {
|
||||
new (i_this) obj_web1_class();
|
||||
fopAcM_OnCondition(i_this, 8);
|
||||
}
|
||||
obj_web1_class* _this = static_cast<obj_web1_class*>(i_this);
|
||||
|
||||
static dCcD_SrcCyl cc_cyl_src = {
|
||||
{
|
||||
{0, {{0, 0, 0}, {0xD8FBFFFF, 17}, 0}},
|
||||
{dCcD_SE_NONE, 0, 0, 0, {0}},
|
||||
{dCcD_SE_HARD_BODY, 2, 0, 0, {2}},
|
||||
{0},
|
||||
},
|
||||
{
|
||||
{0.0f, 0.0f, 0.0f},
|
||||
50.0f,
|
||||
2.0f,
|
||||
},
|
||||
};
|
||||
|
||||
int phase = dComIfG_resLoad(&_this->mPhase, "Obj_web1");
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
u8 switchNo = fopAcM_GetParam(_this) >> 0x18;
|
||||
|
||||
if (switchNo != 0xFF && dComIfGs_isSwitch(switchNo, fopAcM_GetRoomNo(_this))) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
_this->mPrm0 = fopAcM_GetParam(_this);
|
||||
if (_this->mPrm0 == 0xFF) {
|
||||
_this->mPrm0 = 0;
|
||||
}
|
||||
|
||||
_this->mScaleX = fopAcM_GetParam(_this) >> 8;
|
||||
|
||||
if (!fopAcM_entrySolidHeap(_this, (heapCallbackFunc)useHeapInit, 0x4B000)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (dComIfG_Bgsp().Regist(_this->mpBgW, _this)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (!data_80D361F8) {
|
||||
_this->field_0x76c = 1;
|
||||
data_80D361F8 = true;
|
||||
l_HIO.field_0x4 = -1;
|
||||
}
|
||||
|
||||
fopAcM_SetMtx(_this, _this->mpModel->getBaseTRMtx());
|
||||
fopAcM_SetMin(_this, -1000.0f, -1000.0f, -1000.0f);
|
||||
fopAcM_SetMax(_this, 1000.0f, 1000.0f, 1000.0f);
|
||||
|
||||
if (_this->mScaleX != 0xFF && _this->mScaleX != 0) {
|
||||
_this->mScale.x = _this->mScaleX;
|
||||
}
|
||||
|
||||
_this->current.pos.y -= 13.0f;
|
||||
|
||||
_this->mStts.Init(255, 0, _this);
|
||||
_this->mCylCc.Set(cc_cyl_src);
|
||||
_this->mCylCc.SetStts(&_this->mStts);
|
||||
_this->mCylCc.OnTgNoHitMark();
|
||||
|
||||
_this->mEyePos = _this->current.pos;
|
||||
daObj_Web1_Execute(_this);
|
||||
}
|
||||
|
||||
return phase;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D35F98-80D35FE0 000CD8 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cM3dGCyl::~cM3dGCyl() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web1/d_a_obj_web1/__dt__8cM3dGCylFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
/* 80D36170-80D36190 -00001 0020+00 1/0 0/0 0/0 .data l_daObj_Web1_Method */
|
||||
static actor_method_class l_daObj_Web1_Method = {
|
||||
(process_method_func)daObj_Web1_Create, (process_method_func)daObj_Web1_Delete,
|
||||
(process_method_func)daObj_Web1_Execute, (process_method_func)daObj_Web1_IsDelete,
|
||||
(process_method_func)daObj_Web1_Draw,
|
||||
};
|
||||
|
||||
/* 80D35FE0-80D36028 000D20 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cM3dGAab::~cM3dGAab() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web1/d_a_obj_web1/__dt__8cM3dGAabFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D36028-80D36070 000D68 0048+00 2/1 0/0 0/0 .text __dt__16daObj_Web1_HIO_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm daObj_Web1_HIO_c::~daObj_Web1_HIO_c() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web1/d_a_obj_web1/__dt__16daObj_Web1_HIO_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D36070-80D360AC 000DB0 003C+00 0/0 1/0 0/0 .text __sinit_d_a_obj_web1_cpp */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __sinit_d_a_obj_web1_cpp() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_web1/d_a_obj_web1/__sinit_d_a_obj_web1_cpp.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
REGISTER_CTORS(0x80D36070, __sinit_d_a_obj_web1_cpp);
|
||||
#pragma pop
|
||||
|
||||
/* 80D36120-80D36120 000060 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
/* 80D36190-80D361C0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_WEB1 */
|
||||
extern actor_process_profile_definition g_profile_OBJ_WEB1 = {
|
||||
-3,
|
||||
3,
|
||||
-3,
|
||||
PROC_OBJ_WEB1,
|
||||
0,
|
||||
&g_fpcLf_Method.mBase,
|
||||
sizeof(obj_web1_class),
|
||||
0,
|
||||
0,
|
||||
&g_fopAc_Method,
|
||||
0x0030,
|
||||
0,
|
||||
0,
|
||||
&l_daObj_Web1_Method,
|
||||
0x00040100,
|
||||
0,
|
||||
14,
|
||||
0,
|
||||
0,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user