mirror of
https://github.com/zeldaret/tp
synced 2026-06-17 23:21:28 -04:00
Misc obj linkage (#2773)
This commit is contained in:
@@ -12,6 +12,22 @@
|
||||
#include "d/d_cc_uty.h"
|
||||
#include "f_op/f_op_actor_enemy.h"
|
||||
|
||||
class daE_YD_HIO_c {
|
||||
public:
|
||||
daE_YD_HIO_c();
|
||||
virtual ~daE_YD_HIO_c() {}
|
||||
|
||||
/* 0x4 */ s8 field_0x4;
|
||||
/* 0x8 */ f32 field_0x8;
|
||||
/* 0xC */ f32 field_0xc;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x14 */ s16 field_0x14;
|
||||
/* 0x16 */ s16 field_0x16;
|
||||
/* 0x18 */ u8 field_0x18;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daE_YD_HIO_c) == 0x1c);
|
||||
|
||||
/* 807F2C2C-807F2C78 0000EC 004C+00 1/1 0/0 0/0 .text __ct__12daE_YD_HIO_cFv */
|
||||
daE_YD_HIO_c::daE_YD_HIO_c() {
|
||||
field_0x4 = -1;
|
||||
|
||||
@@ -48,7 +48,9 @@ public:
|
||||
/* 0x8 */ daObjFlag3_Attr_c mAttr;
|
||||
};
|
||||
|
||||
#if DEBUG
|
||||
daObjFlag3_Hio_c M_hio;
|
||||
#endif
|
||||
|
||||
/* 80BF0458-80BF046C 000000 0014+00 3/3 0/0 0/0 .rodata M_attr__12daObjFlag3_c */
|
||||
daObjFlag3_Attr_c const daObjFlag3_c::M_attr = {
|
||||
@@ -442,32 +444,7 @@ static int daObjFlag3_Create(fopAc_ac_c* i_this) {
|
||||
return static_cast<daObjFlag3_c*>(i_this)->create();
|
||||
}
|
||||
|
||||
/* 80BEF95C-80BEFBC4 000F5C 0268+00 1/1 0/0 0/0 .text create__12daObjFlag3_cFv */
|
||||
int daObjFlag3_c::create() {
|
||||
fopAcM_ct(this, daObjFlag3_c);
|
||||
s8 flagNum = (u8)shape_angle.x;
|
||||
if (flagNum <= -1 || flagNum > 99) {
|
||||
mFlagValid = false;
|
||||
} else {
|
||||
mFlagValid = true;
|
||||
sprintf(mFlagName, "FlagObj%02d", flagNum);
|
||||
int rv = dComIfG_resLoad(&mFlagPhase, mFlagName);
|
||||
if (rv != cPhs_COMPLEATE_e) {
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
int rv = dComIfG_resLoad(&mArcPhase, daSetBgObj_c::getArcName(this));
|
||||
if (rv == cPhs_COMPLEATE_e) {
|
||||
if (fopAcM_entrySolidHeap(this, createSolidHeap, 0x4000) == 0) {
|
||||
return cPhs_ERROR_e;
|
||||
} else {
|
||||
create_init();
|
||||
}
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
inline void daObjFlag3_c::initBaseMtx() {
|
||||
void daObjFlag3_c::initBaseMtx() {
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
fopAcM_SetMtx(this, mModel->getBaseTRMtx());
|
||||
@@ -526,6 +503,31 @@ void FlagCloth2_c::initFlagPos(cXyz* param_0, fopAc_ac_c* param_1) {
|
||||
initTexCoord();
|
||||
}
|
||||
|
||||
/* 80BEF95C-80BEFBC4 000F5C 0268+00 1/1 0/0 0/0 .text create__12daObjFlag3_cFv */
|
||||
int daObjFlag3_c::create() {
|
||||
fopAcM_ct(this, daObjFlag3_c);
|
||||
s8 flagNum = (u8)shape_angle.x;
|
||||
if (flagNum <= -1 || flagNum > 99) {
|
||||
mFlagValid = false;
|
||||
} else {
|
||||
mFlagValid = true;
|
||||
sprintf(mFlagName, "FlagObj%02d", flagNum);
|
||||
int rv = dComIfG_resLoad(&mFlagPhase, mFlagName);
|
||||
if (rv != cPhs_COMPLEATE_e) {
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
int rv = dComIfG_resLoad(&mArcPhase, daSetBgObj_c::getArcName(this));
|
||||
if (rv == cPhs_COMPLEATE_e) {
|
||||
if (fopAcM_entrySolidHeap(this, createSolidHeap, 0x4000) == 0) {
|
||||
return cPhs_ERROR_e;
|
||||
} else {
|
||||
create_init();
|
||||
}
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* 80BF058C-80BF05AC -00001 0020+00 1/0 0/0 0/0 .data l_daObjFlag3_Method */
|
||||
static actor_method_class l_daObjFlag3_Method = {
|
||||
(process_method_func)daObjFlag3_Create,
|
||||
|
||||
@@ -8,6 +8,18 @@
|
||||
#include "d/actor/d_a_obj_lv6ChangeGate.h"
|
||||
#include "d/d_s_play.h"
|
||||
|
||||
class daLv6ChangeGate_HIO_c : public fOpAcm_HIO_entry_c {
|
||||
public:
|
||||
/* 80C70C4C */ daLv6ChangeGate_HIO_c();
|
||||
/* 80C71EE8 */ virtual ~daLv6ChangeGate_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
/* 0x4 */ f32 speed;
|
||||
/* 0x8 */ f32 move_amount;
|
||||
/* 0xC */ u8 unk_0xc;
|
||||
};
|
||||
|
||||
/* 80C70C4C-80C70C94 0000EC 0048+00 1/1 0/0 0/0 .text __ct__21daLv6ChangeGate_HIO_cFv */
|
||||
daLv6ChangeGate_HIO_c::daLv6ChangeGate_HIO_c() {
|
||||
speed = 10.0f;
|
||||
|
||||
@@ -93,36 +93,6 @@ actionFunc daObjMasterSword_c::ActionTable[] = {
|
||||
&daObjMasterSword_c::initWait, &daObjMasterSword_c::executeWait,
|
||||
};
|
||||
|
||||
/* 80C90DB8-80C90F6C 000338 01B4+00 1/1 0/0 0/0 .text create__18daObjMasterSword_cFv */
|
||||
int daObjMasterSword_c::create() {
|
||||
fopAcM_ct(this, daObjMasterSword_c);
|
||||
|
||||
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[getFlagNo()])) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
int phase = dComIfG_resLoad(&mPhase, l_arcName);
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
if (!fopAcM_entrySolidHeap(this, daObjMasterSword_c::createHeapCallBack, 0x1830)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
create_init();
|
||||
}
|
||||
|
||||
return phase;
|
||||
}
|
||||
|
||||
void daObjMasterSword_c::callInit() {
|
||||
(this->**mActionFunc)();
|
||||
}
|
||||
|
||||
void daObjMasterSword_c::setAction(daObjMasterSword_c::Mode_e i_mode) {
|
||||
mMode = i_mode;
|
||||
mActionFunc = &ActionTable[2 * mMode];
|
||||
callInit();
|
||||
}
|
||||
|
||||
void daObjMasterSword_c::initCollision() {
|
||||
static dCcD_SrcCyl ccCylSrc = {
|
||||
{
|
||||
@@ -143,6 +113,16 @@ void daObjMasterSword_c::initCollision() {
|
||||
mCyl.SetStts(&mCcStts);
|
||||
}
|
||||
|
||||
void daObjMasterSword_c::callInit() {
|
||||
(this->**mActionFunc)();
|
||||
}
|
||||
|
||||
void daObjMasterSword_c::setAction(daObjMasterSword_c::Mode_e i_mode) {
|
||||
mMode = i_mode;
|
||||
mActionFunc = &ActionTable[2 * mMode];
|
||||
callInit();
|
||||
}
|
||||
|
||||
/* 80C90F6C-80C9120C 0004EC 02A0+00 1/1 0/0 0/0 .text create_init__18daObjMasterSword_cFv */
|
||||
void daObjMasterSword_c::create_init() {
|
||||
fopAcM_setCullSizeBox2(this, mpModel->getModelData());
|
||||
@@ -170,6 +150,26 @@ void daObjMasterSword_c::create_init() {
|
||||
setAction(MODE_0_e);
|
||||
}
|
||||
|
||||
/* 80C90DB8-80C90F6C 000338 01B4+00 1/1 0/0 0/0 .text create__18daObjMasterSword_cFv */
|
||||
int daObjMasterSword_c::create() {
|
||||
fopAcM_ct(this, daObjMasterSword_c);
|
||||
|
||||
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[getFlagNo()])) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
int phase = dComIfG_resLoad(&mPhase, l_arcName);
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
if (!fopAcM_entrySolidHeap(this, daObjMasterSword_c::createHeapCallBack, 0x1830)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
create_init();
|
||||
}
|
||||
|
||||
return phase;
|
||||
}
|
||||
|
||||
/* 80C91420-80C91448 0009A0 0028+00 1/0 0/0 0/0 .text daObjMasterSword_Delete__FP18daObjMasterSword_c */
|
||||
static int daObjMasterSword_Delete(daObjMasterSword_c* i_this) {
|
||||
i_this->~daObjMasterSword_c();
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/d_bg_w.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_s_play.h"
|
||||
|
||||
// NONMATCHING - dEvLib_callback_c issues
|
||||
|
||||
@@ -41,7 +42,8 @@ static u32 const l_heap_size[5] = {
|
||||
/* 80CFB938-80CFB9D8 000078 00A0+00 1/1 0/0 0/0 .text nodeCallBack__FP8J3DJointi */
|
||||
static int nodeCallBack(J3DJoint* pJoint, int param_2) {
|
||||
if (param_2 == 0) {
|
||||
int jntNo = pJoint->getJntNo();
|
||||
J3DJoint* my_joint = pJoint;
|
||||
int jntNo = my_joint->getJntNo();
|
||||
J3DModel* model = j3dSys.getModel();
|
||||
daObjSwHang_c* i_this = (daObjSwHang_c*)model->getUserArea();
|
||||
cMtx_copy(model->getAnmMtx(jntNo), mDoMtx_stack_c::get());
|
||||
@@ -65,8 +67,9 @@ void daObjSwHang_c::initBaseMtx() {
|
||||
|
||||
/* 80CFBA60-80CFBAC8 0001A0 0068+00 2/2 0/0 0/0 .text setBaseMtx__13daObjSwHang_cFv */
|
||||
void daObjSwHang_c::setBaseMtx() {
|
||||
f32 hang_length = mHangLength + KREG_F(10);
|
||||
mDoMtx_stack_c::transS(current.pos.x,
|
||||
current.pos.y - mHangLength,
|
||||
current.pos.y - hang_length,
|
||||
current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
MTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
@@ -110,7 +113,6 @@ static dCcD_SrcSph l_sph_src = {
|
||||
};
|
||||
|
||||
/* 80CFD37C-80CFD3BC 0000C4 0040+00 0/1 0/0 0/0 .data l_sph_src2 */
|
||||
#pragma force_active on
|
||||
static dCcD_SrcSph l_sph_src2 = {
|
||||
{
|
||||
{0x0, {{0x0, 0x0, 0x0}, {0x4000, 0x11}, 0x18}}, // mObj
|
||||
@@ -134,7 +136,7 @@ int daObjSwHang_c::Create() {
|
||||
}
|
||||
initBaseMtx();
|
||||
if (mpBgW != NULL) {
|
||||
dComIfG_Bgsp().Regist(mpBgW, this);
|
||||
bool unused_r25 = dComIfG_Bgsp().Regist(mpBgW, this);
|
||||
mpBgW->Move();
|
||||
}
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
@@ -499,7 +501,7 @@ int daObjSwHang_c::Draw() {
|
||||
/* 80CFCD98-80CFCE0C 0014D8 0074+00 1/0 0/0 0/0 .text Delete__13daObjSwHang_cFv */
|
||||
int daObjSwHang_c::Delete() {
|
||||
if (mpBgW != NULL && mpBgW->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(mpBgW);
|
||||
bool unused_r29 = dComIfG_Bgsp().Release(mpBgW);
|
||||
}
|
||||
dComIfG_resDelete(&mPhase, l_arcName[mType]);
|
||||
return 1;
|
||||
@@ -525,7 +527,7 @@ static int daObjSwHang_MoveBGExecute(daObjSwHang_c* i_this) {
|
||||
|
||||
/* 80CFCF60-80CFCF8C 0016A0 002C+00 1/0 0/0 0/0 .text daObjSwHang_MoveBGDraw__FP13daObjSwHang_c */
|
||||
static int daObjSwHang_MoveBGDraw(daObjSwHang_c* i_this) {
|
||||
return i_this->Draw();
|
||||
return i_this->MoveBGDraw();
|
||||
}
|
||||
|
||||
static void dummy() {
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
struct daWtPillar_HIO_c : public mDoHIO_entry_c {
|
||||
/* 80D2C6CC */ daWtPillar_HIO_c();
|
||||
/* 80D2DF34 */ virtual ~daWtPillar_HIO_c();
|
||||
/* 80D2DF34 */ virtual ~daWtPillar_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
@@ -228,8 +228,8 @@ int daWtPillar_c::execute() {
|
||||
effectSet();
|
||||
effectSet2();
|
||||
|
||||
mScaleX = scale.x;
|
||||
mScaleZ = scale.z;
|
||||
mScale.x = scale.x;
|
||||
mScale.z = scale.z;
|
||||
|
||||
cXyz currentHeightVector(0.0f, 1.0f, 0.0f);
|
||||
currentHeightVector.y *= mCurrentHeight;
|
||||
@@ -606,18 +606,6 @@ int daWtPillar_Create(fopAc_ac_c* i_this) {
|
||||
return static_cast<daWtPillar_c*>(i_this)->create();
|
||||
}
|
||||
|
||||
daWtPillar_HIO_c::~daWtPillar_HIO_c() {
|
||||
}
|
||||
|
||||
/* 80D2E054-80D2E21C 001A74 01C8+00 1/1 0/0 0/0 .text __ct__12daWtPillar_cFv */
|
||||
daWtPillar_c::daWtPillar_c() : dEvLib_callback_c(this) {
|
||||
// Empty
|
||||
// Having this in the header file results in inlining...
|
||||
}
|
||||
|
||||
daWtPillar_c::~daWtPillar_c() {
|
||||
}
|
||||
|
||||
/* 80D2EA14-80D2EA34 -00001 0020+00 1/0 0/0 0/0 .data l_daWtPillar_Method */
|
||||
actor_method_class l_daWtPillar_Method = {
|
||||
(process_method_func)daWtPillar_Create,
|
||||
|
||||
Reference in New Issue
Block a user