Work on d_resorce, d_vibration, d_tresure and others (#347)

* Work on d_resorce

* Work on d_a_tag_TWgate

* Work on d_meter_map

* d_tresure OK

* Work on d_vibration

* Work on d_a_npc

* Work on d_a_npc

* Work on d_a_npc
This commit is contained in:
hatal175
2023-06-19 23:39:09 +03:00
committed by GitHub
parent 2ff0e48537
commit 309caec3f2
93 changed files with 1522 additions and 4092 deletions
+36 -27
View File
@@ -145,12 +145,16 @@ private:
struct daNpcT_evtData_c {};
struct daNpcT_faceMotionAnmData_c {};
struct daNpcT_faceMotionAnmData_c {
u32 field_0x0[6];
u32 field_0x18;
};
struct daNpcT_pntData_c {};
struct daNpcT_motionAnmData_c {
u8 data[8];
u32 field_0x0[6];
u32 field_0x18;
};
class daNpcT_Hermite_c {
@@ -186,7 +190,7 @@ public:
/* 80146188 */ int chkPassed1(cXyz, int);
/* 801464D8 */ int chkPassed2(cXyz, cXyz*, int, int);
inline cXyz& getPntPos(int i_idx) {
inline Vec getPntPos(int i_idx) {
return mpRoomPath->m_points[i_idx].m_position;
}
@@ -195,6 +199,8 @@ public:
return roomPath;
}
bool chkReverse() { return mDirection == 1; }
u16 getNumPnts() {
dPath* path = mpRoomPath;
return path->m_num;
@@ -328,7 +334,7 @@ public:
/* 80148C70 */ void setEnvTevColor();
/* 80148CCC */ void setRoomNo();
/* 80148D10 */ int checkEndAnm(f32);
/* 80148DD0 */ void checkEndAnm(J3DFrameCtrl*, f32);
/* 80148DD0 */ int checkEndAnm(J3DFrameCtrl*, f32);
/* 80148E4C */ void playAllAnm();
/* 80149190 */ void setMtx();
/* 8014924C */ void ctrlFaceMotion();
@@ -355,9 +361,9 @@ public:
/* 8014BB00 */ void getActorDistance(fopAc_ac_c*, int, int);
/* 8014BBF0 */ int initTalk(int, fopAc_ac_c**);
/* 8014BC78 */ void talkProc(int*, int, fopAc_ac_c**, int);
/* 8014BE2C */ void getNearestActorP(s16);
/* 8014BE2C */ fopAc_ac_c* getNearestActorP(s16);
/* 8014BEE4 */ void getEvtAreaTagP(int, int);
/* 8014BFB0 */ u32 getShopItemTagP();
/* 8014BFB0 */ fopAc_ac_c* getShopItemTagP();
/* 8014C030 */ void setHitodamaPrtcl();
/* 8014CD20 */ virtual ~daNpcT_c();
@@ -400,8 +406,8 @@ public:
/* 8014CC2C */ virtual void drawGhost();
/* 8014CCA0 */ virtual bool afterSetFaceMotionAnm(int, int, f32, int);
/* 8014CCE0 */ virtual bool afterSetMotionAnm(int, int, f32, int);
/* 8014CCB0 */ virtual void getFaceMotionAnm(daNpcT_faceMotionAnmData_c);
/* 8014CCF0 */ virtual void getMotionAnm(daNpcT_motionAnmData_c);
/* 8014CCB0 */ virtual daNpcT_faceMotionAnmData_c getFaceMotionAnm(daNpcT_faceMotionAnmData_c);
/* 8014CCF0 */ virtual daNpcT_motionAnmData_c getMotionAnm(daNpcT_motionAnmData_c);
/* 8014CCEC */ virtual void changeAnm(int*, int*);
/* 8014CCAC */ virtual void changeBck(int*, int*);
/* 8014CCA8 */ virtual void changeBtp(int*, int*);
@@ -501,14 +507,13 @@ protected:
/* 0x99C */ u32 mAnmFlags;
/* 0x9A0 */ u32 field_0x9a0;
/* 0x9A4 */ profile_method_class* field_0x9a4;
/* 0x9A8 */ int field_0x9a8;
/* 0x9AC */ int field_0x9ac;
/* 0x9A8 */ int field_0x9a8[2];
/* 0x9B0 */ u32 field_0x9b0;
/* 0x9B4 */ int mFlowNodeNo;
/* 0x9B8 */ cXyz field_0x9b8;
/* 0x9C4 */ cXyz field_0x9c4;
/* 0x9D0 */ u16 field_0x9d0;
/* 0x9D2 */ u16 field_0x9d2;
/* 0x9D0 */ s16 field_0x9d0;
/* 0x9D2 */ s16 field_0x9d2;
/* 0x9D4 */ s16 field_0x9d4;
/* 0x9D6 */ s16 mExpressionPhase;
/* 0x9D8 */ s16 mExpressionPrevPhase;
@@ -604,11 +609,11 @@ public:
/* 80154250 */ void setAngle(s16);
/* 80154278 */ u8 getDistTableIdx(int, int);
/* 801542A0 */ fopAc_ac_c* getEvtAreaTagP(int, int);
/* 8015436C */ void getAttnActorP(int, void* (*)(void*, void*), f32, f32, f32, f32, s16, int,
/* 8015436C */ fopAc_ac_c* getAttnActorP(int, void* (*)(void*, void*), f32, f32, f32, f32, s16, int,
int);
/* 80154730 */ BOOL chkActorInSight2(fopAc_ac_c*, f32, s16);
/* 80154834 */ bool chkPointInArea(cXyz, cXyz, f32, f32, f32, s16);
/* 801548F4 */ bool chkPointInArea(cXyz, cXyz, cXyz, s16);
/* 80154834 */ BOOL chkPointInArea(cXyz, cXyz, f32, f32, f32, s16);
/* 801548F4 */ BOOL chkPointInArea(cXyz, cXyz, cXyz, s16);
/* 8015496C */ cXyz getAttentionPos(fopAc_ac_c*);
/* 801549E0 */ void chkFindPlayer2(int, s16);
/* 80154BD8 */ void setHitodamaPrtcl();
@@ -639,7 +644,7 @@ public:
static u8 const mCcDObjInfo[48];
static dCcD_SrcCyl mCcDCyl;
static u8 mCcDSph[64];
static u8 mFindActorPList[400];
static fopAc_ac_c* mFindActorPList[100];
static s32 mFindCount;
static s16 mSrchActorName;
};
@@ -651,7 +656,7 @@ BOOL daNpcF_chkTmpBit(u32 i_idx);
void daNpcF_offTmpBit(u32 i_idx);
int daNpcF_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz& param_2,
csXyz& param_3);
int daNpcF_getGroundAngle(cBgS_PolyInfo*, s16);
s16 daNpcF_getGroundAngle(cBgS_PolyInfo*, s16);
struct daBaseNpc_matAnm_c {
/* 8014D884 */ void calc(J3DMaterial*) const;
@@ -674,8 +679,7 @@ private:
/* 0x000 */ f32 field_0x0;
/* 0x004 */ dPath* mpRoomPath;
/* 0x008 */ f32 field_0x8;
/* 0x00C */ dPath* field_0xc;
/* 0x010 */ u8 field_0x10[2558];
/* 0x010 */ u8 field_0xc[2562];
/* 0xA0E */ u16 field_0xa0e;
/* 0xA10 */ u16 mIdx;
/* 0xA12 */ s8 mDirection;
@@ -686,11 +690,11 @@ public:
/* 8014D9A8 */ BOOL isPath();
/* 8014D9BC */ int setPathInfo(u8, s8, s8);
/* 8014DA48 */ void reverseDir();
/* 8014DA64 */ void chkPnt(cXyz);
/* 8014DA64 */ s32 chkPnt(cXyz);
/* 8014DAC4 */ void setNextPnt();
/* 8014DB04 */ u16 getIdx();
/* 8014DB0C */ void setIdx(u16);
/* 8014DB14 */ void getPntPos(u16);
/* 8014DB14 */ Vec getPntPos(u16);
/* 801503FC */ ~daBaseNpc_path_c();
@@ -706,7 +710,7 @@ private:
/* 0x34 */ cXyz mJntPos[3];
/* 0x4C */ u8 field_0x4C[24];
/* 0x64 */ csXyz mUnk[2];
/* 0x70 */ u8 field_0x70[12];
/* 0x70 */ csXyz mRotation[2];
/* 0x7C */ csXyz mUnk2[2];
/* 0x88 */ u8 field_0x88[4];
/* 0x8C */ cXyz* mpAttnPos;
@@ -718,7 +722,7 @@ public:
/* 8014E658 */ void setMinJntLmt(csXyz, int);
/* 8014E67C */ void setJntPos(cXyz, int);
/* 8014E6A0 */ int setAttnPos(cXyz*);
/* 8014E6AC */ void getRot(int);
/* 8014E6AC */ csXyz getRot(int);
/* 801502EC */ ~daBaseNpc_lookat_c();
};
@@ -847,7 +851,7 @@ private:
/* 0x02 */ u16 field_0x02;
/* 0x04 */ u8 field_0x04;
/* 0x05 */ bool mIsClosed;
// /* 0x08 */ dPnt mPoints[96];
/* 0x08 */ dStage_dPnt_c mPoints[96];
public:
@@ -875,13 +879,18 @@ public:
/* 80150BE0 */ int setNextIdx();
/* 80150C18 */ u16 getNextIdx();
/* 80150C60 */ u16 getBeforeIdx();
/* 80150CA8 */ void getBeforePos(cXyz&);
/* 80150D44 */ void getNextPos(cXyz&);
/* 80150CA8 */ int getBeforePos(cXyz&);
/* 80150D44 */ int getNextPos(cXyz&);
/* 80150DE0 */ int getDstPos(cXyz, cXyz&);
/* 80150EB4 */ void setNextIdxDst(cXyz);
u16& getIdx() { return mIdx; };
cXyz* getPntPos(); // finish
inline Vec getPntPos(int i_idx) {
return mpRoomPath->m_points[i_idx].m_position;
}
int chkClose() {
return dPath_ChkClose(mpRoomPath);
}
};
class daNpcF_Lookat_c {
+1 -1
View File
@@ -43,7 +43,7 @@ public:
int Release(dBgW_Base*);
bool LineCross(cBgS_LinChk*);
f32 GroundCross(cBgS_GndChk*);
static void ConvDzb(void*);
static void* ConvDzb(void*);
fopAc_ac_c* GetActorPointer(int) const;
dBgW_Base* GetBgWBasePointer(cBgS_PolyInfo const&) const;
bool ChkPolySafe(cBgS_PolyInfo const&);
+4
View File
@@ -827,6 +827,10 @@ inline int dComIfG_setObjectRes(const char* name, u8 param_1, JKRHeap* heap) {
return g_dComIfG_gameInfo.mResControl.setObjectRes(name, param_1, heap);
}
inline int dComIfG_setObjectRes(const char* name, void* param_1, u32 param_2) {
return g_dComIfG_gameInfo.mResControl.setObjectRes(name, param_1, param_2, NULL);
}
inline int dComIfG_setStageRes(const char* name, JKRHeap* heap) {
return g_dComIfG_gameInfo.mResControl.setStageRes(name, heap);
}
+2 -3
View File
@@ -18,7 +18,7 @@ public:
/* 8003A348 */ int set(char const*, char const*, u8, JKRHeap*);
/* 8003AB30 */ static void onWarpMaterial(J3DModelData*);
/* 8003AC1C */ static void offWarpMaterial(J3DModelData*);
/* 8003AD08 */ void setWarpSRT(J3DModelData*, cXyz const&, f32, f32);
/* 8003AD08 */ static void setWarpSRT(J3DModelData*, cXyz const&, f32, f32);
/* 8003AE14 */ static J3DModelData* loaderBasicBmd(u32, void*);
/* 8003B30C */ int loadResource();
/* 8003B998 */ void deleteArchiveRes();
@@ -34,8 +34,7 @@ public:
JKRArchive* getArchive() { return mArchive; }
void incCount() { mCount++; }
u16 decCount() {
mCount--;
return mCount;
return --mCount;
}
private:
+20 -15
View File
@@ -18,31 +18,36 @@ public:
/* 0x13 */ s8 mAngleY;
};
class typeGroupData_c {
class typeGroupData_c : public data_s {
public:
data_s* getDataPointer() { return &mData; }
const data_s* getConstDataPointer() const { return &mData; }
data_s* getDataPointer() { return (data_s*)this; }
const data_s* getConstDataPointer() const { return (data_s*)this; }
typeGroupData_c* getNextDataPointer() const { return mNextData; }
void setNextDataPointer(typeGroupData_c* data) { mNextData = data; }
void setTypeGroupNo(u8 no) { mTypeGroupNo = no; }
u8 getNo() const { return mData.mNo; }
u8 getStatus() const { return mData.mStatus; }
void setStatus(u8 status) { mData.mStatus = status; }
void setRoomNo(s8 roomNo) { mData.mRoomNo = roomNo; }
s8 getRoomNo() const { return mData.mRoomNo; }
void setPos(const Vec& pos) { mData.mPos = pos; }
u8 getSwBit() const { return mData.mSwBit; }
const Vec* getPos() const { return &mData.mPos; }
int getAngleY() const { return mData.mAngleY; }
u8 getNo() const { return mNo; }
u8 getStatus() const { return mStatus; }
void setStatus(u8 status) { mStatus = status; }
void setRoomNo(s8 roomNo) { mRoomNo = roomNo; }
s8 getRoomNo() const { return mRoomNo; }
void setPos(const Vec& pos) { mPos = pos; }
u8 getSwBit() const { return mSwBit; }
const Vec* getPos() const { return &mPos; }
int getAngleY() const { return mAngleY; }
/* 0x00 */ data_s mData;
/* 0x14 */ typeGroupData_c* mNextData;
/* 0x18 */ u8 mTypeGroupNo;
}; // Size: 0x1C
struct list_class {
/* 0x0 */ int field_0x0;
/* 0x4 */ data_s* field_0x4;
/* 0x4 */ typeGroupData_c* field_0x4;
/* 0x8 */ u8 mNumber;
};
struct type_group_list {
/* 0x0 */ typeGroupData_c* field_0x0;
/* 0x4 */ typeGroupData_c* field_0x4;
/* 0x8 */ u8 mNumber;
};
@@ -67,7 +72,7 @@ public:
}
static u8 const typeToTypeGroup[17][2];
static list_class mTypeGroupListAll[17];
static type_group_list mTypeGroupListAll[17];
static typeGroupData_c* mTypeGroupData;
static u16 mNum;
};
+6 -6
View File
@@ -7,9 +7,9 @@
class dVibration_c {
public:
/* 8006F268 */ void Run();
/* 8006F268 */ int Run();
/* 8006FA24 */ bool StartShock(int, int, cXyz);
/* 8006FC0C */ void StartQuake(u8 const*, int, int, cXyz);
/* 8006FC0C */ bool StartQuake(u8 const*, int, int, cXyz);
/* 8006FB10 */ bool StartQuake(int, int, cXyz);
/* 8006FD94 */ int StopQuake(int);
/* 8006FE00 */ void Kill();
@@ -43,16 +43,16 @@ private:
/* 0x54 */ int field_0x54;
/* 0x58 */ s32 field_0x58;
/* 0x5C */ s32 field_0x5c;
/* 0x60 */ u32 field_0x60;
/* 0x60 */ s32 field_0x60;
/* 0x64 */ s32 field_0x64;
/* 0x68 */ u32 field_0x68;
/* 0x68 */ s32 field_0x68;
/* 0x6C */ u32 field_0x6c;
/* 0x70 */ s32 field_0x70;
/* 0x74 */ u32 field_0x74;
/* 0x78 */ u32 field_0x78;
/* 0x7C */ u32 field_0x7c;
/* 0x7C */ s32 field_0x7c;
/* 0x80 */ s32 field_0x80;
/* 0x84 */ u32 field_0x84;
/* 0x84 */ s32 field_0x84;
/* 0x88 */ s32 field_0x88;
/* 0x8C */ s32 field_0x8c;
}; // Size: 0x90