d_a_obj_sakuita Matching (#2472)

This commit is contained in:
hatal175 2025-06-03 07:13:17 +03:00 committed by GitHub
parent 588b20679d
commit 5272152efa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 224 additions and 261 deletions

View File

@ -6,13 +6,13 @@ initBaseMtx__14daObjSakuita_cFv = .text:0x00000178; // type:function size:0x20 s
setBaseMtx__14daObjSakuita_cFv = .text:0x00000198; // type:function size:0x84 scope:global
setPlatePos__14daObjSakuita_cFv = .text:0x0000021C; // type:function size:0x1FC scope:global
calcAngle__14daObjSakuita_cFv = .text:0x00000418; // type:function size:0xC4 scope:global
createSolidHeap__FP10fopAc_ac_c = .text:0x000004DC; // type:function size:0x78 scope:global
daObjSakuita_Draw__FP14daObjSakuita_c = .text:0x00000554; // type:function size:0x40 scope:global
daObjSakuita_Execute__FP14daObjSakuita_c = .text:0x00000594; // type:function size:0x58 scope:global
daObjSakuita_IsDelete__FP14daObjSakuita_c = .text:0x000005EC; // type:function size:0x8 scope:global
daObjSakuita_Delete__FP14daObjSakuita_c = .text:0x000005F4; // type:function size:0x28 scope:global
createSolidHeap__FP10fopAc_ac_c = .text:0x000004DC; // type:function size:0x78 scope:local
daObjSakuita_Draw__FP14daObjSakuita_c = .text:0x00000554; // type:function size:0x40 scope:local
daObjSakuita_Execute__FP14daObjSakuita_c = .text:0x00000594; // type:function size:0x58 scope:local
daObjSakuita_IsDelete__FP14daObjSakuita_c = .text:0x000005EC; // type:function size:0x8 scope:local
daObjSakuita_Delete__FP14daObjSakuita_c = .text:0x000005F4; // type:function size:0x28 scope:local
__dt__14daObjSakuita_cFv = .text:0x0000061C; // type:function size:0x1A4 scope:global
daObjSakuita_Create__FP10fopAc_ac_c = .text:0x000007C0; // type:function size:0x138 scope:global
daObjSakuita_Create__FP10fopAc_ac_c = .text:0x000007C0; // type:function size:0x138 scope:local
__dt__8cM3dGCylFv = .text:0x000008F8; // type:function size:0x48 scope:global
__dt__8cM3dGAabFv = .text:0x00000940; // type:function size:0x48 scope:global
__dt__10dCcD_GSttsFv = .text:0x00000988; // type:function size:0x5C scope:global
@ -34,8 +34,8 @@ M_attr__14daObjSakuita_c = .rodata:0x00000000; // type:object size:0x2C scope:gl
@3764 = .rodata:0x00000054; // type:object size:0x4 scope:local
@3781 = .rodata:0x00000058; // type:object size:0x8 scope:local align:8 data:double
@stringBase0 = .rodata:0x00000060; // type:object size:0x18 scope:local data:string_table
l_arcName = .data:0x00000000; // type:object size:0x4 scope:global
l_daObjSakuita_Method = .data:0x00000004; // type:object size:0x20 scope:global
l_arcName = .data:0x00000000; // type:object size:0x4 scope:local
l_daObjSakuita_Method = .data:0x00000004; // type:object size:0x20 scope:local
g_profile_Obj_Sakuita = .data:0x00000024; // type:object size:0x30 scope:global
__vt__10cCcD_GStts = .data:0x00000054; // type:object size:0xC scope:global
__vt__10dCcD_GStts = .data:0x00000060; // type:object size:0xC scope:global

View File

@ -2074,7 +2074,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_rstair"),
ActorRel(NonMatching, "d_a_obj_rw"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_saidan"),
ActorRel(NonMatching, "d_a_obj_sakuita"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_sakuita"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_sakuita_rope"),
ActorRel(NonMatching, "d_a_obj_scannon"),
ActorRel(NonMatching, "d_a_obj_scannon_crs"),

View File

@ -1,8 +1,24 @@
#ifndef D_A_OBJ_SAKUITA_H
#define D_A_OBJ_SAKUITA_H
#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"
struct daObjSakuita_Attr_c {
/* 0x00 */ f32 mGravity;
/* 0x04 */ f32 mCylR;
/* 0x08 */ f32 mCylH;
/* 0x0C */ f32 mOffset;
/* 0x10 */ f32 mWindRate;
/* 0x14 */ f32 mSpeedRate;
/* 0x18 */ f32 mHangingPosition;
/* 0x1C */ f32 mWindShake;
/* 0x20 */ f32 mYVibration;
/* 0x24 */ f32 mYConvergence;
/* 0x28 */ s16 mYPeriod;
/* 0x2C */ u8 mBoardWeight;
};
/**
* @ingroup actors-objects
* @class daObjSakuita_c
@ -20,10 +36,28 @@ public:
/* 80CC4A98 */ void calcAngle();
/* 80CC4C9C */ ~daObjSakuita_c();
static u8 const M_attr[44];
inline int createHeap();
inline int draw();
inline int execute();
inline int create();
const daObjSakuita_Attr_c& attr() const { return M_attr; }
static daObjSakuita_Attr_c const M_attr;
private:
/* 0x568 */ u8 field_0x568[0x750 - 0x568];
/* 0x568 */ J3DModel* mModel;
/* 0x56C */ request_of_phase_process_class mPhase;
/* 0x574 */ Mtx mMtx;
/* 0x5A4 */ dCcD_Stts mStts;
/* 0x5A4 */ dCcD_Cyl mCyl;
/* 0x71C */ cXyz field_0x71c;
/* 0x728 */ cXyz field_0x728;
/* 0x734 */ cXyz field_0x734;
/* 0x740 */ f32 field_0x740;
/* 0x744 */ csXyz field_0x744;
/* 0x74A */ s16 field_0x74a;
/* 0x74C */ u8 field_0x74c;
};
STATIC_ASSERT(sizeof(daObjSakuita_c) == 0x750);

View File

@ -4,243 +4,235 @@
*/
#include "d/actor/d_a_obj_sakuita.h"
#include "d/d_a_obj.h"
#include "d/d_com_inf_game.h"
#include "dol2asm.h"
#ifdef DEBUG
class daObjSakuita_Hio_c : public JORReflexible {
public:
void genMessage(JORMContext* ctx);
void ct();
void dt();
//
// Forward References:
//
extern "C" void create_init__14daObjSakuita_cFv();
extern "C" void initBaseMtx__14daObjSakuita_cFv();
extern "C" void setBaseMtx__14daObjSakuita_cFv();
extern "C" void setPlatePos__14daObjSakuita_cFv();
extern "C" void calcAngle__14daObjSakuita_cFv();
extern "C" static void createSolidHeap__FP10fopAc_ac_c();
extern "C" static void daObjSakuita_Draw__FP14daObjSakuita_c();
extern "C" static void daObjSakuita_Execute__FP14daObjSakuita_c();
extern "C" static bool daObjSakuita_IsDelete__FP14daObjSakuita_c();
extern "C" static void daObjSakuita_Delete__FP14daObjSakuita_c();
extern "C" void __dt__14daObjSakuita_cFv();
extern "C" static void daObjSakuita_Create__FP10fopAc_ac_c();
extern "C" void __dt__8cM3dGCylFv();
extern "C" void __dt__8cM3dGAabFv();
extern "C" void __dt__10dCcD_GSttsFv();
extern "C" void __dt__10cCcD_GSttsFv();
extern "C" u8 const M_attr__14daObjSakuita_c[44];
extern "C" extern char const* const d_a_obj_sakuita__stringBase0;
//
// External References:
//
extern "C" void mDoMtx_XrotM__FPA4_fs();
extern "C" void mDoMtx_YrotM__FPA4_fs();
extern "C" void mDoMtx_ZrotM__FPA4_fs();
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
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_setCullSizeBox__FP10fopAc_ac_cffffff();
extern "C" void addSimpleModel__14dComIfG_play_cFP12J3DModelDataiUc();
extern "C" void removeSimpleModel__14dComIfG_play_cFP12J3DModelDatai();
extern "C" void entrySimpleModel__14dComIfG_play_cFP8J3DModeli();
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_cFPCcPCcP11dRes_info_ci();
extern "C" void dKyw_get_AllWind_vec__FP4cXyzP4cXyzPf();
extern "C" void __ct__10dCcD_GSttsFv();
extern "C" void __ct__12dCcD_GObjInfFv();
extern "C" void __dt__12dCcD_GObjInfFv();
extern "C" void __pl__4cXyzCFRC3Vec();
extern "C" void __mi__4cXyzCFRC3Vec();
extern "C" void __ml__4cXyzCFf();
extern "C" void normalizeZP__4cXyzFv();
extern "C" void cM_atan2s__Fff();
extern "C" void cM_rnd__Fv();
extern "C" void cLib_chaseF__FPfff();
extern "C" void __dl__FPv();
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" u8 sincosTable___5JMath[65536];
//
// Declarations:
//
/* ############################################################################################## */
/* 80CC50B4-80CC50E0 000000 002C+00 3/3 0/0 0/0 .rodata M_attr__14daObjSakuita_c */
SECTION_RODATA u8 const daObjSakuita_c::M_attr[44] = {
0x41, 0xA0, 0x00, 0x00, 0x41, 0x40, 0x00, 0x00, 0x42, 0x8C, 0x00, 0x00, 0xC2, 0x48, 0x00,
0x00, 0x3F, 0x4C, 0xCC, 0xCD, 0x3F, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x44, 0x61,
0x00, 0x00, 0x46, 0x9C, 0x40, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00,
/* 0x04 */ int field_0x04;
/* 0x08 */ daObjSakuita_Attr_c mAttr;
};
COMPILER_STRIP_GATE(0x80CC50B4, &daObjSakuita_c::M_attr);
/* 80CC50E0-80CC50E4 00002C 0004+00 0/1 0/0 0/0 .rodata @3658 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3658 = -30.0f;
COMPILER_STRIP_GATE(0x80CC50E0, &lit_3658);
#pragma pop
void daObjSakuita_Hio_c::ct() {
if (field_0x04++ == 0) {
daObj::HioVarious_c::init(this, "カラカラ板");
}
}
/* 80CC50E4-80CC50E8 000030 0004+00 0/1 0/0 0/0 .rodata @3659 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3659 = -90.0f;
COMPILER_STRIP_GATE(0x80CC50E4, &lit_3659);
#pragma pop
void daObjSakuita_Hio_c::genMessage(JORMContext* ctx) {
ctx->genLabel("§ カラカラ板パラメータ設定 §\n", 0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
ctx->genSlider("重力", &mAttr.mGravity, 0.0f, 200.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
ctx->genSlider("円柱半径", &mAttr.mCylR, 0.0f, 1000.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
ctx->genSlider("円柱高さ", &mAttr.mCylH, 0.0f, 1000.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
ctx->genSlider("オフセット", &mAttr.mOffset, -300.0f, 0.0f, 0, NULL, 0xffff, 0xffff, 0x200,
0x18);
ctx->genSlider("板の重さ", &mAttr.mBoardWeight, 0, 0xff, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
ctx->genSlider("吊り下げ位置", &mAttr.mHangingPosition, -50.0f, 0.0f, 0, NULL, 0xffff, 0xffff,
0x200, 0x18);
ctx->genSlider("windRate", &mAttr.mWindRate, 0.0f, 1.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
ctx->genSlider("speedRate", &mAttr.mSpeedRate, 0.0f, 5.0f, 0, NULL, 0xffff, 0xffff, 0x200,
0x18);
ctx->genSlider("風震動", &mAttr.mWindShake, 0.0f, 30000.0f, 0, NULL, 0xffff, 0xffff, 0x200,
0x18);
ctx->genSlider("Y震動", &mAttr.mYVibration, 0.0f, 30000.0f, 0, NULL, 0xffff, 0xffff, 0x200,
0x18);
ctx->genSlider("Y収束", &mAttr.mYConvergence, 0.0f, 1000.0f, 0, NULL, 0xffff, 0xffff, 0x200,
0x18);
ctx->genSlider("Y周期", &mAttr.mYPeriod, -0x4000, 0x3fff, 0, NULL, 0xffff, 0xffff, 0x200,
0x18);
}
/* 80CC50E8-80CC50EC 000034 0004+00 0/1 0/0 0/0 .rodata @3660 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3660 = -10.0f;
COMPILER_STRIP_GATE(0x80CC50E8, &lit_3660);
#pragma pop
void daObjSakuita_Hio_c::dt() {
if (--field_0x04 == 0) {
daObj::HioVarious_c::clean(this);
}
}
/* 80CC50EC-80CC50F0 000038 0004+00 0/1 0/0 0/0 .rodata @3661 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3661 = 30.0f;
COMPILER_STRIP_GATE(0x80CC50EC, &lit_3661);
#pragma pop
static daObjSakuita_Hio_c M_hio;
#endif
/* 80CC50F0-80CC50F4 00003C 0004+00 0/1 0/0 0/0 .rodata @3662 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3662 = 20.0f;
COMPILER_STRIP_GATE(0x80CC50F0, &lit_3662);
#pragma pop
/* 80CC50F4-80CC50F8 000040 0004+00 0/1 0/0 0/0 .rodata @3663 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3663 = 10.0f;
COMPILER_STRIP_GATE(0x80CC50F4, &lit_3663);
#pragma pop
/* 80CC5114-80CC5114 000060 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80CC5114 = "A_Sakuita";
SECTION_DEAD static char const* const stringBase_80CC511E = "A_Sakuita.bmd";
#pragma pop
/* 80CC50B4-80CC50E0 000000 002C+00 3/3 0/0 0/0 .rodata M_attr__14daObjSakuita_c */
daObjSakuita_Attr_c const daObjSakuita_c::M_attr = {
20.0f, 12.0f, 70.0f, -50.0f, 0.8f, 0.5f, -6.0f, 900.0f, 20000.0f, 100.0f, 0x1400, 0x14,
};
/* 80CC512C-80CC5130 -00001 0004+00 4/4 0/0 0/0 .data l_arcName */
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_sakuita__stringBase0;
static char* l_arcName = "A_Sakuita";
/* 80CC46F8-80CC47F8 000078 0100+00 1/1 0/0 0/0 .text create_init__14daObjSakuita_cFv */
void daObjSakuita_c::create_init() {
// NONMATCHING
fopAcM_setCullSizeBox(this, -30.0f, -90.0f, -10.0f, 30.0f, 20.0f, 10.0f);
gravity = attr().mGravity;
field_0x71c.set(current.pos);
field_0x71c.y += attr().mOffset;
field_0x728 = field_0x71c;
initBaseMtx();
J3DModelData* modelData = (J3DModelData*) dComIfG_getObjectRes(l_arcName, "A_Sakuita.bmd");
JUT_ASSERT(210, modelData != 0);
if (dComIfGp_addSimpleModel(modelData, fopAcM_GetRoomNo(this), 0) == -1) {
OS_REPORT("\x1B[43;30mカラカラ板シンプルモデル登録失敗しました。\n\x1B[m");
}
field_0x74c = 1;
#ifdef DEBUG
M_hio.ct();
#endif
}
/* 80CC47F8-80CC4818 000178 0020+00 1/1 0/0 0/0 .text initBaseMtx__14daObjSakuita_cFv */
void daObjSakuita_c::initBaseMtx() {
// NONMATCHING
setBaseMtx();
}
/* 80CC4818-80CC489C 000198 0084+00 2/2 0/0 0/0 .text setBaseMtx__14daObjSakuita_cFv */
void daObjSakuita_c::setBaseMtx() {
// NONMATCHING
mDoMtx_stack_c::transS(current.pos);
mDoMtx_stack_c::ZrotM(field_0x744.z);
mDoMtx_stack_c::XrotM(field_0x744.x);
mDoMtx_stack_c::YrotM(field_0x744.y);
mModel->setBaseTRMtx(mDoMtx_stack_c::get());
cMtx_copy(mDoMtx_stack_c::get(), mMtx);
}
/* ############################################################################################## */
/* 80CC50F8-80CC50FC 000044 0004+00 0/0 0/0 0/0 .rodata @3704 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3704 = 0.5f;
COMPILER_STRIP_GATE(0x80CC50F8, &lit_3704);
#pragma pop
/* 80CC50FC-80CC5100 000048 0004+00 0/1 0/0 0/0 .rodata @3761 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3761 = 1.0f / 10.0f;
COMPILER_STRIP_GATE(0x80CC50FC, &lit_3761);
#pragma pop
/* 80CC5100-80CC5104 00004C 0004+00 0/1 0/0 0/0 .rodata @3762 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3762[4] = {
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80CC5100, &lit_3762);
#pragma pop
/* 80CC5104-80CC5108 000050 0004+00 0/1 0/0 0/0 .rodata @3763 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3763 = 2.0f / 5.0f;
COMPILER_STRIP_GATE(0x80CC5104, &lit_3763);
#pragma pop
/* 80CC5108-80CC510C 000054 0004+00 0/1 0/0 0/0 .rodata @3764 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3764 = 8192.0f;
COMPILER_STRIP_GATE(0x80CC5108, &lit_3764);
#pragma pop
f32 dummyLiteral() { return 0.5f; }
/* 80CC489C-80CC4A98 00021C 01FC+00 1/1 0/0 0/0 .text setPlatePos__14daObjSakuita_cFv */
void daObjSakuita_c::setPlatePos() {
// NONMATCHING
}
cXyz cStack_24;
cXyz cStack_30;
f32 local_88;
dKyw_get_AllWind_vec(&current.pos, &cStack_30, &local_88);
if (cM_rnd() < 0.1f) {
cStack_30 *= (local_88 * attr().mOffset) * attr().mWindRate;
} else {
cStack_30 *= 0.0f;
}
/* ############################################################################################## */
/* 80CC510C-80CC5114 000058 0008+00 1/1 0/0 0/0 .rodata @3781 */
SECTION_RODATA static u8 const lit_3781[8] = {
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80CC510C, &lit_3781);
cStack_24 = current.pos - field_0x71c;
cStack_24.y += gravity;
field_0x74a += attr().mYPeriod;
if (cLib_chaseF(&field_0x740, 0.0f, attr().mYConvergence) != 0) {
field_0x74a = 0;
}
cStack_24 += field_0x734;
if (cM_rnd() < 0.4f) {
cStack_24 += cStack_30;
if (field_0x740 < 8192.0f) {
field_0x740 += local_88 * attr().mWindShake;
}
}
cStack_24.normalizeZP();
field_0x71c = current.pos + (cStack_24 * attr().mOffset);
field_0x734 = (field_0x734 + (field_0x728 - field_0x71c)) * attr().mSpeedRate;
field_0x728 = field_0x71c;
}
/* 80CC4A98-80CC4B5C 000418 00C4+00 1/1 0/0 0/0 .text calcAngle__14daObjSakuita_cFv */
void daObjSakuita_c::calcAngle() {
// NONMATCHING
cXyz local_28 = current.pos - field_0x71c;
field_0x744.x = cM_atan2s(local_28.z, local_28.y);
field_0x744.y = shape_angle.y + (field_0x740 * cM_scos(field_0x74a));
field_0x744.z = -cM_atan2s(local_28.x, local_28.y);
}
inline int daObjSakuita_c::createHeap() {
J3DModelData* modelData = (J3DModelData*) dComIfG_getObjectRes(l_arcName, "A_Sakuita.bmd");
JUT_ASSERT(567, modelData != 0);
mModel = mDoExt_J3DModel__create(modelData, 0x20000, 0x11000084);
return mModel != NULL ? 1 : 0;
}
/* 80CC4B5C-80CC4BD4 0004DC 0078+00 1/1 0/0 0/0 .text createSolidHeap__FP10fopAc_ac_c */
static void createSolidHeap(fopAc_ac_c* param_0) {
// NONMATCHING
static int createSolidHeap(fopAc_ac_c* i_actor) {
return static_cast<daObjSakuita_c*>(i_actor)->createHeap();
}
inline int daObjSakuita_c::draw() {
dComIfGp_entrySimpleModel(mModel, fopAcM_GetRoomNo(this));
return 1;
}
/* 80CC4BD4-80CC4C14 000554 0040+00 1/0 0/0 0/0 .text daObjSakuita_Draw__FP14daObjSakuita_c */
static void daObjSakuita_Draw(daObjSakuita_c* param_0) {
// NONMATCHING
static int daObjSakuita_Draw(daObjSakuita_c* i_this) {
return i_this->draw();
}
inline int daObjSakuita_c::execute() {
#ifdef DEBUG
gravity = attr().mGravity;
#endif
current.pos.y += attr().mHangingPosition;
setPlatePos();
calcAngle();
setBaseMtx();
return 1;
}
/* 80CC4C14-80CC4C6C 000594 0058+00 1/0 0/0 0/0 .text daObjSakuita_Execute__FP14daObjSakuita_c */
static void daObjSakuita_Execute(daObjSakuita_c* param_0) {
// NONMATCHING
static int daObjSakuita_Execute(daObjSakuita_c* i_this) {
return i_this->execute();
}
/* 80CC4C6C-80CC4C74 0005EC 0008+00 1/0 0/0 0/0 .text daObjSakuita_IsDelete__FP14daObjSakuita_c */
static bool daObjSakuita_IsDelete(daObjSakuita_c* param_0) {
return true;
static int daObjSakuita_IsDelete(daObjSakuita_c* i_this) {
return 1;
}
/* 80CC4C74-80CC4C9C 0005F4 0028+00 1/0 0/0 0/0 .text daObjSakuita_Delete__FP14daObjSakuita_c */
static void daObjSakuita_Delete(daObjSakuita_c* param_0) {
// NONMATCHING
static int daObjSakuita_Delete(daObjSakuita_c* i_this) {
fopAcM_GetID(i_this);
i_this->~daObjSakuita_c();
return 1;
}
/* 80CC4C9C-80CC4E40 00061C 01A4+00 1/1 0/0 0/0 .text __dt__14daObjSakuita_cFv */
daObjSakuita_c::~daObjSakuita_c() {
#ifdef DEBUG
M_hio.dt();
#endif
if (field_0x74c != 0) {
J3DModelData* modelData = (J3DModelData*) dComIfG_getObjectRes(l_arcName, "A_Sakuita.bmd");
JUT_ASSERT(160, modelData != 0);
dComIfGp_removeSimpleModel(modelData, fopAcM_GetRoomNo(this));
}
dComIfG_resDelete(&mPhase, l_arcName);
}
inline int daObjSakuita_c::create() {
fopAcM_SetupActor(this, daObjSakuita_c);
int rv = dComIfG_resLoad(&mPhase, l_arcName);
if (rv == cPhs_COMPLEATE_e) {
if (fopAcM_entrySolidHeap(this, createSolidHeap, 0x4000) == 0) {
return cPhs_ERROR_e;
}
create_init();
fopAcM_SetMtx(this, mMtx);
}
return rv;
}
/* 80CC4E40-80CC4F78 0007C0 0138+00 1/0 0/0 0/0 .text daObjSakuita_Create__FP10fopAc_ac_c
*/
static int daObjSakuita_Create(fopAc_ac_c* i_actor) {
fopAcM_GetID(i_actor);
return static_cast<daObjSakuita_c*>(i_actor)->create();
}
/* ############################################################################################## */
/* 80CC5130-80CC5150 -00001 0020+00 1/0 0/0 0/0 .data l_daObjSakuita_Method */
static actor_method_class l_daObjSakuita_Method = {
(process_method_func)daObjSakuita_Create__FP10fopAc_ac_c,
(process_method_func)daObjSakuita_Delete__FP14daObjSakuita_c,
(process_method_func)daObjSakuita_Execute__FP14daObjSakuita_c,
(process_method_func)daObjSakuita_IsDelete__FP14daObjSakuita_c,
(process_method_func)daObjSakuita_Draw__FP14daObjSakuita_c,
(process_method_func)daObjSakuita_Create,
(process_method_func)daObjSakuita_Delete,
(process_method_func)daObjSakuita_Execute,
(process_method_func)daObjSakuita_IsDelete,
(process_method_func)daObjSakuita_Draw,
};
/* 80CC5150-80CC5180 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Sakuita */
@ -261,67 +253,4 @@ extern actor_process_profile_definition g_profile_Obj_Sakuita = {
fopAc_CULLBOX_CUSTOM_e, // cullType
};
/* 80CC5180-80CC518C 000054 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */
SECTION_DATA extern void* __vt__10cCcD_GStts[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10cCcD_GSttsFv,
};
/* 80CC518C-80CC5198 000060 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */
SECTION_DATA extern void* __vt__10dCcD_GStts[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10dCcD_GSttsFv,
};
/* 80CC5198-80CC51A4 00006C 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */
SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGAabFv,
};
/* 80CC51A4-80CC51B0 000078 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */
SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGCylFv,
};
/* 80CC4C9C-80CC4E40 00061C 01A4+00 1/1 0/0 0/0 .text __dt__14daObjSakuita_cFv */
daObjSakuita_c::~daObjSakuita_c() {
// NONMATCHING
}
/* 80CC4E40-80CC4F78 0007C0 0138+00 1/0 0/0 0/0 .text daObjSakuita_Create__FP10fopAc_ac_c
*/
static void daObjSakuita_Create(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* 80CC4F78-80CC4FC0 0008F8 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
// cM3dGCyl::~cM3dGCyl() {
extern "C" void __dt__8cM3dGCylFv() {
// NONMATCHING
}
/* 80CC4FC0-80CC5008 000940 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
// cM3dGAab::~cM3dGAab() {
extern "C" void __dt__8cM3dGAabFv() {
// NONMATCHING
}
/* 80CC5008-80CC5064 000988 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
// dCcD_GStts::~dCcD_GStts() {
extern "C" void __dt__10dCcD_GSttsFv() {
// NONMATCHING
}
/* 80CC5064-80CC50AC 0009E4 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
// cCcD_GStts::~cCcD_GStts() {
extern "C" void __dt__10cCcD_GSttsFv() {
// NONMATCHING
}
/* 80CC5114-80CC5114 000060 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */