mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-09 12:05:52 -04:00
d_a_npc_cd2 work (#2336)
This commit is contained in:
@@ -3,34 +3,51 @@
|
||||
|
||||
#include "Z2AudioLib/Z2Creature.h"
|
||||
#include "d/d_npc_lib.h"
|
||||
#include "d/d_path.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
enum {
|
||||
MdlMANa_e = 0,
|
||||
MdlMADa_e = 1,
|
||||
JntM_NUM_e = 0x13,
|
||||
JntW_NUM_e = 0x15,
|
||||
};
|
||||
|
||||
class PathTrace_c {
|
||||
public:
|
||||
/* 80159A38 */ void setPath(int, int, int, cXyz*, bool);
|
||||
/* 80159C14 */ void checkPoint(cXyz, f32);
|
||||
/* 80159DC0 */ void checkPathEnd(cXyz, f32);
|
||||
/* 80159A38 */ BOOL setPath(int, int, int, cXyz*, bool);
|
||||
/* 80159C14 */ bool checkPoint(cXyz, f32);
|
||||
/* 80159DC0 */ bool checkPathEnd(cXyz, f32);
|
||||
/* 80159E54 */ void getTargetPoint(Vec*);
|
||||
/* 80159ECC */ void setAvoidPoint();
|
||||
/* 8015A0D0 */ void setNextPoint();
|
||||
/* 80159F98 */ void setNextPoint(cXyz&);
|
||||
/* 8015A264 */ void incIndex(int);
|
||||
/* 8015A294 */ void decIndex(int);
|
||||
/* 8015A264 */ int incIndex(int);
|
||||
/* 8015A294 */ int decIndex(int);
|
||||
/* 8015A370 */ fopAc_ac_c* checkObstacle(fopAc_ac_c*);
|
||||
/* 8015A3E4 */ void* checkObstacleSub(fopAc_ac_c*);
|
||||
/* 8015A3E4 */ void checkObstacleSub(fopAc_ac_c*);
|
||||
|
||||
/* 0x00 */ fopAc_ac_c* field_0x00;
|
||||
/* 0x04 */ fopAc_ac_c* field_0x04;
|
||||
void getAvoidPoint(Vec* avoidPoint) { *avoidPoint = mAvoidPoint; }
|
||||
BOOL isClose() { return dPath_ChkClose(mPath); }
|
||||
|
||||
/* 0x00 */ fopAc_ac_c* mMyself;
|
||||
/* 0x04 */ fopAc_ac_c* mObstacle;
|
||||
/* 0x08 */ dPath* mPath;
|
||||
/* 0x0C */ Vec mAvoidPoint;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ f32 mNextPoint;
|
||||
/* 0x20 */ int field_0x20;
|
||||
/* 0x24 */ s8 field_0x24;
|
||||
};
|
||||
|
||||
class daNpcCd2_c : public fopAc_ac_c {
|
||||
public:
|
||||
/* 80157D00 */ void NpcCreate(int);
|
||||
/* 80157D00 */ int NpcCreate(int);
|
||||
/* 80157F28 */ J3DModel* ObjCreate(int);
|
||||
/* 80157F68 */ void ChairCreate(f32);
|
||||
/* 80157F68 */ J3DModel* ChairCreate(f32);
|
||||
/* 801580A8 */ bool isM_();
|
||||
/* 801580F0 */ void* getAnmP(int, int);
|
||||
/* 80158420 */ void setAttention(int);
|
||||
/* 80158420 */ int setAttention(int);
|
||||
/* 80158BB8 */ int loadResrc(int, int);
|
||||
/* 80158CBC */ int removeResrc(int, int);
|
||||
/* 80158D88 */ void setEnvTevCol();
|
||||
@@ -40,13 +57,13 @@ public:
|
||||
/* 80158F6C */ int drawShadow(f32);
|
||||
/* 80158FF0 */ int drawObj(int, J3DModel*, f32);
|
||||
/* 801590FC */ int drawNpc();
|
||||
/* 80159258 */ void jntNodeCB(J3DJoint*, J3DModel*);
|
||||
/* 80159258 */ int jntNodeCB(J3DJoint*, J3DModel*);
|
||||
/* 80159550 */ void setHitodamaParticle();
|
||||
/* 801597C0 */ void* getEscapeTag();
|
||||
/* 80159818 */ void checkFearSituation();
|
||||
/* 801598E8 */ void getNpcMdlDataP(int);
|
||||
/* 80159818 */ bool checkFearSituation();
|
||||
/* 801598E8 */ J3DModelData* getNpcMdlDataP(int);
|
||||
/* 8015994C */ J3DModelData* getObjMdlDataP(int);
|
||||
/* 801599C4 */ void getTexAnmP(int);
|
||||
/* 801599C4 */ J3DAnmTexPattern* getTexAnmP(int);
|
||||
/* 8097F030 */ virtual ~daNpcCd2_c();
|
||||
|
||||
static u8 const m_cylDat[68];
|
||||
@@ -63,7 +80,17 @@ public:
|
||||
/* 0x850 */ dCcD_Stts mStts;
|
||||
/* 0x88C */ dCcD_Cyl mCyl;
|
||||
/* 0x9C8 */ dNpcLib_lookat_c mLookat;
|
||||
/* 0xA98 */ u8 field_0xa98[0xAC4 - 0xA98];
|
||||
/* 0xA98 */ int field_0xa98;
|
||||
/* 0xA9C */ u8 field_0xa9c[0xAA0 - 0xA9C];
|
||||
/* 0xAA4 */ int field_0xaa0;
|
||||
/* 0xAA4 */ int field_0xaa4;
|
||||
/* 0xAA8 */ int mHitodamaEmitters[2];
|
||||
/* 0xAB0 */ int field_0xab0;
|
||||
/* 0xAB4 */ f32 field_0xab4;
|
||||
/* 0xAB8 */ f32 field_0xab8;
|
||||
/* 0xABC */ f32 field_0xabc;
|
||||
/* 0xAC0 */ s16 field_0xac0;
|
||||
/* 0xAC2 */ s16 field_0xac2;
|
||||
/* 0xAC4 */ s16 field_0xac4;
|
||||
/* 0xAC6 */ bool field_0xac6;
|
||||
};
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef D_A_NPC_CDN3_H
|
||||
#define D_A_NPC_CDN3_H
|
||||
|
||||
#include "d/actor/d_a_npc.h"
|
||||
#include "d/actor/d_a_npc_cd2.h"
|
||||
#include "d/actor/d_a_tag_schedule.h"
|
||||
|
||||
/**
|
||||
@@ -12,8 +12,9 @@
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
class daNpcCdn3_c : public fopAc_ac_c {
|
||||
class daNpcCdn3_c : public daNpcCd2_c {
|
||||
public:
|
||||
typedef void (daNpcCdn3_c::*actionFunc)();
|
||||
|
||||
struct Mode_e {};
|
||||
|
||||
@@ -86,7 +87,7 @@ public:
|
||||
/* 8097D748 */ void execute();
|
||||
/* 8097DABC */ void checkTimeSchedule();
|
||||
|
||||
static u8 ActionTable[192];
|
||||
static actionFunc ActionTable[16];
|
||||
static void* m_funcTbl[44];
|
||||
static u8 m_seq00_funcTbl[24];
|
||||
static u8 m_seq01_funcTbl[24];
|
||||
@@ -134,7 +135,7 @@ public:
|
||||
static u8 m_seq43_funcTbl[36];
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0xb9c - 0x568];
|
||||
/* 0x568 */ u8 field_0x568[0xb9c - 0xAC8];
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpcCdn3_c) == 0xb9c);
|
||||
|
||||
@@ -336,6 +336,8 @@ public:
|
||||
void onMorfNone() { mMorfNone = true; }
|
||||
J3DTransformInfo* getOldTransInfo() { return mpTransformInfo; }
|
||||
Quaternion* getOldQuaternion() { return mpQuat; }
|
||||
void offTranslate() { mTranslate = true; }
|
||||
void setTranslateScale(const cXyz& scale) { mTranslateScale = scale; }
|
||||
|
||||
private:
|
||||
/* 0x38 */ mDoExt_McaMorfCallBack1_c* mpCallback1;
|
||||
|
||||
+738
-712
File diff suppressed because it is too large
Load Diff
+18
-191
@@ -282,199 +282,26 @@ static void createHeapCallBack(fopAc_ac_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8097F6A8-8097F6B4 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
|
||||
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* 8097F6B4-8097F6C8 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
|
||||
0x02000201,
|
||||
/* padding */
|
||||
0x40080000,
|
||||
0x00000000,
|
||||
0x3FE00000,
|
||||
0x00000000,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 8097F6C8-8097F6D4 -00001 000C+00 0/1 0/0 0/0 .data @3940 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3940[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)initWait__11daNpcCdn3_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 8097F6D4-8097F6E0 -00001 000C+00 0/1 0/0 0/0 .data @3941 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3941[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)executeWait__11daNpcCdn3_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 8097F6E0-8097F6EC -00001 000C+00 0/1 0/0 0/0 .data @3942 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3942[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)initPath__11daNpcCdn3_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 8097F6EC-8097F6F8 -00001 000C+00 0/1 0/0 0/0 .data @3943 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3943[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)executePath__11daNpcCdn3_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 8097F6F8-8097F704 -00001 000C+00 0/1 0/0 0/0 .data @3944 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3944[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)initTalk__11daNpcCdn3_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 8097F704-8097F710 -00001 000C+00 0/1 0/0 0/0 .data @3945 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3945[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)executeTalk__11daNpcCdn3_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 8097F710-8097F71C -00001 000C+00 0/1 0/0 0/0 .data @3946 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3946[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)initEscape__11daNpcCdn3_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 8097F71C-8097F728 -00001 000C+00 0/1 0/0 0/0 .data @3947 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3947[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)executeEscape__11daNpcCdn3_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 8097F728-8097F734 -00001 000C+00 0/1 0/0 0/0 .data @3948 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3948[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)initFear__11daNpcCdn3_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 8097F734-8097F740 -00001 000C+00 0/1 0/0 0/0 .data @3949 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3949[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)executeFear__11daNpcCdn3_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 8097F740-8097F74C -00001 000C+00 0/1 0/0 0/0 .data @3950 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3950[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)initFear2__11daNpcCdn3_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 8097F74C-8097F758 -00001 000C+00 0/1 0/0 0/0 .data @3951 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3951[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)executeFear2__11daNpcCdn3_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 8097F758-8097F764 -00001 000C+00 0/1 0/0 0/0 .data @3952 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3952[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)initFight__11daNpcCdn3_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 8097F764-8097F770 -00001 000C+00 0/1 0/0 0/0 .data @3953 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3953[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)executeFight__11daNpcCdn3_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 8097F770-8097F77C -00001 000C+00 0/1 0/0 0/0 .data @3954 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3954[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)initRelief__11daNpcCdn3_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
|
||||
/* 8097F77C-8097F788 -00001 000C+00 0/1 0/0 0/0 .data @3955 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static void* lit_3955[3] = {
|
||||
(void*)NULL,
|
||||
(void*)0xFFFFFFFF,
|
||||
(void*)executeRelief__11daNpcCdn3_cFv,
|
||||
};
|
||||
#pragma pop
|
||||
UNK_REL_DATA
|
||||
|
||||
/* 8097F788-8097F848 0000E0 00C0+00 1/2 0/0 0/0 .data ActionTable__11daNpcCdn3_c */
|
||||
SECTION_DATA u8 daNpcCdn3_c::ActionTable[192] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
daNpcCdn3_c::actionFunc daNpcCdn3_c::ActionTable[16] = {
|
||||
&daNpcCdn3_c::initWait,
|
||||
&daNpcCdn3_c::executeWait,
|
||||
&daNpcCdn3_c::initPath,
|
||||
&daNpcCdn3_c::executePath,
|
||||
&daNpcCdn3_c::initTalk,
|
||||
&daNpcCdn3_c::executeTalk,
|
||||
&daNpcCdn3_c::initEscape,
|
||||
&daNpcCdn3_c::executeEscape,
|
||||
&daNpcCdn3_c::initFear,
|
||||
&daNpcCdn3_c::executeFear,
|
||||
&daNpcCdn3_c::initFear2,
|
||||
&daNpcCdn3_c::executeFear2,
|
||||
&daNpcCdn3_c::initFight,
|
||||
&daNpcCdn3_c::executeFight,
|
||||
&daNpcCdn3_c::initRelief,
|
||||
&daNpcCdn3_c::executeRelief,
|
||||
};
|
||||
|
||||
/* 80978DD4-80978E18 000174 0044+00 9/9 0/0 0/0 .text
|
||||
|
||||
Reference in New Issue
Block a user