mirror of https://github.com/zeldaret/tp.git
d_a_npc_kasi_hana, mich, and kyu work (#2610)
* equivalent * kasi_mng_c work * class work and create function work * kasi_mng_c is matching * little more work * almost matching * enums defined * kasi_hana almost matching * more mich work * mich almost matching * kyu almost matching * potentially fixed issue * Now maybe good? * Should be fixed now * PR Cleanup
This commit is contained in:
parent
6313a96d49
commit
179189c758
|
|
@ -1829,9 +1829,9 @@ config.libs = [
|
|||
ActorRel(NonMatching, "d_a_npc_inko"),
|
||||
ActorRel(NonMatching, "d_a_npc_ins"),
|
||||
ActorRel(NonMatching, "d_a_npc_jagar"),
|
||||
ActorRel(NonMatching, "d_a_npc_kasi_hana"),
|
||||
ActorRel(NonMatching, "d_a_npc_kasi_kyu"),
|
||||
ActorRel(NonMatching, "d_a_npc_kasi_mich"),
|
||||
ActorRel(NonMatching, "d_a_npc_kasi_hana", extra_cflags=[DANPCF_C_HACK]),
|
||||
ActorRel(NonMatching, "d_a_npc_kasi_kyu", extra_cflags=[DANPCF_C_HACK]),
|
||||
ActorRel(NonMatching, "d_a_npc_kasi_mich", extra_cflags=[DANPCF_C_HACK]),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_kdk"),
|
||||
ActorRel(NonMatching, "d_a_npc_kn"),
|
||||
ActorRel(NonMatching, "d_a_npc_knj"),
|
||||
|
|
|
|||
|
|
@ -1298,6 +1298,7 @@ public:
|
|||
void offReverse() { mIsReversed = false; }
|
||||
dPath* getPathInfo() { return mPathInfo; }
|
||||
void setRange(f32 i_range) { mRange = i_range; }
|
||||
u16 getNumPnts() { return mPathInfo->m_num; }
|
||||
}; // Size: 0x630
|
||||
|
||||
class daNpcF_Lookat_c {
|
||||
|
|
|
|||
|
|
@ -81,10 +81,14 @@ public:
|
|||
/* 80990DDC */ void _Evt_SpotLight_Off_CutMain(int const&);
|
||||
/* 80991858 */ void setMtx();
|
||||
|
||||
BOOL isMiniGamePlaying() { return mIsMiniGamePlaying; }
|
||||
|
||||
static u8 mEvtSeqList[96];
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0xe78 - 0x568];
|
||||
/* 0x568 */ u8 field_0x568[0xe08 - 0x568];
|
||||
/* 0xE08 */ s8 mIsMiniGamePlaying;
|
||||
/* 0xE09 */ u8 field_0xe09[0xe78 - 0xe09];
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpcChin_c) == 0xe78);
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define D_A_NPC_KASI_HANA_H
|
||||
|
||||
#include "d/actor/d_a_npc.h"
|
||||
#include "d/actor/d_a_tag_escape.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-npcs
|
||||
|
|
@ -10,109 +11,196 @@
|
|||
*
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
class daNpcKasiHana_c : public fopAc_ac_c {
|
||||
public:
|
||||
/* 80A1BE44 */ daNpcKasiHana_c();
|
||||
/* 80A1C0A4 */ ~daNpcKasiHana_c();
|
||||
/* 80A1C334 */ void Create();
|
||||
/* 80A1C5B0 */ void CreateHeap();
|
||||
/* 80A1C734 */ void Delete();
|
||||
/* 80A1C768 */ void Execute();
|
||||
/* 80A1C78C */ void Draw();
|
||||
/* 80A1C7D8 */ void ctrlJoint(J3DJoint*, J3DModel*);
|
||||
/* 80A1C964 */ void createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80A1C984 */ void ctrlJointCallBack(J3DJoint*, int);
|
||||
/* 80A1C9D0 */ void setParam();
|
||||
/* 80A1CA60 */ void main();
|
||||
/* 80A1CD28 */ void setAttnPos();
|
||||
/* 80A1CED0 */ bool setMotionAnm(int, f32);
|
||||
/* 80A1CFA0 */ void setMotion(int, f32, int);
|
||||
/* 80A1CFE8 */ bool drawDbgInfo();
|
||||
/* 80A1CFF0 */ void reset();
|
||||
/* 80A1D238 */ void playMotion();
|
||||
/* 80A1D604 */ void playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData***);
|
||||
/* 80A1D77C */ void setAction(int (daNpcKasiHana_c::*)(int));
|
||||
/* 80A1D824 */ void setLookMode(int);
|
||||
/* 80A1D848 */ void lookat();
|
||||
/* 80A1DA28 */ void step(s16, int);
|
||||
/* 80A1DB1C */ void chkFindPlayer();
|
||||
/* 80A1DC00 */ void wait(int);
|
||||
/* 80A1E184 */ void chace_st(int);
|
||||
/* 80A1E228 */ void chace(int);
|
||||
/* 80A1E3AC */ void getChacePos();
|
||||
/* 80A1E4AC */ void turn(int);
|
||||
/* 80A1E578 */ void fear(int);
|
||||
/* 80A1E78C */ void srchWolfTag();
|
||||
/* 80A1E7F4 */ void _srch_escape_tag(void*, void*);
|
||||
/* 80A1E8C4 */ void getWolfPathNearIdx();
|
||||
/* 80A1E9F8 */ void talk(int);
|
||||
/* 80A1EB5C */ void demo(int);
|
||||
/* 80A1EE38 */ void escape(int);
|
||||
/* 80A1EF90 */ void cheer(int);
|
||||
/* 80A1F198 */ void _turn_to_link(s16);
|
||||
/* 80A1F1E4 */ void _turn_pos(cXyz const&, s16);
|
||||
/* 80A1F240 */ void actor_front_check(fopAc_ac_c*);
|
||||
/* 80A1F318 */ void _getOffset(cXyz const&, cXyz&);
|
||||
/* 80A1F384 */ void _Evt_Kasi_Appear(int);
|
||||
/* 80A1F42C */ void _Evt_Kasi_Appear_CutInit(int const&);
|
||||
/* 80A1F50C */ void _Evt_Kasi_Appear_CutMain(int const&);
|
||||
/* 80A1F638 */ void _Evt_Kasi_Talk(int);
|
||||
/* 80A1F740 */ void _Evt_Kasi_Talk_CutInit(int const&);
|
||||
/* 80A1F860 */ void _Evt_Kasi_Talk_CutMain(int const&, int);
|
||||
/* 80A1F9F4 */ void _Evt_Kasi(int);
|
||||
/* 80A1FA9C */ void _Evt_Kasi_CutInit(int const&);
|
||||
/* 80A1FBC4 */ void _Evt_Kasi_CutMain(int const&);
|
||||
/* 80A1FD64 */ void _Evt_Kasi_Cheer(int);
|
||||
/* 80A1FE6C */ void _Evt_Kasi_Cheer_CutInit(int const&);
|
||||
/* 80A1FF78 */ void _Evt_Kasi_Cheer_CutMain(int const&, int);
|
||||
/* 80A2016C */ void _Evt_Kasi_Cheer2(int);
|
||||
/* 80A20244 */ void _Evt_Kasi_Cheer2_CutInit(int const&);
|
||||
/* 80A20350 */ void _Evt_Kasi_Cheer2_CutMain(int const&, int);
|
||||
/* 80A20678 */ void adjustShapeAngle();
|
||||
*/
|
||||
|
||||
static u8 mEvtSeqList[72];
|
||||
static u8 mTargetTag[4];
|
||||
static u8 mTargetTagDist[4];
|
||||
static u8 mWolfAngle[2 + 2 /* padding */];
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x1ac8 - 0x568];
|
||||
struct daNpcKasiHana_HIOParam {
|
||||
/* 0x00 */ daNpcF_HIOParam common;
|
||||
/* 0x6C */ f32 track_start_dist; // 追跡開始距離 - Track Start Distance
|
||||
/* 0x70 */ f32 track_stop_dist; // 追跡停止距離 - Track Stop Distance
|
||||
/* 0x74 */ f32 track_spd; // 追跡速度 - Track Speed
|
||||
/* 0x78 */ f32 escape_spd; // 逃げる速度 - Escape Speed
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpcKasiHana_c) == 0x1ac8);
|
||||
|
||||
class daNpcKasiHana_Param_c {
|
||||
public:
|
||||
/* 80A2067C */ ~daNpcKasiHana_Param_c();
|
||||
|
||||
static u8 const m[124];
|
||||
class daNpcKasiHana_HIO_c
|
||||
#ifdef DEBUG
|
||||
: public mDoHIO_entry_c
|
||||
#endif
|
||||
{
|
||||
/* 0x8 */ daNpcKasiHana_HIOParam param;
|
||||
};
|
||||
|
||||
class daNpcKasi_Mng_c {
|
||||
public:
|
||||
daNpcKasi_Mng_c() {
|
||||
mIsPathInit = false;
|
||||
mCenterPos.set(0.0f, 0.0f, 0.0f);
|
||||
mSygnal = 0;
|
||||
}
|
||||
/* 80A1AFAC */ void calcEscapeForm();
|
||||
/* 80A1B0D8 */ void calcCenterPos();
|
||||
/* 80A1B1C8 */ void getDistFromCenter();
|
||||
/* 80A1B0D8 */ BOOL calcCenterPos();
|
||||
/* 80A1B1C8 */ f32 getDistFromCenter();
|
||||
/* 80A1B35C */ void getOffsetFromLeader(cXyz const&, cXyz&);
|
||||
/* 80A1B410 */ void initPath(u8, u16);
|
||||
/* 80A1B48C */ void getPlNearPoint();
|
||||
/* 80A1B5F0 */ void getSygnalInfo();
|
||||
/* 80A1B48C */ int getPlNearPoint();
|
||||
/* 80A1B5F0 */ int getSygnalInfo();
|
||||
/* 80A1B628 */ void sendInfo();
|
||||
/* 80A1B6F8 */ void offTalk();
|
||||
/* 80A1B774 */ void chkTalk();
|
||||
/* 80A1B810 */ void chkFear();
|
||||
/* 80A1B884 */ void chkEscape();
|
||||
/* 80A1B920 */ void createHearts();
|
||||
/* 80A1B774 */ BOOL chkTalk();
|
||||
/* 80A1B810 */ BOOL chkFear();
|
||||
/* 80A1B884 */ BOOL chkEscape();
|
||||
/* 80A1B920 */ BOOL createHearts();
|
||||
/* 80A1BAAC */ void allDemoMove();
|
||||
/* 80A1BB24 */ void allDemoNotMove();
|
||||
/* 80A1BB9C */ void isMiniGamePlaying();
|
||||
/* 80A1BB9C */ BOOL isMiniGamePlaying();
|
||||
/* 80A1BBE0 */ void schMemberActor();
|
||||
/* 80A1BC88 */ void schDanchoActor();
|
||||
/* 80A1BCF0 */ void deleteAllMember();
|
||||
/* 80A1BD6C */ void chgWeightHeavy();
|
||||
/* 80A1BDD8 */ void chgWeightLight();
|
||||
/* 80A2065C */ void getCenterPos();
|
||||
/* 80A2065C */ cXyz getCenterPos();
|
||||
|
||||
void setKyuPos(const cXyz& i_pos) { mKyuPos = i_pos; }
|
||||
void setMichPos(const cXyz& i_pos) { mMichPos = i_pos; }
|
||||
BOOL chkSygnal(int param_1) { return mSygnal & param_1; }
|
||||
void SygnalClear() { mSygnal = 0; }
|
||||
void onSygnal(int param_1) { mSygnal |= param_1; }
|
||||
void setHanaActor(fopAc_ac_c* a_this) { if (a_this != NULL) mHanaActorMngr.entry(a_this); }
|
||||
BOOL isPathInit() { return mIsPathInit; }
|
||||
fopAc_ac_c* getHanaActor() { return mHanaActorMngr.getActorP(); }
|
||||
fopAc_ac_c* getKyuActor() { return mKyuActorMngr.getActorP(); }
|
||||
fopAc_ac_c* getMichActor() { return mMichActorMngr.getActorP(); }
|
||||
|
||||
/* 0x00 */ daNpcF_ActorMngr_c mHanaActorMngr;
|
||||
/* 0x08 */ daNpcF_ActorMngr_c mKyuActorMngr;
|
||||
/* 0x10 */ daNpcF_ActorMngr_c mMichActorMngr;
|
||||
/* 0x18 */ daNpcF_ActorMngr_c mDanchoActorMngr;
|
||||
/* 0x20 */ int mSygnal;
|
||||
/* 0x24 */ cXyz mKyuPos;
|
||||
/* 0x30 */ cXyz mMichPos;
|
||||
/* 0x3C */ cXyz mCenterPos;
|
||||
/* 0x48 */ int mPlPoint;
|
||||
/* 0x4C */ bool mIsPathInit;
|
||||
/* 0x50 */ daNpcF_Path_c mPath;
|
||||
};
|
||||
|
||||
class daNpcKasiHana_c : public daNpcF_c {
|
||||
public:
|
||||
typedef int (daNpcKasiHana_c::*actionFunc)(int);
|
||||
typedef BOOL (daNpcKasiHana_c::*cutFunc)(int);
|
||||
typedef BOOL (daNpcKasiHana_c::*EventFn)(int);
|
||||
|
||||
/* 80A1BE44 */ daNpcKasiHana_c();
|
||||
/* 80A1C0A4 */ ~daNpcKasiHana_c();
|
||||
/* 80A1C334 */ cPhs__Step Create();
|
||||
/* 80A1C5B0 */ int CreateHeap();
|
||||
/* 80A1C734 */ int Delete();
|
||||
/* 80A1C768 */ int Execute();
|
||||
/* 80A1C78C */ int Draw();
|
||||
/* 80A1C7D8 */ int ctrlJoint(J3DJoint*, J3DModel*);
|
||||
/* 80A1C964 */ static int createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80A1C984 */ static int ctrlJointCallBack(J3DJoint*, int);
|
||||
/* 80A1C9D0 */ void setParam();
|
||||
/* 80A1CA60 */ BOOL main();
|
||||
/* 80A1CD28 */ void setAttnPos();
|
||||
/* 80A1CED0 */ void setMotionAnm(int, f32);
|
||||
/* 80A1CFA0 */ void setMotion(int, f32, int);
|
||||
/* 80A1CFE8 */ int drawDbgInfo();
|
||||
/* 80A1CFF0 */ void reset();
|
||||
/* 80A1D238 */ void playMotion();
|
||||
/* 80A1D604 */ void playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData***);
|
||||
/* 80A1D77C */ BOOL setAction(actionFunc);
|
||||
/* 80A1D824 */ void setLookMode(int);
|
||||
/* 80A1D848 */ void lookat();
|
||||
/* 80A1DA28 */ BOOL step(s16, int);
|
||||
/* 80A1DB1C */ BOOL chkFindPlayer();
|
||||
/* 80A1DC00 */ int wait(int);
|
||||
/* 80A1E184 */ int chace_st(int);
|
||||
/* 80A1E228 */ int chace(int);
|
||||
/* 80A1E3AC */ cXyz getChacePos();
|
||||
/* 80A1E4AC */ int turn(int);
|
||||
/* 80A1E578 */ int fear(int);
|
||||
/* 80A1E78C */ daTagEscape_c* srchWolfTag();
|
||||
/* 80A1E7F4 */ static void* _srch_escape_tag(void*, void*);
|
||||
/* 80A1E8C4 */ int getWolfPathNearIdx();
|
||||
/* 80A1E9F8 */ int talk(int);
|
||||
/* 80A1EB5C */ int demo(int);
|
||||
/* 80A1EE38 */ int escape(int);
|
||||
/* 80A1EF90 */ int cheer(int);
|
||||
/* 80A1F198 */ BOOL _turn_to_link(s16);
|
||||
/* 80A1F1E4 */ BOOL _turn_pos(cXyz const&, s16);
|
||||
/* 80A1F240 */ BOOL actor_front_check(fopAc_ac_c*);
|
||||
/* 80A1F318 */ void _getOffset(cXyz const&, cXyz&);
|
||||
/* 80A1F384 */ BOOL _Evt_Kasi_Appear(int);
|
||||
/* 80A1F42C */ BOOL _Evt_Kasi_Appear_CutInit(int const&);
|
||||
/* 80A1F50C */ BOOL _Evt_Kasi_Appear_CutMain(int const&);
|
||||
/* 80A1F638 */ BOOL _Evt_Kasi_Talk(int);
|
||||
/* 80A1F740 */ BOOL _Evt_Kasi_Talk_CutInit(int const&);
|
||||
/* 80A1F860 */ BOOL _Evt_Kasi_Talk_CutMain(int const&, int);
|
||||
/* 80A1F9F4 */ BOOL _Evt_Kasi(int);
|
||||
/* 80A1FA9C */ BOOL _Evt_Kasi_CutInit(int const&);
|
||||
/* 80A1FBC4 */ BOOL _Evt_Kasi_CutMain(int const&);
|
||||
/* 80A1FD64 */ BOOL _Evt_Kasi_Cheer(int);
|
||||
/* 80A1FE6C */ BOOL _Evt_Kasi_Cheer_CutInit(int const&);
|
||||
/* 80A1FF78 */ BOOL _Evt_Kasi_Cheer_CutMain(int const&, int);
|
||||
/* 80A2016C */ BOOL _Evt_Kasi_Cheer2(int);
|
||||
/* 80A20244 */ BOOL _Evt_Kasi_Cheer2_CutInit(int const&);
|
||||
/* 80A20350 */ BOOL _Evt_Kasi_Cheer2_CutMain(int const&, int);
|
||||
/* 80A20678 */ void adjustShapeAngle();
|
||||
|
||||
int getMessageNo() { return home.angle.x; }
|
||||
s8 getType() {
|
||||
s8 rv = fopAcM_GetParam(this) & 0xFF;
|
||||
|
||||
if (rv == 0xFF) {
|
||||
rv = 0;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
void off_talked() { mTalked = false; }
|
||||
BOOL is_talked() { return mTalked; }
|
||||
BOOL is_escape() { return mEscape; }
|
||||
void chgWeightHeavy() { mCcStts.SetWeight(0xFE); }
|
||||
void chgWeightLight() { mCcStts.SetWeight(0xD8); }
|
||||
u8 getRailNo() { return fopAcM_GetParam(this) >> 8; }
|
||||
bool chkAction(actionFunc action) { return action == mAction; }
|
||||
int getSwitchBitNo() { return (fopAcM_GetParam(this) >> 16) & 0xFF; }
|
||||
BOOL pl_front_check() { return actor_front_check(daPy_getPlayerActorClass()); }
|
||||
void setEscapePathDir() { if (pl_front_check()) mPath.reverse(); }
|
||||
|
||||
static EventFn mEvtSeqList[6];
|
||||
static daTagEscape_c* mTargetTag;
|
||||
static f32 mTargetTagDist;
|
||||
static s16 mWolfAngle;
|
||||
|
||||
private:
|
||||
/* 0x0B48 */ Z2CreatureCitizen mSound;
|
||||
/* 0x0BEC */ u8 field_0xbec[0xbf0 - 0xbec];
|
||||
/* 0x0BF0 */ daNpcF_Lookat_c mLookat;
|
||||
/* 0x0C8C */ daNpcF_ActorMngr_c mActorMngr[1];
|
||||
/* 0x0C94 */ daNpcF_Path_c mPath;
|
||||
/* 0x12C4 */ daNpcKasiHana_HIO_c* mHIO;
|
||||
/* 0x12C8 */ dCcD_Cyl mCyl;
|
||||
/* 0x1404 */ s8 mType;
|
||||
/* 0x1405 */ u8 field_0x1405;
|
||||
/* 0x1406 */ s16 mMode;
|
||||
/* 0x1408 */ actionFunc mAction;
|
||||
/* 0x1414 */ request_of_phase_process_class mPhases[3];
|
||||
/* 0x142C */ fpc_ProcID field_0x142c;
|
||||
/* 0x1430 */ int field_0x1430;
|
||||
/* 0x1434 */ int field_0x1434;
|
||||
/* 0x1438 */ int mMessageNo;
|
||||
/* 0x143C */ s16 mLookMode;
|
||||
/* 0x143E */ s16 field_0x143e;
|
||||
/* 0x1440 */ u8 field_0x1440;
|
||||
/* 0x1441 */ s8 field_0x1441;
|
||||
/* 0x1442 */ bool mTalked;
|
||||
/* 0x1443 */ bool mEscape;
|
||||
/* 0x1444 */ u8 field_0x1444;
|
||||
/* 0x1445 */ bool field_0x1445;
|
||||
/* 0x1448 */ daNpcKasi_Mng_c mKasiMng;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpcKasiHana_c) == 0x1ac8);
|
||||
|
||||
#endif /* D_A_NPC_KASI_HANA_H */
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define D_A_NPC_KASI_KYU_H
|
||||
|
||||
#include "d/actor/d_a_npc.h"
|
||||
#include "d/actor/d_a_tag_escape.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-npcs
|
||||
|
|
@ -10,76 +11,143 @@
|
|||
*
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
class daNpcKasiKyu_c : public fopAc_ac_c {
|
||||
*/
|
||||
|
||||
struct daNpcKasiKyu_HIOParam {
|
||||
/* 0x00 */ daNpcF_HIOParam common;
|
||||
/* 0x6C */ s16 escape_time; // 逃げるまでの時間 - Escape Time
|
||||
/* 0x70 */ f32 escape_spd; // 逃げる速度 - Escape Speed
|
||||
};
|
||||
|
||||
class daNpcKasiKyu_HIO_c
|
||||
#ifdef DEBUG
|
||||
: public mDoHIO_entry_c
|
||||
#endif
|
||||
{
|
||||
/* 0x8 */ daNpcKasiKyu_HIOParam param;
|
||||
};
|
||||
|
||||
class daNpcKasiKyu_c : public daNpcF_c {
|
||||
public:
|
||||
typedef int (daNpcKasiKyu_c::*actionFunc)(int);
|
||||
typedef BOOL (daNpcKasiKyu_c::*EventFn)(int);
|
||||
|
||||
/* 80A219CC */ daNpcKasiKyu_c();
|
||||
/* 80A21C14 */ ~daNpcKasiKyu_c();
|
||||
/* 80A21E24 */ void Create();
|
||||
/* 80A220A0 */ void CreateHeap();
|
||||
/* 80A22224 */ void Delete();
|
||||
/* 80A22258 */ void Execute();
|
||||
/* 80A22284 */ void Draw();
|
||||
/* 80A222D0 */ void ctrlJoint(J3DJoint*, J3DModel*);
|
||||
/* 80A2245C */ void createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80A2247C */ void ctrlJointCallBack(J3DJoint*, int);
|
||||
/* 80A21E24 */ cPhs__Step Create();
|
||||
/* 80A220A0 */ int CreateHeap();
|
||||
/* 80A22224 */ int Delete();
|
||||
/* 80A22258 */ int Execute();
|
||||
/* 80A22284 */ int Draw();
|
||||
/* 80A222D0 */ int ctrlJoint(J3DJoint*, J3DModel*);
|
||||
/* 80A2245C */ static int createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80A2247C */ static int ctrlJointCallBack(J3DJoint*, int);
|
||||
/* 80A224C8 */ void setParam();
|
||||
/* 80A22534 */ void main();
|
||||
/* 80A22534 */ BOOL main();
|
||||
/* 80A227DC */ void setAttnPos();
|
||||
/* 80A22984 */ bool setMotionAnm(int, f32);
|
||||
/* 80A22984 */ void setMotionAnm(int, f32);
|
||||
/* 80A22A54 */ void setMotion(int, f32, int);
|
||||
/* 80A22A9C */ bool drawDbgInfo();
|
||||
/* 80A22A9C */ BOOL drawDbgInfo();
|
||||
/* 80A22AA4 */ void reset();
|
||||
/* 80A22CD8 */ void playMotion();
|
||||
/* 80A2310C */ void playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData***);
|
||||
/* 80A23284 */ void setAction(int (daNpcKasiKyu_c::*)(int));
|
||||
/* 80A23284 */ BOOL setAction(int (daNpcKasiKyu_c::*)(int));
|
||||
/* 80A2332C */ void setLookMode(int);
|
||||
/* 80A23350 */ void lookat();
|
||||
/* 80A23530 */ void step(s16, int);
|
||||
/* 80A23624 */ void chkFindPlayer();
|
||||
/* 80A23708 */ void wait(int);
|
||||
/* 80A23AB4 */ void fear(int);
|
||||
/* 80A23C90 */ void srchWolfTag();
|
||||
/* 80A23CF8 */ void _srch_escape_tag(void*, void*);
|
||||
/* 80A23DC8 */ void getWolfPathNearIdx();
|
||||
/* 80A23EFC */ void chace_st(int);
|
||||
/* 80A23FA0 */ void chace(int);
|
||||
/* 80A24110 */ void getChacePos();
|
||||
/* 80A241CC */ void turn_link(int);
|
||||
/* 80A2428C */ void turn_home(int);
|
||||
/* 80A24370 */ void turn_center(int);
|
||||
/* 80A24440 */ void talk_dummy(int);
|
||||
/* 80A244B8 */ void kya(int);
|
||||
/* 80A24590 */ void kya2(int);
|
||||
/* 80A24628 */ void kya_stop(int);
|
||||
/* 80A246FC */ void iyan(int);
|
||||
/* 80A24774 */ void iyan_look(int);
|
||||
/* 80A2484C */ void turn_hana(int);
|
||||
/* 80A2493C */ void escape(int);
|
||||
/* 80A24A54 */ void wait_dummy(int);
|
||||
/* 80A24AD8 */ void cheer(int);
|
||||
/* 80A24CC4 */ void _turn_to_link(s16);
|
||||
/* 80A24D10 */ void _turn_pos(cXyz const&, s16);
|
||||
/* 80A24D6C */ void actor_front_check(fopAc_ac_c*);
|
||||
/* 80A23530 */ BOOL step(s16, int);
|
||||
/* 80A23624 */ BOOL chkFindPlayer();
|
||||
/* 80A23708 */ int wait(int);
|
||||
/* 80A23AB4 */ int fear(int);
|
||||
/* 80A23C90 */ daTagEscape_c* srchWolfTag();
|
||||
/* 80A23CF8 */ static void* _srch_escape_tag(void*, void*);
|
||||
/* 80A23DC8 */ int getWolfPathNearIdx();
|
||||
/* 80A23EFC */ int chace_st(int);
|
||||
/* 80A23FA0 */ int chace(int);
|
||||
/* 80A24110 */ cXyz getChacePos();
|
||||
/* 80A241CC */ int turn_link(int);
|
||||
/* 80A2428C */ int turn_home(int);
|
||||
/* 80A24370 */ int turn_center(int);
|
||||
/* 80A24440 */ int talk_dummy(int);
|
||||
/* 80A244B8 */ int kya(int);
|
||||
/* 80A24590 */ int kya2(int);
|
||||
/* 80A24628 */ int kya_stop(int);
|
||||
/* 80A246FC */ int iyan(int);
|
||||
/* 80A24774 */ int iyan_look(int);
|
||||
/* 80A2484C */ int turn_hana(int);
|
||||
/* 80A2493C */ int escape(int);
|
||||
/* 80A24A54 */ int wait_dummy(int);
|
||||
/* 80A24AD8 */ int cheer(int);
|
||||
/* 80A24CC4 */ BOOL _turn_to_link(s16);
|
||||
/* 80A24D10 */ BOOL _turn_pos(cXyz const&, s16);
|
||||
/* 80A24D6C */ BOOL actor_front_check(fopAc_ac_c*);
|
||||
/* 80A24E44 */ void _getOffset(cXyz const&, cXyz&);
|
||||
/* 80A25848 */ void adjustShapeAngle();
|
||||
/* 80A25848 */ void adjustShapeAngle() {}
|
||||
|
||||
static u8 mEvtSeqList[12];
|
||||
static u8 mTargetTag[4];
|
||||
static u8 mTargetTagDist[4];
|
||||
s8 getType() {
|
||||
s8 rv = fopAcM_GetParam(this) & 0xFF;
|
||||
|
||||
if (rv == 0xFF) {
|
||||
rv = 0;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
int getMessageNo() { return home.angle.x; }
|
||||
u8 getRailNo() { return fopAcM_GetParam(this) >> 8; }
|
||||
void setSygnal(int i_sygnal) { mSygnal = i_sygnal; }
|
||||
void setChacePos(cXyz& i_chacePos) { mChacePos = i_chacePos; }
|
||||
void setCenterPos(cXyz& i_centerPos) { mCenterPos = i_centerPos; }
|
||||
void setPlPoint(int i_plPoint) { mPlPoint = i_plPoint; }
|
||||
void off_talked() { mTalked = false; }
|
||||
BOOL is_talked() { return mTalked; }
|
||||
BOOL is_fear() { return mFear; }
|
||||
BOOL is_escape() { return mEscape; }
|
||||
void chgWeightHeavy() { mCcStts.SetWeight(0xFE); }
|
||||
void chgWeightLight() { mCcStts.SetWeight(0xD8); }
|
||||
BOOL pl_front_check() { return actor_front_check(daPy_getPlayerActorClass()); }
|
||||
|
||||
static EventFn mEvtSeqList[1];
|
||||
static daTagEscape_c* mTargetTag;
|
||||
static f32 mTargetTagDist;
|
||||
static s16 mWolfAngle;
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x146c - 0x568];
|
||||
/* 0x0B48 */ Z2CreatureCitizen mSound;
|
||||
/* 0x0BEC */ u8 field_0xbec[0xbf0 - 0xbec];
|
||||
/* 0x0BF0 */ daNpcF_Lookat_c mLookat;
|
||||
/* 0x0C8C */ daNpcF_ActorMngr_c mActorMngr[1];
|
||||
/* 0x0C94 */ daNpcF_Path_c mPath;
|
||||
/* 0x12C4 */ daNpcKasiKyu_HIO_c* mHIO;
|
||||
/* 0x12C8 */ dCcD_Cyl mCyl;
|
||||
/* 0x1404 */ s16 mMode;
|
||||
/* 0x1408 */ actionFunc mAction;
|
||||
/* 0x1414 */ request_of_phase_process_class mPhases[3];
|
||||
/* 0x142C */ fpc_ProcID field_0x142c;
|
||||
/* 0x1430 */ int field_0x1430;
|
||||
/* 0x1434 */ int field_0x1434;
|
||||
/* 0x1438 */ int mMessageNo;
|
||||
/* 0x143C */ s16 mLookMode;
|
||||
/* 0x143E */ s16 field_0x143e;
|
||||
/* 0x1440 */ int mSygnal;
|
||||
/* 0x1444 */ cXyz mChacePos;
|
||||
/* 0x1450 */ cXyz mCenterPos;
|
||||
/* 0x145C */ int mPlPoint;
|
||||
/* 0x1460 */ int field_0x1460;
|
||||
/* 0x1464 */ s8 mType;
|
||||
/* 0x1465 */ s8 field_0x1465;
|
||||
/* 0x1466 */ bool mTalked;
|
||||
/* 0x1467 */ bool mFear;
|
||||
/* 0x1468 */ bool mEscape;
|
||||
/* 0x1469 */ u8 field_0x1469;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpcKasiKyu_c) == 0x146c);
|
||||
|
||||
class daNpcKasiKyu_Param_c {
|
||||
public:
|
||||
/* 80A2584C */ ~daNpcKasiKyu_Param_c();
|
||||
/* 80A2584C */ virtual ~daNpcKasiKyu_Param_c() {}
|
||||
|
||||
static u8 const m[116];
|
||||
static daNpcKasiKyu_HIOParam const m;
|
||||
};
|
||||
|
||||
|
||||
#endif /* D_A_NPC_KASI_KYU_H */
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define D_A_NPC_KASI_MICH_H
|
||||
|
||||
#include "d/actor/d_a_npc.h"
|
||||
#include "d/actor/d_a_tag_escape.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-npcs
|
||||
|
|
@ -10,76 +11,143 @@
|
|||
*
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
class daNpcKasiMich_c : public fopAc_ac_c {
|
||||
*/
|
||||
|
||||
struct daNpcKasiMich_HIOParam {
|
||||
/* 0x00 */ daNpcF_HIOParam common;
|
||||
/* 0x6C */ s16 escape_time; // 逃げるまでの時間 - Escape Time
|
||||
/* 0x70 */ f32 escape_spd; // 逃げる速度 - Escape Speed
|
||||
};
|
||||
|
||||
class daNpcKasiMich_HIO_c
|
||||
#ifdef DEBUG
|
||||
: public mDoHIO_entry_c
|
||||
#endif
|
||||
{
|
||||
/* 0x8 */ daNpcKasiMich_HIOParam param;
|
||||
};
|
||||
|
||||
class daNpcKasiMich_c : public daNpcF_c {
|
||||
public:
|
||||
typedef int (daNpcKasiMich_c::*actionFunc)(int);
|
||||
typedef BOOL (daNpcKasiMich_c::*EventFn)(int);
|
||||
|
||||
/* 80A261CC */ daNpcKasiMich_c();
|
||||
/* 80A26414 */ ~daNpcKasiMich_c();
|
||||
/* 80A26624 */ void Create();
|
||||
/* 80A268A0 */ void CreateHeap();
|
||||
/* 80A26A24 */ void Delete();
|
||||
/* 80A26A58 */ void Execute();
|
||||
/* 80A26A84 */ void Draw();
|
||||
/* 80A26AD0 */ void ctrlJoint(J3DJoint*, J3DModel*);
|
||||
/* 80A26C5C */ void createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80A26C7C */ void ctrlJointCallBack(J3DJoint*, int);
|
||||
/* 80A26624 */ cPhs__Step Create();
|
||||
/* 80A268A0 */ int CreateHeap();
|
||||
/* 80A26A24 */ int Delete();
|
||||
/* 80A26A58 */ int Execute();
|
||||
/* 80A26A84 */ int Draw();
|
||||
/* 80A26AD0 */ int ctrlJoint(J3DJoint*, J3DModel*);
|
||||
/* 80A26C5C */ static int createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80A26C7C */ static int ctrlJointCallBack(J3DJoint*, int);
|
||||
/* 80A26CC8 */ void setParam();
|
||||
/* 80A26D34 */ void main();
|
||||
/* 80A26D34 */ BOOL main();
|
||||
/* 80A26FDC */ void setAttnPos();
|
||||
/* 80A27184 */ bool setMotionAnm(int, f32);
|
||||
/* 80A27184 */ void setMotionAnm(int, f32);
|
||||
/* 80A27254 */ void setMotion(int, f32, int);
|
||||
/* 80A2729C */ bool drawDbgInfo();
|
||||
/* 80A2729C */ BOOL drawDbgInfo();
|
||||
/* 80A272A4 */ void reset();
|
||||
/* 80A274D8 */ void playMotion();
|
||||
/* 80A2790C */ void playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData***);
|
||||
/* 80A27A84 */ void setAction(int (daNpcKasiMich_c::*)(int));
|
||||
/* 80A27A84 */ BOOL setAction(actionFunc);
|
||||
/* 80A27B2C */ void setLookMode(int);
|
||||
/* 80A27B50 */ void lookat();
|
||||
/* 80A27D30 */ void step(s16, int);
|
||||
/* 80A27E24 */ void chkFindPlayer();
|
||||
/* 80A27F08 */ void wait(int);
|
||||
/* 80A282B4 */ void fear(int);
|
||||
/* 80A28490 */ void srchWolfTag();
|
||||
/* 80A284F8 */ void _srch_escape_tag(void*, void*);
|
||||
/* 80A285C8 */ void getWolfPathNearIdx();
|
||||
/* 80A286FC */ void chace_st(int);
|
||||
/* 80A287A0 */ void chace(int);
|
||||
/* 80A28910 */ void getChacePos();
|
||||
/* 80A289CC */ void turn_link(int);
|
||||
/* 80A28A8C */ void turn_home(int);
|
||||
/* 80A28B70 */ void turn_center(int);
|
||||
/* 80A28C40 */ void talk_dummy(int);
|
||||
/* 80A28CB8 */ void kya(int);
|
||||
/* 80A28D90 */ void kya2(int);
|
||||
/* 80A28E28 */ void kya_stop(int);
|
||||
/* 80A28EFC */ void iyan(int);
|
||||
/* 80A28F74 */ void escape(int);
|
||||
/* 80A2908C */ void iyan_look(int);
|
||||
/* 80A29164 */ void turn_hana(int);
|
||||
/* 80A291E8 */ void wait_dummy(int);
|
||||
/* 80A2926C */ void cheer(int);
|
||||
/* 80A29458 */ void _turn_to_link(s16);
|
||||
/* 80A294A4 */ void _turn_pos(cXyz const&, s16);
|
||||
/* 80A29500 */ void actor_front_check(fopAc_ac_c*);
|
||||
/* 80A27D30 */ BOOL step(s16, int);
|
||||
/* 80A27E24 */ BOOL chkFindPlayer();
|
||||
/* 80A27F08 */ int wait(int);
|
||||
/* 80A282B4 */ int fear(int);
|
||||
/* 80A28490 */ daTagEscape_c* srchWolfTag();
|
||||
/* 80A284F8 */ static void* _srch_escape_tag(void*, void*);
|
||||
/* 80A285C8 */ int getWolfPathNearIdx();
|
||||
/* 80A286FC */ int chace_st(int);
|
||||
/* 80A287A0 */ int chace(int);
|
||||
/* 80A28910 */ cXyz getChacePos();
|
||||
/* 80A289CC */ int turn_link(int);
|
||||
/* 80A28A8C */ int turn_home(int);
|
||||
/* 80A28B70 */ int turn_center(int);
|
||||
/* 80A28C40 */ int talk_dummy(int);
|
||||
/* 80A28CB8 */ int kya(int);
|
||||
/* 80A28D90 */ int kya2(int);
|
||||
/* 80A28E28 */ int kya_stop(int);
|
||||
/* 80A28EFC */ int iyan(int);
|
||||
/* 80A28F74 */ int escape(int);
|
||||
/* 80A2908C */ int iyan_look(int);
|
||||
/* 80A29164 */ int turn_hana(int);
|
||||
/* 80A291E8 */ int wait_dummy(int);
|
||||
/* 80A2926C */ int cheer(int);
|
||||
/* 80A29458 */ BOOL _turn_to_link(s16);
|
||||
/* 80A294A4 */ BOOL _turn_pos(cXyz const&, s16);
|
||||
/* 80A29500 */ BOOL actor_front_check(fopAc_ac_c*);
|
||||
/* 80A295D8 */ void _getOffset(cXyz const&, cXyz&);
|
||||
/* 80A29FDC */ void adjustShapeAngle();
|
||||
/* 80A29FDC */ void adjustShapeAngle() {}
|
||||
|
||||
static u8 mEvtSeqList[12];
|
||||
static u8 mTargetTag[4];
|
||||
static u8 mTargetTagDist[4];
|
||||
s8 getType() {
|
||||
s8 rv = fopAcM_GetParam(this) & 0xFF;
|
||||
|
||||
if (rv == 0xFF) {
|
||||
rv = 0;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
int getMessageNo() { return home.angle.x; }
|
||||
u8 getRailNo() { return fopAcM_GetParam(this) >> 8; }
|
||||
void setSygnal(int i_sygnal) { mSygnal = i_sygnal; }
|
||||
void setChacePos(cXyz& i_chacePos) { mChacePos = i_chacePos; }
|
||||
void setCenterPos(cXyz& i_centerPos) { mCenterPos = i_centerPos; }
|
||||
void setPlPoint(int i_plPoint) { mPlPoint = i_plPoint; }
|
||||
void off_talked() { mTalked = false; }
|
||||
BOOL is_talked() { return mTalked; }
|
||||
BOOL is_fear() { return mFear; }
|
||||
BOOL is_escape() { return mEscape; }
|
||||
void chgWeightHeavy() { mCcStts.SetWeight(0xFE); }
|
||||
void chgWeightLight() { mCcStts.SetWeight(0xD8); }
|
||||
BOOL pl_front_check() { return actor_front_check(daPy_getPlayerActorClass()); }
|
||||
|
||||
static EventFn mEvtSeqList[1];
|
||||
static daTagEscape_c* mTargetTag;
|
||||
static f32 mTargetTagDist;
|
||||
static s16 mWolfAngle;
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x146c - 0x568];
|
||||
/* 0x0B48 */ Z2CreatureCitizen mSound;
|
||||
/* 0x0BEC */ u8 field_0xbec[0xbf0 - 0xbec];
|
||||
/* 0x0BF0 */ daNpcF_Lookat_c mLookat;
|
||||
/* 0x0C8C */ daNpcF_ActorMngr_c mActorMngr[1];
|
||||
/* 0x0C94 */ daNpcF_Path_c mPath;
|
||||
/* 0x12C4 */ daNpcKasiMich_HIO_c* mHIO;
|
||||
/* 0x12C8 */ dCcD_Cyl mCyl;
|
||||
/* 0x1404 */ s16 mMode;
|
||||
/* 0x1408 */ actionFunc mAction;
|
||||
/* 0x1414 */ request_of_phase_process_class mPhases[3];
|
||||
/* 0x142C */ fpc_ProcID field_0x142c;
|
||||
/* 0x1430 */ int field_0x1430;
|
||||
/* 0x1434 */ int field_0x1434;
|
||||
/* 0x1438 */ int mMessageNo;
|
||||
/* 0x143C */ s16 mLookMode;
|
||||
/* 0x143E */ s16 field_0x143e;
|
||||
/* 0x1440 */ s16 field_0x1440;
|
||||
/* 0x1444 */ int mSygnal;
|
||||
/* 0x1448 */ cXyz mChacePos;
|
||||
/* 0x1454 */ cXyz mCenterPos;
|
||||
/* 0x1460 */ int mPlPoint;
|
||||
/* 0x1464 */ s8 mType;
|
||||
/* 0x1465 */ s8 field_0x1465;
|
||||
/* 0x1466 */ bool mTalked;
|
||||
/* 0x1467 */ bool mFear;
|
||||
/* 0x1468 */ bool mEscape;
|
||||
/* 0x1469 */ u8 field_0x1469;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpcKasiMich_c) == 0x146c);
|
||||
|
||||
class daNpcKasiMich_Param_c {
|
||||
public:
|
||||
/* 80A29FE0 */ ~daNpcKasiMich_Param_c();
|
||||
/* 80A29FE0 */ virtual ~daNpcKasiMich_Param_c() {}
|
||||
|
||||
static u8 const m[116];
|
||||
static daNpcKasiMich_HIOParam const m;
|
||||
};
|
||||
|
||||
|
||||
#endif /* D_A_NPC_KASI_MICH_H */
|
||||
|
|
|
|||
|
|
@ -871,11 +871,13 @@ int dComIfG_resDelete(request_of_phase_process_class* i_phase, char const* i_res
|
|||
int dComIfG_changeOpeningScene(scene_class* scene, s16 procName);
|
||||
int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* i_arcName);
|
||||
int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* i_resName, JKRHeap* heap);
|
||||
int dComIfG_TimerStop(int);
|
||||
int dComIfG_TimerDeleteRequest(int i_mode);
|
||||
int dComIfG_TimerStart(int i_mode, s16 i_time);
|
||||
u32 dComIfG_getTrigA(u32 i_padNo);
|
||||
|
||||
bool dComIfGp_isLightDropMapVisible();
|
||||
int dComIfG_TimerReStart(int);
|
||||
int dComIfG_TimerEnd(int i_mode, int param_1);
|
||||
void dComIfGs_onStageBossEnemy(int i_stageNo);
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ s32 dTimer_createTimer(s32 i_mode, u32 i_limitMs, u8 i_type, u8 param_3, f32 par
|
|||
u32 dTimer_createGetIn2D(s32 param_0, cXyz i_pos);
|
||||
int dTimer_getRestTimeMs();
|
||||
u8 dTimer_isStart();
|
||||
void dTimer_show();
|
||||
void dTimer_hide();
|
||||
u8 dTimer_isReadyFlag();
|
||||
|
||||
class dDlst_TimerScrnDraw_c : public dDlst_base_c {
|
||||
|
|
|
|||
|
|
@ -243,7 +243,7 @@ void daB_GG_c::initCc() {
|
|||
} // mSphAttr
|
||||
};
|
||||
|
||||
mCcStts.Init(254, 0xFF, this);
|
||||
mCcStts.Init(0xFE, 0xFF, this);
|
||||
mCcCyl.Set(ccCylSrc);
|
||||
mCcCyl.SetStts(&mCcStts);
|
||||
mCcCyl.SetC(current.pos);
|
||||
|
|
|
|||
|
|
@ -4853,7 +4853,7 @@ static int daB_GND_Create(fopAc_ac_c* a_this) {
|
|||
a_this->health = 24;
|
||||
i_this->field_0x560 = 24;
|
||||
|
||||
i_this->mGndCcStts.Init(254, 0, a_this);
|
||||
i_this->mGndCcStts.Init(0xFE, 0, a_this);
|
||||
i_this->mHorseCcStts.Init(150, 0, a_this);
|
||||
|
||||
static dCcD_SrcSph h_cc_sph_src = {
|
||||
|
|
|
|||
|
|
@ -1099,7 +1099,7 @@ int daE_GI_c::create() {
|
|||
health = 240;
|
||||
field_0x560 = 240;
|
||||
|
||||
mCcStts.Init(254, 0, this);
|
||||
mCcStts.Init(0xFE, 0, this);
|
||||
|
||||
mCcSph[0].Set(cc_gi_src);
|
||||
mCcSph[0].SetStts(&mCcStts);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -169,7 +169,7 @@ int daObjKWheel00_c::Create() {
|
|||
if(m_type == TYPE_SMALL_PLATINUM)
|
||||
fopAcM_SetStatus(this, 0);
|
||||
|
||||
mStts.Init(254, 0, this);
|
||||
mStts.Init(0xFE, 0, this);
|
||||
|
||||
for(int i = 0; i < 4; i++) {
|
||||
mLargeGearTeethSphereColliders[i].SetStts(&mStts);
|
||||
|
|
|
|||
Loading…
Reference in New Issue