d_a_obj_tobyhouse equivalent (#2546)

This commit is contained in:
hatal175 2025-07-21 02:57:50 +03:00 committed by GitHub
parent d9ac8d7e3f
commit 69aaeeeda6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 664 additions and 829 deletions

View File

@ -56,8 +56,7 @@ l_bck = .rodata:0x00000018; // type:object size:0xC scope:global
@stringBase0 = .rodata:0x00000074; // type:object size:0x98 scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
lbl_664_data_10 = .data:0x00000010; // type:object size:0x10
@1787 = .data:0x0000000C; // type:object size:0x14 scope:local
l_arcName = .data:0x00000020; // type:object size:0x8 scope:global
l_staff_name = .data:0x00000028; // type:object size:0x4 scope:global data:4byte
l_event_name = .data:0x0000002C; // type:object size:0x8 scope:global
@ -91,7 +90,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa
@1012 = .bss:0x0000003C; // type:object size:0x1 scope:local
@1010 = .bss:0x00000040; // type:object size:0x1 scope:local
@1009 = .bss:0x00000044; // type:object size:0x1 scope:local
lbl_664_bss_45 = .bss:0x00000045; // type:object size:0x1 data:byte
init$1832 = .bss:0x00000045; // type:object size:0x1 scope:local data:byte
@4351 = .bss:0x00000048; // type:object size:0xC scope:local
l_shotSmokeScale$4350 = .bss:0x00000058; // type:object size:0xC scope:local
sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x00000064; // type:object size:0x4 scope:global

View File

@ -55,8 +55,7 @@ l_bck = .rodata:0x00000018; // type:object size:0xC scope:global
@4905 = .rodata:0x00000070; // type:object size:0x4 scope:local
@stringBase0 = .rodata:0x00000074; // type:object size:0x98 scope:local data:string_table
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
lbl_664_data_10 = .data:0x00000010; // type:object size:0x10
@1787 = .data:0x0000000C; // type:object size:0x14 scope:local
l_arcName = .data:0x00000020; // type:object size:0x8 scope:global
l_staff_name = .data:0x00000028; // type:object size:0x4 scope:global data:4byte
l_event_name = .data:0x0000002C; // type:object size:0x8 scope:global
@ -90,7 +89,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa
@1012 = .bss:0x0000003C; // type:object size:0x1 scope:local
@1010 = .bss:0x00000040; // type:object size:0x1 scope:local
@1009 = .bss:0x00000044; // type:object size:0x1 scope:local
lbl_664_bss_45 = .bss:0x00000045; // type:object size:0x1 data:byte
init$1832 = .bss:0x00000045; // type:object size:0x1 data:byte scope:local
@4351 = .bss:0x00000048; // type:object size:0xC scope:local
l_shotSmokeScale$4350 = .bss:0x00000058; // type:object size:0xC scope:local
sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x00000064; // type:object size:0x4 scope:global

View File

@ -55,8 +55,7 @@ l_bck = .rodata:0x00000018; // type:object size:0xC scope:global
@4905 = .rodata:0x00000070; // type:object size:0x4 scope:local
@stringBase0 = .rodata:0x00000074; // type:object size:0x98 scope:local data:string_table
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
lbl_664_data_10 = .data:0x00000010; // type:object size:0x10
@1787 = .data:0x0000000C; // type:object size:0x14 scope:local
l_arcName = .data:0x00000020; // type:object size:0x8 scope:global
l_staff_name = .data:0x00000028; // type:object size:0x4 scope:global data:4byte
l_event_name = .data:0x0000002C; // type:object size:0x8 scope:global
@ -90,7 +89,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa
@1012 = .bss:0x0000003C; // type:object size:0x1 scope:local
@1010 = .bss:0x00000040; // type:object size:0x1 scope:local
@1009 = .bss:0x00000044; // type:object size:0x1 scope:local
lbl_664_bss_45 = .bss:0x00000045; // type:object size:0x1 data:byte
init$1832 = .bss:0x00000045; // type:object size:0x1 data:byte scope:local
@4351 = .bss:0x00000048; // type:object size:0xC scope:local
l_shotSmokeScale$4350 = .bss:0x00000058; // type:object size:0xC scope:local
sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x00000064; // type:object size:0x4 scope:global

View File

@ -2141,7 +2141,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_tmoon"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_toaru_maki"),
ActorRel(NonMatching, "d_a_obj_toby"),
ActorRel(NonMatching, "d_a_obj_tobyhouse"),
ActorRel(Equivalent, "d_a_obj_tobyhouse"), # weak function order
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_togeTrap"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_tombo"),
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_tornado"),

View File

@ -28,7 +28,10 @@ public:
virtual void calc() = 0;
static J3DMtxBuffer* getMtxBuffer() { return mMtxBuffer; }
static J3DJoint* getJoint() { return mJoint; }
static J3DJoint* getJoint() {
J3D_ASSERT(185, mJoint != NULL, "Error : null pointer.")
return mJoint;
}
static void setJoint(J3DJoint* joint) { mJoint = joint; }
static J3DMtxBuffer* mMtxBuffer;

View File

@ -1,6 +1,7 @@
#ifndef D_A_OBJ_TOBYHOUSE_H
#define D_A_OBJ_TOBYHOUSE_H
#include "d/d_bg_s_movebg_actor.h"
#include "f_op/f_op_actor_mng.h"
/**
@ -11,14 +12,28 @@
* @details
*
*/
class daObjTobyHouse_c : public fopAc_ac_c {
class daObjTobyHouse_c : public dBgS_MoveBgActor {
public:
typedef void (daObjTobyHouse_c::*actionFunc)();
enum Action {
ACTION_WAIT,
ACTION_ORDER_EVENT,
ACTION_EVENT,
ACTION_DEAD,
};
enum Type {
TYPE_0,
TYPE_1,
};
/* 80D15F0C */ void initBaseMtx();
/* 80D15F48 */ void setBaseMtx();
/* 80D15FE0 */ void Create();
/* 80D161A4 */ void CreateHeap();
/* 80D163F0 */ void create1st();
/* 80D164C0 */ void Execute(f32 (**)[3][4]);
/* 80D15FE0 */ int Create();
/* 80D161A4 */ int CreateHeap();
/* 80D163F0 */ int create1st();
/* 80D164C0 */ int Execute(Mtx**);
/* 80D16560 */ void action();
/* 80D1661C */ void actionWait();
/* 80D166E0 */ void actionOrderEvent();
@ -26,15 +41,61 @@ public:
/* 80D16860 */ void actionDead();
/* 80D16864 */ void demoProc();
/* 80D171C0 */ void sceneChange();
/* 80D17230 */ void Draw();
/* 80D17374 */ void checkLODModel();
/* 80D174F8 */ void Delete();
/* 80D17230 */ int Draw();
/* 80D17374 */ BOOL checkLODModel();
/* 80D174F8 */ int Delete();
private:
/* 0x568 */ u8 field_0x568[0x600 - 0x568];
bool checkWater() { return fopAcM_GetParamBit(this, 31, 1); }
void setAction(u8 action) { mAction = action; }
/* 0x5A0 */ request_of_phase_process_class mPhase;
/* 0x5A8 */ J3DModel* mModel;
/* 0x5AC */ J3DModel* mLODModel;
/* 0x5B0 */ mDoExt_bckAnm* mBcks[3];
/* 0x5BC */ mDoExt_bckAnm* mActiveBck;
/* 0x5C0 */ int field_0x5c0;
/* 0x5C4 */ int field_0x5c4;
/* 0x5C8 */ int field_0x5c8;
/* 0x5CC */ int mStaffId;
/* 0x5D0 */ int mEventIdIdx;
/* 0x5D4 */ s16 mEventIds[2];
/* 0x5D8 */ u16 mBirlPJnt;
/* 0x5DA */ u16 mBirlCannonJnt;
/* 0x5DC */ u8 field_0x5dc;
/* 0x5DD */ u8 mAction;
/* 0x5DE */ u8 field_0x5de;
/* 0x5E0 */ s16 field_0x5e0;
/* 0x5E2 */ u8 field_0x5e2;
/* 0x5E3 */ u8 field_0x5e3;
/* 0x5E4 */ u8 field_0x5e4;
/* 0x5E5 */ u8 mType;
/* 0x5E8 */ f32 mHeightOffset;
/* 0x5EC */ u16 mDemoTimer;
/* 0x5F0 */ JPABaseEmitter* field_0x5f0;
/* 0x5F4 */ JPABaseEmitter* field_0x5f4;
/* 0x5F8 */ JPABaseEmitter* field_0x5f8;
/* 0x5FC */ JPABaseEmitter* field_0x5fc;
};
STATIC_ASSERT(sizeof(daObjTobyHouse_c) == 0x600);
#ifdef DEBUG
class daObjTobyHouse_HIO_c : public mDoHIO_entry_c {
public:
daObjTobyHouse_HIO_c();
~daObjTobyHouse_HIO_c() {}
void genMessage(JORMContext* ctx);
/* 0x06 */ u8 mHawkeyeMediumLOD;
/* 0x07 */ u8 field_0x07;
/* 0x08 */ u8 mDrawCollision;
/* 0x0A */ s16 mShakingCycle;
/* 0x0C */ f32 mShakingAmplitude;
/* 0x10 */ f32 mLODDistance;
};
#endif
#endif /* D_A_OBJ_TOBYHOUSE_H */

View File

@ -1191,5 +1191,7 @@ public:
dCamera_c* dCam_getBody();
camera_class* dCam_getCamera();
s16 dCam_getControledAngleY(camera_class* param_0);
s16 dCam_getAngleX(camera_class* i_cam);
s16 dCam_getAngleY(camera_class* i_cam);
#endif /* D_D_CAMERA_H */

File diff suppressed because it is too large Load Diff