Continued monkey work (monkey business if you will) - Monkey-related TUs (#2469)

* Initial work

* Work on ori2 and others

* Work on npc_ks_home

* Work on npc_ks_demo_022

* Chugging through

* Started on demo_camera

* More demo_camera work

* 51% equivalent

* General cleanup

* Fixed compile error in d_a_e_mk

* Small d_a_e_mk fix

* d_a_e_fs fix

* PR cleanup

* Started work on d_a_obj_sw

* d_a_obj_sw work

* Small fixes

* d_a_obj_so work

* d_a_obj_so almost equivalent and small work on d_a_npc_ks

* Work on npc_ks_guide_00

* Work on guide functions

* 80% matching

* Almost have all functions worked on

* All functions worked on

* Initial d_a_npc_saru work

* Tiny bit more work

* daNpc_Saru almost matching

* fixed array issue

* obj_kago work

* d_a_obj_kago almost matching

* sare_npc brief fix

* PR cleanup
This commit is contained in:
Carco_21 2025-06-07 12:41:01 -04:00 committed by GitHub
parent 372d782282
commit 3318b5e936
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 6552 additions and 4809 deletions

View File

@ -134,6 +134,7 @@ public:
void setFriendFlag(u8 i_flag) { mFriendFlag |= i_flag; } void setFriendFlag(u8 i_flag) { mFriendFlag |= i_flag; }
u8 getFriendFlag() { return mFriendFlag; } u8 getFriendFlag() { return mFriendFlag; }
u8 getSwitchBit() { return mSwitchBit; } u8 getSwitchBit() { return mSwitchBit; }
u8 isHide() { return mIsHide; }
private: private:
/* 0x5AC */ request_of_phase_process_class mPhase; /* 0x5AC */ request_of_phase_process_class mPhase;

View File

@ -4,6 +4,7 @@
#include "d/actor/d_a_npc.h" #include "d/actor/d_a_npc.h"
#include "d/actor/d_a_obj_so.h" #include "d/actor/d_a_obj_so.h"
#include "d/actor/d_a_obj_sw.h" #include "d/actor/d_a_obj_sw.h"
#include "f_op/f_op_actor_mng.h"
/** /**
* @ingroup actors-npcs * @ingroup actors-npcs
@ -15,16 +16,14 @@
*/ */
class npc_ks_class { class npc_ks_class {
public: public:
/* 0x000 */ fopAc_ac_c actor; /* 0x000 */ fopEn_enemy_c actor;
/* 0x568 */ u8 field_0x568[0x570 - 0x568]; /* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x570 */ u8 field_0x570;
/* 0x571 */ u8 field_0x571[0x5b4 - 0x571];
/* 0x5B4 */ u8 mRoomMonkeyID; /* 0x5B4 */ u8 mRoomMonkeyID;
/* 0x5B5 */ u8 field_0x5b5; /* 0x5B5 */ u8 field_0x5b5;
/* 0x5B6 */ u8 field_0x5b6; /* 0x5B6 */ u8 field_0x5b6;
/* 0x5B7 */ u8 field_0x5b7; /* 0x5B7 */ u8 field_0x5b7;
/* 0x5B8 */ int field_0x5b8; /* 0x5B8 */ int field_0x5b8;
/* 0x5BC */ int field_0x5bc; /* 0x5BC */ int bitTRB;
/* 0x5C0 */ char* mResName; /* 0x5C0 */ char* mResName;
/* 0x5C4 */ f32 field_0x5c4; /* 0x5C4 */ f32 field_0x5c4;
/* 0x5C8 */ s16 field_0x5c8; /* 0x5C8 */ s16 field_0x5c8;
@ -34,7 +33,7 @@ public:
/* 0x5D8 */ mDoExt_btpAnm* mBtp1; /* 0x5D8 */ mDoExt_btpAnm* mBtp1;
/* 0x5DC */ mDoExt_btpAnm* mBtp2; /* 0x5DC */ mDoExt_btpAnm* mBtp2;
/* 0x5E0 */ s16 field_0x5e0; /* 0x5E0 */ s16 field_0x5e0;
/* 0x5E2 */ u8 field_0x5e2[2]; /* 0x5E2 */ s16 field_0x5e2;
/* 0x5E4 */ s8 field_0x5e4; /* 0x5E4 */ s8 field_0x5e4;
/* 0x5E5 */ u8 field_0x5e5; /* 0x5E5 */ u8 field_0x5e5;
/* 0x5E6 */ s16 field_0x5e6; /* 0x5E6 */ s16 field_0x5e6;
@ -56,7 +55,7 @@ public:
/* 0x610 */ s16 field_0x610; /* 0x610 */ s16 field_0x610;
/* 0x614 */ cXyz field_0x614; /* 0x614 */ cXyz field_0x614;
/* 0x620 */ s8 field_0x620; /* 0x620 */ s8 field_0x620;
/* 0x621 */ u8 field_0x621; /* 0x621 */ s8 field_0x621;
/* 0x622 */ u8 field_0x622; /* 0x622 */ u8 field_0x622;
/* 0x623 */ u8 field_0x623; /* 0x623 */ u8 field_0x623;
/* 0x624 */ cXyz field_0x624; /* 0x624 */ cXyz field_0x624;
@ -89,7 +88,9 @@ public:
/* 0x98C */ dCcD_Cyl field_0x98c; /* 0x98C */ dCcD_Cyl field_0x98c;
/* 0xAC8 */ u8 field_0xac8[0xaec - 0xac8]; /* 0xAC8 */ u8 field_0xac8[0xaec - 0xac8];
/* 0xAEC */ s8 field_0xaec; /* 0xAEC */ s8 field_0xaec;
/* 0xAED */ u8 field_0xaed[0xaf4 - 0xaed]; /* 0xAED */ u8 field_0xaed;
/* 0xAEE */ s16 field_0xaee;
/* 0xAF0 */ s16 field_0xaf0;
/* 0xAF4 */ dMsgFlow_c mMsgFlow; /* 0xAF4 */ dMsgFlow_c mMsgFlow;
/* 0xB40 */ u8 field_0xb40; /* 0xB40 */ u8 field_0xb40;
/* 0xB41 */ u8 field_0xb41; /* 0xB41 */ u8 field_0xb41;
@ -126,9 +127,16 @@ public:
/* 0xBFC */ J3DModel* field_0xbfc; /* 0xBFC */ J3DModel* field_0xbfc;
/* 0xC00 */ J3DModel* field_0xc00; /* 0xC00 */ J3DModel* field_0xc00;
/* 0xC04 */ cXyz field_0xc04; /* 0xC04 */ cXyz field_0xc04;
/* 0xC10 */ u8 field_0xc10[0xc17 - 0xc10]; /* 0xC10 */ f32 field_0xc10;
/* 0xC14 */ s16 field_0xc14;
/* 0xC16 */ s8 field_0xc16;
/* 0xC17 */ s8 field_0xc17; /* 0xC17 */ s8 field_0xc17;
/* 0xC18 */ u8 field_0xc18[0xc20 - 0xc18]; /* 0xC18 */ dPath* field_0xc18;
/* 0xC1C */ u8 field_0xc1c;
u32 fopAcM_checkHawkCarryNow(fopAc_ac_c* param_1) {
return fopAcM_checkStatus(param_1, 0x80000000);
}
}; };
STATIC_ASSERT(sizeof(npc_ks_class) == 0xc20); STATIC_ASSERT(sizeof(npc_ks_class) == 0xc20);

View File

@ -6,70 +6,156 @@
/** /**
* @ingroup actors-npcs * @ingroup actors-npcs
* @class daNpc_Saru_c * @class daNpc_Saru_c
* @brief Monkey (Ook?) * @brief Monkey NPC
* *
* @details * @details
* *
*/ */
class daNpc_Saru_c : public fopAc_ac_c {
#ifdef DEBUG
class daNpc_Saru_HIO_c : public mDoHIO_entry_c {
};
#endif
class daNpc_Saru_Param_c {
public: public:
/* 80AC448C */ virtual ~daNpc_Saru_Param_c() {};
struct Data {
/* 0x00 */ f32 field_0x00;
/* 0x04 */ f32 mGravity;
/* 0x08 */ f32 field_0x08;
/* 0x0C */ f32 field_0x0c;
/* 0x10 */ f32 mWeight;
/* 0x14 */ f32 mCylH;
/* 0x18 */ f32 mWallH;
/* 0x1C */ f32 mWallR;
/* 0x20 */ f32 mBodyDownAngle;
/* 0x24 */ f32 mBodyUpAngle;
/* 0x28 */ f32 mBodyRightAngle;
/* 0x2C */ f32 mBodyLeftAngle;
/* 0x30 */ f32 mHeadDownAngle;
/* 0x34 */ f32 mHeadUpAngle;
/* 0x38 */ f32 mHeadRightAngle;
/* 0x3C */ f32 mHeadLeftAngle;
/* 0x40 */ f32 field_0x40;
/* 0x44 */ f32 mMorfFrames;
/* 0x48 */ s16 field_0x48;
/* 0x4A */ s16 field_0x4a;
/* 0x4C */ s16 field_0x4c;
/* 0x4E */ s16 field_0x4e;
/* 0x50 */ f32 mAttnFovy;
/* 0x54 */ f32 field_0x54;
/* 0x58 */ f32 field_0x58;
/* 0x5C */ f32 field_0x5c;
/* 0x60 */ s16 field_0x60;
/* 0x62 */ s16 field_0x62;
/* 0x64 */ f32 field_0x64;
/* 0x68 */ f32 field_0x68;
/* 0x6C */ f32 field_0x6c;
/* 0x70 */ f32 field_0x70;
/* 0x74 */ f32 field_0x74;
/* 0x78 */ f32 field_0x78;
/* 0x7C */ f32 field_0x7c;
/* 0x80 */ f32 field_0x80;
/* 0x84 */ f32 field_0x84;
/* 0x88 */ f32 field_0x88;
/* 0x8C */ s16 field_0x8c;
/* 0x8E */ s16 field_0x8e;
};
static const Data m;
};
class daNpc_Saru_c : public daNpcT_c {
public:
typedef int (daNpc_Saru_c::*cutFunc)(int);
typedef int (daNpc_Saru_c::*actionFunc)(void*);
enum Type {
TYPE_0,
TYPE_1,
TYPE_2,
TYPE_3,
};
/* 80AC042C */ ~daNpc_Saru_c(); /* 80AC042C */ ~daNpc_Saru_c();
/* 80AC0578 */ void create(); /* 80AC0578 */ int create();
/* 80AC082C */ void CreateHeap(); /* 80AC082C */ int CreateHeap();
/* 80AC0A54 */ void Delete(); /* 80AC0A54 */ int Delete();
/* 80AC0A88 */ void Execute(); /* 80AC0A88 */ int Execute();
/* 80AC0AA8 */ void Draw(); /* 80AC0AA8 */ int Draw();
/* 80AC0AEC */ void createHeapCallBack(fopAc_ac_c*); /* 80AC0AEC */ static int createHeapCallBack(fopAc_ac_c*);
/* 80AC0B0C */ void ctrlJointCallBack(J3DJoint*, int); /* 80AC0B0C */ static int ctrlJointCallBack(J3DJoint*, int);
/* 80AC0B64 */ void srchYm(void*, void*); /* 80AC0B64 */ static void* srchYm(void*, void*);
/* 80AC0C0C */ void getType(); /* 80AC0C0C */ u8 getType();
/* 80AC0C58 */ void isDelete(); /* 80AC0C58 */ int isDelete();
/* 80AC0CE8 */ void reset(); /* 80AC0CE8 */ void reset();
/* 80AC0EA4 */ void afterJntAnm(int); /* 80AC0EA4 */ void afterJntAnm(int);
/* 80AC0F28 */ void checkChangeEvt(); /* 80AC0F28 */ BOOL checkChangeEvt();
/* 80AC0FDC */ void setParam(); /* 80AC0FDC */ void setParam();
/* 80AC1110 */ void setAfterTalkMotion(); /* 80AC1110 */ void setAfterTalkMotion();
/* 80AC1170 */ void srchActors(); /* 80AC1170 */ void srchActors();
/* 80AC11D4 */ void evtTalk(); /* 80AC11D4 */ BOOL evtTalk();
/* 80AC1274 */ void evtCutProc(); /* 80AC1274 */ BOOL evtCutProc();
/* 80AC133C */ void action(); /* 80AC133C */ void action();
/* 80AC14E4 */ void beforeMove(); /* 80AC14E4 */ void beforeMove();
/* 80AC15B4 */ void setAttnPos(); /* 80AC15B4 */ void setAttnPos();
/* 80AC18A0 */ void setCollision(); /* 80AC18A0 */ void setCollision();
/* 80AC1A20 */ bool drawDbgInfo(); /* 80AC1A20 */ int drawDbgInfo();
/* 80AC1A28 */ void drawOtherMdl(); /* 80AC1A28 */ void drawOtherMdl();
/* 80AC1B30 */ void selectAction(); /* 80AC1B30 */ int selectAction();
/* 80AC1B78 */ void chkAction(int (daNpc_Saru_c::*)(void*)); /* 80AC1B78 */ BOOL chkAction(int (daNpc_Saru_c::*)(void*));
/* 80AC1BA4 */ void setAction(int (daNpc_Saru_c::*)(void*)); /* 80AC1BA4 */ int setAction(int (daNpc_Saru_c::*)(void*));
/* 80AC1C4C */ void setSe(); /* 80AC1C4C */ void setSe();
/* 80AC216C */ void cutFindMonkey(int); /* 80AC216C */ int cutFindMonkey(int);
/* 80AC2368 */ void cutHelpMe(int); /* 80AC2368 */ int cutHelpMe(int);
/* 80AC2598 */ void cutYmLook(int); /* 80AC2598 */ int cutYmLook(int);
/* 80AC28A4 */ void wait(void*); /* 80AC28A4 */ int wait(void*);
/* 80AC2FD8 */ void talk(void*); /* 80AC2FD8 */ int talk(void*);
/* 80AC4394 */ daNpc_Saru_c(daNpcT_faceMotionAnmData_c const*, daNpcT_motionAnmData_c const*, /* 80AC4394 */ daNpc_Saru_c(daNpcT_faceMotionAnmData_c const* param_1, daNpcT_motionAnmData_c const* param_2,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int, daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int, daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6,
daNpcT_evtData_c const*, char**); daNpcT_evtData_c const* param_7, char** param_8) :
daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
{}
/* 80AC4474 */ s32 getHeadJointNo(); /* 80AC4474 */ s32 getHeadJointNo();
/* 80AC447C */ s32 getNeckJointNo(); /* 80AC447C */ s32 getNeckJointNo();
/* 80AC4484 */ bool getBackboneJointNo(); /* 80AC4484 */ s32 getBackboneJointNo();
static void* mCutNameList[4]; u32 getFlowNodeNo() {
static u8 mCutList[48]; u16 rv = home.angle.x;
if (rv == 0xffff) {
return -1;
}
return rv;
}
u8 getPathID() { return (fopAcM_GetParam(this) & 0xff0000) >> 16; }
u8 getBitSW() { return (fopAcM_GetParam(this) & 0xff00) >> 8; }
static char* mCutNameList[4];
static cutFunc mCutList[4];
private: private:
/* 0x568 */ u8 field_0x568[0xfe0 - 0x568]; #ifdef DEBUG
/* 0xE90 */ daNpc_Saru_HIO_c* field_0xe90;
#endif
/* 0xE40 */ u8 field_0xe40[0xe44 - 0xe40];
/* 0xE44 */ J3DModel* field_0xe44[2];
/* 0xE4C */ dCcD_Cyl field_0xe4c;
/* 0xF88 */ u8 mType;
/* 0xF8C */ daNpcT_ActorMngr_c mActrMngr[1];
/* 0xF94 */ daNpcT_Path_c mPath;
/* 0xFBC */ actionFunc field_0xfbc;
/* 0xFC8 */ actionFunc field_0xfc8;
/* 0xFD4 */ int field_0xfd4;
/* 0xFD8 */ u8 field_0xfd8;
/* 0xFD9 */ u8 field_0xfd9;
/* 0xFDC */ int field_0xfdc;
}; };
STATIC_ASSERT(sizeof(daNpc_Saru_c) == 0xfe0); STATIC_ASSERT(sizeof(daNpc_Saru_c) == 0xfe0);
class daNpc_Saru_Param_c {
public:
/* 80AC448C */ ~daNpc_Saru_Param_c();
static u8 const m[144];
};
#endif /* D_A_NPC_SARU_H */ #endif /* D_A_NPC_SARU_H */

View File

@ -1,6 +1,9 @@
#ifndef D_A_OBJ_KAGO_H #ifndef D_A_OBJ_KAGO_H
#define D_A_OBJ_KAGO_H #define D_A_OBJ_KAGO_H
#include "SSystem/SComponent/c_math.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h" #include "f_op/f_op_actor_mng.h"
/** /**
@ -13,34 +16,151 @@
*/ */
class daObj_Kago_c : public fopAc_ac_c { class daObj_Kago_c : public fopAc_ac_c {
public: public:
/* 80C31AEC */ ~daObj_Kago_c(); /* 80C31D5C */ cPhs__Step create();
/* 80C31D5C */ void create(); /* 80C323D0 */ int CreateHeap();
/* 80C323D0 */ void CreateHeap(); /* 80C324B0 */ int Delete();
/* 80C324B0 */ void Delete(); /* 80C324E4 */ int Execute();
/* 80C324E4 */ void Execute(); /* 80C332D0 */ int Draw();
/* 80C332D0 */ void Draw(); /* 80C333F0 */ static int createHeapCallBack(fopAc_ac_c*);
/* 80C333F0 */ void createHeapCallBack(fopAc_ac_c*); /* 80C33410 */ BOOL isDelete();
/* 80C33410 */ void isDelete();
/* 80C334B4 */ void setEnvTevColor(); /* 80C334B4 */ void setEnvTevColor();
/* 80C33510 */ void setRoomNo(); /* 80C33510 */ void setRoomNo();
/* 80C33554 */ void reset(); /* 80C33554 */ void reset();
/* 80C3359C */ void setMtx(); /* 80C3359C */ void setMtx();
/* 80C33620 */ void getWallAngle(s16, s16*); /* 80C33620 */ int getWallAngle(s16, s16*);
/* 80C337B0 */ void setGoalPosAndAngle(); /* 80C337B0 */ void setGoalPosAndAngle();
/* 80C338D0 */ void setSmokePrtcl(); /* 80C338D0 */ void setSmokePrtcl();
/* 80C33958 */ void setWaterPrtcl(); /* 80C33958 */ void setWaterPrtcl();
/* 80C33A58 */ void setHamonPrtcl(); /* 80C33A58 */ void setHamonPrtcl();
u8 getType() {
int iVar1 = fopAcM_GetParam(this) & 0xFF;
u8 rv;
switch ((subtype & 127)) {
case 0:
switch (iVar1) {
case 0:
return 0;
}
break;
case 1:
switch (iVar1) {
case 0:
return 1;
case 1:
return 2;
case 2:
return 3;
}
}
return 4;
}
void setMtx(Mtx param_1) {
cXyz sp18;
field_0xba2 = 1;
mDoMtx_stack_c::copy(param_1);
mDoMtx_stack_c::multVecZero(&sp18);
current.pos = sp18;
old.pos = current.pos;
field_0x574->setBaseTRMtx(param_1);
}
u32 fopAcM_checkHawkCarryNow(fopAc_ac_c* actor) {
return fopAcM_checkStatus(actor, 0x80000000);
}
void popup(f32 param_1, f32 param_2, cXyz* param_3) {
if (param_3 != NULL) {
current.pos = *param_3;
old.pos = current.pos;
}
int iVar1 = cM_deg2s(param_2);
speed.setall(0.0f);
speed.y = param_1 * cM_ssin(iVar1);
speedF = param_1 * cM_scos(iVar1);
field_0xb44 = 6;
field_0xb70 = 0x4000;
field_0xb9e = 1;
field_0xb68 = 0.0f;
}
private: private:
/* 0x568 */ u8 field_0x568[0xba8 - 0x568]; /* 0x568 */ u8 field_0x568[0x56c - 0x568];
/* 0x56C */ request_of_phase_process_class mPhase;
/* 0x574 */ J3DModel* field_0x574;
/* 0x578 */ dBgS_ObjAcch mObjAcch;
/* 0x750 */ dCcD_Stts mStts;
/* 0x78C */ dBgS_AcchCir mAcchCir;
/* 0x7CC */ cBgS_GndChk field_0x7cc;
/* 0x808 */ dCcD_Cyl field_0x808[2];
/* 0xA80 */ cM3dGLin field_0xa80;
/* 0xA9C */ dBgS_LinChk field_0xa9c;
/* 0xB0C */ f32 field_0xb0c;
/* 0xB10 */ u8 mType;
/* 0xB14 */ cXyz field_0xb14;
/* 0xB20 */ cXyz field_0xb20;
/* 0xB2C */ csXyz field_0xb2c;
/* 0xB32 */ u8 field_0xb32[0xb44 - 0xb32];
/* 0xB44 */ int field_0xb44;
/* 0xB48 */ int field_0xb48;
/* 0xB4C */ int field_0xb4c;
/* 0xB50 */ f32 field_0xb50;
/* 0xB54 */ f32 mGroundH;
/* 0xB58 */ f32 mWaterY;
/* 0xB5C */ u8 field_0xb5c[0xb64 - 0xb5c];
/* 0xB64 */ f32 field_0xb64;
/* 0xB68 */ f32 field_0xb68;
/* 0xB6C */ s16 field_0xb6c;
/* 0xB6E */ s16 field_0xb6e;
/* 0xB70 */ s16 field_0xb70;
/* 0xB72 */ u8 field_0xb72[0xb74 - 0xb72];
/* 0xB74 */ s16 field_0xb74;
/* 0xB76 */ s16 field_0xb76;
/* 0xB78 */ u32 field_0xb78;
/* 0xB7C */ u32 mWaterPrtcls[4];
/* 0xB8C */ u32 mHamonPrtcl;
/* 0xB90 */ u8 field_0xb90[0xb94 - 0xb90];
/* 0xB94 */ u32 field_0xb94;
/* 0xB98 */ u32 field_0xb98;
/* 0xB9C */ u8 field_0xb9c;
/* 0xB9D */ u8 field_0xb9d;
/* 0xB9E */ u8 field_0xb9e;
/* 0xB9F */ u8 field_0xb9f;
/* 0xBA0 */ u8 field_0xba0;
/* 0xBA1 */ u8 field_0xba1;
/* 0xBA2 */ u8 field_0xba2;
/* 0xBA3 */ u8 field_0xba3;
// vtable
/* 80C31AEC */ virtual ~daObj_Kago_c();
}; };
STATIC_ASSERT(sizeof(daObj_Kago_c) == 0xba8); STATIC_ASSERT(sizeof(daObj_Kago_c) == 0xba8);
class daObj_Kago_Param_c { class daObj_Kago_Param_c {
public: public:
/* 80C33C14 */ ~daObj_Kago_Param_c(); /* 80C33C14 */ virtual ~daObj_Kago_Param_c() {}
static u8 const m[44]; struct Data {
/* 0x00 */ f32 field_0x00;
/* 0x04 */ f32 mGravity;
/* 0x08 */ f32 field_0x08;
/* 0x0C */ f32 field_0x0c;
/* 0x10 */ f32 mWeight;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 mWallH;
/* 0x1C */ f32 mWallR;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
};
static const Data m;
}; };

View File

@ -1,6 +1,9 @@
#ifndef D_A_OBJ_SO_H #ifndef D_A_OBJ_SO_H
#define D_A_OBJ_SO_H #define D_A_OBJ_SO_H
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
#include "f_op/f_op_actor_mng.h" #include "f_op/f_op_actor_mng.h"
/** /**
@ -11,28 +14,79 @@
* @details * @details
* *
*/ */
class obj_so_class : public fopAc_ac_c { class obj_so_class {
public: public:
/* 0x0568 */ u8 field_0x568[0x8fc - 0x568]; /* 0x0000 */ fopAc_ac_c actor;
/* 0x08FC */ f32 field_0x8fc; /* 0x0568 */ request_of_phase_process_class mPhase;
/* 0x0900 */ f32 field_0x900; /* 0x0570 */ u8 field_0x570;
/* 0x0904 */ u8 field_0x904[0x91c - 0x904]; /* 0x0571 */ u8 field_0x571;
/* 0x091C */ int field_0x91c; /* 0x0574 */ J3DModel* field_0x574;
/* 0x0920 */ cXyz field_0x920[12]; /* 0x0578 */ u8 field_0x578[0x594 - 0x578];
/* 0x09B0 */ u8 field_0x9b0[0xdac - 0x9b0]; /* 0x0594 */ J3DModel* field_0x594[26];
/* 0x05FC */ s8 field_0x5fc[26];
/* 0x0618 */ cXyz field_0x618[26];
/* 0x0750 */ f32 field_0x750[26];
/* 0x07B8 */ cXyz field_0x7b8[26];
/* 0x08F0 */ cXyz field_0x8f0[26];
/* 0x0A28 */ csXyz field_0xa28[26];
/* 0x0AC4 */ csXyz field_0xac4[26];
/* 0x0B60 */ s16 field_0xb60[2];
/* 0x0B64 */ u8 field_0xb64[0xb94 - 0xb64];
/* 0x0B94 */ s16 field_0xb94[2];
/* 0x0B98 */ u8 field_0xb98[0xbc8 - 0xb98];
/* 0x0BC8 */ s16 field_0xbc8[2];
/* 0x0BCC */ u8 field_0xbcc[0xbfc - 0xbcc];
/* 0x0BFC */ s16 field_0xbfc[2];
/* 0x0C00 */ u8 field_0xc00[0xc30 - 0xc00];
/* 0x0C30 */ s8 field_0xc30[26];
/* 0x0C4C */ u32 field_0xc4c[26];
/* 0x0CB4 */ u32 field_0xcb4[26];
/* 0x0D1C */ Z2Creature mSound;
/* 0x0DAC */ s16 field_0xdac; /* 0x0DAC */ s16 field_0xdac;
/* 0x0DAE */ s16 field_0xdae; /* 0x0DAE */ s16 field_0xdae;
/* 0x0DB0 */ u8 field_0xdb0[0xdc4 - 0xdb0]; /* 0x0DB0 */ s16 field_0xdb0;
/* 0x0DB2 */ s16 field_0xdb2[2];
/* 0x0DB6 */ s16 field_0xdb6;
/* 0x0DB8 */ s16 field_0xdb8;
/* 0x0DBA */ s16 field_0xdba;
/* 0x0DBC */ s16 field_0xdbc;
/* 0x0DBE */ s16 field_0xdbe;
/* 0x0DC0 */ s16 field_0xdc0;
/* 0x0DC2 */ s16 field_0xdc2;
/* 0x0DC4 */ s8 field_0xdc4; /* 0x0DC4 */ s8 field_0xdc4;
/* 0x0DC5 */ u8 field_0xdc5[0xdc8 - 0xdc5];
/* 0x0DC8 */ f32 field_0xdc8; /* 0x0DC8 */ f32 field_0xdc8;
/* 0x0DCC */ u8 field_0xdcc[0x1054 - 0xdcc]; /* 0x0DCC */ dBgS_AcchCir mAcchCir;
/* 0x0E0C */ dBgS_ObjAcch mObjAcch;
/* 0x0FE4 */ u8 field_0xfe4[0xfec - 0xfe4];
/* 0x0FEC */ Mtx mBgMtx[2];
/* 0x104C */ dBgW* mBgW[2];
/* 0x1054 */ s8 field_0x1054; /* 0x1054 */ s8 field_0x1054;
/* 0x1055 */ u8 field_0x1055[0x1a98 - 0x1055]; /* 0x1056 */ s16 field_0x1056;
/* 0x1A98 */ s8 field_0x1a98[7]; /* 0x1058 */ dCcD_Stts mStts;
/* 0x1A9F */ u8 field_0x1a9f[0x1bd0 - 0x1a9f]; /* 0x1094 */ dCcU_AtInfo mAtInfo;
/* 0x10B8 */ dCcD_Cyl field_0x10b8[8];
/* 0x1A98 */ s8 field_0x1a98[8];
/* 0x1AA0 */ J3DModel* field_0x1aa0[8];
/* 0x1AC0 */ cXyz field_0x1ac0[8];
/* 0x1B20 */ s16 field_0x1b20[8];
/* 0x1B30 */ s16 field_0x1b30[8];
/* 0x1B40 */ s16 field_0x1b40[8];
/* 0x1B50 */ s16 field_0x1b50[8];
/* 0x1B60 */ s8 field_0x1b60;
/* 0x1B64 */ Mtx mMtx;
/* 0x1B94 */ fpc_ProcID field_0x1b94;
/* 0x1B98 */ u32 field_0x1b98;
/* 0x1B9C */ u32 field_0x1b9c;
/* 0x1BA0 */ s16 mDemoMode;
/* 0x1BA2 */ s16 field_0x1ba2;
/* 0x1BA4 */ cXyz mDemoCamEye;
/* 0x1BB0 */ cXyz mDemoCamCenter;
/* 0x1BBC */ f32 mDemoCamFovy;
/* 0x1BC0 */ f32 field_0x1bc0;
/* 0x1BC4 */ u8 field_0x1bc4[0x1bcc - 0x1bc4];
/* 0x1BCC */ u8 field_0x1bcc;
bool partBreak() { u8 partBreak() {
for (int i = 0; i < 8; i++) { for (int i = 0; i < 8; i++) {
if (field_0x1a98[i] == 2) return 1; if (field_0x1a98[i] == 2) return 1;
} }
@ -42,10 +96,15 @@ public:
STATIC_ASSERT(sizeof(obj_so_class) == 0x1bd0); STATIC_ASSERT(sizeof(obj_so_class) == 0x1bd0);
class daObj_So_HIO_c { class daObj_So_HIO_c : public JORReflexible {
public: public:
/* 80CE03CC */ daObj_So_HIO_c(); /* 80CE03CC */ daObj_So_HIO_c();
/* 80CE3928 */ ~daObj_So_HIO_c(); /* 80CE3928 */ virtual ~daObj_So_HIO_c() {}
void genMessage(JORMContext*);
/* 0x04 */ s8 field_0x4;
/* 0x08 */ f32 mScale;
}; };

View File

@ -1058,6 +1058,7 @@ u8 dComIfGs_getSelectMixItemNoArrowIndex(int i_selmixItemIdx);
BOOL dComIfGs_isStageTbox(int i_stageNo, int i_no); BOOL dComIfGs_isStageTbox(int i_stageNo, int i_no);
s8 dComIfGs_PolyDamageOff_Check(); s8 dComIfGs_PolyDamageOff_Check();
void dComIfGs_shake_kandelaar(); void dComIfGs_shake_kandelaar();
int dComIfGs_shake_kandelaar_check();
void dComIfGs_Grass_hide_Set(s8 param_0); void dComIfGs_Grass_hide_Set(s8 param_0);
void dComIfGs_onGetMagicUseFlag(); void dComIfGs_onGetMagicUseFlag();
void dComIfG_playerStatusD(); void dComIfG_playerStatusD();

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2443,10 +2443,10 @@ void dComIfGs_shake_kandelaar() {
g_dComIfG_gameInfo.field_0x1ddfa = 1; g_dComIfG_gameInfo.field_0x1ddfa = 1;
} }
bool dComIfGs_shake_kandelaar_check() { int dComIfGs_shake_kandelaar_check() {
bool check = false; int check = 0;
if (g_dComIfG_gameInfo.field_0x1ddfa == 2) { if (g_dComIfG_gameInfo.field_0x1ddfa == 2) {
check = true; check = 1;
} }
return check; return check;
} }