mirror of https://github.com/zeldaret/tp.git
d_a_npc_pouya matching (#2806)
* d_a_npc_pouya matching * mItemPartnerId fix
This commit is contained in:
parent
9ea1b81288
commit
2387021347
|
|
@ -134,7 +134,8 @@ jointNo$5024 = .rodata:0x00000110; // type:object size:0x4 scope:local data:4byt
|
|||
...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_348_data_10 = .data:0x00000010; // type:object size:0x10
|
||||
_three$localstatic4$sqrtf = .data:0x00000010; // type:object size:0x8
|
||||
_half$localstatic3$sqrtf = .data:0x00000018; // type:object size:0x8
|
||||
l_bmdData = .data:0x00000020; // type:object size:0x18 scope:global data:4byte
|
||||
l_evtList = .data:0x00000038; // type:object size:0x48 scope:global
|
||||
l_resNameList = .data:0x00000080; // type:object size:0xC scope:global
|
||||
|
|
|
|||
|
|
@ -133,7 +133,8 @@ jointNo$5024 = .rodata:0x00000110; // type:object size:0x4 scope:local data:4byt
|
|||
@stringBase0 = .rodata:0x00000120; // type:object size:0xD0 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_348_data_10 = .data:0x00000010; // type:object size:0x10
|
||||
_three$localstatic4$sqrtf = .data:0x00000010; // type:object size:0x8
|
||||
_half$localstatic3$sqrtf = .data:0x00000018; // type:object size:0x8
|
||||
l_bmdData = .data:0x00000020; // type:object size:0x18 scope:global data:4byte
|
||||
l_evtList = .data:0x00000038; // type:object size:0x48 scope:global
|
||||
l_resNameList = .data:0x00000080; // type:object size:0xC scope:global
|
||||
|
|
|
|||
|
|
@ -133,7 +133,8 @@ jointNo$5024 = .rodata:0x00000110; // type:object size:0x4 scope:local data:4byt
|
|||
@stringBase0 = .rodata:0x00000120; // type:object size:0xD0 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_348_data_10 = .data:0x00000010; // type:object size:0x10
|
||||
_three$localstatic4$sqrtf = .data:0x00000010; // type:object size:0x8
|
||||
_half$localstatic3$sqrtf = .data:0x00000018; // type:object size:0x8
|
||||
l_bmdData = .data:0x00000020; // type:object size:0x18 scope:global data:4byte
|
||||
l_evtList = .data:0x00000038; // type:object size:0x48 scope:global
|
||||
l_resNameList = .data:0x00000080; // type:object size:0xC scope:global
|
||||
|
|
|
|||
|
|
@ -1904,7 +1904,7 @@ config.libs = [
|
|||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_passer"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_passer2"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_post"),
|
||||
ActorRel(NonMatching, "d_a_npc_pouya"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_pouya"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_prayer", extra_cflags=[DANPCF_C_HACK]),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_raca"),
|
||||
ActorRel(Equivalent, "d_a_npc_rafrel", extra_cflags=[DANPCF_C_HACK]), # weak func order
|
||||
|
|
|
|||
|
|
@ -100,6 +100,7 @@ public:
|
|||
}
|
||||
}
|
||||
}
|
||||
void setOffset(int i_offset) { mOffset = i_offset; }
|
||||
|
||||
private:
|
||||
/* 0x00 */ sequenceStepData_c const* mpSeqData;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,33 @@
|
|||
|
||||
#include "d/actor/d_a_npc.h"
|
||||
|
||||
struct daNpc_Pouya_HIOParam {
|
||||
/* 0x00 */ daNpcT_HIOParam common;
|
||||
};
|
||||
|
||||
class daNpc_Pouya_Param_c {
|
||||
public:
|
||||
/* 80B24978 */ virtual ~daNpc_Pouya_Param_c() {}
|
||||
|
||||
static const daNpc_Pouya_HIOParam m;
|
||||
};
|
||||
|
||||
#if DEBUG
|
||||
class daNpc_Pouya_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
daNpc_Pouya_HIO_c();
|
||||
|
||||
void listenPropertyEvent(const JORPropertyEvent*);
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
daNpc_Pouya_HIOParam m;
|
||||
};
|
||||
|
||||
#define NPC_POUYA_HIO_CLASS daNpc_Pouya_HIO_c
|
||||
#else
|
||||
#define NPC_POUYA_HIO_CLASS daNpc_Pouya_Param_c
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @ingroup actors-npcs
|
||||
* @class daNpc_Pouya_c
|
||||
|
|
@ -11,71 +38,133 @@
|
|||
* @details
|
||||
*
|
||||
*/
|
||||
class daNpc_Pouya_c : public fopAc_ac_c {
|
||||
class daNpc_Pouya_c : public daNpcT_c {
|
||||
public:
|
||||
typedef int (daNpc_Pouya_c::*cutFunc)(int);
|
||||
typedef int (daNpc_Pouya_c::*actionFunc)(void*);
|
||||
|
||||
enum Type {
|
||||
TYPE_0,
|
||||
TYPE_1,
|
||||
TYPE_2,
|
||||
TYPE_3,
|
||||
TYPE_4,
|
||||
TYPE_5,
|
||||
};
|
||||
|
||||
enum FaceMotion {
|
||||
/* 0x00 */ FACE_MOT_UNK_0 = 0,
|
||||
/* 0x01 */ FACE_MOT_UNK_1 = 1,
|
||||
/* 0x02 */ FACE_MOT_UNK_2 = 2,
|
||||
/* 0x03 */ FACE_MOT_UNK_3 = 3,
|
||||
/* 0x04 */ FACE_MOT_UNK_4 = 4,
|
||||
/* 0x05 */ FACE_MOT_UNK_5 = 5,
|
||||
/* 0x06 */ FACE_MOT_UNK_6 = 6,
|
||||
/* 0x07 */ FACE_MOT_UNK_7 = 7,
|
||||
/* 0x08 */ FACE_MOT_UNK_8 = 8,
|
||||
/* 0x09 */ FACE_MOT_UNK_9 = 9,
|
||||
/* 0x0A */ FACE_MOT_UNK_10 = 10,
|
||||
/* 0x0B */ FACE_MOT_UNK_11 = 11,
|
||||
/* 0x0C */ FACE_MOT_UNK_12 = 12,
|
||||
/* 0x0D */ FACE_MOT_UNK_13 = 13,
|
||||
/* 0x0E */ FACE_MOT_UNK_14 = 14,
|
||||
/* 0x0F */ FACE_MOT_UNK_15 = 15,
|
||||
/* 0x10 */ FACE_MOT_UNK_16 = 16,
|
||||
/* 0x11 */ FACE_MOT_UNK_17 = 17,
|
||||
};
|
||||
|
||||
enum Motion {
|
||||
/* 0x00 */ MOT_UNK_0 = 0,
|
||||
/* 0x01 */ MOT_UNK_1 = 1,
|
||||
/* 0x04 */ MOT_UNK_4 = 4,
|
||||
/* 0x08 */ MOT_UNK_8 = 8,
|
||||
/* 0x0A */ MOT_UNK_10 = 10,
|
||||
/* 0x0F */ MOT_UNK_15 = 15,
|
||||
};
|
||||
|
||||
/* 80AADDAC */ ~daNpc_Pouya_c();
|
||||
/* 80AADEE0 */ void create();
|
||||
/* 80AAE1AC */ void CreateHeap();
|
||||
/* 80AAE788 */ void Delete();
|
||||
/* 80AAE7BC */ void Execute();
|
||||
/* 80AAE7DC */ void Draw();
|
||||
/* 80AAE870 */ void createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80AAE890 */ void ctrlJointCallBack(J3DJoint*, int);
|
||||
/* 80AADEE0 */ int create();
|
||||
/* 80AAE1AC */ int CreateHeap();
|
||||
/* 80AAE788 */ int Delete();
|
||||
/* 80AAE7BC */ int Execute();
|
||||
/* 80AAE7DC */ int Draw();
|
||||
/* 80AAE870 */ static int createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80AAE890 */ static int ctrlJointCallBack(J3DJoint*, int);
|
||||
/* 80AAE8E8 */ u8 getType();
|
||||
/* 80AAE94C */ void isDelete();
|
||||
/* 80AAE94C */ BOOL isDelete();
|
||||
/* 80AAE9D8 */ void reset();
|
||||
/* 80AAEBCC */ void ctrlSubFaceMotion(int);
|
||||
/* 80AAEDB8 */ void afterJntAnm(int);
|
||||
/* 80AAEE44 */ void setParam();
|
||||
/* 80AAEFB4 */ void checkChangeEvt();
|
||||
/* 80AAEFB4 */ BOOL checkChangeEvt();
|
||||
/* 80AAF148 */ void setAfterTalkMotion();
|
||||
/* 80AAF1F0 */ void srchActors();
|
||||
/* 80AAF1F4 */ void evtTalk();
|
||||
/* 80AAF294 */ void evtCutProc();
|
||||
/* 80AAF1F4 */ BOOL evtTalk();
|
||||
/* 80AAF294 */ BOOL evtCutProc();
|
||||
/* 80AAF35C */ void action();
|
||||
/* 80AAF4F8 */ void beforeMove();
|
||||
/* 80AAF5BC */ void setAttnPos();
|
||||
/* 80AAF8E4 */ void setCollision();
|
||||
/* 80AAFA5C */ bool drawDbgInfo();
|
||||
/* 80AAFA5C */ int drawDbgInfo();
|
||||
/* 80AAFA64 */ void drawOtherMdl();
|
||||
/* 80AAFB4C */ void afterSetMotionAnm(int, int, f32, int);
|
||||
/* 80AAFBDC */ void selectAction();
|
||||
/* 80AAFC24 */ void chkAction(int (daNpc_Pouya_c::*)(void*));
|
||||
/* 80AAFC50 */ void setAction(int (daNpc_Pouya_c::*)(void*));
|
||||
/* 80AAFB4C */ bool afterSetMotionAnm(int, int, f32, int);
|
||||
/* 80AAFBDC */ int selectAction();
|
||||
/* 80AAFC24 */ BOOL chkAction(int (daNpc_Pouya_c::*)(void*));
|
||||
/* 80AAFC50 */ int setAction(int (daNpc_Pouya_c::*)(void*));
|
||||
/* 80AAFCF8 */ void setPrtcls();
|
||||
/* 80AAFE08 */ void cutHaveFavorToAsk(int);
|
||||
/* 80AB04A8 */ void wait(void*);
|
||||
/* 80AB0A7C */ void talk(void*);
|
||||
/* 80AB1E94 */ daNpc_Pouya_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**);
|
||||
/* 80AB1F54 */ u16 getEyeballMaterialNo();
|
||||
/* 80AB1F5C */ s32 getHeadJointNo();
|
||||
/* 80AB1F64 */ s32 getNeckJointNo();
|
||||
/* 80AB1F6C */ bool getBackboneJointNo();
|
||||
/* 80AB1F74 */ void checkChangeJoint(int);
|
||||
/* 80AB1F84 */ void checkRemoveJoint(int);
|
||||
/* 80AAFE08 */ int cutHaveFavorToAsk(int);
|
||||
/* 80AB04A8 */ int wait(void*);
|
||||
/* 80AB0A7C */ int talk(void*);
|
||||
/* 80AB1E94 */ daNpc_Pouya_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) {}
|
||||
/* 80AB1F54 */ u16 getEyeballMaterialNo() { return 1; }
|
||||
/* 80AB1F5C */ s32 getHeadJointNo() { return 4; }
|
||||
/* 80AB1F64 */ s32 getNeckJointNo() { return 3; }
|
||||
/* 80AB1F6C */ s32 getBackboneJointNo() { return 1; }
|
||||
/* 80AB1F74 */ BOOL checkChangeJoint(int i_joint) { return i_joint == 4; }
|
||||
/* 80AB1F84 */ BOOL checkRemoveJoint(int i_joint) { return i_joint == 8; }
|
||||
|
||||
MtxP getHeadMtx() { return mpMorf->getModel()->getAnmMtx(4); }
|
||||
u8 getBitSW() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
|
||||
|
||||
int getFlowNodeNo() {
|
||||
u16 nodeNo = home.angle.x;
|
||||
if (nodeNo == 0xffff) {
|
||||
return -1;
|
||||
}
|
||||
return nodeNo;
|
||||
}
|
||||
|
||||
BOOL chkPouyaB() { return (mType == TYPE_2 || mType == TYPE_3 || mType == TYPE_4); }
|
||||
|
||||
MtxP getHeadMtx() { return mpMorf[0]->getModel()->getAnmMtx(4); }
|
||||
|
||||
static char* mCutNameList[3];
|
||||
static u8 mCutList[36];
|
||||
static cutFunc mCutList[3];
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x578 - 0x568];
|
||||
/* 0x578 */ mDoExt_McaMorfSO* mpMorf;
|
||||
/* 0x57C */ u8 field_0x57c[0xfd4 - 0x57c];
|
||||
/* 0xE40 */ NPC_POUYA_HIO_CLASS* mpHIO;
|
||||
/* 0xE44 */ J3DModel* mpModel[1];
|
||||
/* 0xE48 */ dCcD_Cyl mCyl;
|
||||
/* 0xF84 */ u8 mType;
|
||||
/* 0xF88 */ daNpcT_Path_c mPath;
|
||||
/* 0xFB0 */ actionFunc field_0xfb0;
|
||||
/* 0xFBC */ actionFunc mAction;
|
||||
/* 0xFC8 */ u32 field_0xfc8;
|
||||
/* 0xFCC */ s8 field_0xfcc;
|
||||
/* 0xFCD */ s8 field_0xfcd;
|
||||
/* 0xFCE */ u8 field_0xfce;
|
||||
/* 0xFCF */ u8 field_0xfcf;
|
||||
/* 0xFD0 */ u8 field_0xfd0;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpc_Pouya_c) == 0xfd4);
|
||||
|
||||
class daNpc_Pouya_Param_c {
|
||||
public:
|
||||
/* 80AB1F94 */ ~daNpc_Pouya_Param_c();
|
||||
|
||||
static u8 const m[140];
|
||||
};
|
||||
|
||||
|
||||
#endif /* D_A_NPC_POUYA_H */
|
||||
|
|
|
|||
|
|
@ -69,6 +69,7 @@ public:
|
|||
static void endFrame() { JFWDisplay::getManager()->endFrame(); }
|
||||
static void offFade() { mFade = 0; }
|
||||
static u8 isFade() { return mFade; }
|
||||
static void fadeIn_f(f32 i_fadeSpeed, _GXColor& i_fadeColor) { fadeOut_f(-i_fadeSpeed, i_fadeColor); }
|
||||
static void offBlure() { mBlureFlag = false; }
|
||||
static bool isBlure() { return mBlureFlag; }
|
||||
static void setBlureRate(u8 i_rate) { mBlureRate = i_rate; }
|
||||
|
|
|
|||
|
|
@ -90,6 +90,7 @@ enum FaceMotion {
|
|||
/* 0x07 */ FACE_MOT_UNK_7 = 7,
|
||||
/* 0x08 */ FACE_MOT_UNK_8 = 8,
|
||||
/* 0x09 */ FACE_MOT_UNK_9 = 9,
|
||||
/* 0x0A */ FACE_MOT_UNK_10 = 10,
|
||||
/* 0x0B */ FACE_MOT_UNK_11 = 11,
|
||||
/* 0x0C */ FACE_MOT_UNK_12 = 12,
|
||||
/* 0x0D */ FACE_MOT_UNK_13 = 13,
|
||||
|
|
@ -629,10 +630,10 @@ BOOL daNpc_Lud_c::checkChangeEvt() {
|
|||
/* 80A6BE6C-80A6BEE4 0013AC 0078+00 1/0 0/0 0/0 .text setAfterTalkMotion__11daNpc_Lud_cFv
|
||||
*/
|
||||
void daNpc_Lud_c::setAfterTalkMotion() {
|
||||
int iVar2 = MOT_UNK_18;
|
||||
int iVar2 = FACE_MOT_UNK_18;
|
||||
switch (mFaceMotionSeqMngr.getNo()) {
|
||||
case MOT_UNK_1:
|
||||
iVar2 = MOT_UNK_10;
|
||||
case FACE_MOT_UNK_1:
|
||||
iVar2 = FACE_MOT_UNK_10;
|
||||
break;
|
||||
}
|
||||
mFaceMotionSeqMngr.setNo(iVar2, -1.0f, 0, 0);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue