mirror of https://github.com/zeldaret/tp.git
d_a_npc_yelia equivalent (#2310)
This commit is contained in:
parent
e3d0b94122
commit
4453d0617e
|
|
@ -1794,7 +1794,7 @@ config.libs = [
|
|||
ActorRel(NonMatching, "d_a_npc_shaman"),
|
||||
ActorRel(NonMatching, "d_a_npc_shoe"),
|
||||
ActorRel(NonMatching, "d_a_npc_shop0"),
|
||||
ActorRel(Equivalent, "d_a_npc_shop_maro"), # daNpcT_c base functions missing
|
||||
ActorRel(Equivalent, "d_a_npc_shop_maro"), # weak function order
|
||||
ActorRel(NonMatching, "d_a_npc_sola"),
|
||||
ActorRel(NonMatching, "d_a_npc_soldierA"),
|
||||
ActorRel(NonMatching, "d_a_npc_soldierB"),
|
||||
|
|
@ -1813,7 +1813,7 @@ config.libs = [
|
|||
ActorRel(NonMatching, "d_a_npc_yamid"),
|
||||
ActorRel(NonMatching, "d_a_npc_yamis"),
|
||||
ActorRel(NonMatching, "d_a_npc_yamit"),
|
||||
ActorRel(NonMatching, "d_a_npc_yelia"),
|
||||
ActorRel(Equivalent, "d_a_npc_yelia"), # weak function order
|
||||
ActorRel(NonMatching, "d_a_npc_ykm"),
|
||||
ActorRel(NonMatching, "d_a_npc_ykw"),
|
||||
ActorRel(NonMatching, "d_a_npc_zanb"),
|
||||
|
|
|
|||
|
|
@ -52,9 +52,12 @@ public:
|
|||
|
||||
u32 chkArgFlag(u8 i_flag) { return field_0x93d & i_flag; }
|
||||
|
||||
void setOffsetPos(cXyz i_pos) { mOffsetPos = i_pos; }
|
||||
void setMaxScale(f32 i_scale) { mMaxScale = i_scale; }
|
||||
|
||||
private:
|
||||
/* 0x92C */ cXyz field_0x92c;
|
||||
/* 0x938 */ f32 field_0x938;
|
||||
/* 0x92C */ cXyz mOffsetPos;
|
||||
/* 0x938 */ f32 mMaxScale;
|
||||
/* 0x93C */ u8 field_0x93c;
|
||||
/* 0x93D */ u8 field_0x93d;
|
||||
/* 0x93E */ u8 field_0x93e;
|
||||
|
|
|
|||
|
|
@ -158,7 +158,7 @@ public:
|
|||
sVar3 * (1.0f / param_2);
|
||||
}
|
||||
|
||||
void setEyeAngleY(cXyz param_1, s16 param_2, int param_3, f32 param_4, s16 param_5) {
|
||||
void setEyeAngleY(cXyz param_1, s16 param_2, BOOL param_3, f32 param_4, s16 param_5) {
|
||||
cXyz cStack_50;
|
||||
s16 sVar3 = 0;
|
||||
if (mAttnPosP != NULL) {
|
||||
|
|
@ -169,7 +169,7 @@ public:
|
|||
sVar3 -= diff;
|
||||
sVar3 += param_5;
|
||||
}
|
||||
if (param_3 != 0) {
|
||||
if (param_3) {
|
||||
sVar3 = -sVar3;
|
||||
}
|
||||
mEyeAngle.y = field_0x132.y * (1.0f - 1.0f / param_4) +
|
||||
|
|
@ -225,8 +225,8 @@ public:
|
|||
void clrDirectFlag() { mDirectFlag = 0; }
|
||||
int getMode() { return mMode; }
|
||||
|
||||
int setMode(int mode, int param_2) {
|
||||
if (mode >= 0 && (param_2 != 0 || mode != mMode)) {
|
||||
int setMode(int mode, BOOL param_2) {
|
||||
if (mode >= 0 && (param_2 || mode != mMode)) {
|
||||
mActrMngr.remove();
|
||||
mAttnPosP = NULL;
|
||||
field_0x14c = 0.0f;
|
||||
|
|
@ -245,28 +245,48 @@ public:
|
|||
mDirectFlag = isDirect;
|
||||
}
|
||||
|
||||
enum LookMode {
|
||||
/* 0 */ LOOK_NONE,
|
||||
/* 1 */ LOOK_PLAYER,
|
||||
/* 2 */ LOOK_ACTOR,
|
||||
/* 3 */ LOOK_POS,
|
||||
/* 4 */ LOOK_CAMERA,
|
||||
/* 5 */ LOOK_MODE_5,
|
||||
/* 6 */ LOOK_MODE_6,
|
||||
/* 7 */ LOOK_MODE_7,
|
||||
/* 8 */ LOOK_MODE_8,
|
||||
};
|
||||
|
||||
void lookNone(u8 isDirect) {
|
||||
setMode(0, 0);
|
||||
setMode(LOOK_NONE, FALSE);
|
||||
setDirect(isDirect);
|
||||
}
|
||||
|
||||
void lookPlayer(u8 isDirect) {
|
||||
setMode(1, 0);
|
||||
setMode(LOOK_PLAYER, FALSE);
|
||||
setDirect(isDirect);
|
||||
}
|
||||
|
||||
void lookCamera(u8 isDirect) {
|
||||
setMode(4, 0);
|
||||
setMode(LOOK_CAMERA, FALSE);
|
||||
setDirect(isDirect);
|
||||
}
|
||||
|
||||
void lookActor(fopAc_ac_c* param_1, f32 param_2, u8 isDirect) {
|
||||
if (setMode(2, mActrMngr.getActorP() != param_1) && fopAcM_IsActor(param_1)) {
|
||||
if (setMode(LOOK_ACTOR, mActrMngr.getActorP() != param_1) && fopAcM_IsActor(param_1)) {
|
||||
mActrMngr.entry(param_1);
|
||||
field_0x14c = param_2;
|
||||
}
|
||||
setDirect(isDirect);
|
||||
}
|
||||
|
||||
void lookPos(cXyz* i_pos, u8 i_direct) {
|
||||
BOOL tmp = mAttnPosP != i_pos;
|
||||
if (setMode(LOOK_POS, tmp)) {
|
||||
mAttnPosP = i_pos;
|
||||
}
|
||||
setDirect(i_direct);
|
||||
}
|
||||
};
|
||||
|
||||
class daNpcT_DmgStagger_c {
|
||||
|
|
@ -299,8 +319,8 @@ private:
|
|||
};
|
||||
|
||||
struct daNpcT_evtData_c {
|
||||
const char* eventName;
|
||||
int num;
|
||||
/* 0x0 */ const char* eventName;
|
||||
/* 0x4 */ int num;
|
||||
};
|
||||
|
||||
struct daNpcT_faceMotionAnmData_c {
|
||||
|
|
@ -412,7 +432,7 @@ public:
|
|||
/* 0x674 */ mDoExt_bpkAnm mBpkAnm;
|
||||
/* 0x68C */ dBgS_ObjAcch mAcch;
|
||||
/* 0x864 */ dCcD_Stts mCcStts;
|
||||
/* 0x8A0 */ dBgS_AcchCir field_0x8a0;
|
||||
/* 0x8A0 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x8E0 */ request_of_phase_process_class mPhase[10];
|
||||
/* 0x930 */ cBgS_GndChk mGndChk;
|
||||
/* 0x96C */ daNpcT_MatAnm_c* mpMatAnm;
|
||||
|
|
@ -420,10 +440,10 @@ public:
|
|||
/* 0x974 */ dMsgFlow_c mFlow;
|
||||
/* 0x9C0 */ dPaPoT_c field_0x9c0;
|
||||
/* 0xA40 */ dCcD_Stts field_0xa40;
|
||||
/* 0xA7C */ u32 field_0xa7c;
|
||||
/* 0xA7C */ u32 mFlowNodeNo;
|
||||
/* 0xA80 */ f32 field_0xa80;
|
||||
/* 0xA84 */ f32 field_0xa84;
|
||||
/* 0xA88 */ u8 field_0xa88;
|
||||
/* 0xA84 */ f32 mMorfFrames;
|
||||
/* 0xA88 */ bool mCreating;
|
||||
/* 0xA89 */ bool mTwilight;
|
||||
/* 0xA8C */ dBgS_GndChk field_0xa8c;
|
||||
/* 0xAE0 */ dBgS_LinChk mLinChk;
|
||||
|
|
@ -432,7 +452,7 @@ public:
|
|||
/* 0xB98 */ daNpcT_ActorMngr_c mPlayerActorMngr;
|
||||
/* 0xBA0 */ daNpcT_ActorMngr_c field_0xba0;
|
||||
/* 0xBA8 */ daNpcT_JntAnm_c mJntAnm;
|
||||
/* 0xD08 */ daNpcT_DmgStagger_c field_0xd08;
|
||||
/* 0xD08 */ daNpcT_DmgStagger_c mStagger;
|
||||
/* 0xD24 */ cXyz mFootLPos;
|
||||
/* 0xD30 */ cXyz mFootRPos;
|
||||
/* 0xD3C */ cXyz mFootLOffset;
|
||||
|
|
@ -450,14 +470,14 @@ public:
|
|||
/* 0xD9C */ u32 mMsgId;
|
||||
/* 0xDA0 */ u32 mHitodamaPrtclKey[2];
|
||||
/* 0xDA8 */ u32 mPolSound;
|
||||
/* 0xDAC */ int field_0xdac;
|
||||
/* 0xDAC */ int mStaffId;
|
||||
/* 0xDB0 */ int mCutType;
|
||||
/* 0xDB4 */ int field_0xdb4;
|
||||
/* 0xDB8 */ int mDamageTimerStart;
|
||||
/* 0xDBC */ int mDamageTimer;
|
||||
/* 0xDC0 */ int mBtpPauseTimer;
|
||||
/* 0xDC4 */ int field_0xdc4;
|
||||
/* 0xDC8 */ s16 field_0xdc8;
|
||||
/* 0xDC4 */ int mEventTimer;
|
||||
/* 0xDC8 */ s16 mPlayerAngle;
|
||||
/* 0xDCA */ s16 mGroundAngle;
|
||||
/* 0xDCC */ u8 field_0xdcc[2];
|
||||
/* 0xDCE */ s16 mFootLPolyAngle;
|
||||
|
|
@ -471,10 +491,10 @@ public:
|
|||
/* 0xDE0 */ f32 field_0xde0;
|
||||
/* 0xDE4 */ f32 field_0xde4;
|
||||
/* 0xDE8 */ f32 field_0xde8;
|
||||
/* 0xDEC */ f32 field_0xdec;
|
||||
/* 0xDF0 */ f32 field_0xdf0;
|
||||
/* 0xDEC */ f32 mCylH;
|
||||
/* 0xDF0 */ f32 mWallR;
|
||||
/* 0xDF4 */ f32 mGroundH;
|
||||
/* 0xDF8 */ f32 field_0xdf8;
|
||||
/* 0xDF8 */ f32 mAttnFovY;
|
||||
/* 0xDFC */ f32 field_0xdfc;
|
||||
/* 0xE00 */ cXyz field_0xe00;
|
||||
/* 0xE0C */ cXyz field_0xe0c;
|
||||
|
|
@ -483,9 +503,9 @@ public:
|
|||
/* 0xE1C */ s16 mEvtId;
|
||||
/* 0xE1E */ u16 mMorfLoops;
|
||||
/* 0xE20 */ u16 mBckLoops;
|
||||
/* 0xE22 */ u16 field_0xe22;
|
||||
/* 0xE22 */ u16 mMode;
|
||||
/* 0xE24 */ s8 mReverb;
|
||||
/* 0xE25 */ u8 field_0xe25;
|
||||
/* 0xE25 */ bool mHide;
|
||||
/* 0xE26 */ bool field_0xe26;
|
||||
/* 0xE27 */ u8 mFootLOnGround;
|
||||
/* 0xE28 */ u8 mFootROnGround;
|
||||
|
|
@ -493,11 +513,11 @@ public:
|
|||
/* 0xE2A */ u8 field_0xe2a;
|
||||
/* 0xE2B */ bool mNoDraw;
|
||||
/* 0xE2C */ u8 field_0xe2c;
|
||||
/* 0xE2D */ u8 field_0xe2d;
|
||||
/* 0xE2E */ u8 field_0xe2e[2];
|
||||
/* 0xE2D */ bool field_0xe2d;
|
||||
/* 0xE2E */ u8 mPreItemNo;
|
||||
/* 0xE30 */ u16 mEvtNo;
|
||||
/* 0xE32 */ bool mSpeakEvent;
|
||||
/* 0xE33 */ u8 field_0xe33;
|
||||
/* 0xE33 */ bool field_0xe33;
|
||||
/* 0xE34 */ u8 field_0xe34;
|
||||
/* 0xE35 */ u8 field_0xe35;
|
||||
/* 0xE36 */ u8 field_0xe36;
|
||||
|
|
@ -506,16 +526,18 @@ public:
|
|||
/* 0xE3C vtable */
|
||||
|
||||
public:
|
||||
daNpcT_c(daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData, daNpcT_motionAnmData_c const* i_motionAnmData,
|
||||
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4,
|
||||
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6, daNpcT_evtData_c const* i_evtData,
|
||||
char** i_arcNames) :
|
||||
daNpcT_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) :
|
||||
mpFaceMotionAnmData(i_faceMotionAnmData),
|
||||
mpMotionAnmData(i_motionAnmData),
|
||||
mpEvtData(i_evtData),
|
||||
mpArcNames(i_arcNames),
|
||||
mFaceMotionSeqMngr(param_3, param_4),
|
||||
mMotionSeqMngr(param_5, param_6) {
|
||||
mFaceMotionSeqMngr(i_faceMotionSequenceData, i_faceMotionStepNum),
|
||||
mMotionSeqMngr(i_motionSequenceData, i_motionStepNum) {
|
||||
initialize();
|
||||
}
|
||||
/* 80147FA4 */ static void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
|
||||
|
|
@ -535,7 +557,7 @@ public:
|
|||
/* 801483F8 */ int loadRes(s8 const*, char const**);
|
||||
/* 801484AC */ void deleteRes(s8 const*, char const**);
|
||||
/* 8014852C */ int execute();
|
||||
/* 8014886C */ int draw(int, int, f32, _GXColorS10*, f32, int, int, int);
|
||||
/* 8014886C */ int draw(BOOL, BOOL, f32, _GXColorS10*, f32, BOOL, BOOL, BOOL);
|
||||
/* 80148C70 */ void setEnvTevColor();
|
||||
/* 80148CCC */ void setRoomNo();
|
||||
/* 80148D10 */ int checkEndAnm(f32);
|
||||
|
|
@ -621,9 +643,9 @@ public:
|
|||
/* 8014CCAC */ virtual void changeBck(int*, int*) {}
|
||||
/* 8014CCA8 */ virtual void changeBtp(int*, int*) {}
|
||||
/* 8014CCE8 */ virtual void changeBtk(int*, int*) {}
|
||||
/* 8014A628 */ virtual bool setMotionAnm(int, f32, int);
|
||||
/* 8014A628 */ virtual bool setMotionAnm(int, f32, BOOL);
|
||||
|
||||
bool checkHide() { return field_0xe25 || (!dComIfGs_wolfeye_effect_check() && mTwilight); }
|
||||
bool checkHide() { return mHide || (!dComIfGs_wolfeye_effect_check() && mTwilight); }
|
||||
s16 checkStep() { return mStepMode == 1; }
|
||||
void setCommander(fopAc_ac_c* param_0) { field_0xba0.entry(param_0); }
|
||||
void setCutType(int i_cutType) { mCutType = i_cutType; }
|
||||
|
|
@ -635,7 +657,7 @@ public:
|
|||
mPlayerActorMngr.initialize();
|
||||
field_0xba0.initialize();
|
||||
mJntAnm.initialize();
|
||||
field_0xd08.initialize();
|
||||
mStagger.initialize();
|
||||
mItemId = fpcM_ERROR_PROCESS_ID_e;
|
||||
field_0xe26 = true;
|
||||
field_0xe1a = cM_rndF(65536.0f);
|
||||
|
|
@ -650,6 +672,13 @@ public:
|
|||
static s16 mSrchName;
|
||||
static s32 mFindCount;
|
||||
|
||||
enum Mode {
|
||||
/* 0 */ MODE_ENTER,
|
||||
/* 1 */ MODE_INIT,
|
||||
/* 2 */ MODE_RUN,
|
||||
/* 3 */ MODE_EXIT,
|
||||
};
|
||||
|
||||
enum AnmFlags {
|
||||
ANM_PAUSE_MORF = 0x1,
|
||||
ANM_PAUSE_BTK = 0x2,
|
||||
|
|
@ -679,6 +708,8 @@ void daNpcT_offTmpBit(u32 i_idx);
|
|||
void daNpcT_onTmpBit(u32 i_idx);
|
||||
BOOL daNpcT_chkTmpBit(u32 i_idx);
|
||||
void daNpcT_onEvtBit(u32 i_idx);
|
||||
BOOL daNpcT_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz* o_spawnPos,
|
||||
csXyz* o_angle);
|
||||
|
||||
struct daBaseNpc_matAnm_c {
|
||||
/* 8014D884 */ void calc(J3DMaterial*) const;
|
||||
|
|
|
|||
|
|
@ -11,68 +11,134 @@
|
|||
* @details
|
||||
*
|
||||
*/
|
||||
class daNpc_Yelia_c : public fopAc_ac_c {
|
||||
class daNpc_Yelia_c : public daNpcT_c {
|
||||
public:
|
||||
/* 80B4D30C */ ~daNpc_Yelia_c();
|
||||
/* 80B4D458 */ void create();
|
||||
/* 80B4D754 */ void CreateHeap();
|
||||
/* 80B4DC20 */ void Delete();
|
||||
/* 80B4DC54 */ void Execute();
|
||||
/* 80B4DC74 */ void Draw();
|
||||
/* 80B4DD08 */ void createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80B4DD28 */ void ctrlJointCallBack(J3DJoint*, int);
|
||||
/* 80B4DD80 */ void getType();
|
||||
/* 80B4DDF8 */ void isDelete();
|
||||
/* 80B4D458 */ cPhs__Step create();
|
||||
/* 80B4D754 */ int CreateHeap();
|
||||
/* 80B4DC20 */ int Delete();
|
||||
/* 80B4DC54 */ int Execute();
|
||||
/* 80B4DC74 */ int Draw();
|
||||
/* 80B4DD08 */ static int createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80B4DD28 */ static int ctrlJointCallBack(J3DJoint*, int);
|
||||
/* 80B4DD80 */ u8 getType();
|
||||
/* 80B4DDF8 */ BOOL isDelete();
|
||||
/* 80B4DF10 */ void reset();
|
||||
/* 80B4E068 */ void afterJntAnm(int);
|
||||
/* 80B4E0F4 */ void setParam();
|
||||
/* 80B4E2C0 */ void checkChangeEvt();
|
||||
/* 80B4E2C0 */ BOOL checkChangeEvt();
|
||||
/* 80B4E5BC */ void setAfterTalkMotion();
|
||||
/* 80B4E6A0 */ void srchActors();
|
||||
/* 80B4E7C8 */ void evtTalk();
|
||||
/* 80B4E868 */ void evtCutProc();
|
||||
/* 80B4E7C8 */ BOOL evtTalk();
|
||||
/* 80B4E868 */ BOOL evtCutProc();
|
||||
/* 80B4E930 */ void action();
|
||||
/* 80B4EA28 */ void beforeMove();
|
||||
/* 80B4EAEC */ void setAttnPos();
|
||||
/* 80B4EE4C */ void setCollision();
|
||||
/* 80B4EFA4 */ bool drawDbgInfo();
|
||||
/* 80B4EFAC */ void selectAction();
|
||||
/* 80B4F054 */ void chkAction(int (daNpc_Yelia_c::*)(void*));
|
||||
/* 80B4F080 */ void setAction(int (daNpc_Yelia_c::*)(void*));
|
||||
/* 80B4F128 */ void cutConversationAboutLoopHole(int);
|
||||
/* 80B4F3E0 */ void cutTWResistance(int);
|
||||
/* 80B4F534 */ void cutTakeWoodStatue(int);
|
||||
/* 80B4FDD8 */ void cutClothTry(int);
|
||||
/* 80B4FE78 */ void cutThankYou(int);
|
||||
/* 80B50084 */ void wait(void*);
|
||||
/* 80B5080C */ void horseWait(void*);
|
||||
/* 80B50A0C */ void reminiscence(void*);
|
||||
/* 80B50B60 */ void talk(void*);
|
||||
/* 80B52104 */ daNpc_Yelia_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**);
|
||||
/* 80B521E4 */ s32 getEyeballMaterialNo();
|
||||
/* 80B521EC */ s32 getHeadJointNo();
|
||||
/* 80B521F4 */ s32 getNeckJointNo();
|
||||
/* 80B521FC */ bool getBackboneJointNo();
|
||||
/* 80B52204 */ void checkChangeJoint(int);
|
||||
/* 80B52214 */ void checkRemoveJoint(int);
|
||||
/* 80B52224 */ bool chkXYItems();
|
||||
/* 80B4EFA4 */ BOOL drawDbgInfo();
|
||||
/* 80B4EFAC */ BOOL selectAction();
|
||||
/* 80B4F054 */ BOOL chkAction(BOOL (daNpc_Yelia_c::*)(void*));
|
||||
/* 80B4F080 */ BOOL setAction(BOOL (daNpc_Yelia_c::*)(void*));
|
||||
/* 80B4F128 */ BOOL cutConversationAboutLoopHole(int);
|
||||
/* 80B4F3E0 */ BOOL cutTWResistance(int);
|
||||
/* 80B4F534 */ BOOL cutTakeWoodStatue(int);
|
||||
/* 80B4FDD8 */ BOOL cutClothTry(int);
|
||||
/* 80B4FE78 */ BOOL cutThankYou(int);
|
||||
/* 80B50084 */ BOOL wait(void*);
|
||||
/* 80B5080C */ BOOL horseWait(void*);
|
||||
/* 80B50A0C */ BOOL reminiscence(void*);
|
||||
/* 80B50B60 */ BOOL talk(void*);
|
||||
/* 80B52104 */ daNpc_Yelia_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) {}
|
||||
/* 80B521E4 */ s32 getEyeballMaterialNo() { return 1; }
|
||||
/* 80B521EC */ s32 getHeadJointNo() { return 4; }
|
||||
/* 80B521F4 */ s32 getNeckJointNo() { return 3; }
|
||||
/* 80B521FC */ s32 getBackboneJointNo() { return 1; }
|
||||
/* 80B52204 */ BOOL checkChangeJoint(int i_jointNo) { return i_jointNo == 4; }
|
||||
/* 80B52214 */ BOOL checkRemoveJoint(int i_jointNo) {return i_jointNo == 9; }
|
||||
/* 80B52224 */ BOOL chkXYItems() { return true; }
|
||||
|
||||
static void* mCutNameList[6];
|
||||
static u8 mCutList[72];
|
||||
u32 getFlowNodeNo() {
|
||||
u16 no = home.angle.x;
|
||||
if (no == 0xffff) {
|
||||
return -1;
|
||||
}
|
||||
return no;
|
||||
}
|
||||
|
||||
static char* mCutNameList[6];
|
||||
static int (daNpc_Yelia_c::*mCutList[6])(int);
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0xff0 - 0x568];
|
||||
/* 0xE40 */ u8 field_0xe40[0xe44 - 0xe40];
|
||||
/* 0xE44 */ dCcD_Cyl mCcCyl;
|
||||
/* 0xF80 */ u8 mType;
|
||||
/* 0xF84 */ daNpcT_ActorMngr_c mActorMngr[4];
|
||||
/* 0xFA4 */ BOOL (daNpc_Yelia_c::*mpNextAction)(void*);
|
||||
/* 0xFB0 */ BOOL (daNpc_Yelia_c::*mpAction)(void*);
|
||||
/* 0xFBC */ daNpcT_Path_c mPath;
|
||||
/* 0xFE4 */ fpc_ProcID mItemId;
|
||||
/* 0xFE8 */ int mPendantTimer;
|
||||
/* 0xFEC */ u8 field_0xfec;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpc_Yelia_c) == 0xff0);
|
||||
|
||||
class daNpc_Yelia_Param_c {
|
||||
public:
|
||||
/* 80B5222C */ ~daNpc_Yelia_Param_c();
|
||||
struct param {
|
||||
/* 0x00 */ f32 mAttnOffsetY;
|
||||
/* 0x04 */ f32 mGravity;
|
||||
/* 0x08 */ f32 mScale;
|
||||
/* 0x0C */ f32 mShadowDepth;
|
||||
/* 0x10 */ f32 mCcWeight;
|
||||
/* 0x14 */ f32 mCylH;
|
||||
/* 0x18 */ f32 mWallH;
|
||||
/* 0x1C */ f32 mWallR;
|
||||
/* 0x20 */ f32 mBodyUpAngle;
|
||||
/* 0x24 */ f32 mBodyDownAngle;
|
||||
/* 0x28 */ f32 mBodyLeftAngle;
|
||||
/* 0x2C */ f32 mBodyRightAngle;
|
||||
/* 0x30 */ f32 mHeadUpAngle;
|
||||
/* 0x34 */ f32 mHeadDownAngle;
|
||||
/* 0x38 */ f32 mHeadLeftAngle;
|
||||
/* 0x3C */ f32 mHeadRightAngle;
|
||||
/* 0x40 */ f32 mNeckAngleScl;
|
||||
/* 0x44 */ f32 mMorfFrames;
|
||||
/* 0x48 */ s16 mSpeakDistIdx;
|
||||
/* 0x4A */ s16 mSpeakAngleIdx;
|
||||
/* 0x4C */ s16 mTalkDistIdx;
|
||||
/* 0x4E */ s16 mTalkAngleIdx;
|
||||
/* 0x50 */ f32 mAttnFovY;
|
||||
/* 0x54 */ f32 mAttnRadius;
|
||||
/* 0x58 */ f32 mAttnUpperY;
|
||||
/* 0x5C */ f32 mAttnLowerY;
|
||||
/* 0x60 */ s16 field_0x60;
|
||||
/* 0x62 */ s16 mDamageTimer;
|
||||
/* 0x64 */ s16 mTestExpression;
|
||||
/* 0x66 */ s16 mTestMotion;
|
||||
/* 0x68 */ s16 mTestLookMode;
|
||||
/* 0x6A */ bool mTest;
|
||||
/* 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 u8 const m[140];
|
||||
/* 80B5222C */ virtual ~daNpc_Yelia_Param_c() {}
|
||||
|
||||
static param const m;
|
||||
};
|
||||
|
||||
#endif /* D_A_NPC_YELIA_H */
|
||||
|
|
|
|||
|
|
@ -350,14 +350,14 @@ void daDitem_c::set_pos() {
|
|||
};
|
||||
|
||||
if (chkArgFlag(0x8)) {
|
||||
current.pos = field_0x92c;
|
||||
current.pos = mOffsetPos;
|
||||
return;
|
||||
} else if (chkArgFlag(0x2)) {
|
||||
offset = offset_tbl[1];
|
||||
} else if (chkArgFlag(0x4)) {
|
||||
offset = offset_tbl[1];
|
||||
} else if (chkArgFlag(0x10)) {
|
||||
offset = field_0x92c;
|
||||
offset = mOffsetPos;
|
||||
} else {
|
||||
offset = offset_tbl[0];
|
||||
}
|
||||
|
|
@ -508,8 +508,8 @@ int daDitem_c::execute() {
|
|||
|
||||
if (chkDraw()) {
|
||||
f32 target_scale_x = 1.0f;
|
||||
if (field_0x938 != 0.0f) {
|
||||
target_scale_x = field_0x938;
|
||||
if (mMaxScale != 0.0f) {
|
||||
target_scale_x = mMaxScale;
|
||||
}
|
||||
|
||||
cLib_chaseF(&scale.x, target_scale_x, 0.35f);
|
||||
|
|
|
|||
|
|
@ -595,16 +595,16 @@ void daNpcT_JntAnm_c::setParam(fopAc_ac_c* i_actor, J3DModel* i_model, cXyz* i_e
|
|||
mAttnPos.setall(0.0f);
|
||||
|
||||
switch (mMode) {
|
||||
case 0:
|
||||
case LOOK_NONE:
|
||||
mAttnPosP = NULL;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
case LOOK_PLAYER:
|
||||
mAttnPosP = &daPy_getPlayerActorClass()->attention_info.position;
|
||||
mAttnPos = *mAttnPosP;
|
||||
break;
|
||||
|
||||
case 2: {
|
||||
case LOOK_ACTOR: {
|
||||
fopAc_ac_c* actor = mActrMngr.getActorP();
|
||||
if (actor != NULL) {
|
||||
mAttnPosP = &actor->attention_info.position;
|
||||
|
|
@ -616,13 +616,13 @@ void daNpcT_JntAnm_c::setParam(fopAc_ac_c* i_actor, J3DModel* i_model, cXyz* i_e
|
|||
break;
|
||||
}
|
||||
|
||||
case 3:
|
||||
case LOOK_POS:
|
||||
if (mAttnPosP != NULL) {
|
||||
mAttnPos = *mAttnPosP;
|
||||
}
|
||||
break;
|
||||
|
||||
case 4: {
|
||||
case LOOK_CAMERA: {
|
||||
camera_class* camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
|
||||
if (camera != NULL) {
|
||||
mAttnPosP = fopCamM_GetEye_p(camera);
|
||||
|
|
@ -631,7 +631,7 @@ void daNpcT_JntAnm_c::setParam(fopAc_ac_c* i_actor, J3DModel* i_model, cXyz* i_e
|
|||
break;
|
||||
}
|
||||
|
||||
case 5:
|
||||
case LOOK_MODE_5:
|
||||
if (mAttnPosP != NULL) {
|
||||
mMinRad[2].y = 0.0f;
|
||||
mMaxRad[2].y = 0.0f;
|
||||
|
|
@ -641,7 +641,7 @@ void daNpcT_JntAnm_c::setParam(fopAc_ac_c* i_actor, J3DModel* i_model, cXyz* i_e
|
|||
}
|
||||
break;
|
||||
|
||||
case 6:
|
||||
case LOOK_MODE_6:
|
||||
if (mAttnPosP != NULL) {
|
||||
mMinRad[2].y = 0.0f;
|
||||
mMaxRad[2].y = 0.0f;
|
||||
|
|
@ -651,8 +651,8 @@ void daNpcT_JntAnm_c::setParam(fopAc_ac_c* i_actor, J3DModel* i_model, cXyz* i_e
|
|||
}
|
||||
break;
|
||||
|
||||
case 7:
|
||||
case 8: {
|
||||
case LOOK_MODE_7:
|
||||
case LOOK_MODE_8: {
|
||||
if (cLib_calcTimer(&mTimer) == 0) {
|
||||
field_0x13c ^= 1;
|
||||
mTimer = getTime();
|
||||
|
|
@ -1177,8 +1177,8 @@ int daNpcT_c::execute() {
|
|||
}
|
||||
|
||||
/* 8014886C-80148C70 1431AC 0404+00 0/0 0/0 58/58 .text draw__8daNpcT_cFiifP11_GXColorS10fiii */
|
||||
int daNpcT_c::draw(int param_0, int i_setEffMtx, f32 param_2, GXColorS10* i_color, f32 param_4,
|
||||
int i_drawGhost, int i_noShadow, int i_simpleShadow) {
|
||||
int daNpcT_c::draw(BOOL param_0, BOOL i_setEffMtx, f32 param_2, GXColorS10* i_color, f32 param_4,
|
||||
BOOL i_drawGhost, BOOL i_noShadow, BOOL i_simpleShadow) {
|
||||
J3DModel* model = mpMorf[0]->getModel();
|
||||
J3DModelData* modelData = model->getModelData();
|
||||
field_0xe34 = 1;
|
||||
|
|
@ -1205,7 +1205,7 @@ int daNpcT_c::draw(int param_0, int i_setEffMtx, f32 param_2, GXColorS10* i_colo
|
|||
if (cM3d_IsZero(r) == false) {
|
||||
tevStr.TevColor.r = r * 20.0f;
|
||||
}
|
||||
} else if (param_0 != 0) {
|
||||
} else if (param_0) {
|
||||
tevStr.TevColor.g = 20;
|
||||
}
|
||||
|
||||
|
|
@ -1517,11 +1517,11 @@ void daNpcT_c::ctrlMotion() {
|
|||
restart = TRUE;
|
||||
}
|
||||
|
||||
setMotionAnm(anmIdx, morf < 0.0f ? field_0xa84 : morf, restart);
|
||||
setMotionAnm(anmIdx, morf < 0.0f ? mMorfFrames : morf, restart);
|
||||
|
||||
field_0xdfc = 0.0f;
|
||||
|
||||
if (field_0xa88) {
|
||||
if (mCreating) {
|
||||
mpMorf[0]->setMorf(0.0f);
|
||||
|
||||
field_0xdfc = 0.0f;
|
||||
|
|
@ -1538,7 +1538,7 @@ int daNpcT_c::ctrlMsgAnm(int* param_0, int* param_1, fopAc_ac_c* param_2, int pa
|
|||
*param_0 = -1;
|
||||
*param_1 = -1;
|
||||
|
||||
if (param_3 != 0 || eventInfo.checkCommandTalk() || field_0xdac != -1) {
|
||||
if (param_3 != 0 || eventInfo.checkCommandTalk() || mStaffId != -1) {
|
||||
fopAc_ac_c* talk_partner = dComIfGp_event_getTalkPartner();
|
||||
dMsgObject_c* talk_partner_conv = (dMsgObject_c*)talk_partner;
|
||||
|
||||
|
|
@ -1691,9 +1691,9 @@ BOOL daNpcT_c::evtProc() {
|
|||
field_0xe26 = true;
|
||||
|
||||
} else {
|
||||
if (field_0xdac != -1) {
|
||||
field_0xe22 = 1;
|
||||
field_0xdac = -1;
|
||||
if (mStaffId != -1) {
|
||||
mMode = MODE_INIT;
|
||||
mStaffId = -1;
|
||||
}
|
||||
field_0xdb4 = 0;
|
||||
field_0xe26 = true;
|
||||
|
|
@ -1718,7 +1718,7 @@ void daNpcT_c::setFootPos() {
|
|||
mFootROffset = mFootRPos - current.pos;
|
||||
}
|
||||
|
||||
if (field_0xa88) {
|
||||
if (mCreating) {
|
||||
mOldFootLOffset = mFootLOffset;
|
||||
mOldFootROffset = mFootROffset;
|
||||
}
|
||||
|
|
@ -2325,7 +2325,7 @@ int daNpcT_c::getActorDistance(fopAc_ac_c* i_actor, int i_distIndex1, int i_dist
|
|||
/* 8014BBF0-8014BC78 146530 0088+00 0/0 1/1 180/180 .text initTalk__8daNpcT_cFiPP10fopAc_ac_c */
|
||||
BOOL daNpcT_c::initTalk(int i_flowID, fopAc_ac_c** param_1) {
|
||||
mFlow.init(this, i_flowID, 0, param_1);
|
||||
field_0xdc8 = fopAcM_searchPlayerAngleY(this);
|
||||
mPlayerAngle = fopAcM_searchPlayerAngleY(this);
|
||||
if (checkStep()) {
|
||||
mStepMode = 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -768,7 +768,7 @@ int daNpc_Hanjo_c::create() {
|
|||
(daNpcT_motionAnmData_c*)l_motionAnmData, l_faceMotionSequenceData, 4,
|
||||
l_motionSequenceData, 4, l_evtList, l_resNameList);
|
||||
mType = getType();
|
||||
field_0xa7c = getFlowNodeNo();
|
||||
mFlowNodeNo = getFlowNodeNo();
|
||||
mTwilight = 0;
|
||||
int rv = loadRes(l_loadResPtrnList[mType], (const char**)l_resNameList);
|
||||
if (rv == cPhs_COMPLEATE_e) {
|
||||
|
|
@ -789,7 +789,7 @@ int daNpc_Hanjo_c::create() {
|
|||
field_0x9c0.init(&mAcch, 60.0f, 0.0f);
|
||||
reset();
|
||||
mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1,
|
||||
&field_0x8a0, fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this),
|
||||
&mAcchCir, fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this),
|
||||
fopAcM_GetShapeAngle_p(this));
|
||||
mCcStts.Init(daNpc_Hanjo_Param_c::m.field_0x10, 0, this);
|
||||
mCyl1.Set(mCcDCyl);
|
||||
|
|
@ -808,9 +808,9 @@ int daNpc_Hanjo_c::create() {
|
|||
mStones[i].getSphP()->Set(*(dCcD_SrcSph*)&mStoneCcDSph);
|
||||
mStones[i].getSphP()->SetStts(&mCcStts);
|
||||
}
|
||||
field_0xa88 = 1;
|
||||
mCreating = 1;
|
||||
Execute();
|
||||
field_0xa88 = 0;
|
||||
mCreating = 0;
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
|
@ -1020,11 +1020,11 @@ void daNpc_Hanjo_c::reset() {
|
|||
/* 809F9FCC-809FA050 00102C 0084+00 1/0 0/0 0/0 .text afterJntAnm__13daNpc_Hanjo_cFi */
|
||||
void daNpc_Hanjo_c::afterJntAnm(int param_1) {
|
||||
if (param_1 == 1) {
|
||||
mDoMtx_stack_c::YrotM(field_0xd08.getAngleZ(1));
|
||||
mDoMtx_stack_c::ZrotM(-field_0xd08.getAngleX(1));
|
||||
mDoMtx_stack_c::YrotM(mStagger.getAngleZ(1));
|
||||
mDoMtx_stack_c::ZrotM(-mStagger.getAngleX(1));
|
||||
} else if (param_1 == 4) {
|
||||
mDoMtx_stack_c::YrotM(field_0xd08.getAngleZ(0));
|
||||
mDoMtx_stack_c::ZrotM(field_0xd08.getAngleX(0));
|
||||
mDoMtx_stack_c::YrotM(mStagger.getAngleZ(0));
|
||||
mDoMtx_stack_c::ZrotM(mStagger.getAngleX(0));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1059,14 +1059,14 @@ void daNpc_Hanjo_c::setParam() {
|
|||
scale.set(daNpc_Hanjo_Param_c::m.field_0x08, daNpc_Hanjo_Param_c::m.field_0x08,
|
||||
daNpc_Hanjo_Param_c::m.field_0x08);
|
||||
mCcStts.SetWeight(daNpc_Hanjo_Param_c::m.field_0x10);
|
||||
field_0xdec = daNpc_Hanjo_Param_c::m.field_0x14;
|
||||
field_0xdf0 = daNpc_Hanjo_Param_c::m.field_0x1c;
|
||||
field_0xdf8 = daNpc_Hanjo_Param_c::m.field_0x50;
|
||||
field_0x8a0.SetWallR(field_0xdf0);
|
||||
field_0x8a0.SetWallH(daNpc_Hanjo_Param_c::m.field_0x18);
|
||||
mCylH = daNpc_Hanjo_Param_c::m.field_0x14;
|
||||
mWallR = daNpc_Hanjo_Param_c::m.field_0x1c;
|
||||
mAttnFovY = daNpc_Hanjo_Param_c::m.field_0x50;
|
||||
mAcchCir.SetWallR(mWallR);
|
||||
mAcchCir.SetWallH(daNpc_Hanjo_Param_c::m.field_0x18);
|
||||
field_0xde8 = daNpc_Hanjo_Param_c::m.field_0x0c;
|
||||
field_0xa80 = daNpc_Hanjo_Param_c::m.field_0x6c;
|
||||
field_0xa84 = daNpc_Hanjo_Param_c::m.field_0x44;
|
||||
mMorfFrames = daNpc_Hanjo_Param_c::m.field_0x44;
|
||||
gravity = daNpc_Hanjo_Param_c::m.field_0x04;
|
||||
}
|
||||
|
||||
|
|
@ -1074,7 +1074,7 @@ void daNpc_Hanjo_c::setParam() {
|
|||
*/
|
||||
BOOL daNpc_Hanjo_c::checkChangeEvt() {
|
||||
if (!chkAction(&daNpc_Hanjo_c::talk)) {
|
||||
field_0xe2e[0] = 0;
|
||||
mPreItemNo = 0;
|
||||
if (dComIfGp_event_chkTalkXY()) {
|
||||
if (dComIfGp_evmng_ChkPresentEnd()) {
|
||||
mEvtNo = 1;
|
||||
|
|
@ -1189,11 +1189,11 @@ BOOL daNpc_Hanjo_c::evtTalk() {
|
|||
BOOL daNpc_Hanjo_c::evtCutProc() {
|
||||
int staffId = dComIfGp_getEventManager().getMyStaffId("Hanjo", this, -1);
|
||||
if (staffId != -1) {
|
||||
field_0xdac = staffId;
|
||||
mStaffId = staffId;
|
||||
int actIdx =
|
||||
dComIfGp_getEventManager().getMyActIdx(field_0xdac, (char**)mCutNameList, 6, 0, 0);
|
||||
if ((this->*(mCutList[actIdx]))(field_0xdac) != 0) {
|
||||
dComIfGp_getEventManager().cutEnd(field_0xdac);
|
||||
dComIfGp_getEventManager().getMyActIdx(mStaffId, (char**)mCutNameList, 6, 0, 0);
|
||||
if ((this->*(mCutList[actIdx]))(mStaffId) != 0) {
|
||||
dComIfGp_getEventManager().cutEnd(mStaffId);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
@ -1207,16 +1207,16 @@ void daNpc_Hanjo_c::action() {
|
|||
cCcD_Obj* hitObj = mCyl1.GetTgHitObj();
|
||||
if (hitObj->ChkAtType(AT_TYPE_THROW_OBJ) && (fopAcM_GetName(hitActor) != PROC_NPC_TK || mType != TYPE_1))
|
||||
{
|
||||
field_0xd08.setParam(this,
|
||||
mStagger.setParam(this,
|
||||
hitActor, mCurAngle.y);
|
||||
setDamage(0, 7, 0);
|
||||
mDamageTimerStart = 0;
|
||||
mJntAnm.lookNone(1);
|
||||
}
|
||||
}
|
||||
if (field_0xd08.checkRebirth()) {
|
||||
field_0xd08.initialize();
|
||||
field_0xe22 = 1;
|
||||
if (mStagger.checkRebirth()) {
|
||||
mStagger.initialize();
|
||||
mMode = 1;
|
||||
}
|
||||
if (field_0x16e0) {
|
||||
if (field_0x16ec == field_0x16e0) {
|
||||
|
|
@ -1381,7 +1381,7 @@ static u8 l_HIO[4];
|
|||
void daNpc_Hanjo_c::setAttnPos() {
|
||||
cXyz cStack_38(-10.0f, 10.0f, 0.0f);
|
||||
cXyz cStack_44;
|
||||
field_0xd08.calc(0);
|
||||
mStagger.calc(0);
|
||||
f32 dVar8 = cM_s2rad(mCurAngle.y - field_0xd7e.y);
|
||||
J3DModel* model = mpMorf[0]->getModel();
|
||||
mJntAnm.setParam(this, model, &cStack_38, getBackboneJointNo(), getNeckJointNo(),
|
||||
|
|
@ -1423,14 +1423,14 @@ void daNpc_Hanjo_c::setAttnPos() {
|
|||
/* 809FAF90-809FB2C4 001FF0 0334+00 1/0 0/0 0/0 .text setCollision__13daNpc_Hanjo_cFv */
|
||||
void daNpc_Hanjo_c::setCollision() {
|
||||
cXyz cStack_4c;
|
||||
if (field_0xe25 == 0) {
|
||||
if (mHide == 0) {
|
||||
u32 tgType = 0xd8fbfdff;
|
||||
u32 tgSPrm = 0x1f;
|
||||
if (mTwilight != 0) {
|
||||
tgType = 0;
|
||||
tgSPrm = 0;
|
||||
} else {
|
||||
if (field_0xd08.checkStagger()) {
|
||||
if (mStagger.checkStagger()) {
|
||||
tgType = 0;
|
||||
tgSPrm = 0;
|
||||
}
|
||||
|
|
@ -1440,8 +1440,8 @@ void daNpc_Hanjo_c::setCollision() {
|
|||
mCyl1.SetTgSPrm(tgSPrm);
|
||||
mCyl1.OnTgNoHitMark();
|
||||
cStack_4c.set(0.0f, 0.0f, 0.0f);
|
||||
f32 cylHeight = field_0xdec;
|
||||
f32 cylRadius = field_0xdf0;
|
||||
f32 cylHeight = mCylH;
|
||||
f32 cylRadius = mWallR;
|
||||
mDoMtx_stack_c::YrotS(mCurAngle.y);
|
||||
mDoMtx_stack_c::multVec(&cStack_4c, &cStack_4c);
|
||||
cStack_4c += current.pos;
|
||||
|
|
@ -1566,11 +1566,11 @@ int daNpc_Hanjo_c::chkAction(int (daNpc_Hanjo_c::*action)(void*)) {
|
|||
/* 809FB6F8-809FB7A0 002758 00A8+00 2/2 0/0 0/0 .text
|
||||
* setAction__13daNpc_Hanjo_cFM13daNpc_Hanjo_cFPCvPvPv_i */
|
||||
int daNpc_Hanjo_c::setAction(int (daNpc_Hanjo_c::*action)(void*)) {
|
||||
field_0xe22 = 3;
|
||||
mMode = 3;
|
||||
if (field_0x16ec != NULL) {
|
||||
(this->*field_0x16ec)(NULL);
|
||||
}
|
||||
field_0xe22 = 0;
|
||||
mMode = 0;
|
||||
field_0x16ec = action;
|
||||
if (field_0x16ec != NULL) {
|
||||
(this->*field_0x16ec)(NULL);
|
||||
|
|
@ -1659,7 +1659,7 @@ void daNpc_Hanjo_c::dive() {
|
|||
speedF *= 0.5f;
|
||||
field_0x1720 = 1;
|
||||
} else if (field_0x171f == 0) {
|
||||
if (current.pos.y + field_0xdec < local_34) {
|
||||
if (current.pos.y + mCylH < local_34) {
|
||||
if (0.0f < speed.y) {
|
||||
cLib_addCalc(&speed.y, 2.0f, 0.5f, 0.5f, 0.5f);
|
||||
} else {
|
||||
|
|
@ -1784,7 +1784,7 @@ int daNpc_Hanjo_c::cutConversationAboutSaru(int staffIdx) {
|
|||
if (dComIfGp_getEventManager().getIsAddvance(staffIdx)) {
|
||||
switch(iVar4) {
|
||||
case 0:
|
||||
field_0xdc8 = fopAcM_searchPlayerAngleY(this);
|
||||
mPlayerAngle = fopAcM_searchPlayerAngleY(this);
|
||||
if (checkStep()) {
|
||||
mStepMode = 0;
|
||||
}
|
||||
|
|
@ -1799,8 +1799,8 @@ int daNpc_Hanjo_c::cutConversationAboutSaru(int staffIdx) {
|
|||
break;
|
||||
case 1:
|
||||
mJntAnm.lookPlayer(0);
|
||||
if (field_0xdc8 != mCurAngle.y) {
|
||||
step(field_0xdc8, 7, 14, 15, 0);
|
||||
if (mPlayerAngle != mCurAngle.y) {
|
||||
step(mPlayerAngle, 7, 14, 15, 0);
|
||||
} else {
|
||||
rv = 1;
|
||||
}
|
||||
|
|
@ -1832,14 +1832,14 @@ int daNpc_Hanjo_c::cutConversation(int param_1) {
|
|||
switch(iVar9) {
|
||||
case 0:
|
||||
mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
|
||||
initTalk(field_0xa7c, NULL);
|
||||
initTalk(mFlowNodeNo, NULL);
|
||||
mPlayerActorMngr.entry(daPy_getPlayerActorClass());
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
if (iVar9 == 2) {
|
||||
initTalk(field_0xa7c, NULL);
|
||||
initTalk(mFlowNodeNo, NULL);
|
||||
mPlayerActorMngr.entry(daPy_getPlayerActorClass());
|
||||
}
|
||||
if (iVar6 == 1) {
|
||||
|
|
@ -1854,9 +1854,9 @@ int daNpc_Hanjo_c::cutConversation(int param_1) {
|
|||
switch(iVar9) {
|
||||
case 0:
|
||||
mJntAnm.lookPlayer(0);
|
||||
if (field_0xdc8 == mCurAngle.y) {
|
||||
if (mPlayerAngle == mCurAngle.y) {
|
||||
rv = 1;
|
||||
} else if (step(field_0xdc8, 7, 0xe, 0xf, 0)) {
|
||||
} else if (step(mPlayerAngle, 7, 0xe, 0xf, 0)) {
|
||||
mFaceMotionSeqMngr.setNo(7, -1.0f, 0, 0);
|
||||
mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
|
||||
}
|
||||
|
|
@ -1868,8 +1868,8 @@ int daNpc_Hanjo_c::cutConversation(int param_1) {
|
|||
if (iVar9 == 2) {
|
||||
mJntAnm.lookNone(0);
|
||||
}
|
||||
if ((iVar9 == 3 && field_0xdc8 != mCurAngle.y) &&
|
||||
step(field_0xdc8, -1, -1, 15, 0))
|
||||
if ((iVar9 == 3 && mPlayerAngle != mCurAngle.y) &&
|
||||
step(mPlayerAngle, -1, -1, 15, 0))
|
||||
{
|
||||
mFaceMotionSeqMngr.setNo(7, -1.0f, 0, 0);
|
||||
mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
|
||||
|
|
@ -1919,14 +1919,14 @@ int daNpc_Hanjo_c::cutPursuitBee(int param_1) {
|
|||
field_0x170c = 0xffffffff;
|
||||
break;
|
||||
case 1:
|
||||
field_0xdc4 = 0;
|
||||
mEventTimer = 0;
|
||||
break;
|
||||
case 3:
|
||||
mFaceMotionSeqMngr.setNo(6, -1.0f, 0,
|
||||
0);
|
||||
mMotionSeqMngr.setNo(17, -1.0f,
|
||||
0, 0);
|
||||
field_0xdc4 = 1;
|
||||
mEventTimer = 1;
|
||||
mSound.startCreatureVoice(Z2SE_M077_HANJO_05, -1);
|
||||
break;
|
||||
case 4:
|
||||
|
|
@ -1958,7 +1958,7 @@ int daNpc_Hanjo_c::cutPursuitBee(int param_1) {
|
|||
}
|
||||
break;
|
||||
case 1:
|
||||
if (field_0xdc4 != 0) {
|
||||
if (mEventTimer != 0) {
|
||||
rv = 1;
|
||||
} else {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
|
|
@ -1966,7 +1966,7 @@ int daNpc_Hanjo_c::cutPursuitBee(int param_1) {
|
|||
fopAc_ac_c* hitActor = mStones[i].getSphP()->GetCoHitObj()->GetAc();
|
||||
fopAc_ac_c* hitActor2 = dCc_GetAc(hitActor);
|
||||
if (hitActor2 != NULL && fopAcM_GetName(hitActor2) == PROC_E_NEST) {
|
||||
field_0xdc4 = daNpc_Hanjo_Param_c::m.field_0xb0;
|
||||
mEventTimer = daNpc_Hanjo_Param_c::m.field_0xb0;
|
||||
}
|
||||
mStones[i].initialize();
|
||||
}
|
||||
|
|
@ -1974,7 +1974,7 @@ int daNpc_Hanjo_c::cutPursuitBee(int param_1) {
|
|||
}
|
||||
break;
|
||||
case 2:
|
||||
if (cLib_calcTimer(&field_0xdc4) == 0) {
|
||||
if (cLib_calcTimer(&mEventTimer) == 0) {
|
||||
rv = 1;
|
||||
}
|
||||
break;
|
||||
|
|
@ -1989,7 +1989,7 @@ int daNpc_Hanjo_c::cutPursuitBee(int param_1) {
|
|||
field_0xd7e.y = mCurAngle.y;
|
||||
cLib_chaseF(&speedF,
|
||||
daNpc_Hanjo_Param_c::m.field_0x90, 0.5f);
|
||||
if (field_0xdc4 != 0 &&
|
||||
if (mEventTimer != 0 &&
|
||||
mCyl1.ChkCoHit())
|
||||
{
|
||||
fopAc_ac_c* hitActor = mCyl1.GetCoHitAc();
|
||||
|
|
@ -2005,7 +2005,7 @@ int daNpc_Hanjo_c::cutPursuitBee(int param_1) {
|
|||
}
|
||||
daPy_getPlayerActorClass()->setThrowDamage(angle2, dVar17 * cM_scos(sVar11), dVar17 * cM_ssin(sVar11), 0, 1, 0);
|
||||
field_0x1724 = 1;
|
||||
field_0xdc4 = 0;
|
||||
mEventTimer = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2062,7 +2062,7 @@ int daNpc_Hanjo_c::cutAppearHawker(int param_1) {
|
|||
dComIfGp_getVibration().StartShock( 9, 15, cXyz(0.0f, 1.0f, 0.0f));
|
||||
break;
|
||||
case 1:
|
||||
field_0xdc4 = iVar7;
|
||||
mEventTimer = iVar7;
|
||||
break;
|
||||
case 2:
|
||||
initTalk(0xcf, NULL);
|
||||
|
|
@ -2071,16 +2071,16 @@ int daNpc_Hanjo_c::cutAppearHawker(int param_1) {
|
|||
if (iVar7 < 1) {
|
||||
iVar7 = 1;
|
||||
}
|
||||
field_0xdc4 = iVar7;
|
||||
mEventTimer = iVar7;
|
||||
break;
|
||||
case 4:
|
||||
mMotionSeqMngr.setNo(13, -1.0f, 0, 0);
|
||||
break;
|
||||
case 5:
|
||||
field_0xdc4 = iVar7;
|
||||
mEventTimer = iVar7;
|
||||
break;
|
||||
case 6:
|
||||
field_0xdc4 = iVar7;
|
||||
mEventTimer = iVar7;
|
||||
fopAc_ac_c* actor_p = field_0x10c8[2].getActorP();
|
||||
JUT_ASSERT(3005, 0 != actor_p);
|
||||
((daNPC_TK_c*)actor_p)->setAttackLink();
|
||||
|
|
@ -2108,7 +2108,7 @@ int daNpc_Hanjo_c::cutAppearHawker(int param_1) {
|
|||
}
|
||||
break;
|
||||
case 1:
|
||||
if (cLib_calcTimer(&field_0xdc4) == 0) {
|
||||
if (cLib_calcTimer(&mEventTimer) == 0) {
|
||||
rv = 1;
|
||||
}
|
||||
break;
|
||||
|
|
@ -2119,8 +2119,8 @@ int daNpc_Hanjo_c::cutAppearHawker(int param_1) {
|
|||
}
|
||||
break;
|
||||
case 3:
|
||||
if (field_0xdc4 != 0) {
|
||||
if (cLib_calcTimer(&field_0xdc4) == 0) {
|
||||
if (mEventTimer != 0) {
|
||||
if (cLib_calcTimer(&mEventTimer) == 0) {
|
||||
mMotionSeqMngr.setNo(12, 8.0f, 0, 0);
|
||||
actor_p = field_0x10c8[2].getActorP();
|
||||
JUT_ASSERT(3068, 0 != actor_p);
|
||||
|
|
@ -2143,12 +2143,12 @@ int daNpc_Hanjo_c::cutAppearHawker(int param_1) {
|
|||
break;
|
||||
case 5:
|
||||
mJntAnm.lookCamera(0);
|
||||
if (cLib_calcTimer(&field_0xdc4) == 0) {
|
||||
if (cLib_calcTimer(&mEventTimer) == 0) {
|
||||
rv = 1;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (cLib_calcTimer(&field_0xdc4) == 0) {
|
||||
if (cLib_calcTimer(&mEventTimer) == 0) {
|
||||
daNpcT_onEvtBit(0xcf);
|
||||
rv = 1;
|
||||
}
|
||||
|
|
@ -2192,7 +2192,7 @@ int daNpc_Hanjo_c::cutDive(int param_1) {
|
|||
daPy_getPlayerActorClass()->setPlayerPosAndAngle(&cStack_2c, cStack_34.y, 0);
|
||||
dComIfGp_evmng_setGoal(&cStack_2c);
|
||||
initTalk(0xd0, NULL);
|
||||
field_0xdc4 = uVar4;
|
||||
mEventTimer = uVar4;
|
||||
break;
|
||||
case 1:
|
||||
fopAc_ac_c* actor_p = field_0x10c8[2].getActorP();
|
||||
|
|
@ -2214,14 +2214,14 @@ int daNpc_Hanjo_c::cutDive(int param_1) {
|
|||
}
|
||||
switch(iVar5) {
|
||||
case 0:
|
||||
if (cLib_calcTimer(&field_0xdc4) == 0) {
|
||||
if (cLib_calcTimer(&mEventTimer) == 0) {
|
||||
mJntAnm.lookPlayer(0);
|
||||
if (field_0xdc8 == mCurAngle.y) {
|
||||
if (mPlayerAngle == mCurAngle.y) {
|
||||
rv = 1;
|
||||
} else if (mType == TYPE_1) {
|
||||
step(field_0xdc8, 7, 10, 0xf, 0);
|
||||
step(mPlayerAngle, 7, 10, 0xf, 0);
|
||||
} else {
|
||||
step(field_0xdc8, 7, 0xe, 0xf, 0);
|
||||
step(mPlayerAngle, 7, 0xe, 0xf, 0);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -2270,10 +2270,10 @@ int daNpc_Hanjo_c::cutDive(int param_1) {
|
|||
|
||||
/* 809FD86C-809FDEFC 0048CC 0690+00 2/0 0/0 0/0 .text wait__13daNpc_Hanjo_cFPv */
|
||||
int daNpc_Hanjo_c::wait(void* param_0) {
|
||||
switch(field_0xe22) {
|
||||
switch(mMode) {
|
||||
case 0:
|
||||
case 1:
|
||||
if (!field_0xd08.checkStagger()) {
|
||||
if (!mStagger.checkStagger()) {
|
||||
switch (mType) {
|
||||
case TYPE_0:
|
||||
if (field_0x1721 != 0) {
|
||||
|
|
@ -2295,7 +2295,7 @@ int daNpc_Hanjo_c::wait(void* param_0) {
|
|||
mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
|
||||
break;
|
||||
}
|
||||
field_0xe22 = 2;
|
||||
mMode = 2;
|
||||
}
|
||||
case 2:
|
||||
switch(mType) {
|
||||
|
|
@ -2322,7 +2322,7 @@ int daNpc_Hanjo_c::wait(void* param_0) {
|
|||
}
|
||||
}
|
||||
|
||||
if (!field_0xd08.checkStagger()) {
|
||||
if (!mStagger.checkStagger()) {
|
||||
if (mType == TYPE_0) {
|
||||
if ((daNpcT_chkEvtBit(0xab) ||
|
||||
daNpcT_chkEvtBit(0xb7)) && field_0x1721 == 0 && mMotionSeqMngr.getNo() == 2)
|
||||
|
|
@ -2334,12 +2334,12 @@ int daNpc_Hanjo_c::wait(void* param_0) {
|
|||
}
|
||||
if (mPlayerActorMngr.getActorP() != NULL) {
|
||||
mJntAnm.lookPlayer(0);
|
||||
if (!chkActorInSight(mPlayerActorMngr.getActorP(), field_0xdf8,
|
||||
if (!chkActorInSight(mPlayerActorMngr.getActorP(), mAttnFovY,
|
||||
mCurAngle.y)) {
|
||||
mJntAnm.lookNone(0);
|
||||
}
|
||||
if (!srchPlayerActor() && home.angle.y == mCurAngle.y) {
|
||||
field_0xe22 = 1;
|
||||
mMode = 1;
|
||||
}
|
||||
} else {
|
||||
mJntAnm.lookNone(0);
|
||||
|
|
@ -2347,16 +2347,16 @@ int daNpc_Hanjo_c::wait(void* param_0) {
|
|||
if (field_0xe34 != 0) {
|
||||
if (field_0x1721 != 0) {
|
||||
if (step(home.angle.y, -1, -1, 15, 0)) {
|
||||
field_0xe22 = 1;
|
||||
mMode = 1;
|
||||
}
|
||||
} else {
|
||||
if (step(home.angle.y, 7, 14, 15, 0)) {
|
||||
field_0xe22 = 1;
|
||||
mMode = 1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
setAngle(home.angle.y);
|
||||
field_0xe22 = 1;
|
||||
mMode = 1;
|
||||
}
|
||||
attention_info.flags = 0;
|
||||
} else {
|
||||
|
|
@ -2395,10 +2395,10 @@ int daNpc_Hanjo_c::wait(void* param_0) {
|
|||
/* 809FDEFC-809FE2E0 004F5C 03E4+00 1/0 0/0 0/0 .text throwStone__13daNpc_Hanjo_cFPv */
|
||||
int daNpc_Hanjo_c::throwStone(void* param_0) {
|
||||
int sVar4 = daNpc_Hanjo_Param_c::m.field_0xae;
|
||||
switch(field_0xe22) {
|
||||
switch(mMode) {
|
||||
case 0:
|
||||
case 1:
|
||||
if (!field_0xd08.checkStagger()) {
|
||||
if (!mStagger.checkStagger()) {
|
||||
if (daNpcT_chkEvtBit(0x8b)) {
|
||||
mFaceMotionSeqMngr.setNo(7, -1.0f, 0, 0);
|
||||
mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
|
||||
|
|
@ -2407,7 +2407,7 @@ int daNpc_Hanjo_c::throwStone(void* param_0) {
|
|||
mMotionSeqMngr.setNo(2, -1.0f, 0, 0);
|
||||
field_0x1704 = cLib_getRndValue(sVar4 * 0.5f, sVar4 * 1.5f);
|
||||
}
|
||||
field_0xe22 = 2;
|
||||
mMode = 2;
|
||||
}
|
||||
case 2:
|
||||
if (daNpcT_chkEvtBit(0x8b) && !daNpcT_chkEvtBit(0xad) && !daNpcT_chkEvtBit(0xb7)) {
|
||||
|
|
@ -2417,7 +2417,7 @@ int daNpc_Hanjo_c::throwStone(void* param_0) {
|
|||
mEvtNo = 8;
|
||||
}
|
||||
}
|
||||
if (!field_0xd08.checkStagger()) {
|
||||
if (!mStagger.checkStagger()) {
|
||||
if (daNpcT_chkEvtBit(0x8b)) {
|
||||
mJntAnm.lookPlayer(0);
|
||||
lookround(fopAcM_searchPlayerAngleY(this));
|
||||
|
|
@ -2426,11 +2426,11 @@ int daNpc_Hanjo_c::throwStone(void* param_0) {
|
|||
if (home.angle.y != mCurAngle.y) {
|
||||
if (field_0xe34 != 0) {
|
||||
if (step(home.angle.y, 7, 14, 15, 0)) {
|
||||
field_0xe22 = 1;
|
||||
mMode = 1;
|
||||
}
|
||||
} else {
|
||||
setAngle(home.angle.y);
|
||||
field_0xe22 = 1;
|
||||
mMode = 1;
|
||||
}
|
||||
attention_info.flags = 0;
|
||||
} else {
|
||||
|
|
@ -2447,7 +2447,7 @@ int daNpc_Hanjo_c::throwStone(void* param_0) {
|
|||
cLib_calcTimer(&field_0x1708);
|
||||
field_0x170c = 0xffffffff;
|
||||
} else {
|
||||
field_0xe22 = 1;
|
||||
mMode = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2469,10 +2469,10 @@ int daNpc_Hanjo_c::takayose(void* param_0) {
|
|||
f32 dVar8 = daNpc_Hanjo_Param_c::m.field_0xae;
|
||||
cXyz cStack_50;
|
||||
cXyz cStack_5c;
|
||||
switch (field_0xe22) {
|
||||
switch (mMode) {
|
||||
case 0:
|
||||
case 1:
|
||||
if (!field_0xd08.checkStagger()) {
|
||||
if (!mStagger.checkStagger()) {
|
||||
if (mType == 1) {
|
||||
if (daNpcT_chkEvtBit(0xcf)) {
|
||||
mFaceMotionSeqMngr.setNo(0, -1.0f, 0, 0);
|
||||
|
|
@ -2492,7 +2492,7 @@ int daNpc_Hanjo_c::takayose(void* param_0) {
|
|||
mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
|
||||
}
|
||||
field_0x1710 = cLib_getRndValue(dVar8 * 0.5f, dVar8 * 1.5f);
|
||||
field_0xe22 = 2;
|
||||
mMode = 2;
|
||||
}
|
||||
case 2:
|
||||
field_0xe2d = 0;
|
||||
|
|
@ -2521,28 +2521,28 @@ int daNpc_Hanjo_c::takayose(void* param_0) {
|
|||
mEvtNo = 10;
|
||||
}
|
||||
}
|
||||
if (!field_0xd08.checkStagger()) {
|
||||
if (!mStagger.checkStagger()) {
|
||||
if (mType == 1) {
|
||||
mPlayerActorMngr.remove();
|
||||
}
|
||||
if (mPlayerActorMngr.getActorP() != NULL) {
|
||||
mJntAnm.lookPlayer(0);
|
||||
if (!chkActorInSight(mPlayerActorMngr.getActorP(), field_0xdf8, mCurAngle.y)) {
|
||||
if (!chkActorInSight(mPlayerActorMngr.getActorP(), mAttnFovY, mCurAngle.y)) {
|
||||
mJntAnm.lookNone(0);
|
||||
}
|
||||
if (!srchPlayerActor() && home.angle.y == mCurAngle.y) {
|
||||
field_0xe22 = 1;
|
||||
mMode = 1;
|
||||
}
|
||||
} else {
|
||||
mJntAnm.lookNone(0);
|
||||
if (home.angle.y != mCurAngle.y) {
|
||||
if (field_0xe34 != 0) {
|
||||
if (step(home.angle.y, 7, 14, 15, 0)) {
|
||||
field_0xe22 = 1;
|
||||
mMode = 1;
|
||||
}
|
||||
} else {
|
||||
setAngle(home.angle.y);
|
||||
field_0xe22 = 1;
|
||||
mMode = 1;
|
||||
}
|
||||
attention_info.flags = 0;
|
||||
} else {
|
||||
|
|
@ -2561,14 +2561,14 @@ int daNpc_Hanjo_c::takayose(void* param_0) {
|
|||
} else {
|
||||
if (dVar1 != 0) {
|
||||
field_0x1714 = 0;
|
||||
field_0xe22 = 1;
|
||||
mMode = 1;
|
||||
} else {
|
||||
if (field_0x1714 != 0) {
|
||||
mJntAnm.lookNone(0);
|
||||
if (mMotionSeqMngr.getStepNo() > 0) {
|
||||
field_0x1714++;
|
||||
field_0x1714 &= 1;
|
||||
field_0xe22 = 1;
|
||||
mMode = 1;
|
||||
}
|
||||
} else {
|
||||
mJntAnm.lookActor(actor_p, 0.0, 0);
|
||||
|
|
@ -2589,7 +2589,7 @@ int daNpc_Hanjo_c::takayose(void* param_0) {
|
|||
{
|
||||
field_0x1714++;
|
||||
field_0x1714 &= 1;
|
||||
field_0xe22 = 1;
|
||||
mMode = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2607,10 +2607,10 @@ int daNpc_Hanjo_c::takayose(void* param_0) {
|
|||
|
||||
/* 809FEAEC-809FED58 005B4C 026C+00 3/0 0/0 0/0 .text talk__13daNpc_Hanjo_cFPv */
|
||||
int daNpc_Hanjo_c::talk(void* param_0) {
|
||||
switch(field_0xe22) {
|
||||
switch(mMode) {
|
||||
case 0:
|
||||
case 1:
|
||||
if (!field_0xd08.checkStagger()) {
|
||||
if (!mStagger.checkStagger()) {
|
||||
if (mType == TYPE_0 && mMotionSeqMngr.getNo() == 2) {
|
||||
mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
|
||||
}
|
||||
|
|
@ -2618,17 +2618,17 @@ int daNpc_Hanjo_c::talk(void* param_0) {
|
|||
initTalk(44, NULL);
|
||||
field_0x1723 = 0;
|
||||
} else {
|
||||
initTalk(field_0xa7c, NULL);
|
||||
initTalk(mFlowNodeNo, NULL);
|
||||
}
|
||||
field_0xe22 = 2;
|
||||
mMode = 2;
|
||||
}
|
||||
case 2:
|
||||
if (!field_0xd08.checkStagger()) {
|
||||
if (mTwilight != 0 || field_0xdc8 == mCurAngle.y) {
|
||||
if (!mStagger.checkStagger()) {
|
||||
if (mTwilight != 0 || mPlayerAngle == mCurAngle.y) {
|
||||
if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) {
|
||||
mPlayerActorMngr.entry(daPy_getPlayerActorClass());
|
||||
dComIfGp_event_reset();
|
||||
field_0xe22 = 3;
|
||||
mMode = 3;
|
||||
}
|
||||
mJntAnm.lookPlayer(0);
|
||||
if (mTwilight != 0) {
|
||||
|
|
@ -2637,9 +2637,9 @@ int daNpc_Hanjo_c::talk(void* param_0) {
|
|||
} else {
|
||||
mJntAnm.lookPlayer(0);
|
||||
if (field_0x1721 != 0) {
|
||||
step(field_0xdc8, -1, -1, 15, 0);
|
||||
step(mPlayerAngle, -1, -1, 15, 0);
|
||||
} else {
|
||||
step(field_0xdc8, 7, 14, 15, 0);
|
||||
step(mPlayerAngle, 7, 14, 15, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue