Work on d_a_obj_toby (#2552)

* Work on d_a_obj_toby

* d_a_obj_tatigi matching

* Deleted automatic ctor and dtor
This commit is contained in:
hatal175
2025-07-24 22:19:48 +03:00
committed by GitHub
parent 4353c12af8
commit a8e555bc14
17 changed files with 1057 additions and 1304 deletions
+2 -1
View File
@@ -11,6 +11,7 @@
*
*/
class daE_HZ_c : public fopEn_enemy_c {
public:
/* 806EA690 */ void setBck(int, u8, f32, f32);
/* 806EA734 */ void checkBck(int);
/* 806EA790 */ void draw();
@@ -19,7 +20,7 @@ class daE_HZ_c : public fopEn_enemy_c {
/* 806EAEDC */ void checkAttackStart();
/* 806EB05C */ void checkArrowCharge();
/* 806EB0A4 */ void setTgSetBit(int);
/* 806EB0FC */ void isWait();
/* 806EB0FC */ bool isWait();
/* 806EB13C */ void checkFall();
/* 806EB2E8 */ void setCloseSmokeEffect();
/* 806EB3EC */ void executeWait();
+23 -5
View File
@@ -1,12 +1,18 @@
#ifndef D_A_OBJ_TATIGI_H
#define D_A_OBJ_TATIGI_H
#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"
struct tg_ss {
public:
/* 80D083C0 */ ~tg_ss();
/* 80D08494 */ tg_ss();
/* 0x000 */ J3DModel* mModel;
/* 0x004 */ cXyz mPos;
/* 0x010 */ cXyz mScale;
/* 0x01C */ s16 mAngle;
/* 0x01E */ s16 field_0x1e;
/* 0x020 */ dCcD_Cyl mCyl;
/* 0x15C */ s8 mActive;
};
/**
@@ -17,9 +23,21 @@ public:
* @details
*
*/
class obj_tatigi_class : public fopAc_ac_c {
private:
/* 0x568 */ u8 field_0x568[0x1bc0 - 0x568];
class obj_tatigi_class{
public:
/* 0x0000 */ fopAc_ac_c mBase;
/* 0x0568 */ request_of_phase_process_class mPhase;
/* 0x0570 */ u8 field_0x570;
/* 0x0571 */ u8 field_0x571;
/* 0x0572 */ u8 field_0x572;
/* 0x0574 */ s16 field_0x574;
/* 0x0576 */ s16 field_0x576;
/* 0x0578 */ int field_0x578;
/* 0x057C */ tg_ss mTgs[16];
/* 0x1B7C */ int mTgNum;
/* 0x1B80 */ dCcD_Stts mStts;
/* 0x1BBC */ u8 field_0x1bbc;
/* 0x1BBD */ bool mModelLoaded;
};
STATIC_ASSERT(sizeof(obj_tatigi_class) == 0x1bc0);
+54 -10
View File
@@ -3,6 +3,29 @@
#include "f_op/f_op_actor_mng.h"
struct yuka_s {
public:
/* 0x00 */ J3DModel* mModel1;
/* 0x04 */ J3DModel* mModel2;
/* 0x08 */ cXyz mPos;
/* 0x14 */ cXyz mSpeed;
/* 0x20 */ csXyz mAngle;
/* 0x26 */ csXyz mAngleSpeed;
/* 0x2C */ int field_0x2c;
/* 0x30 */ f32 mScale;
/* 0x34 */ s8 field_0x34;
/* 0x36 */ s16 field_0x36;
/* 0x38 */ u8 field_0x38;
/* 0x39 */ s8 field_0x39;
/* 0x3A */ s8 field_0x3a;
/* 0x3C */ int field_0x3c;
/* 0x40 */ Mtx mMtx;
/* 0x70 */ dBgW* mBgW;
/* 0x74 */ int mParticle;
};
STATIC_ASSERT(sizeof(yuka_s) == 0x78);
/**
* @ingroup actors-objects
* @class obj_toby_class
@@ -11,23 +34,44 @@
* @details
*
*/
class obj_toby_class : public fopAc_ac_c {
private:
/* 0x568 */ u8 field_0x568[0x6374 - 0x568];
class obj_toby_class {
public:
/* 0x0000 */ fopAc_ac_c mBase;
/* 0x0568 */ request_of_phase_process_class mPhase;
/* 0x0570 */ char* mArcName;
/* 0x0574 */ u8 field_0x574;
/* 0x0575 */ u8 field_0x575;
/* 0x0576 */ u8 field_0x576;
/* 0x0577 */ u8 field_0x577;
/* 0x0578 */ u8 mSwBit;
/* 0x0579 */ u8 field_0x579[0x57c - 0x579];
/* 0x057C */ f32 field_0x57c;
/* 0x0580 */ s16 field_0x580;
/* 0x0582 */ s16 field_0x582;
/* 0x0584 */ s16 field_0x584;
/* 0x0586 */ s16 field_0x586[2];
/* 0x058C */ yuka_s mYukas[200];
/* 0x634C */ int mYukaNum;
/* 0x6350 */ s16 field_0x6350;
/* 0x6352 */ s16 field_0x6352;
/* 0x6354 */ cXyz field_0x6354;
/* 0x6360 */ cXyz field_0x6360;
/* 0x636C */ f32 field_0x636c;
/* 0x6370 */ u8 field_0x6370;
/* 0x6371 */ u8 field_0x6371;
};
STATIC_ASSERT(sizeof(obj_toby_class) == 0x6374);
class daObj_Toby_HIO_c {
class daObj_Toby_HIO_c : public JORReflexible{
public:
/* 80D1378C */ daObj_Toby_HIO_c();
/* 80D15534 */ ~daObj_Toby_HIO_c();
};
/* 80D15534 */ virtual ~daObj_Toby_HIO_c() {}
struct yuka_s {
public:
/* 80D154F4 */ ~yuka_s();
/* 80D15530 */ yuka_s();
void genMessage(JORMContext*);
/* 0x4 */ s8 field_0x4;
/* 0x8 */ f32 field_0x8;
};
#endif /* D_A_OBJ_TOBY_H */
+1
View File
@@ -934,6 +934,7 @@ public:
void onForceAutoJump() { onEndResetFlg0(ERFLG0_FORCE_AUTO_JUMP); }
void onNotAutoJump() { onEndResetFlg0(ERFLG0_NOT_AUTO_JUMP); }
void onNotHang() { onEndResetFlg0(ERFLG0_NOT_HANG); }
void onLeafSe() { onEndResetFlg0(ERFLG0_UNK_200000); }
void onWolfFchainPull() { onEndResetFlg0(ERFLG0_WOLF_FCHAIN_PULL); }
void onFishingRodGetFish() { onEndResetFlg0(ERFLG0_FISHING_ROD_GET_FISH); }
void onShieldBackBone() { onEndResetFlg1(ERFLG1_GANON_FINISH); }