mirror of https://github.com/zeldaret/tp.git
d_a_npc_zelro matching and some npct's linked (#2649)
* npc_zero matching and some other npcts cleaned and linked * debug fix * okay actual debug fix... i hope * this isnt funny anymore * please * this should fix things * added JP matching to zelR and zelRo * added attention flag enum
This commit is contained in:
parent
9b4b9003c4
commit
e3353f2c56
|
|
@ -1913,8 +1913,8 @@ config.libs = [
|
|||
ActorRel(NonMatching, "d_a_npc_ykw"),
|
||||
ActorRel(NonMatching, "d_a_npc_zanb"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_npc_zant"),
|
||||
ActorRel(NonMatching, "d_a_npc_zelR"),
|
||||
ActorRel(NonMatching, "d_a_npc_zelRo"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_npc_zelR"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_npc_zelRo"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_npc_zelda"),
|
||||
ActorRel(Equivalent, "d_a_npc_zra", extra_cflags=[DANPCF_C_HACK]), # regalloc
|
||||
ActorRel(NonMatching, "d_a_npc_zrc", extra_cflags=[DANPCF_C_HACK]),
|
||||
|
|
|
|||
|
|
@ -10,9 +10,74 @@
|
|||
*
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
*/
|
||||
|
||||
struct daNpc_midP_HIOParam {
|
||||
/* 0x0 */ daNpcT_HIOParam common;
|
||||
};
|
||||
|
||||
class daNpc_midP_HIO_c : public mDoHIO_entry_c {
|
||||
/* 0x8 */ daNpc_midP_HIOParam param;
|
||||
};
|
||||
|
||||
class daNpc_midP_Param_c {
|
||||
public:
|
||||
/* 80A73954 */ virtual ~daNpc_midP_Param_c() {}
|
||||
|
||||
static const daNpc_midP_HIOParam m;
|
||||
};
|
||||
|
||||
class daNpc_midP_c : public daNpcT_c {
|
||||
public:
|
||||
enum Joint {
|
||||
/* 0x00 */ JNT_CENTER,
|
||||
/* 0x01 */ JNT_BACKBONE1,
|
||||
/* 0x02 */ JNT_BACKBONE2,
|
||||
/* 0x03 */ JNT_NECK,
|
||||
/* 0x04 */ JNT_HEAD,
|
||||
/* 0x05 */ JNT_CHIN,
|
||||
/* 0x06 */ JNT_MAYUL,
|
||||
/* 0x07 */ JNT_MAYUR,
|
||||
/* 0x08 */ JNT_MOUTH,
|
||||
/* 0x09 */ JNT_SHOULDERL,
|
||||
/* 0x0A */ JNT_ARML1,
|
||||
/* 0x0B */ JNT_ARML2,
|
||||
/* 0x0C */ JNT_HANDL,
|
||||
/* 0x0D */ JNT_FINGERL1,
|
||||
/* 0x0E */ JNT_FINGERL2,
|
||||
/* 0x0F */ JNT_THAMBL,
|
||||
/* 0x10 */ JNT_MANTL1,
|
||||
/* 0x11 */ JNT_MANTL2,
|
||||
/* 0x12 */ JNT_MANT_ANIMEL1,
|
||||
/* 0x13 */ JNT_SHOULDERR,
|
||||
/* 0x14 */ JNT_ARMR1,
|
||||
/* 0x15 */ JNT_ARMR2,
|
||||
/* 0x16 */ JNT_HANDR,
|
||||
/* 0x17 */ JNT_FINGERR1,
|
||||
/* 0x18 */ JNT_FINGERR2,
|
||||
/* 0x19 */ JNT_THAMBR,
|
||||
/* 0x1A */ JNT_MANTR1,
|
||||
/* 0x1B */ JNT_MANTR2,
|
||||
/* 0x1C */ JNT_MANT_ANIMER1,
|
||||
/* 0x1D */ JNT_WAIST,
|
||||
/* 0x1E */ JNT_LEGL1,
|
||||
/* 0x1F */ JNT_LEGL2,
|
||||
/* 0x20 */ JNT_FOOTL,
|
||||
/* 0x21 */ JNT_TOEL,
|
||||
/* 0x22 */ JNT_LEGR1,
|
||||
/* 0x23 */ JNT_LEGR2,
|
||||
/* 0x24 */ JNT_FOOTR,
|
||||
/* 0x25 */ JNT_TOER,
|
||||
/* 0x26 */ JNT_MANTC1,
|
||||
/* 0x27 */ JNT_MANTC2,
|
||||
/* 0x28 */ JNT_MANT_ANIMEL2,
|
||||
/* 0x29 */ JNT_MANT_ANIMER2,
|
||||
/* 0x2A */ JNT_SKIRTB1,
|
||||
/* 0x2B */ JNT_SKIRTB2,
|
||||
/* 0x2C */ JNT_SKIRTF1,
|
||||
/* 0x2D */ JNT_SKIRTF2,
|
||||
};
|
||||
|
||||
typedef int (daNpc_midP_c::*cutFunc)(int);
|
||||
typedef int (daNpc_midP_c::*actionFunc)(void*);
|
||||
|
||||
|
|
@ -56,11 +121,11 @@ public:
|
|||
daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) {}
|
||||
/* 80A7390C */ u16 getEyeballRMaterialNo() { return 3; }
|
||||
/* 80A73914 */ u16 getEyeballLMaterialNo() { return 2; }
|
||||
/* 80A7391C */ s32 getHeadJointNo() { return 4; }
|
||||
/* 80A73924 */ s32 getNeckJointNo() { return 3; }
|
||||
/* 80A7392C */ s32 getBackboneJointNo() { return 2; }
|
||||
/* 80A73934 */ BOOL checkChangeJoint(int param_0) { return param_0 == 4; }
|
||||
/* 80A73944 */ BOOL checkRemoveJoint(int param_0) { return param_0 == 8; }
|
||||
/* 80A7391C */ s32 getHeadJointNo() { return JNT_HEAD; }
|
||||
/* 80A73924 */ s32 getNeckJointNo() { return JNT_NECK; }
|
||||
/* 80A7392C */ s32 getBackboneJointNo() { return JNT_BACKBONE2; }
|
||||
/* 80A73934 */ BOOL checkChangeJoint(int i_joint) { return i_joint == JNT_HEAD; }
|
||||
/* 80A73944 */ BOOL checkRemoveJoint(int i_joint) { return i_joint == JNT_MOUTH; }
|
||||
|
||||
int getFlowNodeNo() {
|
||||
u16 nodeNo = home.angle.x;
|
||||
|
|
@ -85,52 +150,4 @@ private:
|
|||
|
||||
STATIC_ASSERT(sizeof(daNpc_midP_c) == 0xfa0);
|
||||
|
||||
class daNpc_midP_Param_c {
|
||||
public:
|
||||
/* 80A73954 */ virtual ~daNpc_midP_Param_c() {}
|
||||
|
||||
struct Data {
|
||||
/* 0x00 */ f32 field_0x00;
|
||||
/* 0x04 */ f32 mGravity;
|
||||
/* 0x08 */ f32 mScale;
|
||||
/* 0x0C */ f32 field_0x0c;
|
||||
/* 0x10 */ f32 mWeight;
|
||||
/* 0x14 */ f32 mCylH;
|
||||
/* 0x18 */ f32 mWallH;
|
||||
/* 0x1C */ f32 mWallR;
|
||||
/* 0x20 */ f32 field_0x20;
|
||||
/* 0x24 */ f32 field_0x24;
|
||||
/* 0x28 */ f32 field_0x28;
|
||||
/* 0x2C */ f32 field_0x2c;
|
||||
/* 0x30 */ f32 field_0x30;
|
||||
/* 0x34 */ f32 field_0x34;
|
||||
/* 0x38 */ f32 field_0x38;
|
||||
/* 0x3C */ f32 field_0x3c;
|
||||
/* 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 */ int field_0x64;
|
||||
/* 0x68 */ int 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;
|
||||
};
|
||||
|
||||
static const Data m;
|
||||
};
|
||||
|
||||
#endif /* D_A_NPC_MIDP_H */
|
||||
|
|
|
|||
|
|
@ -10,11 +10,9 @@
|
|||
*
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
|
||||
struct daNpc_Saru_HIOParam
|
||||
{
|
||||
*/
|
||||
|
||||
struct daNpc_Saru_HIOParam {
|
||||
/* 0x00 */ daNpcT_HIOParam common;
|
||||
/* 0x8C */ s16 scared_time; // 怯える時間 - Scared Time
|
||||
/* 0x8E */ s16 field_0x8e;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,23 @@
|
|||
*
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
*/
|
||||
|
||||
struct daNpc_ZelR_HIOParam {
|
||||
/* 0x0 */ daNpcT_HIOParam common;
|
||||
};
|
||||
|
||||
class daNpc_ZelR_HIO_c : public mDoHIO_entry_c {
|
||||
/* 0x8 */ daNpc_ZelR_HIOParam param;
|
||||
};
|
||||
|
||||
class daNpc_ZelR_Param_c {
|
||||
public:
|
||||
/* 80B71A74 */ virtual ~daNpc_ZelR_Param_c() {};
|
||||
|
||||
static const daNpc_ZelR_HIOParam m;
|
||||
};
|
||||
|
||||
class daNpc_ZelR_c : public daNpcT_c {
|
||||
public:
|
||||
typedef BOOL (daNpc_ZelR_c::*ActionFn)(void*);
|
||||
|
|
@ -57,10 +73,10 @@ public:
|
|||
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)
|
||||
{}
|
||||
/* 80B71A34 */ u16 getEyeballRMaterialNo();
|
||||
/* 80B71A3C */ u16 getEyeballLMaterialNo();
|
||||
/* 80B71A44 */ s32 getHeadJointNo();
|
||||
/* 80B71A4C */ s32 getBackboneJointNo();
|
||||
/* 80B71A34 */ u16 getEyeballRMaterialNo() { return 3; }
|
||||
/* 80B71A3C */ u16 getEyeballLMaterialNo() { return 2; }
|
||||
/* 80B71A44 */ s32 getHeadJointNo() { return 3; }
|
||||
/* 80B71A4C */ s32 getBackboneJointNo() { return 1; }
|
||||
/* 80B71A54 */ BOOL checkChangeJoint(int param_1) { return param_1 == 3; };
|
||||
/* 80B71A64 */ BOOL checkRemoveJoint(int param_1) { return param_1 == 13; };
|
||||
|
||||
|
|
@ -71,7 +87,6 @@ private:
|
|||
/* 0xE40 */ u8 field_0xe40[0xe44 - 0xe40];
|
||||
/* 0xE44 */ dCcD_Cyl mCyl;
|
||||
/* 0xF80 */ u8 mType;
|
||||
/* 0xF81 */ u8 field_0xf81[0xf84 - 0xf81];
|
||||
/* 0xF84 */ ActionFn field_0xf84;
|
||||
/* 0xF90 */ ActionFn field_0xf90;
|
||||
/* 0xF9C */ daNpcT_Path_c mPath;
|
||||
|
|
@ -80,53 +95,5 @@ private:
|
|||
|
||||
STATIC_ASSERT(sizeof(daNpc_ZelR_c) == 0xfc8);
|
||||
|
||||
class daNpc_ZelR_Param_c {
|
||||
public:
|
||||
/* 80B71A74 */ virtual ~daNpc_ZelR_Param_c() {};
|
||||
|
||||
struct Data {
|
||||
/* 0x00 */ f32 field_0x0;
|
||||
/* 0x04 */ f32 mGravity;
|
||||
/* 0x08 */ f32 field_0x8;
|
||||
/* 0x0C */ f32 field_0xc;
|
||||
/* 0x10 */ f32 mWeight;
|
||||
/* 0x14 */ f32 mCylH;
|
||||
/* 0x18 */ f32 mWallH;
|
||||
/* 0x1C */ f32 mWallR;
|
||||
/* 0x20 */ f32 field_0x20;
|
||||
/* 0x24 */ f32 field_0x24;
|
||||
/* 0x28 */ f32 field_0x28;
|
||||
/* 0x2C */ f32 field_0x2c;
|
||||
/* 0x30 */ f32 field_0x30;
|
||||
/* 0x34 */ f32 field_0x34;
|
||||
/* 0x38 */ f32 field_0x38;
|
||||
/* 0x3C */ f32 field_0x3c;
|
||||
/* 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 field_0x50;
|
||||
/* 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;
|
||||
};
|
||||
|
||||
static const Data m;
|
||||
};
|
||||
|
||||
|
||||
#endif /* D_A_NPC_ZELR_H */
|
||||
|
|
|
|||
|
|
@ -10,66 +10,145 @@
|
|||
*
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
class daNpc_ZelRo_c : public fopAc_ac_c {
|
||||
*/
|
||||
|
||||
struct daNpc_ZelRo_HIOParam {
|
||||
/* 0x0 */ daNpcT_HIOParam common;
|
||||
};
|
||||
|
||||
class daNpc_ZelRo_HIO_c : public mDoHIO_entry_c {
|
||||
/* 0x8 */ daNpc_ZelRo_HIOParam param;
|
||||
};
|
||||
|
||||
class daNpc_ZelRo_Param_c {
|
||||
public:
|
||||
/* 80B74BF0 */ virtual ~daNpc_ZelRo_Param_c() {}
|
||||
|
||||
static daNpc_ZelRo_HIOParam const m;
|
||||
};
|
||||
|
||||
class daNpc_ZelRo_c : public daNpcT_c {
|
||||
public:
|
||||
enum Material {
|
||||
/* 0x0 */ SC_EYE_L_V,
|
||||
/* 0x1 */ SC_EYE_R_V,
|
||||
/* 0x2 */ ZELR_ROBE01_M_V,
|
||||
/* 0x3 */ ZELR_ROBE02_M_V,
|
||||
/* 0x4 */ ZELDA_BODY_M_V,
|
||||
/* 0x5 */ ZELDA_DOUBLESIDE_M_V,
|
||||
/* 0x6 */ ZELDA_EYEBALL_L_V,
|
||||
/* 0x7 */ ZELDA_EYEBALL_R_V,
|
||||
/* 0x8 */ ZELDA_HAIR_M_V,
|
||||
/* 0x9 */ ZELDA_JEWEL_M_V,
|
||||
};
|
||||
|
||||
enum Joint {
|
||||
/* 0x00 */ JNT_CENTER,
|
||||
/* 0x01 */ JNT_BACKBONE1,
|
||||
/* 0x02 */ JNT_BACKBONE2,
|
||||
/* 0x03 */ JNT_NECK,
|
||||
/* 0x04 */ JNT_HEAD,
|
||||
/* 0x05 */ JNT_CHIN,
|
||||
/* 0x06 */ JNT_MANT,
|
||||
/* 0x07 */ JNT_MAYUL,
|
||||
/* 0x08 */ JNT_MAYUR,
|
||||
/* 0x09 */ JNT_MOMIL1,
|
||||
/* 0x0A */ JNT_MOMIL2,
|
||||
/* 0x0B */ JNT_MOMIL3,
|
||||
/* 0x0C */ JNT_MOMIR1,
|
||||
/* 0x0D */ JNT_MOMIR2,
|
||||
/* 0x0E */ JNT_MOMIR3,
|
||||
/* 0x0F */ JNT_MOUTH,
|
||||
/* 0x10 */ JNT_SHOULDERL,
|
||||
/* 0x11 */ JNT_ARML1,
|
||||
/* 0x12 */ JNT_ARML2,
|
||||
/* 0x13 */ JNT_HANDL,
|
||||
/* 0x14 */ JNT_FINGERL1,
|
||||
/* 0x15 */ JNT_FINGERL2,
|
||||
/* 0x16 */ JNT_THAMBL,
|
||||
/* 0x17 */ JNT_SHOULDERR,
|
||||
/* 0x18 */ JNT_ARMR1,
|
||||
/* 0x19 */ JNT_ARMR2,
|
||||
/* 0x1A */ JNT_HANDR,
|
||||
/* 0x1B */ JNT_FINGERR1,
|
||||
/* 0x1C */ JNT_FINGERR2,
|
||||
/* 0x1D */ JNT_THAMBR,
|
||||
/* 0x1E */ JNT_WAIST,
|
||||
/* 0x1F */ JNT_SKARTL_01,
|
||||
/* 0x20 */ JNT_SKARTL_02,
|
||||
/* 0x21 */ JNT_SKARTL_03,
|
||||
/* 0x22 */ JNT_SKARTR_01,
|
||||
/* 0x23 */ JNT_SKARTR_02,
|
||||
/* 0x24 */ JNT_SKARTR_03,
|
||||
};
|
||||
|
||||
typedef int (daNpc_ZelRo_c::*actionFunc)(void*);
|
||||
typedef int (daNpc_ZelRo_c::*cutFunc)(int);
|
||||
|
||||
/* 80B71FAC */ ~daNpc_ZelRo_c();
|
||||
/* 80B720E4 */ void create();
|
||||
/* 80B72378 */ void CreateHeap();
|
||||
/* 80B727E4 */ void Delete();
|
||||
/* 80B72818 */ void Execute();
|
||||
/* 80B72838 */ void Draw();
|
||||
/* 80B728FC */ void createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80B7291C */ void ctrlJointCallBack(J3DJoint*, int);
|
||||
/* 80B72974 */ void getType();
|
||||
/* 80B72994 */ void getFlowNodeNo();
|
||||
/* 80B729B0 */ void getPath();
|
||||
/* 80B729BC */ void isDelete();
|
||||
/* 80B720E4 */ cPhs__Step create();
|
||||
/* 80B72378 */ int CreateHeap();
|
||||
/* 80B727E4 */ int Delete();
|
||||
/* 80B72818 */ int Execute();
|
||||
/* 80B72838 */ int Draw();
|
||||
/* 80B728FC */ static int createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80B7291C */ static int ctrlJointCallBack(J3DJoint*, int);
|
||||
/* 80B72974 */ u8 getType();
|
||||
/* 80B72994 */ int getFlowNodeNo();
|
||||
/* 80B729B0 */ u8 getPath();
|
||||
/* 80B729BC */ BOOL isDelete();
|
||||
/* 80B72A10 */ void reset();
|
||||
/* 80B72B8C */ void afterJntAnm(int);
|
||||
/* 80B72C18 */ void ctrlBtk();
|
||||
/* 80B72C18 */ BOOL ctrlBtk();
|
||||
/* 80B72D24 */ void setParam();
|
||||
/* 80B72E18 */ void setAfterTalkMotion();
|
||||
/* 80B72E78 */ void srchActors();
|
||||
/* 80B72E7C */ void evtTalk();
|
||||
/* 80B72F7C */ void evtCutProc();
|
||||
/* 80B72E7C */ BOOL evtTalk();
|
||||
/* 80B72F7C */ BOOL evtCutProc();
|
||||
/* 80B73044 */ void action();
|
||||
/* 80B73194 */ void beforeMove();
|
||||
/* 80B7320C */ void setAttnPos();
|
||||
/* 80B7342C */ void setCollision();
|
||||
/* 80B7355C */ bool drawDbgInfo();
|
||||
/* 80B73564 */ void selectAction();
|
||||
/* 80B735AC */ void chkAction(int (daNpc_ZelRo_c::*)(void*));
|
||||
/* 80B735D8 */ void setAction(int (daNpc_ZelRo_c::*)(void*));
|
||||
/* 80B73680 */ void wait(void*);
|
||||
/* 80B7382C */ void talk(void*);
|
||||
/* 80B74AE8 */ daNpc_ZelRo_c(daNpcT_faceMotionAnmData_c const*, daNpcT_motionAnmData_c const*,
|
||||
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
|
||||
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
|
||||
daNpcT_evtData_c const*, char**);
|
||||
/* 80B74BA8 */ u16 getEyeballRMaterialNo();
|
||||
/* 80B74BB0 */ u16 getEyeballLMaterialNo();
|
||||
/* 80B74BB8 */ s32 getHeadJointNo();
|
||||
/* 80B74BC0 */ s32 getNeckJointNo();
|
||||
/* 80B74BC8 */ bool getBackboneJointNo();
|
||||
/* 80B74BD0 */ void checkChangeJoint(int);
|
||||
/* 80B74BE0 */ void checkRemoveJoint(int);
|
||||
/* 80B7355C */ int drawDbgInfo();
|
||||
/* 80B73564 */ BOOL selectAction();
|
||||
/* 80B735AC */ BOOL chkAction(actionFunc);
|
||||
/* 80B735D8 */ BOOL setAction(actionFunc);
|
||||
/* 80B73680 */ int wait(void*);
|
||||
/* 80B7382C */ int talk(void*);
|
||||
#ifdef DEBUG
|
||||
int test(void*);
|
||||
#endif
|
||||
/* 80B74AE8 */ daNpc_ZelRo_c(
|
||||
daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData,
|
||||
daNpcT_motionAnmData_c const* i_motionAnmData,
|
||||
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
|
||||
int i_faceMotionStepNum,
|
||||
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum,
|
||||
daNpcT_evtData_c const* i_evtData, char** i_arcNames)
|
||||
: daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
|
||||
i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
|
||||
i_arcNames) {}
|
||||
/* 80B74BA8 */ u16 getEyeballRMaterialNo() { return ZELDA_EYEBALL_R_V; }
|
||||
/* 80B74BB0 */ u16 getEyeballLMaterialNo() { return ZELDA_EYEBALL_L_V; }
|
||||
/* 80B74BB8 */ s32 getHeadJointNo() { return JNT_HEAD; }
|
||||
/* 80B74BC0 */ s32 getNeckJointNo() { return JNT_NECK; }
|
||||
/* 80B74BC8 */ s32 getBackboneJointNo() { return JNT_BACKBONE1; }
|
||||
/* 80B74BD0 */ BOOL checkChangeJoint(int i_joint) { return i_joint == JNT_HEAD; }
|
||||
/* 80B74BE0 */ BOOL checkRemoveJoint(int i_joint) { return i_joint == JNT_MOUTH; }
|
||||
|
||||
static void* mCutNameList;
|
||||
static u8 mCutList[12];
|
||||
static char* mCutNameList;
|
||||
static cutFunc mCutList[1];
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0xfc8 - 0x568];
|
||||
/* 0xE40 */ daNpc_ZelRo_HIO_c* mHIO;
|
||||
/* 0xE44 */ dCcD_Cyl mCyl;
|
||||
/* 0xF80 */ u8 mType;
|
||||
/* 0xF84 */ actionFunc mNextAction;
|
||||
/* 0xF90 */ actionFunc mAction;
|
||||
/* 0xF9C */ daNpcT_Path_c mPath;
|
||||
/* 0xFC4 */ u8 field_0xfc4;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpc_ZelRo_c) == 0xfc8);
|
||||
|
||||
class daNpc_ZelRo_Param_c {
|
||||
public:
|
||||
/* 80B74BF0 */ ~daNpc_ZelRo_Param_c();
|
||||
|
||||
static u8 const m[140];
|
||||
};
|
||||
|
||||
|
||||
#endif /* D_A_NPC_ZELRO_H */
|
||||
|
|
|
|||
|
|
@ -6,11 +6,24 @@
|
|||
#include "d/dolzel_rel.h"
|
||||
|
||||
#include "d/actor/d_a_npc_midp.h"
|
||||
#include "SSystem/SComponent/c_counter.h"
|
||||
|
||||
enum midP_RES_File_ID {
|
||||
/* BCK */
|
||||
/* 0x6 */ BCK_MIDP_WAIT_A = 0x6,
|
||||
|
||||
/* BMDR */
|
||||
/* 0x9 */ BMDR_MIDP = 0x9,
|
||||
|
||||
/* BTK */
|
||||
/* 0xC */ BTK_MIDP = 0xC,
|
||||
|
||||
/* BTP */
|
||||
/* 0xF */ BTP_MIDP = 0xF,
|
||||
};
|
||||
|
||||
/* 80A73AD4-80A73ADC 000020 0008+00 1/1 0/0 0/0 .data l_bmdData */
|
||||
static int l_bmdData[2][1] = {
|
||||
{9}, {1}
|
||||
static int l_bmdData[1][2] = {
|
||||
{BMDR_MIDP, 1},
|
||||
};
|
||||
|
||||
/* 80A73ADC-80A73AEC -00001 0010+00 0/1 0/0 0/0 .data l_evtList */
|
||||
|
|
@ -73,15 +86,15 @@ daNpc_midP_c::~daNpc_midP_c() {
|
|||
}
|
||||
|
||||
/* 80A739C0-80A73A4C 000000 008C+00 6/6 0/0 0/0 .rodata m__18daNpc_midP_Param_c */
|
||||
daNpc_midP_Param_c::Data const daNpc_midP_Param_c::m = {
|
||||
daNpc_midP_HIOParam const daNpc_midP_Param_c::m = {
|
||||
210.0f,
|
||||
-3.0f, // mGravity
|
||||
1.0f, // mScale
|
||||
-3.0f,
|
||||
1.0f,
|
||||
500.0f,
|
||||
255.0f, // mWeight
|
||||
190.0f, // mCylH
|
||||
35.0f, // mWallH
|
||||
30.0f, // mWallR
|
||||
255.0f,
|
||||
190.0f,
|
||||
35.0f,
|
||||
30.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
10.0f,
|
||||
|
|
@ -91,12 +104,12 @@ daNpc_midP_Param_c::Data const daNpc_midP_Param_c::m = {
|
|||
45.0f,
|
||||
-45.0f,
|
||||
0.6f,
|
||||
12.0f, // mMorfFrames
|
||||
12.0f,
|
||||
3,
|
||||
6,
|
||||
5,
|
||||
6,
|
||||
110.0f, // mAttnFovY
|
||||
110.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
|
|
@ -104,13 +117,16 @@ daNpc_midP_Param_c::Data const daNpc_midP_Param_c::m = {
|
|||
8,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
false,
|
||||
false,
|
||||
4.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
};
|
||||
|
||||
|
|
@ -147,7 +163,7 @@ int daNpc_midP_c::create() {
|
|||
|
||||
mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir,
|
||||
fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this));
|
||||
mCcStts.Init(daNpc_midP_Param_c::m.mWeight, 0, this);
|
||||
mCcStts.Init(daNpc_midP_Param_c::m.common.weight, 0, this);
|
||||
mCyl.Set(mCcDCyl);
|
||||
mCyl.SetStts(&mCcStts);
|
||||
mCyl.SetTgHitCallback(tgHitCallBack);
|
||||
|
|
@ -335,27 +351,27 @@ void daNpc_midP_c::setParam() {
|
|||
selectAction();
|
||||
srchActors();
|
||||
|
||||
s16 sVar1 = daNpc_midP_Param_c::m.field_0x48;
|
||||
s16 sVar2 = daNpc_midP_Param_c::m.field_0x4a;
|
||||
s16 sVar3 = daNpc_midP_Param_c::m.field_0x4c;
|
||||
s16 sVar4 = daNpc_midP_Param_c::m.field_0x4e;
|
||||
s16 sVar1 = daNpc_midP_Param_c::m.common.talk_distance;
|
||||
s16 sVar2 = daNpc_midP_Param_c::m.common.talk_angle;
|
||||
s16 sVar3 = daNpc_midP_Param_c::m.common.attention_distance;
|
||||
s16 sVar4 = daNpc_midP_Param_c::m.common.attention_angle;
|
||||
|
||||
attention_info.distances[0] = daNpcT_getDistTableIdx(sVar3, sVar4);
|
||||
attention_info.distances[1] = attention_info.distances[0];
|
||||
attention_info.distances[3] = daNpcT_getDistTableIdx(sVar1, sVar2);
|
||||
attention_info.flags = fopAc_AttnFlag_SPEAK_e | fopAc_AttnFlag_TALK_e;
|
||||
|
||||
scale.setall(daNpc_midP_Param_c::m.mScale);
|
||||
mCcStts.SetWeight(daNpc_midP_Param_c::m.mWeight);
|
||||
mCylH = daNpc_midP_Param_c::m.mCylH;
|
||||
mWallR = daNpc_midP_Param_c::m.mWallR;
|
||||
mAttnFovY = daNpc_midP_Param_c::m.mAttnFovY;
|
||||
scale.setall(daNpc_midP_Param_c::m.common.scale);
|
||||
mCcStts.SetWeight(daNpc_midP_Param_c::m.common.weight);
|
||||
mCylH = daNpc_midP_Param_c::m.common.height;
|
||||
mWallR = daNpc_midP_Param_c::m.common.width;
|
||||
mAttnFovY = daNpc_midP_Param_c::m.common.fov;
|
||||
mAcchCir.SetWallR(mWallR);
|
||||
mAcchCir.SetWallH(daNpc_midP_Param_c::m.mWallH);
|
||||
mRealShadowSize = daNpc_midP_Param_c::m.field_0x0c;
|
||||
mExpressionMorfFrame = daNpc_midP_Param_c::m.field_0x6c;
|
||||
mMorfFrames = daNpc_midP_Param_c::m.mMorfFrames;
|
||||
gravity = daNpc_midP_Param_c::m.mGravity;
|
||||
mAcchCir.SetWallH(daNpc_midP_Param_c::m.common.knee_length);
|
||||
mRealShadowSize = daNpc_midP_Param_c::m.common.real_shadow_size;
|
||||
mExpressionMorfFrame = daNpc_midP_Param_c::m.common.expression_morf_frame;
|
||||
mMorfFrames = daNpc_midP_Param_c::m.common.morf_frame;
|
||||
gravity = daNpc_midP_Param_c::m.common.gravity;
|
||||
}
|
||||
|
||||
/* 80A71A98-80A71AF8 000F18 0060+00 1/0 0/0 0/0 .text setAfterTalkMotion__12daNpc_midP_cFv */
|
||||
|
|
@ -430,7 +446,6 @@ void daNpc_midP_c::beforeMove() {
|
|||
|
||||
/* 80A71E28-80A72064 0012A8 023C+00 1/0 0/0 0/0 .text setAttnPos__12daNpc_midP_cFv */
|
||||
void daNpc_midP_c::setAttnPos() {
|
||||
// NONMATCHING
|
||||
cXyz sp3c(10.0f, -30.0f, 0.0f);
|
||||
cXyz sp48(10.0f, 0.0f, 0.0f);
|
||||
|
||||
|
|
@ -438,11 +453,11 @@ void daNpc_midP_c::setAttnPos() {
|
|||
f32 dVar5 = cM_s2rad(mCurAngle.y - field_0xd7e.y);
|
||||
J3DModel* model = mpMorf[0]->getModel();
|
||||
mJntAnm.setParam(this, model, &sp3c, getBackboneJointNo(), getNeckJointNo(),
|
||||
getHeadJointNo(), daNpc_midP_Param_c::m.field_0x24, daNpc_midP_Param_c::m.field_0x20,
|
||||
daNpc_midP_Param_c::m.field_0x2c, daNpc_midP_Param_c::m.field_0x28,
|
||||
daNpc_midP_Param_c::m.field_0x34, daNpc_midP_Param_c::m.field_0x30,
|
||||
daNpc_midP_Param_c::m.field_0x3c, daNpc_midP_Param_c::m.field_0x38,
|
||||
daNpc_midP_Param_c::m.field_0x40, dVar5, &sp48);
|
||||
getHeadJointNo(), daNpc_midP_Param_c::m.common.body_angleX_min, daNpc_midP_Param_c::m.common.body_angleX_max,
|
||||
daNpc_midP_Param_c::m.common.body_angleY_min, daNpc_midP_Param_c::m.common.body_angleY_max,
|
||||
daNpc_midP_Param_c::m.common.head_angleX_min, daNpc_midP_Param_c::m.common.head_angleX_max,
|
||||
daNpc_midP_Param_c::m.common.head_angleY_min, daNpc_midP_Param_c::m.common.head_angleY_max,
|
||||
daNpc_midP_Param_c::m.common.neck_rotation_ratio, dVar5, &sp48);
|
||||
mJntAnm.calcJntRad(0.2f, 1.0f, dVar5);
|
||||
setMtx();
|
||||
|
||||
|
|
@ -452,7 +467,7 @@ void daNpc_midP_c::setAttnPos() {
|
|||
mJntAnm.setEyeAngleY(eyePos, mCurAngle.y, 0, 1.0f, 0);
|
||||
|
||||
attention_info.position = current.pos;
|
||||
attention_info.position.y += daNpc_midP_Param_c::m.field_0x00;
|
||||
attention_info.position.y += daNpc_midP_Param_c::m.common.attention_offset;
|
||||
}
|
||||
|
||||
/* 80A72064-80A7216C 0014E4 0108+00 1/0 0/0 0/0 .text setCollision__12daNpc_midP_cFv */
|
||||
|
|
@ -640,9 +655,6 @@ static int daNpc_midP_IsDelete(void* i_this) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
/* 80A73D50-80A73D5C 000008 000C+00 1/1 0/0 0/0 .bss @3811 */
|
||||
static u8 lit_3811[12];
|
||||
|
||||
/* 80A73D5C-80A73D60 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */
|
||||
static daNpc_midP_Param_c l_HIO;
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,8 @@ enum saru_RES_File_ID {
|
|||
};
|
||||
|
||||
enum RES_Name {
|
||||
/* 0x1 */ NPC_KS = 0x1,
|
||||
/* 0x0 */ NONE,
|
||||
/* 0x1 */ NPC_KS,
|
||||
/* 0x2 */ SARU_TW,
|
||||
/* 0x3 */ SARU,
|
||||
};
|
||||
|
|
@ -246,7 +247,6 @@ daNpc_Saru_c::~daNpc_Saru_c() {
|
|||
deleteRes(l_loadResPtrnList[mType], (const char**)l_resNameList);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80AC44F8-80AC4588 000000 0090+00 9/9 0/0 0/0 .rodata m__18daNpc_Saru_Param_c */
|
||||
daNpc_Saru_HIOParam const daNpc_Saru_Param_c::m = {
|
||||
140.0f,
|
||||
|
|
@ -359,26 +359,20 @@ int daNpc_Saru_c::CreateHeap() {
|
|||
2, 3,
|
||||
};
|
||||
|
||||
void* modelData = NULL;
|
||||
J3DModel* model = NULL;
|
||||
BOOL uVar1 = mTwilight == true ? TRUE : FALSE;
|
||||
int arcNameIdx = l_bmdData[uVar1][1];
|
||||
int resName = l_bmdData[uVar1][0];
|
||||
modelData = dComIfG_getObjectRes(l_resNameList[arcNameIdx], resName);
|
||||
int bmdIdx = mTwilight == true ? TRUE : FALSE;
|
||||
J3DModelData* modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes(l_resNameList[l_bmdData[bmdIdx][1]], l_bmdData[bmdIdx][0]));
|
||||
if (modelData == NULL) {
|
||||
return 0;
|
||||
}
|
||||
u32 temp1 = 0x11020084;
|
||||
mpMorf[0] = new mDoExt_McaMorfSO((J3DModelData*)modelData, NULL,
|
||||
NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, temp1);
|
||||
mpMorf[0] = new mDoExt_McaMorfSO(modelData, NULL,
|
||||
NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, 0x11020084);
|
||||
if (mpMorf[0] == NULL || mpMorf[0]->getModel() == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
model = mpMorf[0]->getModel();
|
||||
model = mpMorf[0]->getModel();
|
||||
for (u16 i = 0; i < ((J3DModelData*)modelData)->getJointNum(); i++) {
|
||||
((J3DModelData*)modelData)->getJointNodePointer(i)->setCallBack(ctrlJointCallBack);
|
||||
J3DModel* model = mpMorf[0]->getModel();
|
||||
for (u16 i = 0; i < modelData->getJointNum(); i++) {
|
||||
modelData->getJointNodePointer(i)->setCallBack(ctrlJointCallBack);
|
||||
}
|
||||
|
||||
model->setUserArea((uintptr_t)this);
|
||||
|
|
@ -391,7 +385,7 @@ int daNpc_Saru_c::CreateHeap() {
|
|||
}
|
||||
|
||||
if (modelData != NULL) {
|
||||
mpRoseModels[i] = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x11000084);
|
||||
mpRoseModels[i] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||
} else {
|
||||
mpRoseModels[i] = NULL;
|
||||
}
|
||||
|
|
@ -1194,33 +1188,35 @@ int daNpc_Saru_c::wait(void* param_1) {
|
|||
/* 80AC2FD8-80AC31B4 002C98 01DC+00 3/0 0/0 0/0 .text talk__12daNpc_Saru_cFPv */
|
||||
int daNpc_Saru_c::talk(void* param_1) {
|
||||
switch (mMode) {
|
||||
case 0:
|
||||
case 1:
|
||||
if (mStagger.checkStagger() == 0) {
|
||||
initTalk(mFlowNodeNo, NULL);
|
||||
mMode = 2;
|
||||
}
|
||||
|
||||
case 2:
|
||||
if (mStagger.checkStagger() == 0) {
|
||||
if (mTwilight != false || mPlayerAngle == mCurAngle.y) {
|
||||
if (talkProc(NULL, FALSE, NULL, FALSE) && mFlow.checkEndFlow()) {
|
||||
mPlayerActorMngr.entry(daPy_getPlayerActorClass());
|
||||
dComIfGp_event_reset();
|
||||
mMode = 3;
|
||||
}
|
||||
|
||||
mJntAnm.lookPlayer(0);
|
||||
if (mTwilight != false) {
|
||||
mJntAnm.lookNone(0);
|
||||
}
|
||||
} else {
|
||||
mJntAnm.lookPlayer(0);
|
||||
step(fopAcM_searchPlayerAngleY(this), -1, -1, 15, 0);
|
||||
case 0:
|
||||
case 1:
|
||||
if (mStagger.checkStagger() == 0) {
|
||||
initTalk(mFlowNodeNo, NULL);
|
||||
mMode = 2;
|
||||
}
|
||||
|
||||
case 2:
|
||||
if (mStagger.checkStagger() == 0) {
|
||||
if (mTwilight != false || mPlayerAngle == mCurAngle.y) {
|
||||
if (talkProc(NULL, FALSE, NULL, FALSE) && mFlow.checkEndFlow()) {
|
||||
mPlayerActorMngr.entry(daPy_getPlayerActorClass());
|
||||
dComIfGp_event_reset();
|
||||
mMode = 3;
|
||||
}
|
||||
|
||||
mJntAnm.lookPlayer(0);
|
||||
if (mTwilight != false) {
|
||||
mJntAnm.lookNone(0);
|
||||
}
|
||||
} else {
|
||||
mJntAnm.lookPlayer(0);
|
||||
step(fopAcM_searchPlayerAngleY(this), -1, -1, 15, 0);
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,11 @@
|
|||
#include "d/dolzel_rel.h"
|
||||
|
||||
#include "d/actor/d_a_npc_zelR.h"
|
||||
#include "SSystem/SComponent/c_counter.h"
|
||||
|
||||
enum RES_Name {
|
||||
/* 0x0 */ NONE,
|
||||
/* 0x1 */ ZELRF,
|
||||
};
|
||||
|
||||
/* 80B71BF8-80B71C00 000020 0008+00 1/1 0/0 0/0 .data l_bmdData */
|
||||
static daNpc_GetParam1 l_bmdData[1] = {
|
||||
|
|
@ -81,15 +85,15 @@ daNpc_ZelR_c::~daNpc_ZelR_c() {
|
|||
static daNpc_ZelR_Param_c l_HIO;
|
||||
|
||||
/* 80B71AE0-80B71B6C 000000 008C+00 6/6 0/0 0/0 .rodata m__18daNpc_ZelR_Param_c */
|
||||
daNpc_ZelR_Param_c::Data const daNpc_ZelR_Param_c::m = {
|
||||
daNpc_ZelR_HIOParam const daNpc_ZelR_Param_c::m = {
|
||||
190.0f,
|
||||
-3.0f, // mGravity
|
||||
-3.0f,
|
||||
1.0f,
|
||||
400.0f,
|
||||
255.0f, // mWeight
|
||||
170.0f, // mCylH
|
||||
35.0f, // mWallH
|
||||
30.0f, // mWallR
|
||||
255.0f,
|
||||
170.0f,
|
||||
35.0f,
|
||||
30.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
10.0f,
|
||||
|
|
@ -99,7 +103,7 @@ daNpc_ZelR_Param_c::Data const daNpc_ZelR_Param_c::m = {
|
|||
45.0f,
|
||||
-45.0f,
|
||||
0.6f,
|
||||
12.0f, // mMorfFrames
|
||||
12.0f,
|
||||
3,
|
||||
6,
|
||||
5,
|
||||
|
|
@ -110,8 +114,11 @@ daNpc_ZelR_Param_c::Data const daNpc_ZelR_Param_c::m = {
|
|||
0.0f,
|
||||
0x3C,
|
||||
8,
|
||||
0.0f,
|
||||
0.0f,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
false,
|
||||
false,
|
||||
4.0f,
|
||||
0.0f,
|
||||
0.0f,
|
||||
|
|
@ -160,7 +167,7 @@ int daNpc_ZelR_c::create() {
|
|||
setEnvTevColor();
|
||||
setRoomNo();
|
||||
|
||||
mCcStts.Init(daNpc_ZelR_Param_c::m.mWeight, 0, this);
|
||||
mCcStts.Init(daNpc_ZelR_Param_c::m.common.weight, 0, this);
|
||||
mCyl.Set(mCcDCyl);
|
||||
mCyl.SetStts(&mCcStts);
|
||||
mCyl.SetTgHitCallback(tgHitCallBack);
|
||||
|
|
@ -176,12 +183,7 @@ int daNpc_ZelR_c::create() {
|
|||
|
||||
/* 80B6F1F8-80B6F4A8 0004B8 02B0+00 1/1 0/0 0/0 .text CreateHeap__12daNpc_ZelR_cFv */
|
||||
int daNpc_ZelR_c::CreateHeap() {
|
||||
// NONMATCHING
|
||||
int bmdIdx = mTwilight;
|
||||
if (mTwilight == 1) {
|
||||
bmdIdx = 0;
|
||||
}
|
||||
|
||||
int bmdIdx = mTwilight == true ? NONE : NONE;
|
||||
J3DModelData* mdlData_p = (J3DModelData*)(dComIfG_getObjectRes(
|
||||
l_resNameList[l_bmdData[bmdIdx].arcIdx], l_bmdData[bmdIdx].fileIdx
|
||||
));
|
||||
|
|
@ -367,24 +369,24 @@ BOOL daNpc_ZelR_c::ctrlBtk() {
|
|||
void daNpc_ZelR_c::setParam() {
|
||||
selectAction();
|
||||
srchActors();
|
||||
s16 sVar1 = l_HIO.m.field_0x48;
|
||||
s16 sVar2 = l_HIO.m.field_0x4a;
|
||||
s16 sVar3 = l_HIO.m.field_0x4c;
|
||||
s16 sVar4 = l_HIO.m.field_0x4e;
|
||||
s16 sVar1 = l_HIO.m.common.talk_distance;
|
||||
s16 sVar2 = l_HIO.m.common.talk_angle;
|
||||
s16 sVar3 = l_HIO.m.common.attention_distance;
|
||||
s16 sVar4 = l_HIO.m.common.attention_angle;
|
||||
attention_info.distances[0] = daNpcT_getDistTableIdx(sVar3, sVar4);
|
||||
attention_info.distances[1] = attention_info.distances[0];
|
||||
attention_info.distances[3] = daNpcT_getDistTableIdx(sVar1, sVar2);
|
||||
attention_info.flags = fopAc_AttnFlag_SPEAK_e | fopAc_AttnFlag_TALK_e;
|
||||
scale.setall(l_HIO.m.field_0x8);
|
||||
mCcStts.SetWeight(l_HIO.m.mWeight);
|
||||
mCylH = l_HIO.m.mCylH;
|
||||
mWallR = l_HIO.m.mWallR;
|
||||
scale.setall(l_HIO.m.common.scale);
|
||||
mCcStts.SetWeight(l_HIO.m.common.weight);
|
||||
mCylH = l_HIO.m.common.height;
|
||||
mWallR = l_HIO.m.common.width;
|
||||
mAcchCir.SetWallR(mWallR);
|
||||
mAcchCir.SetWallH(l_HIO.m.mWallH);
|
||||
mRealShadowSize = l_HIO.m.field_0xc;
|
||||
gravity = l_HIO.m.mGravity;
|
||||
mExpressionMorfFrame = l_HIO.m.field_0x6c;
|
||||
mMorfFrames = l_HIO.m.mMorfFrames;
|
||||
mAcchCir.SetWallH(l_HIO.m.common.knee_length);
|
||||
mRealShadowSize = l_HIO.m.common.real_shadow_size;
|
||||
gravity = l_HIO.m.common.gravity;
|
||||
mExpressionMorfFrame = l_HIO.m.common.expression_morf_frame;
|
||||
mMorfFrames = l_HIO.m.common.morf_frame;
|
||||
}
|
||||
|
||||
/* 80B6FC9C-80B6FCFC 000F5C 0060+00 1/0 0/0 0/0 .text setAfterTalkMotion__12daNpc_ZelR_cFv */
|
||||
|
|
@ -421,7 +423,6 @@ BOOL daNpc_ZelR_c::evtTalk() {
|
|||
|
||||
/* 80B6FE00-80B6FEC8 0010C0 00C8+00 1/0 0/0 0/0 .text evtCutProc__12daNpc_ZelR_cFv */
|
||||
BOOL daNpc_ZelR_c::evtCutProc() {
|
||||
// NONMATCHING
|
||||
BOOL rv = FALSE;
|
||||
int staffId = dComIfGp_getEventManager().getMyStaffId("ZelR", this, -1);
|
||||
if (staffId != -1) {
|
||||
|
|
@ -474,9 +475,9 @@ void daNpc_ZelR_c::setAttnPos() {
|
|||
mStagger.calc(FALSE);
|
||||
|
||||
mJntAnm.setParam(this, mpMorf[0]->getModel(), &sp38, getBackboneJointNo(), getNeckJointNo(), getHeadJointNo(),
|
||||
l_HIO.m.field_0x24, l_HIO.m.field_0x20, l_HIO.m.field_0x2c,
|
||||
l_HIO.m.field_0x28, l_HIO.m.field_0x34, l_HIO.m.field_0x30,
|
||||
l_HIO.m.field_0x3c, l_HIO.m.field_0x38, l_HIO.m.field_0x40,
|
||||
l_HIO.m.common.body_angleX_min, l_HIO.m.common.body_angleX_max, l_HIO.m.common.body_angleY_min,
|
||||
l_HIO.m.common.body_angleY_max, l_HIO.m.common.head_angleX_min, l_HIO.m.common.head_angleX_max,
|
||||
l_HIO.m.common.head_angleY_min, l_HIO.m.common.head_angleY_max, l_HIO.m.common.neck_rotation_ratio,
|
||||
0.0f, NULL);
|
||||
|
||||
mJntAnm.calcJntRad(0.2f, 1.0f, cM_s2rad(mCurAngle.y - field_0xd7e.y));
|
||||
|
|
@ -489,7 +490,7 @@ void daNpc_ZelR_c::setAttnPos() {
|
|||
mJntAnm.setEyeAngleY(eyePos, mCurAngle.y, 0, 1.0f, 0);
|
||||
|
||||
attention_info.position = current.pos;
|
||||
attention_info.position.y += l_HIO.m.field_0x0;
|
||||
attention_info.position.y += l_HIO.m.common.attention_offset;
|
||||
}
|
||||
|
||||
/* 80B702B0-80B703E0 001570 0130+00 1/0 0/0 0/0 .text setCollision__12daNpc_ZelR_cFv */
|
||||
|
|
@ -531,7 +532,7 @@ int daNpc_ZelR_c::drawDbgInfo() {
|
|||
/* 80B703E8-80B70430 0016A8 0048+00 1/1 0/0 0/0 .text selectAction__12daNpc_ZelR_cFv */
|
||||
int daNpc_ZelR_c::selectAction() {
|
||||
field_0xf84 = NULL;
|
||||
field_0xf84 = &daNpc_ZelR_c::talk;
|
||||
field_0xf84 = &daNpc_ZelR_c::wait;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -558,9 +559,6 @@ int daNpc_ZelR_c::setAction(int (daNpc_ZelR_c::*param_1)(void*)) {
|
|||
|
||||
/* 80B70504-80B706B0 0017C4 01AC+00 1/0 0/0 0/0 .text wait__12daNpc_ZelR_cFPv */
|
||||
int daNpc_ZelR_c::wait(void* param_1) {
|
||||
// NONMATCHING
|
||||
s16 sVar1;
|
||||
|
||||
switch (mMode) {
|
||||
case 0:
|
||||
case 1:
|
||||
|
|
@ -569,15 +567,16 @@ int daNpc_ZelR_c::wait(void* param_1) {
|
|||
mMode = 2;
|
||||
case 2:
|
||||
if (!mStagger.checkStagger()) {
|
||||
BOOL bVar1;
|
||||
if (srchPlayerActor()) {
|
||||
mJntAnm.lookPlayer(0);
|
||||
sVar1 = checkStep();
|
||||
bVar1 = checkStep();
|
||||
} else {
|
||||
mJntAnm.lookNone(0);
|
||||
sVar1 = home.angle.y != mCurAngle.y;
|
||||
bVar1 = home.angle.y != mCurAngle.y;
|
||||
}
|
||||
|
||||
if ((sVar1 & 0xff) && step(home.angle.y, -1, -1, 15, 0)) {
|
||||
if (bVar1 && step(home.angle.y, -1, -1, 15, 0)) {
|
||||
mMode = 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -619,51 +618,27 @@ BOOL daNpc_ZelR_c::talk(void* param_1) {
|
|||
}
|
||||
|
||||
/* 80B70814-80B70834 001AD4 0020+00 1/0 0/0 0/0 .text daNpc_ZelR_Create__FPv */
|
||||
static int daNpc_ZelR_Create(void* param_1) {
|
||||
daNpc_ZelR_c* i_this = (daNpc_ZelR_c*)param_1;
|
||||
return i_this->create();
|
||||
static int daNpc_ZelR_Create(void* a_this) {
|
||||
return static_cast<daNpc_ZelR_c*>(a_this)->create();
|
||||
}
|
||||
|
||||
/* 80B70834-80B70854 001AF4 0020+00 1/0 0/0 0/0 .text daNpc_ZelR_Delete__FPv */
|
||||
static int daNpc_ZelR_Delete(void* param_1) {
|
||||
daNpc_ZelR_c* i_this = (daNpc_ZelR_c*)param_1;
|
||||
return i_this->Delete();
|
||||
static int daNpc_ZelR_Delete(void* a_this) {
|
||||
return static_cast<daNpc_ZelR_c*>(a_this)->Delete();
|
||||
}
|
||||
|
||||
/* 80B70854-80B70874 001B14 0020+00 1/0 0/0 0/0 .text daNpc_ZelR_Execute__FPv */
|
||||
static int daNpc_ZelR_Execute(void* param_1) {
|
||||
daNpc_ZelR_c* i_this = (daNpc_ZelR_c*)param_1;
|
||||
return i_this->Execute();
|
||||
static int daNpc_ZelR_Execute(void* a_this) {
|
||||
return static_cast<daNpc_ZelR_c*>(a_this)->Execute();
|
||||
}
|
||||
|
||||
/* 80B70874-80B70894 001B34 0020+00 1/0 0/0 0/0 .text daNpc_ZelR_Draw__FPv */
|
||||
static int daNpc_ZelR_Draw(void* param_1) {
|
||||
daNpc_ZelR_c* i_this = (daNpc_ZelR_c*)param_1;
|
||||
return i_this->Draw();
|
||||
static int daNpc_ZelR_Draw(void* a_this) {
|
||||
return static_cast<daNpc_ZelR_c*>(a_this)->Draw();
|
||||
}
|
||||
|
||||
/* 80B70894-80B7089C 001B54 0008+00 1/0 0/0 0/0 .text daNpc_ZelR_IsDelete__FPv */
|
||||
static int daNpc_ZelR_IsDelete(void* param_0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80B71A34-80B71A3C 002CF4 0008+00 1/0 0/0 0/0 .text getEyeballRMaterialNo__12daNpc_ZelR_cFv */
|
||||
u16 daNpc_ZelR_c::getEyeballRMaterialNo() {
|
||||
return 3;
|
||||
}
|
||||
|
||||
/* 80B71A3C-80B71A44 002CFC 0008+00 1/0 0/0 0/0 .text getEyeballLMaterialNo__12daNpc_ZelR_cFv */
|
||||
u16 daNpc_ZelR_c::getEyeballLMaterialNo() {
|
||||
return 2;
|
||||
}
|
||||
|
||||
/* 80B71A44-80B71A4C 002D04 0008+00 1/0 0/0 0/0 .text getHeadJointNo__12daNpc_ZelR_cFv */
|
||||
s32 daNpc_ZelR_c::getHeadJointNo() {
|
||||
return 3;
|
||||
}
|
||||
|
||||
/* 80B71A4C-80B71A54 002D0C 0008+00 1/0 0/0 0/0 .text getBackboneJointNo__12daNpc_ZelR_cFv */
|
||||
s32 daNpc_ZelR_c::getBackboneJointNo() {
|
||||
static int daNpc_ZelR_IsDelete(void* a_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue