d_a_obj_prop OK

This commit is contained in:
Trueffeloot
2023-05-23 21:59:44 +02:00
parent d88870949d
commit 617c84f4cf
4 changed files with 166 additions and 303 deletions
+1
View File
@@ -568,6 +568,7 @@ JKRSolidHeap* mDoExt_createSolidHeapFromGameToCurrent(JKRHeap** o_heap, u32 i_si
u32 mDoExt_adjustSolidHeapToSystem(JKRSolidHeap* i_heap);
JKRHeap* mDoExt_getCurrentHeap();
void mDoExt_removeMesgFont();
void mDoExt_modelUpdate(J3DModel* i_model);
void mDoExt_modelUpdateDL(J3DModel* i_model);
J3DModel* mDoExt_J3DModel__create(J3DModelData* i_modelData, u32 param_1, u32 param_2);
void mDoExt_setAraCacheSize(u32 size);
@@ -1,6 +1,30 @@
#ifndef D_A_OBJ_PROP_H
#define D_A_OBJ_PROP_H
#include "dolphin/types.h"
#include "d/com/d_com_inf_game.h"
#include "f_op/f_op_actor_mng.h"
class daObjProp_c : public fopAc_ac_c {
public:
/* 80CB51F8 */ daObjProp_c();
/* 80CB52B4 */ bool createHeap();
/* 80CB5334 */ int create();
/* 80CB5408 */ int Delete();
/* 80CB543C */ int draw();
/* 80CB54A0 */ int execute();
/* 80CB54E4 */ void init();
/* 80CB54F4 */ void setModelMtx();
u32 getNameArg_0() { return fopAcM_GetParamBit(this, 0, 4); }
u32 getArg_0() { return fopAcM_GetParamBit(this, 4, 4); }
/* 0x568 */ request_of_phase_process_class mPhaseReq;
/* 0x570 */ /* 80CB5234 */ virtual ~daObjProp_c();
/* 0x574 */ J3DModel* mpModel;
/* 0x578 */ u8 mArg;
}; // Size: 0x57C
#endif /* D_A_OBJ_PROP_H */
+139 -292
View File
@@ -1,304 +1,151 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_obj_prop
//
/**
* d_a_obj_prop.cpp
* Object - Propeller
*/
#include "rel/d/a/obj/d_a_obj_prop/d_a_obj_prop.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct request_of_phase_process_class {};
struct mDoMtx_stack_c {
static u8 now[48];
};
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct daObjProp_c {
/* 80CB51F8 */ daObjProp_c();
/* 80CB5234 */ ~daObjProp_c();
/* 80CB52B4 */ void createHeap();
/* 80CB5334 */ void create();
/* 80CB5408 */ void Delete();
/* 80CB543C */ void draw();
/* 80CB54A0 */ void execute();
/* 80CB54E4 */ void init();
/* 80CB54F4 */ void setModelMtx();
};
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 J3DModel {};
//
// Forward References:
//
extern "C" static void daObjProp_c_createHeap__FP10fopAc_ac_c();
extern "C" void __ct__11daObjProp_cFv();
extern "C" void __dt__11daObjProp_cFv();
extern "C" void createHeap__11daObjProp_cFv();
extern "C" void create__11daObjProp_cFv();
extern "C" void Delete__11daObjProp_cFv();
extern "C" void draw__11daObjProp_cFv();
extern "C" void execute__11daObjProp_cFv();
extern "C" void init__11daObjProp_cFv();
extern "C" void setModelMtx__11daObjProp_cFv();
extern "C" static void daObjProp_create__FP11daObjProp_c();
extern "C" static void daObjProp_Delete__FP11daObjProp_c();
extern "C" static void daObjProp_execute__FP11daObjProp_c();
extern "C" static void daObjProp_draw__FP11daObjProp_c();
extern "C" extern char const* const d_a_obj_prop__stringBase0;
//
// External References:
//
extern "C" void mDoMtx_YrotM__FPA4_fs();
extern "C" void mDoExt_modelUpdate__FP8J3DModel();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
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 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 PSMTXCopy();
extern "C" void PSMTXTrans();
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];
//
// Declarations:
//
#include "JSystem/JKernel/JKRHeap.h"
#include "d/d_procname.h"
/* 80CB51D8-80CB51F8 000078 0020+00 1/1 0/0 0/0 .text daObjProp_c_createHeap__FP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjProp_c_createHeap(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_prop/d_a_obj_prop/daObjProp_c_createHeap__FP10fopAc_ac_c.s"
static bool daObjProp_c_createHeap(fopAc_ac_c* i_this) {
return static_cast<daObjProp_c*>(i_this)->createHeap();
}
#pragma pop
/* ############################################################################################## */
/* 80CB5620-80CB5620 00000C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80CB5620 = "L7Prop";
#pragma pop
/* 80CB5628-80CB562C -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_prop__stringBase0;
static const char* l_arcName = "L7Prop";
/* 80CB51F8-80CB5234 000098 003C+00 2/2 0/0 0/0 .text __ct__11daObjProp_cFv */
daObjProp_c::daObjProp_c() {}
inline request_of_phase_process_class* daObjProp_getRes(daObjProp_c* i_prop) {
daObjProp_c* mProp2 = (daObjProp_c*)i_prop;
return mProp2 != NULL ? &mProp2->mPhaseReq : (request_of_phase_process_class*)mProp2;
}
/* 80CB5234-80CB52B4 0000D4 0080+00 1/0 0/0 0/0 .text __dt__11daObjProp_cFv */
daObjProp_c::~daObjProp_c() {
dComIfG_resDelete(daObjProp_getRes(this), l_arcName);
}
static const u32 BMD_IDX[] = {3, 4};
/* 80CB52B4-80CB5334 000154 0080+00 1/1 0/0 0/0 .text createHeap__11daObjProp_cFv */
bool daObjProp_c::createHeap() {
u32 nameArg = getNameArg_0();
u32 bmd = BMD_IDX[nameArg];
mpModel = mDoExt_J3DModel__create((J3DModelData*)dComIfG_getObjectRes(l_arcName, bmd), 0x80000,
0x11000084);
return mpModel != NULL;
}
/* 80CB5334-80CB5408 0001D4 00D4+00 1/1 0/0 0/0 .text create__11daObjProp_cFv */
int daObjProp_c::create() {
if (!fopAcM_CheckCondition(this, 8)) {
new (this) daObjProp_c();
fopAcM_OnCondition(this, 8);
}
daObjProp_c* tmp = this;
if (this) {
tmp = (daObjProp_c*)&mPhaseReq;
}
int phase = dComIfG_resLoad((request_of_phase_process_class*)tmp, l_arcName);
if (phase == cPhs_COMPLEATE_e) {
if (!fopAcM_entrySolidHeap(this, (heapCallbackFunc)daObjProp_c_createHeap, 0x1000)) {
return cPhs_ERROR_e;
} else {
init();
setModelMtx();
mCullMtx = mpModel->getBaseTRMtx();
fopAcM_setCullSizeBox2(this, mpModel->getModelData());
}
}
return phase;
}
/* 80CB5408-80CB543C 0002A8 0034+00 1/1 0/0 0/0 .text Delete__11daObjProp_cFv */
int daObjProp_c::Delete() {
this->~daObjProp_c();
return 1;
}
/* 80CB543C-80CB54A0 0002DC 0064+00 1/1 0/0 0/0 .text draw__11daObjProp_cFv */
int daObjProp_c::draw() {
g_env_light.settingTevStruct(NULL, &current.pos, &mTevStr);
g_env_light.setLightTevColorType_MAJI(mpModel->mModelData, &mTevStr);
mDoExt_modelUpdate(mpModel);
return 1;
}
static const s16 ADD_ANGLE[] = {0x1800, 0xE800};
/* 80CB54A0-80CB54E4 000340 0044+00 1/1 0/0 0/0 .text execute__11daObjProp_cFv */
int daObjProp_c::execute() {
shape_angle.y += ADD_ANGLE[mArg];
setModelMtx();
return 1;
}
/* 80CB54E4-80CB54F4 000384 0010+00 1/1 0/0 0/0 .text init__11daObjProp_cFv */
void daObjProp_c::init() {
mArg = getArg_0() & 1;
}
/* 80CB54F4-80CB5558 000394 0064+00 2/2 0/0 0/0 .text setModelMtx__11daObjProp_cFv */
void daObjProp_c::setModelMtx() {
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
mDoMtx_stack_c::YrotM(shape_angle.y);
PSMTXCopy(mDoMtx_stack_c::now, mpModel->mBaseTransformMtx);
}
/* 80CB5558-80CB55AC 0003F8 0054+00 1/0 0/0 0/0 .text daObjProp_create__FP11daObjProp_c */
static int daObjProp_create(daObjProp_c* i_this) {
if (!fopAcM_CheckCondition(i_this, 8)) {
new (i_this) daObjProp_c();
fopAcM_OnCondition(i_this, 8);
}
return i_this->create();
}
/* 80CB55AC-80CB55CC 00044C 0020+00 1/0 0/0 0/0 .text daObjProp_Delete__FP11daObjProp_c */
static int daObjProp_Delete(daObjProp_c* i_this) {
return i_this->Delete();
}
/* 80CB55CC-80CB55EC 00046C 0020+00 1/0 0/0 0/0 .text daObjProp_execute__FP11daObjProp_c */
static int daObjProp_execute(daObjProp_c* i_this) {
return i_this->execute();
}
/* 80CB55EC-80CB560C 00048C 0020+00 1/0 0/0 0/0 .text daObjProp_draw__FP11daObjProp_c */
static int daObjProp_draw(daObjProp_c* i_this) {
return i_this->draw();
}
/* 80CB562C-80CB564C -00001 0020+00 1/0 0/0 0/0 .data daObjProp_METHODS */
SECTION_DATA static void* daObjProp_METHODS[8] = {
(void*)daObjProp_create__FP11daObjProp_c,
(void*)daObjProp_Delete__FP11daObjProp_c,
(void*)daObjProp_execute__FP11daObjProp_c,
(void*)NULL,
(void*)daObjProp_draw__FP11daObjProp_c,
(void*)NULL,
(void*)NULL,
(void*)NULL,
static actor_method_class daObjProp_METHODS = {
(process_method_func)daObjProp_create, (process_method_func)daObjProp_Delete,
(process_method_func)daObjProp_execute, (process_method_func)NULL,
(process_method_func)daObjProp_draw,
};
/* 80CB564C-80CB567C -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Prop */
SECTION_DATA extern void* g_profile_Obj_Prop[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x01970000, (void*)&g_fpcLf_Method,
(void*)0x0000057C, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x02E10000, (void*)&daObjProp_METHODS,
(void*)0x00040000, (void*)0x030E0000,
};
/* 80CB567C-80CB5688 000054 000C+00 2/2 0/0 0/0 .data __vt__11daObjProp_c */
SECTION_DATA extern void* __vt__11daObjProp_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__11daObjProp_cFv,
};
/* 80CB51F8-80CB5234 000098 003C+00 2/2 0/0 0/0 .text __ct__11daObjProp_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daObjProp_c::daObjProp_c() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_prop/d_a_obj_prop/__ct__11daObjProp_cFv.s"
}
#pragma pop
/* 80CB5234-80CB52B4 0000D4 0080+00 1/0 0/0 0/0 .text __dt__11daObjProp_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm daObjProp_c::~daObjProp_c() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_prop/d_a_obj_prop/__dt__11daObjProp_cFv.s"
}
#pragma pop
/* ############################################################################################## */
/* 80CB5614-80CB561C 000000 0008+00 1/1 0/0 0/0 .rodata BMD_IDX$3638 */
SECTION_RODATA static u8 const BMD_IDX[8] = {
0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04,
};
COMPILER_STRIP_GATE(0x80CB5614, &BMD_IDX);
/* 80CB52B4-80CB5334 000154 0080+00 1/1 0/0 0/0 .text createHeap__11daObjProp_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjProp_c::createHeap() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_prop/d_a_obj_prop/createHeap__11daObjProp_cFv.s"
}
#pragma pop
/* 80CB5334-80CB5408 0001D4 00D4+00 1/1 0/0 0/0 .text create__11daObjProp_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjProp_c::create() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_prop/d_a_obj_prop/create__11daObjProp_cFv.s"
}
#pragma pop
/* 80CB5408-80CB543C 0002A8 0034+00 1/1 0/0 0/0 .text Delete__11daObjProp_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjProp_c::Delete() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_prop/d_a_obj_prop/Delete__11daObjProp_cFv.s"
}
#pragma pop
/* 80CB543C-80CB54A0 0002DC 0064+00 1/1 0/0 0/0 .text draw__11daObjProp_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjProp_c::draw() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_prop/d_a_obj_prop/draw__11daObjProp_cFv.s"
}
#pragma pop
/* ############################################################################################## */
/* 80CB561C-80CB5620 000008 0004+00 1/1 0/0 0/0 .rodata ADD_ANGLE$3689 */
SECTION_RODATA static u8 const ADD_ANGLE[4] = {
0x18,
0x00,
0xE8,
0x00,
};
COMPILER_STRIP_GATE(0x80CB561C, &ADD_ANGLE);
/* 80CB54A0-80CB54E4 000340 0044+00 1/1 0/0 0/0 .text execute__11daObjProp_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjProp_c::execute() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_prop/d_a_obj_prop/execute__11daObjProp_cFv.s"
}
#pragma pop
/* 80CB54E4-80CB54F4 000384 0010+00 1/1 0/0 0/0 .text init__11daObjProp_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjProp_c::init() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_prop/d_a_obj_prop/init__11daObjProp_cFv.s"
}
#pragma pop
/* 80CB54F4-80CB5558 000394 0064+00 2/2 0/0 0/0 .text setModelMtx__11daObjProp_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daObjProp_c::setModelMtx() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_prop/d_a_obj_prop/setModelMtx__11daObjProp_cFv.s"
}
#pragma pop
/* 80CB5558-80CB55AC 0003F8 0054+00 1/0 0/0 0/0 .text daObjProp_create__FP11daObjProp_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjProp_create(daObjProp_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_prop/d_a_obj_prop/daObjProp_create__FP11daObjProp_c.s"
}
#pragma pop
/* 80CB55AC-80CB55CC 00044C 0020+00 1/0 0/0 0/0 .text daObjProp_Delete__FP11daObjProp_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjProp_Delete(daObjProp_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_prop/d_a_obj_prop/daObjProp_Delete__FP11daObjProp_c.s"
}
#pragma pop
/* 80CB55CC-80CB55EC 00046C 0020+00 1/0 0/0 0/0 .text daObjProp_execute__FP11daObjProp_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjProp_execute(daObjProp_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_prop/d_a_obj_prop/daObjProp_execute__FP11daObjProp_c.s"
}
#pragma pop
/* 80CB55EC-80CB560C 00048C 0020+00 1/0 0/0 0/0 .text daObjProp_draw__FP11daObjProp_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daObjProp_draw(daObjProp_c* param_0) {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_prop/d_a_obj_prop/daObjProp_draw__FP11daObjProp_c.s"
}
#pragma pop
/* 80CB5620-80CB5620 00000C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
extern actor_process_profile_definition g_profile_Obj_Prop = {
-3,
7,
-3,
PROC_Obj_Prop,
&g_fpcLf_Method.mBase,
sizeof(daObjProp_c),
0,
0,
&g_fopAc_Method.base,
0x02E1,
&daObjProp_METHODS,
0x00040000,
3,
14,
};
@@ -8,16 +8,7 @@
#include "d/a/d_a_player.h"
#include "d/d_procname.h"
/* ############################################################################################## */
/* 804D5724-804D5728 000000 0002+02 1/1 0/0 0/0 .rodata l_dist_tbl$3641 */
SECTION_RODATA static u8 const l_dist_tbl[2 + 2 /* padding */] = {
0x23,
0x24,
/* padding */
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x804D5724, &l_dist_tbl);
static const u8 l_dist_tbl[] = { 0x23, 0x24 };
/* 804D5318-804D5354 000078 003C+00 1/1 0/0 0/0 .text Create__8daAttp_cFv */
int daAttp_c::Create() {