mirror of https://github.com/zeldaret/tp.git
d_a_obj_metalbox matching (#2333)
* Started work on d_a_obj_stick * Lots of green * Fixed mAcch vtable * Only missing switch/if problem in create * All green * Set stick matching * Cleanup * Addressed PR comments * Reset vscode config * d_a_ob_metalbox mostly complete * Completed d_a_obj_metalbox * Addressed PR issues
This commit is contained in:
parent
131548b015
commit
1a5a81976a
|
|
@ -1543,7 +1543,7 @@ config.libs = [
|
|||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_ladder"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_lv2Candle"),
|
||||
ActorRel(NonMatching, "d_a_obj_magne_arm"),
|
||||
ActorRel(NonMatching, "d_a_obj_metalbox"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_metalbox"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_mgate"),
|
||||
ActorRel(NonMatching, "d_a_obj_nameplate"),
|
||||
ActorRel(NonMatching, "d_a_obj_ornament_cloth"),
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@
|
|||
#define D_A_OBJ_METALBOX_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "d/d_bg_s_movebg_actor.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_cc_d.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
|
|
@ -11,19 +14,24 @@
|
|||
* @details
|
||||
*
|
||||
*/
|
||||
class daObjMBox_c : public fopAc_ac_c {
|
||||
class daObjMBox_c : public dBgS_MoveBgActor {
|
||||
private:
|
||||
/* 0x5a0 */ request_of_phase_process_class mPhase;
|
||||
/* 0x5a8 */ J3DModel* mpModel;
|
||||
/* 0x5ac */ dBgS_ObjAcch mAcch;
|
||||
/* 0x784 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x7c4 */ dCcD_Stts mStts;
|
||||
/* 0x7e4 */ dCcD_Cyl mCyl;
|
||||
/* 0x904 */ u8 field_0x804[0x944 - 0x93c];
|
||||
public:
|
||||
/* 80592E98 */ void initBaseMtx();
|
||||
/* 80592ED4 */ void setBaseMtx();
|
||||
/* 80592F48 */ void Create();
|
||||
/* 80592FD4 */ void CreateHeap();
|
||||
/* 80593044 */ void create();
|
||||
/* 805932C4 */ void Execute(f32 (**)[3][4]);
|
||||
/* 805932F0 */ void Draw();
|
||||
/* 80593394 */ void Delete();
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x944 - 0x568];
|
||||
/* 80592F48 */ int Create();
|
||||
/* 80592FD4 */ int CreateHeap();
|
||||
/* 80593044 */ int create();
|
||||
/* 805932C4 */ int Execute(f32 (**)[3][4]);
|
||||
/* 805932F0 */ int Draw();
|
||||
/* 80593394 */ int Delete();
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daObjMBox_c) == 0x944);
|
||||
|
|
|
|||
|
|
@ -5,119 +5,120 @@
|
|||
|
||||
#include "d/actor/d_a_obj_metalbox.h"
|
||||
#include "dol2asm.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void initBaseMtx__11daObjMBox_cFv();
|
||||
extern "C" void setBaseMtx__11daObjMBox_cFv();
|
||||
extern "C" void Create__11daObjMBox_cFv();
|
||||
extern "C" void CreateHeap__11daObjMBox_cFv();
|
||||
extern "C" void create__11daObjMBox_cFv();
|
||||
extern "C" void __dt__8cM3dGCylFv();
|
||||
extern "C" void __dt__8cM3dGAabFv();
|
||||
extern "C" void __dt__12dBgS_ObjAcchFv();
|
||||
extern "C" void Execute__11daObjMBox_cFPPA3_A4_f();
|
||||
extern "C" void Draw__11daObjMBox_cFv();
|
||||
extern "C" void Delete__11daObjMBox_cFv();
|
||||
extern "C" static void daObjMBox_Draw__FP11daObjMBox_c();
|
||||
extern "C" static void daObjMBox_Execute__FP11daObjMBox_c();
|
||||
extern "C" static void daObjMBox_Delete__FP11daObjMBox_c();
|
||||
extern "C" static void daObjMBox_Create__FP10fopAc_ac_c();
|
||||
extern "C" static void func_80593454();
|
||||
extern "C" static void func_8059345C();
|
||||
extern "C" extern char const* const d_a_obj_metalbox__stringBase0;
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_YrotM__FPA4_fs();
|
||||
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
|
||||
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
|
||||
extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData();
|
||||
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
|
||||
extern "C" void dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz();
|
||||
extern "C" void __ct__12dBgS_AcchCirFv();
|
||||
extern "C" void SetWall__12dBgS_AcchCirFff();
|
||||
extern "C" void __dt__9dBgS_AcchFv();
|
||||
extern "C" void __ct__9dBgS_AcchFv();
|
||||
extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
|
||||
extern "C" void __ct__16dBgS_MoveBgActorFv();
|
||||
extern "C" bool IsDelete__16dBgS_MoveBgActorFv();
|
||||
extern "C" bool ToFore__16dBgS_MoveBgActorFv();
|
||||
extern "C" bool ToBack__16dBgS_MoveBgActorFv();
|
||||
extern "C" void
|
||||
MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f();
|
||||
extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv();
|
||||
extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv();
|
||||
extern "C" void SetObj__16dBgS_PolyPassChkFv();
|
||||
extern "C" void __ct__10dCcD_GSttsFv();
|
||||
extern "C" void __ct__12dCcD_GObjInfFv();
|
||||
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
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];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
static char const* l_arcName = "L_mbox_00";
|
||||
|
||||
/* 80592E98-80592ED4 000078 003C+00 1/1 0/0 0/0 .text initBaseMtx__11daObjMBox_cFv */
|
||||
void daObjMBox_c::initBaseMtx() {
|
||||
// NONMATCHING
|
||||
mpModel->setBaseScale(scale);
|
||||
setBaseMtx();
|
||||
}
|
||||
|
||||
/* 80592ED4-80592F48 0000B4 0074+00 2/2 0/0 0/0 .text setBaseMtx__11daObjMBox_cFv */
|
||||
void daObjMBox_c::setBaseMtx() {
|
||||
// NONMATCHING
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
PSMTXCopy(mDoMtx_stack_c::now, mBgMtx);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8059346C-80593470 000000 0004+00 1/1 0/0 0/0 .rodata @3655 */
|
||||
SECTION_RODATA static f32 const lit_3655 = 30.0f;
|
||||
COMPILER_STRIP_GATE(0x8059346C, &lit_3655);
|
||||
|
||||
/* 80592F48-80592FD4 000128 008C+00 1/0 0/0 0/0 .text Create__11daObjMBox_cFv */
|
||||
void daObjMBox_c::Create() {
|
||||
// NONMATCHING
|
||||
int daObjMBox_c::Create() {
|
||||
initBaseMtx();
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
mAcchCir.SetWall(30.0f, 30.0f);
|
||||
mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir,
|
||||
fopAcM_GetSpeed_p(this), NULL, NULL);
|
||||
fopAcM_setCullSizeBox2(this, mpModel->getModelData());
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80593470-80593470 000004 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80593470 = "L_mbox_00";
|
||||
#pragma pop
|
||||
|
||||
/* 8059347C-80593480 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
|
||||
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_metalbox__stringBase0;
|
||||
|
||||
/* 80592FD4-80593044 0001B4 0070+00 1/0 0/0 0/0 .text CreateHeap__11daObjMBox_cFv */
|
||||
void daObjMBox_c::CreateHeap() {
|
||||
// NONMATCHING
|
||||
int daObjMBox_c::CreateHeap() {
|
||||
J3DModelData* objectRes = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 4);
|
||||
|
||||
mpModel = mDoExt_J3DModel__create(objectRes, 0x80000, 0x11000084);
|
||||
if (mpModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80593044-805931C4 000224 0180+00 1/1 0/0 0/0 .text create__11daObjMBox_cFv */
|
||||
int daObjMBox_c::create() {
|
||||
fopAcM_SetupActor(this, daObjMBox_c);
|
||||
|
||||
int phase_state = dComIfG_resLoad(&mPhase, l_arcName);
|
||||
if (phase_state == cPhs_COMPLEATE_e) {
|
||||
phase_state = MoveBGCreate(l_arcName, 7, dBgS_MoveBGProc_TypicalRotY, 0xc40, 0);
|
||||
if (phase_state == cPhs_ERROR_e) {
|
||||
return phase_state;
|
||||
}
|
||||
}
|
||||
|
||||
return phase_state;
|
||||
}
|
||||
|
||||
/* 805932C4-805932F0 0004A4 002C+00 1/0 0/0 0/0 .text Execute__11daObjMBox_cFPPA3_A4_f */
|
||||
int daObjMBox_c::Execute(f32 (**param_0)[3][4]) {
|
||||
*param_0 = &mBgMtx;
|
||||
setBaseMtx();
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 805932F0-80593394 0004D0 00A4+00 1/0 0/0 0/0 .text Draw__11daObjMBox_cFv */
|
||||
int daObjMBox_c::Draw() {
|
||||
g_env_light.settingTevStruct(0x10, ¤t.pos, &tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
|
||||
dComIfGd_setListBG();
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
dComIfGd_setList();
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80593394-805933C8 000574 0034+00 1/0 0/0 0/0 .text Delete__11daObjMBox_cFv */
|
||||
int daObjMBox_c::Delete() {
|
||||
dComIfG_resDelete(&mPhase, l_arcName);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 805933C8-805933F4 0005A8 002C+00 1/0 0/0 0/0 .text daObjMBox_Draw__FP11daObjMBox_c */
|
||||
static int daObjMBox_Draw(daObjMBox_c* i_this) {
|
||||
return i_this->MoveBGDraw();
|
||||
}
|
||||
|
||||
/* 805933F4-80593414 0005D4 0020+00 1/0 0/0 0/0 .text daObjMBox_Execute__FP11daObjMBox_c
|
||||
*/
|
||||
static int daObjMBox_Execute(daObjMBox_c* i_this) {
|
||||
return i_this->MoveBGExecute();
|
||||
}
|
||||
|
||||
/* 80593414-80593434 0005F4 0020+00 1/0 0/0 0/0 .text daObjMBox_Delete__FP11daObjMBox_c
|
||||
*/
|
||||
static int daObjMBox_Delete(daObjMBox_c* i_this) {
|
||||
return i_this->MoveBGDelete();
|
||||
}
|
||||
|
||||
/* 80593434-80593454 000614 0020+00 1/0 0/0 0/0 .text daObjMBox_Create__FP10fopAc_ac_c */
|
||||
static int daObjMBox_Create(fopAc_ac_c* i_this) {
|
||||
fopAcM_GetID(i_this);
|
||||
return static_cast<daObjMBox_c*>(i_this)->create();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80593480-805934A0 -00001 0020+00 1/0 0/0 0/0 .data l_daObjMBox_Method */
|
||||
static actor_method_class l_daObjMBox_Method = {
|
||||
(process_method_func)daObjMBox_Create__FP10fopAc_ac_c,
|
||||
(process_method_func)daObjMBox_Delete__FP11daObjMBox_c,
|
||||
(process_method_func)daObjMBox_Execute__FP11daObjMBox_c,
|
||||
(process_method_func)daObjMBox_Create,
|
||||
(process_method_func)daObjMBox_Delete,
|
||||
(process_method_func)daObjMBox_Execute,
|
||||
0,
|
||||
(process_method_func)daObjMBox_Draw__FP11daObjMBox_c,
|
||||
(process_method_func)daObjMBox_Draw,
|
||||
};
|
||||
|
||||
/* 805934A0-805934D0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_MetalBox */
|
||||
|
|
@ -137,116 +138,3 @@ extern actor_process_profile_definition g_profile_Obj_MetalBox = {
|
|||
fopAc_ACTOR_e, // mActorType
|
||||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
/* 805934D0-805934DC 000054 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,
|
||||
};
|
||||
|
||||
/* 805934DC-805934E8 000060 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,
|
||||
};
|
||||
|
||||
/* 805934E8-8059350C 00006C 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */
|
||||
SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__12dBgS_ObjAcchFv,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)func_8059345C,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)func_80593454,
|
||||
};
|
||||
|
||||
/* 8059350C-80593534 000090 0028+00 1/1 0/0 0/0 .data __vt__11daObjMBox_c */
|
||||
SECTION_DATA extern void* __vt__11daObjMBox_c[10] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)CreateHeap__11daObjMBox_cFv,
|
||||
(void*)Create__11daObjMBox_cFv,
|
||||
(void*)Execute__11daObjMBox_cFPPA3_A4_f,
|
||||
(void*)Draw__11daObjMBox_cFv,
|
||||
(void*)Delete__11daObjMBox_cFv,
|
||||
(void*)IsDelete__16dBgS_MoveBgActorFv,
|
||||
(void*)ToFore__16dBgS_MoveBgActorFv,
|
||||
(void*)ToBack__16dBgS_MoveBgActorFv,
|
||||
};
|
||||
|
||||
/* 80593044-805931C4 000224 0180+00 1/1 0/0 0/0 .text create__11daObjMBox_cFv */
|
||||
void daObjMBox_c::create() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 805931C4-8059320C 0003A4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
|
||||
// cM3dGCyl::~cM3dGCyl() {
|
||||
extern "C" void __dt__8cM3dGCylFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 8059320C-80593254 0003EC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
|
||||
// cM3dGAab::~cM3dGAab() {
|
||||
extern "C" void __dt__8cM3dGAabFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80593254-805932C4 000434 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
|
||||
// dBgS_ObjAcch::~dBgS_ObjAcch() {
|
||||
extern "C" void __dt__12dBgS_ObjAcchFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 805932C4-805932F0 0004A4 002C+00 1/0 0/0 0/0 .text Execute__11daObjMBox_cFPPA3_A4_f */
|
||||
void daObjMBox_c::Execute(f32 (**param_0)[3][4]) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 805932F0-80593394 0004D0 00A4+00 1/0 0/0 0/0 .text Draw__11daObjMBox_cFv */
|
||||
void daObjMBox_c::Draw() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80593394-805933C8 000574 0034+00 1/0 0/0 0/0 .text Delete__11daObjMBox_cFv */
|
||||
void daObjMBox_c::Delete() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 805933C8-805933F4 0005A8 002C+00 1/0 0/0 0/0 .text daObjMBox_Draw__FP11daObjMBox_c */
|
||||
static void daObjMBox_Draw(daObjMBox_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 805933F4-80593414 0005D4 0020+00 1/0 0/0 0/0 .text daObjMBox_Execute__FP11daObjMBox_c
|
||||
*/
|
||||
static void daObjMBox_Execute(daObjMBox_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80593414-80593434 0005F4 0020+00 1/0 0/0 0/0 .text daObjMBox_Delete__FP11daObjMBox_c
|
||||
*/
|
||||
static void daObjMBox_Delete(daObjMBox_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80593434-80593454 000614 0020+00 1/0 0/0 0/0 .text daObjMBox_Create__FP10fopAc_ac_c */
|
||||
static void daObjMBox_Create(fopAc_ac_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80593454-8059345C 000634 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
|
||||
static void func_80593454() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 8059345C-80593464 00063C 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
|
||||
static void func_8059345C() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80593470-80593470 000004 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
|
|
|||
Loading…
Reference in New Issue