mirror of
https://github.com/zeldaret/tww.git
synced 2026-10-09 05:31:51 -04:00
d_a_npc_mn (#1210)
* class structure * .data * .rodata * small fns * talk2() * phase_1, phase_2 * createHeap(), _delete() * createInit, eventMesSetInit * _draw(), _execute() * not inlines * executeWait() * weird bool vs BOOL return * executes * more events * talk3() * getMsg() and anm fns * privateCut() * chkAttention() * lookBack() * remaining fns * fieldNames * matching retail * D44J01 * add state enums * review comments
This commit is contained in:
+1
-1
@@ -1700,7 +1700,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_npc_kp1"),
|
||||
ActorRel(Matching, "d_a_npc_ls1"),
|
||||
ActorRel(Matching, "d_a_npc_mk"),
|
||||
ActorRel(NonMatching, "d_a_npc_mn"),
|
||||
ActorRel(Matching, "d_a_npc_mn"),
|
||||
ActorRel(Matching, "d_a_npc_mt"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_npc_nz"),
|
||||
ActorRel(NonMatching, "d_a_npc_ob1"),
|
||||
|
||||
+189
-48
@@ -1,92 +1,233 @@
|
||||
#ifndef D_A_NPC_MN_H
|
||||
#define D_A_NPC_MN_H
|
||||
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "JSystem/J3DGraphAnimator/J3DAnimation.h"
|
||||
#include "SSystem/SComponent/c_phase.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_npc.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
|
||||
struct sMnAnmDat {
|
||||
|
||||
};
|
||||
/* 0x00 */ u8 mBckIdx;
|
||||
/* 0x01 */ u8 mMorf;
|
||||
/* 0x02 */ s8 mLoopCount;
|
||||
}; // Size: 0x03
|
||||
|
||||
class daNpcMn_c : public fopAc_ac_c {
|
||||
struct NpcDatStruct {
|
||||
/* 0x00 */ s16 mMax_head_x;
|
||||
/* 0x02 */ s16 mMax_head_y;
|
||||
/* 0x04 */ s16 mMax_backbone_x;
|
||||
/* 0x06 */ s16 mMax_backbone_y;
|
||||
/* 0x08 */ s16 mMin_head_x;
|
||||
/* 0x0A */ s16 mMin_head_y;
|
||||
/* 0x0C */ s16 mMin_backbone_x;
|
||||
/* 0x0E */ s16 mMin_backbone_y;
|
||||
/* 0x10 */ s16 mMax_turn_step;
|
||||
/* 0x12 */ s16 field_0x12;
|
||||
/* 0x14 */ f32 mPlayerEyeOfsY;
|
||||
/* 0x18 */ f32 mAttnPosOfsY;
|
||||
/* 0x1C */ f32 mEyePosOfsY;
|
||||
/* 0x20 */ f32 mAttnDist;
|
||||
/* 0x24 */ f32 mNearDist;
|
||||
/* 0x28 */ s16 mAttnAngle;
|
||||
/* 0x2A */ s16 mLookAtMaxVel;
|
||||
/* 0x2C */ s16 mWalkLookAtMaxVel;
|
||||
/* 0x2E */ s16 field_0x2E;
|
||||
/* 0x30 */ f32 mCylRadius;
|
||||
/* 0x34 */ f32 mWalkAnmRate;
|
||||
/* 0x38 */ f32 mWalkSpeed;
|
||||
/* 0x3C */ s16 field_0x3C;
|
||||
/* 0x3E */ s16 field_0x3E;
|
||||
/* 0x40 */ s16 mWaitTimerMin;
|
||||
/* 0x42 */ s16 mWaitTimerMax;
|
||||
/* 0x44 */ s16 mTurnWaitMin;
|
||||
/* 0x46 */ s16 mTurnWaitMax;
|
||||
/* 0x48 */ s16 mLookResetTimer;
|
||||
/* 0x4A */ s8 mbAllowBodyTurn;
|
||||
/* 0x4B */ s8 mbLookOnly;
|
||||
}; // Size: 0x4C
|
||||
|
||||
class daNpcMn_c : public fopNpc_npc_c {
|
||||
public:
|
||||
void getNpcNo() {}
|
||||
void getPhaseP() {}
|
||||
void getPosFlag() {}
|
||||
void setResFlag(unsigned char) {}
|
||||
enum Prm_e {
|
||||
PRM_SWITCH_W = 0x8,
|
||||
PRM_SWITCH_S = 0x8,
|
||||
PRM_SWITCH2_W = 0x8,
|
||||
PRM_SWITCH2_S = 0x10,
|
||||
PRM_RAIL_W = 0x8,
|
||||
PRM_RAIL_S = 0x18,
|
||||
};
|
||||
|
||||
enum MoveProcIdx {
|
||||
MOVE_PROC_WAIT = 0,
|
||||
MOVE_PROC_TALK = 1,
|
||||
MOVE_PROC_WALK = 2,
|
||||
MOVE_PROC_TURN = 3,
|
||||
MOVE_PROC_TALK3 = 4,
|
||||
};
|
||||
|
||||
enum LookMode {
|
||||
LOOK_MODE_NONE = 0,
|
||||
LOOK_MODE_ATTN = 1,
|
||||
LOOK_MODE_TURN = 2,
|
||||
};
|
||||
|
||||
enum Talk3State {
|
||||
TALK3_INIT = 0,
|
||||
TALK3_ORDER = 1,
|
||||
TALK3_TALK = 2,
|
||||
};
|
||||
|
||||
enum BckIdx {
|
||||
BCK_WAIT01 = 0,
|
||||
BCK_WAIT02 = 1,
|
||||
BCK_TALK01 = 2,
|
||||
BCK_TALK02 = 3,
|
||||
BCK_WALK = 4,
|
||||
BCK_BIKKURI = 5,
|
||||
BCK_JUMP01 = 6,
|
||||
BCK_JUMP02 = 7,
|
||||
BCK_NULL = 0xFF,
|
||||
};
|
||||
|
||||
u8 getNpcNo() { return mNpcNo; }
|
||||
request_of_phase_process_class* getPhaseP() { return &mPhs; }
|
||||
u8 getPosFlag() {
|
||||
return mPosFlag;
|
||||
}
|
||||
void setResFlag(u8 flag) {
|
||||
mResFlag = flag;
|
||||
}
|
||||
|
||||
daNpcMn_c();
|
||||
cPhs_State _create();
|
||||
void createHeap();
|
||||
void createInit();
|
||||
BOOL createHeap();
|
||||
cPhs_State createInit();
|
||||
bool _delete();
|
||||
bool _draw();
|
||||
bool _execute();
|
||||
void executeCommon();
|
||||
void executeSetMode(unsigned char);
|
||||
void executeWaitInit();
|
||||
u8 executeCommon();
|
||||
void executeSetMode(u8);
|
||||
int executeWaitInit();
|
||||
void executeWait();
|
||||
void executeTalkInit();
|
||||
int executeTalkInit();
|
||||
void executeTalk();
|
||||
void executeTalk3Init();
|
||||
int executeTalk3Init();
|
||||
void executeTalk3();
|
||||
void executeWalkInit();
|
||||
int executeWalkInit();
|
||||
void executeWalk();
|
||||
void executeTurnInit();
|
||||
int executeTurnInit();
|
||||
void executeTurn();
|
||||
void checkOrder();
|
||||
void eventOrder();
|
||||
void eventMove();
|
||||
void privateCut();
|
||||
void eventMesSetInit(int);
|
||||
void eventMesSet();
|
||||
bool eventMesSet();
|
||||
void eventGetItemInit();
|
||||
void eventWaitInit(int);
|
||||
void eventWait(int);
|
||||
bool eventWait(int);
|
||||
void eventSwOnInit(int);
|
||||
void eventSwOn();
|
||||
bool eventSwOn();
|
||||
void eventHatchInit();
|
||||
void eventHatch();
|
||||
bool eventHatch();
|
||||
void eventBikkuriInit(int);
|
||||
void eventBikkuri();
|
||||
bool eventBikkuri();
|
||||
void eventTurnInit();
|
||||
void eventTurn(int);
|
||||
bool eventTurn(int);
|
||||
void eventWalkInit();
|
||||
void eventWalk();
|
||||
bool eventWalk();
|
||||
void eventLookInit();
|
||||
void eventLook();
|
||||
bool eventLook();
|
||||
void eventJumpInit(int);
|
||||
void eventJump();
|
||||
void talk2(int);
|
||||
void talk3(int);
|
||||
void next_msgStatus(unsigned long*);
|
||||
void getMsg();
|
||||
void getMsg3();
|
||||
bool eventJump();
|
||||
u16 talk2(int);
|
||||
u16 talk3(int);
|
||||
virtual u16 next_msgStatus(u32*);
|
||||
virtual u32 getMsg();
|
||||
u32 getMsg3();
|
||||
void chkMsg();
|
||||
void setMessage(unsigned long);
|
||||
void setMessage(u32);
|
||||
void setAnmFromMsgTag();
|
||||
void getPrmNpcNo();
|
||||
void getPrmRailID();
|
||||
void getPrmSwitchBit();
|
||||
void getPrmSwitchBit2();
|
||||
bool getPrmNpcNo();
|
||||
u8 getPrmRailID();
|
||||
u8 getPrmSwitchBit();
|
||||
u8 getPrmSwitchBit2();
|
||||
void setMtx();
|
||||
void chkAttention();
|
||||
void lookBack();
|
||||
void initTexPatternAnm(bool);
|
||||
BOOL initTexPatternAnm(bool);
|
||||
void playTexPatternAnm();
|
||||
void playAnm();
|
||||
void setAnm(unsigned char, int, float);
|
||||
void setAnmTbl(sMnAnmDat*);
|
||||
void XyCheckCB(int);
|
||||
void getRand(int);
|
||||
void setCollision(dCcD_Cyl*, cXyz, float, float);
|
||||
void chkEndEvent();
|
||||
void chkPosNo();
|
||||
void getPosNo();
|
||||
void isChangePos(unsigned char);
|
||||
void setAnm(u8, int, f32);
|
||||
bool setAnmTbl(sMnAnmDat*);
|
||||
s16 XyCheckCB(int);
|
||||
int getRand(int);
|
||||
void setCollision(dCcD_Cyl*, cXyz, f32, f32);
|
||||
BOOL chkEndEvent();
|
||||
u8 chkPosNo();
|
||||
u8 getPosNo();
|
||||
BOOL isChangePos(u8);
|
||||
|
||||
static const char m_arcname[];
|
||||
|
||||
public:
|
||||
/* Place member variables here */
|
||||
};
|
||||
/* 0x6C4 */ u8 field_0x6C4[0x60];
|
||||
/* 0x724 */ request_of_phase_process_class mPhs;
|
||||
/* 0x72C */ request_of_phase_process_class mPhsMethod;
|
||||
/* 0x734 */ J3DModel* mpModel;
|
||||
/* 0x738 */ J3DAnmTexPattern* m_head_tex_pattern;
|
||||
/* 0x73C */ mDoExt_btpAnm mBtpAnm;
|
||||
/* 0x750 */ u32 mShadowId;
|
||||
/* 0x754 */ dNpc_PathRun_c mPathRun;
|
||||
/* 0x75C */ cXyz field_0x75C;
|
||||
/* 0x768 */ cXyz mLookAtPos;
|
||||
/* 0x774 */ sMnAnmDat* mpAnmDat;
|
||||
/* 0x778 */ u32* mpMsgNo;
|
||||
/* 0x77C */ f32 mTargetSpeedF;
|
||||
/* 0x780 */ f32 mAnmMorfOverride;
|
||||
/* 0x784 */ f32 mAttnDist;
|
||||
/* 0x788 */ f32 mJumpSpeedY;
|
||||
/* 0x78C */ u32 mItemNo;
|
||||
/* 0x790 */ u32 mFigureArg;
|
||||
/* 0x794 */ bool mHeadOnlyFollow;
|
||||
/* 0x795 */ u8 field_0x795;
|
||||
/* 0x796 */ s16 mHatchEventIdx;
|
||||
/* 0x798 */ s16 mWaitTimer;
|
||||
/* 0x79A */ s16 mLookResetTimer;
|
||||
/* 0x79C */ s16 mEventTimer;
|
||||
/* 0x79E */ s16 mAttnAngle;
|
||||
/* 0x7A0 */ s16 mHomeYRot;
|
||||
/* 0x7A2 */ u16 mLastMsgStatus;
|
||||
/* 0x7A4 */ u16 mEtcFlag;
|
||||
/* 0x7A6 */ s16 field_0x7A6;
|
||||
/* 0x7A8 */ s16 mBtpTimer;
|
||||
/* 0x7AA */ s16 mLookAtMaxVel;
|
||||
/* 0x7AC */ s16 mTurnVel;
|
||||
/* 0x7AE */ s16 mTargetYRot;
|
||||
/* 0x7B0 */ u8 mTalkOrder;
|
||||
/* 0x7B1 */ u8 mbPlayerAttention;
|
||||
/* 0x7B2 */ u8 mEvtOrderType;
|
||||
/* 0x7B3 */ u8 mBtpFrame;
|
||||
/* 0x7B4 */ u8 mMoveState;
|
||||
/* 0x7B5 */ u8 mResFlag;
|
||||
/* 0x7B6 */ u8 mNpcNo;
|
||||
/* 0x7B7 */ u8 mSwitchFlag;
|
||||
/* 0x7B8 */ u8 mBckIdx;
|
||||
/* 0x7B9 */ u8 mAnmFlag;
|
||||
/* 0x7BA */ s8 mAnmLoopCnt;
|
||||
/* 0x7BB */ s8 mActIdx;
|
||||
/* 0x7BC */ u8 field_0x7BC;
|
||||
/* 0x7BD */ s8 mLookMode;
|
||||
/* 0x7BE */ u8 mbAllowBodyTurn;
|
||||
/* 0x7BF */ u8 mbLookOnly;
|
||||
/* 0x7C0 */ u8 mbNearPlayer;
|
||||
/* 0x7C1 */ u8 mPosFlag;
|
||||
/* 0x7C2 */ s8 mShoulderRJoint;
|
||||
/* 0x7C3 */ u8 mTalk3State;
|
||||
/* 0x7C4 */ u8 mbLookFigure;
|
||||
/* 0x7C5 */ u8 mFigureMsgIdx;
|
||||
/* 0x7C6 */ u8 field_0x7C6[0x7C8 - 0x7C6];
|
||||
}; // Size: 0x7C8
|
||||
|
||||
#endif /* D_A_NPC_MN_H */
|
||||
|
||||
+1
-1
@@ -173,7 +173,7 @@ enum {
|
||||
/* 0xA5 */ DSNAP_TYPE_UNKA5,
|
||||
/* 0xA6 */ DSNAP_TYPE_UNKA6,
|
||||
/* 0xA7 */ DSNAP_TYPE_NPC_MT,
|
||||
/* 0xA8 */ DSNAP_TYPE_UNKA8,
|
||||
/* 0xA8 */ DSNAP_TYPE_NPC_MN,
|
||||
/* 0xA9 */ DSNAP_TYPE_UNKA9,
|
||||
/* 0xAA */ DSNAP_TYPE_BK,
|
||||
/* 0xAB */ DSNAP_TYPE_UNKAB,
|
||||
|
||||
+1425
-123
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user