mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-02 01:59:56 -04:00
614 lines
19 KiB
C++
614 lines
19 KiB
C++
#ifndef D_A_NPC_MD_H
|
|
#define D_A_NPC_MD_H
|
|
|
|
#include "d/actor/d_a_player_npc.h"
|
|
#include "m_Do/m_Do_hostIO.h"
|
|
#include "d/d_npc.h"
|
|
#include "d/d_bg_s_lin_chk.h"
|
|
#include "d/d_drawlist.h"
|
|
|
|
class daNpc_Md_HIO2_c {
|
|
public:
|
|
daNpc_Md_HIO2_c();
|
|
virtual ~daNpc_Md_HIO2_c() {}
|
|
|
|
public:
|
|
/* 0x04 */ f32 m04;
|
|
/* 0x08 */ f32 m08;
|
|
/* 0x0C */ f32 m0C;
|
|
/* 0x10 */ f32 m10;
|
|
/* 0x14 */ f32 m14;
|
|
/* 0x18 */ f32 m18;
|
|
/* 0x1C */ f32 m1C;
|
|
/* 0x20 */ s16 m20;
|
|
/* 0x22 */ s16 m22;
|
|
/* 0x24 */ s16 m24;
|
|
/* 0x26 */ s16 m26;
|
|
/* 0x28 */ s16 m28;
|
|
/* 0x2A */ s16 m2A;
|
|
};
|
|
|
|
class daNpc_Md_HIO3_c {
|
|
public:
|
|
daNpc_Md_HIO3_c();
|
|
virtual ~daNpc_Md_HIO3_c() {}
|
|
|
|
public:
|
|
/* 0x04 */ f32 m04;
|
|
/* 0x08 */ f32 m08;
|
|
/* 0x0C */ f32 m0C;
|
|
/* 0x10 */ f32 m10;
|
|
/* 0x14 */ f32 m14;
|
|
/* 0x18 */ s16 m18;
|
|
/* 0x1A */ s16 m1A;
|
|
/* 0x1C */ s16 m1C;
|
|
/* 0x1E */ s16 m1E;
|
|
/* 0x20 */ s16 m20;
|
|
/* 0x22 */ s16 m22;
|
|
/* 0x24 */ s16 m24;
|
|
/* 0x26 */ u8 field_26[0x28 - 0x26];
|
|
};
|
|
|
|
class daNpc_Md_HIO4_c {
|
|
public:
|
|
daNpc_Md_HIO4_c();
|
|
virtual ~daNpc_Md_HIO4_c() {}
|
|
|
|
public:
|
|
/* 0x4 */ f32 m4;
|
|
/* 0x8 */ s16 m8;
|
|
/* 0xA */ u8 field_A[0xC - 0xA];
|
|
};
|
|
|
|
class daNpc_Md_HIO5_c {
|
|
public:
|
|
daNpc_Md_HIO5_c();
|
|
virtual ~daNpc_Md_HIO5_c() {}
|
|
|
|
public:
|
|
/* 0x4 */ f32 m4;
|
|
/* 0x8 */ f32 m8;
|
|
};
|
|
|
|
class daNpc_Md_HIO6_c {
|
|
public:
|
|
daNpc_Md_HIO6_c();
|
|
virtual ~daNpc_Md_HIO6_c() {}
|
|
|
|
public:
|
|
/* 0x04 */ f32 m04;
|
|
/* 0x08 */ s16 m08;
|
|
/* 0x0A */ s16 m0A;
|
|
/* 0x0C */ s16 m0C;
|
|
/* 0x0E */ s16 m0E;
|
|
/* 0x10 */ s16 m10;
|
|
/* 0x12 */ s16 m12;
|
|
/* 0x14 */ s16 m14;
|
|
/* 0x16 */ s16 m16;
|
|
};
|
|
|
|
class daNpc_Md_HIO_c : public JORReflexible {
|
|
public:
|
|
daNpc_Md_HIO_c();
|
|
virtual ~daNpc_Md_HIO_c() {}
|
|
|
|
void genMessage(JORMContext* ctx);
|
|
|
|
public:
|
|
/* 0x004 */ s8 mNo;
|
|
/* 0x008 */ daNpc_Md_HIO2_c m008;
|
|
/* 0x034 */ daNpc_Md_HIO3_c m034;
|
|
/* 0x05C */ daNpc_Md_HIO4_c m05C;
|
|
/* 0x068 */ daNpc_Md_HIO5_c m068;
|
|
/* 0x074 */ daNpc_Md_HIO6_c m074;
|
|
/* 0x08C */ dNpc_HIO_c mNpc;
|
|
/* 0x0B4 */ fopAc_ac_c* mpActor;
|
|
/* 0x0B8 */ f32 m0B8;
|
|
/* 0x0BC */ f32 m0BC;
|
|
/* 0x0C0 */ f32 m0C0;
|
|
/* 0x0C4 */ f32 m0C4;
|
|
/* 0x0C8 */ f32 m0C8;
|
|
/* 0x0CC */ f32 m0CC;
|
|
/* 0x0D0 */ f32 m0D0;
|
|
/* 0x0D4 */ f32 m0D4;
|
|
/* 0x0D8 */ f32 m0D8;
|
|
/* 0x0DC */ f32 m0DC;
|
|
/* 0x0E0 */ f32 m0E0;
|
|
/* 0x0E4 */ f32 m0E4;
|
|
/* 0x0E8 */ f32 m0E8;
|
|
/* 0x0EC */ f32 m0EC;
|
|
/* 0x0F0 */ f32 m0F0;
|
|
/* 0x0F4 */ f32 m0F4;
|
|
/* 0x0F8 */ f32 m0F8;
|
|
/* 0x0FC */ f32 m0FC;
|
|
/* 0x100 */ f32 m100;
|
|
/* 0x104 */ f32 m104;
|
|
/* 0x108 */ f32 m108;
|
|
/* 0x10C */ f32 m10C;
|
|
/* 0x110 */ f32 m110;
|
|
/* 0x114 */ f32 m114;
|
|
/* 0x118 */ f32 m118;
|
|
/* 0x11C */ f32 m11C;
|
|
/* 0x120 */ f32 m120;
|
|
/* 0x124 */ f32 m124;
|
|
/* 0x128 */ f32 m128;
|
|
/* 0x12C */ f32 m12C;
|
|
/* 0x130 */ f32 m130;
|
|
/* 0x134 */ f32 m134;
|
|
/* 0x138 */ f32 m138;
|
|
/* 0x13C */ f32 m13C;
|
|
/* 0x140 */ f32 m140;
|
|
/* 0x144 */ f32 m144;
|
|
/* 0x148 */ f32 m148;
|
|
/* 0x14C */ f32 m14C;
|
|
/* 0x150 */ f32 m150;
|
|
/* 0x154 */ f32 m154;
|
|
/* 0x158 */ f32 m158;
|
|
/* 0x15C */ f32 m15C;
|
|
/* 0x160 */ f32 m160;
|
|
/* 0x164 */ f32 m164;
|
|
/* 0x168 */ f32 m168;
|
|
/* 0x16C */ f32 m16C;
|
|
/* 0x170 */ f32 m170;
|
|
/* 0x174 */ f32 m174;
|
|
/* 0x178 */ f32 m178;
|
|
/* 0x17C */ f32 m17C;
|
|
/* 0x180 */ f32 m180;
|
|
/* 0x184 */ f32 m184;
|
|
/* 0x188 */ f32 m188;
|
|
/* 0x18C */ f32 m18C;
|
|
/* 0x190 */ f32 m190;
|
|
/* 0x194 */ f32 m194;
|
|
/* 0x198 */ f32 m198;
|
|
/* 0x19C */ f32 m19C;
|
|
/* 0x1A0 */ f32 m1A0;
|
|
/* 0x1A4 */ f32 m1A4;
|
|
/* 0x1A8 */ f32 m1A8;
|
|
/* 0x1AC */ f32 m1AC;
|
|
/* 0x1B0 */ f32 m1B0;
|
|
/* 0x1B4 */ s16 m1B4;
|
|
/* 0x1B6 */ u16 m1B6;
|
|
/* 0x1B8 */ u16 m1B8;
|
|
/* 0x1BA */ u16 m1BA;
|
|
/* 0x1BC */ u16 m1BC;
|
|
/* 0x1BE */ u16 m1BE;
|
|
/* 0x1C0 */ u16 m1C0;
|
|
/* 0x1C2 */ u16 m1C2;
|
|
/* 0x1C4 */ s16 m1C4;
|
|
/* 0x1C6 */ u8 m1C6;
|
|
/* 0x1C7 */ u8 m1C7;
|
|
/* 0x1C8 */ u8 m1C8;
|
|
};
|
|
|
|
class daNpc_Md_followEcallBack_c : public dPa_levelEcallBack {
|
|
public:
|
|
~daNpc_Md_followEcallBack_c() {}
|
|
|
|
void execute(JPABaseEmitter*);
|
|
void setup(JPABaseEmitter*, const cXyz*, const csXyz*, s8);
|
|
void end();
|
|
|
|
JPABaseEmitter* getEmitter() { return mpEmitter; }
|
|
cXyz& getPos() { return mPos; }
|
|
void setAngle(s16 x, s16 y, s16 z) { mAngle.set(x, y, z); }
|
|
|
|
public:
|
|
/* 0x04 */ JPABaseEmitter* mpEmitter;
|
|
/* 0x08 */ cXyz mPos;
|
|
/* 0x14 */ csXyz mAngle;
|
|
}; // Size: 0x1C
|
|
|
|
class daNpc_Md_c : public daPy_npc_c {
|
|
public:
|
|
enum ActionStatus {
|
|
ACTION_STARTING = 0,
|
|
ACTION_ONGOING_1 = 1,
|
|
ACTION_ONGOING_2 = 2,
|
|
ACTION_ONGOING_3 = 3,
|
|
ACTION_ENDING = -1,
|
|
};
|
|
|
|
enum daNpc_Md_StatusBit_e {
|
|
daMdStts_UNK1 = 0x00000001,
|
|
daMdStts_UNK2 = 0x00000002,
|
|
daMdStts_UNK4 = 0x00000004,
|
|
daMdStts_FLY = 0x00000010,
|
|
daMdStts_CAM_TAG_IN = 0x00000020,
|
|
daMdStts_UNK40 = 0x00000040,
|
|
daMdStts_UNK80 = 0x00000080,
|
|
daMdStts_XY_TALK = 0x00000100,
|
|
daMdStts_UNK200 = 0x00000200,
|
|
daMdStts_UNK400 = 0x00000400,
|
|
daMdStts_CARRY_ACTION = 0x00000800,
|
|
daMdStts_SHIP_RIDE = 0x00001000,
|
|
daMdStts_LIGHT_HIT = 0x00002000,
|
|
daMdStts_UNK4000 = 0x00004000,
|
|
daMdStts_LIGHT_BODY_HIT = 0x00008000,
|
|
daMdStts_DEFAULT_TALK_XY = 0x00010000,
|
|
daMdStts_UNK20000 = 0x00020000,
|
|
};
|
|
|
|
typedef BOOL (daNpc_Md_c::*ActionFunc)(void*);
|
|
typedef void (daNpc_Md_c::*EventActionInitFunc)(int evtStaffId);
|
|
typedef BOOL (daNpc_Md_c::*EventActionFunc)(int evtStaffId);
|
|
|
|
BOOL chkPlayerAction(ActionFunc func) { return mCurrPlayerActionFunc == func; }
|
|
BOOL chkNpcAction(ActionFunc func) { return mCurrNpcActionFunc == func; }
|
|
|
|
void setBitStatus(u32 status) { cLib_onBit<u32>(m30F0, status); }
|
|
void clearStatus(u32 status) { cLib_offBit<u32>(m30F0, status); }
|
|
bool checkStatus(u32 status) { return cLib_checkBit<u32>(m30F0, status); }
|
|
bool checkStatusFly() { return cLib_checkBit<u32>(m30F0, daMdStts_FLY); }
|
|
void onBitCamTagIn() { cLib_onBit<u32>(m30F0, daMdStts_CAM_TAG_IN); }
|
|
void offBitCamTagIn() { cLib_offBit<u32>(m30F0, daMdStts_CAM_TAG_IN); }
|
|
bool checkStatusCamTagIn() { return cLib_checkBit<u32>(m30F0, daMdStts_CAM_TAG_IN); }
|
|
void onXYTalk() { cLib_onBit<u32>(m30F0, daMdStts_XY_TALK); }
|
|
void offXYTalk() { cLib_offBit<u32>(m30F0, daMdStts_XY_TALK); }
|
|
bool isXYTalk() { return cLib_checkBit<u32>(m30F0, daMdStts_XY_TALK); }
|
|
void noCarryAction() { cLib_onBit<u32>(m30F0, daMdStts_CARRY_ACTION); }
|
|
void offNoCarryAction() { cLib_offBit<u32>(m30F0, daMdStts_CARRY_ACTION); }
|
|
bool isNoCarryAction() { return cLib_checkBit<u32>(m30F0, daMdStts_CARRY_ACTION); }
|
|
void onShipRide() { cLib_onBit<u32>(m30F0, daMdStts_SHIP_RIDE); }
|
|
void offShipRide() { cLib_offBit<u32>(m30F0, daMdStts_SHIP_RIDE); }
|
|
bool isShipRide() { return cLib_checkBit<u32>(m30F0, daMdStts_SHIP_RIDE); }
|
|
void onLightHit() { cLib_onBit<u32>(m30F0, daMdStts_LIGHT_HIT); }
|
|
void offLightHit() { cLib_offBit<u32>(m30F0, daMdStts_LIGHT_HIT); }
|
|
bool isLightHit() { return cLib_checkBit<u32>(m30F0, daMdStts_LIGHT_HIT); }
|
|
void onLightBodyHit() { cLib_onBit<u32>(m30F0, daMdStts_LIGHT_BODY_HIT); }
|
|
void offLightBodyHit() { cLib_offBit<u32>(m30F0, daMdStts_LIGHT_BODY_HIT); }
|
|
bool isLightBodyHit() { return cLib_checkBit<u32>(m30F0, daMdStts_LIGHT_BODY_HIT); }
|
|
bool isOldLightBodyHit() { return cLib_checkBit<u32>(m30F0, daMdStts_LIGHT_BODY_HIT); }
|
|
void onDefaultTalkXY() { cLib_onBit<u32>(m30F0, daMdStts_DEFAULT_TALK_XY); }
|
|
void offDefaultTalkXY() { cLib_offBit<u32>(m30F0, daMdStts_DEFAULT_TALK_XY); }
|
|
bool isDefaultTalkXY() { return cLib_checkBit<u32>(m30F0, daMdStts_DEFAULT_TALK_XY); }
|
|
|
|
void setOldLightBodyHit() {} // 0x20000?
|
|
|
|
void setTypeEdaichi() { mType = 4; }
|
|
void setTypeM_Dai() { mType = 5; }
|
|
void setTypeM_DaiB() { mType = 6; }
|
|
void setTypeShipRide() { mType = 7; }
|
|
bool isTypeAtorizk() { return mType == 0; }
|
|
bool isTypeAdanmae() { return mType == 1; }
|
|
bool isTypeM_Dra09() { return mType == 2; }
|
|
bool isTypeSea() { return mType == 3; }
|
|
bool isTypeEdaichi() { return mType == 4; }
|
|
bool isTypeM_Dai() { return mType == 5; }
|
|
bool isTypeM_DaiB() { return mType == 6; }
|
|
bool isTypeShipRide() { return mType == 7; }
|
|
|
|
s16 getHead_x() { return mJntCtrl.getHead_x(); }
|
|
s16 getHead_y() { return mJntCtrl.getHead_y(); }
|
|
s16 getBackbone_x() { return mJntCtrl.getBackbone_x(); }
|
|
s16 getBackbone_y() { return mJntCtrl.getBackbone_y(); }
|
|
s16 getWaistRotX() { return m3114; }
|
|
s16 getWaistRotY() { return m3116; }
|
|
|
|
s8 getArmRJntNum() { return m_armR_jnt_num; }
|
|
s8 getArmRlocJntNum() { return m_armRloc_jnt_num; }
|
|
s8 getArmLJntNum() { return m_armL_jnt_num; }
|
|
s8 getArmLlocJntNum() { return m_armLloc_jnt_num; }
|
|
s8 getHairJntNum(int i) { return m_hair_jnt_nums[i]; }
|
|
|
|
J3DModel* getModel() { return mpMorf->getModel(); }
|
|
cXyz& getAttentionBasePos() { return m3094; }
|
|
cXyz& getEyePos() { return m3088; }
|
|
cXyz* getPHairPos(int i) { return &m3174[i]; }
|
|
cXyz* getPHairVec(int i) { return &m31D4[i]; }
|
|
f32* getPHairDist(int i) { return &m3264[i]; }
|
|
cXyz* getPHairWall() { return m3234; }
|
|
|
|
void incAttnSetCount() {
|
|
if (m312B != 0xFF) {
|
|
m312B++;
|
|
}
|
|
}
|
|
|
|
u8 checkBitHairMode(u8 bit) { return m3134 & bit; }
|
|
void setBitHairMode(u8 bit) { m3134 |= bit; }
|
|
|
|
u8 getPiyo2TalkCNT() { return m313C & 0xFF; } // TODO: fakematch?
|
|
void countPiyo2TalkCNT() {
|
|
m313C++;
|
|
if (m313C >= 3) {
|
|
m313C = 0;
|
|
}
|
|
}
|
|
|
|
void setRunRate(f32 rate) {
|
|
mRunRate = rate;
|
|
mpMorf->setAnmRate(mRunRate);
|
|
mpArmMorf->setAnmRate(mRunRate);
|
|
}
|
|
|
|
void setStatus(u32) {}
|
|
void getFlyingTimer() {}
|
|
void setFlyingTimer(s16) {}
|
|
void calcFlyingTimer() {}
|
|
void checkBitEffectStatus(u8) {}
|
|
void clearJntAng() {}
|
|
void clearStatus() {}
|
|
void getTalkType() {}
|
|
void setTalkType(u8) {}
|
|
void setBitEffectStatus(u8) {}
|
|
void setEffectStatus(u8) {}
|
|
void setPiyo2TalkCNT(u8) {}
|
|
|
|
daNpc_Md_c() {}
|
|
~daNpc_Md_c();
|
|
|
|
s16 XyCheckCB(int);
|
|
s16 XyEventCB(int);
|
|
cPhs_State create();
|
|
BOOL createHeap();
|
|
BOOL setAction(ActionFunc*, ActionFunc, void*);
|
|
void npcAction(void*);
|
|
void setNpcAction(ActionFunc, void* = NULL);
|
|
void playerAction(void*);
|
|
void setPlayerAction(ActionFunc, void* = NULL);
|
|
s16 getStickAngY(int);
|
|
int calcStickPos(s16, cXyz*);
|
|
BOOL flyCheck();
|
|
BOOL mirrorCancelCheck();
|
|
void setWingEmitter();
|
|
void setHane02Emitter();
|
|
void deleteHane02Emitter();
|
|
void setHane03Emitter();
|
|
void deleteHane03Emitter();
|
|
void returnLinkPlayer();
|
|
BOOL shipRideCheck();
|
|
BOOL isFallAction();
|
|
BOOL returnLinkCheck();
|
|
BOOL lightHitCheck();
|
|
int wallHitCheck();
|
|
void NpcCall(int*);
|
|
BOOL checkCollision(int);
|
|
void restartPoint(s16);
|
|
void setMessageAnimation(u8);
|
|
void waitGroundCheck();
|
|
BOOL chkAdanmaeDemoOrder();
|
|
BOOL waitNpcAction(void*);
|
|
BOOL harpWaitNpcAction(void*);
|
|
BOOL XYTalkCheck();
|
|
BOOL talkNpcAction(void*);
|
|
BOOL shipTalkNpcAction(void*);
|
|
BOOL kyohiNpcAction(void*);
|
|
BOOL shipNpcAction(void*);
|
|
BOOL mwaitNpcAction(void*);
|
|
BOOL squatdownNpcAction(void*);
|
|
BOOL sqwait01NpcAction(void*);
|
|
void changeCaught02();
|
|
BOOL carryNpcAction(void*);
|
|
BOOL throwNpcAction(void*);
|
|
BOOL glidingNpcAction(void*);
|
|
void windProc();
|
|
BOOL fallNpcAction(void*);
|
|
BOOL fall02NpcAction(void*);
|
|
BOOL wallHitNpcAction(void*);
|
|
BOOL land01NpcAction(void*);
|
|
BOOL land02NpcAction(void*);
|
|
BOOL land03NpcAction(void*);
|
|
BOOL piyo2NpcAction(void*);
|
|
BOOL deleteNpcAction(void*);
|
|
BOOL demoFlyNpcAction(void*);
|
|
void routeAngCheck(cXyz&, s16*);
|
|
void routeWallCheck(cXyz&, cXyz&, s16*);
|
|
void checkForwardGroundY(s16);
|
|
void checkWallJump(s16);
|
|
void routeCheck(f32, s16*);
|
|
BOOL searchNpcAction(void*);
|
|
BOOL hitNpcAction(void*);
|
|
void setNormalSpeedF(f32, f32, f32, f32, f32);
|
|
void setSpeedAndAngleNormal(f32, s16);
|
|
void walkProc(f32, s16);
|
|
BOOL jumpNpcAction(void*);
|
|
BOOL escapeNpcAction(void*);
|
|
BOOL waitPlayerAction(void*);
|
|
BOOL walkPlayerAction(void*);
|
|
BOOL hitPlayerAction(void*);
|
|
BOOL jumpPlayerAction(void*);
|
|
BOOL flyPlayerAction(void*);
|
|
BOOL landPlayerAction(void*);
|
|
BOOL mkamaePlayerAction(void*);
|
|
BOOL carryPlayerAction(void*);
|
|
BOOL eventProc();
|
|
void initialDefault(int);
|
|
BOOL actionDefault(int);
|
|
void initialWaitEvent(int);
|
|
BOOL actionWaitEvent(int);
|
|
void initialLetterEvent(int);
|
|
void initialMsgSetEvent(int);
|
|
BOOL actionMsgSetEvent(int);
|
|
BOOL actionMsgEndEvent(int);
|
|
void initialMovePosEvent(int);
|
|
void initialFlyEvent(int);
|
|
BOOL actionFlyEvent(int);
|
|
void initialGlidingEvent(int);
|
|
BOOL actionGlidingEvent(int);
|
|
void initialLandingEvent(int);
|
|
BOOL actionLandingEvent(int);
|
|
void initialWalkEvent(int);
|
|
BOOL actionWalkEvent(int);
|
|
BOOL actionDashEvent(int);
|
|
void initialEndEvent(int);
|
|
BOOL actionTactEvent(int);
|
|
void initialTakeOffEvent(int);
|
|
BOOL actionTakeOffEvent(int);
|
|
void initialOnetimeEvent(int);
|
|
BOOL actionOnetimeEvent(int);
|
|
void initialQuake(int);
|
|
void setHarpPlayNum(int);
|
|
void initialHarpPlayEvent(int);
|
|
BOOL actionHarpPlayEvent(int);
|
|
void initialOffLinkEvent(int);
|
|
void initialOnLinkEvent(int);
|
|
void initialTurnEvent(int);
|
|
BOOL actionTurnEvent(int);
|
|
void initialSetAnmEvent(int);
|
|
void initialLookDown(int);
|
|
void initialLookUp(int);
|
|
BOOL actionLookDown(int);
|
|
BOOL talk_init();
|
|
BOOL talk(int);
|
|
int getAnmType(u8);
|
|
BOOL initTexPatternAnm(u8, bool);
|
|
void playTexPatternAnm();
|
|
BOOL initLightBtkAnm(bool);
|
|
void playLightBtkAnm();
|
|
BOOL setAnm(int);
|
|
bool dNpc_Md_setAnm(mDoExt_McaMorf2*, f32, int, f32, f32, char*, char*, const char*);
|
|
bool dNpc_Md_setAnm(mDoExt_McaMorf*, int, f32, f32, char*, const char*);
|
|
u8 chkAttention(cXyz, s16, int);
|
|
bool chkArea(cXyz*);
|
|
void carryCheck();
|
|
void eventOrder();
|
|
void checkOrder();
|
|
BOOL checkCommandTalk();
|
|
u16 next_msgStatus(u32*);
|
|
u32 getMsg();
|
|
void setCollision();
|
|
void setAttention(bool);
|
|
void lookBack(int, int, int);
|
|
void lookBack(cXyz*, int, int);
|
|
void lookBackWaist(s16, f32);
|
|
void setBaseMtx();
|
|
void deletePiyoPiyo();
|
|
BOOL init();
|
|
BOOL draw();
|
|
void animationPlay();
|
|
void checkPlayerRoom();
|
|
BOOL execute();
|
|
void particle_set(JPABaseEmitter**, u16);
|
|
void emitterTrace(JPABaseEmitter*, MtxP, csXyz*);
|
|
void emitterDelete(JPABaseEmitter**);
|
|
|
|
virtual BOOL isTagCheckOK();
|
|
virtual f32 getGroundY() { return mAcch.GetGroundH(); }
|
|
virtual MtxP getLeftHandMatrix() { return cullMtx; }
|
|
virtual MtxP getRightHandMatrix() { return cullMtx; }
|
|
virtual f32 getBaseAnimeFrameRate() { return 1.0f; }
|
|
virtual f32 getBaseAnimeFrame() { return 0.0f; }
|
|
|
|
static bool m_flying;
|
|
static bool m_mirror;
|
|
static bool m_seaTalk;
|
|
static s16 m_flyingTimer;
|
|
static bool m_playerRoom;
|
|
|
|
static bool isFlying() { return m_flying; }
|
|
static void onFlying() { m_flying = true; }
|
|
static void offFlying() { m_flying = false; }
|
|
static bool isMirror() { return m_mirror; }
|
|
static void onMirror() { m_mirror = true; }
|
|
static void offMirror() { m_mirror = false; }
|
|
static bool isSeaTalk() { return m_seaTalk; }
|
|
static void onSeaTalk() { m_seaTalk = true; }
|
|
static void offSeaTalk() { m_seaTalk = false; }
|
|
static s16 getMaxFlyingTimer();
|
|
static bool isPlayerRoom() { return m_playerRoom; }
|
|
static void onPlayerRoom() { m_playerRoom = true; }
|
|
static void offPlayerRoom() { m_playerRoom = false; }
|
|
|
|
public:
|
|
/* 0x04EC */ request_of_phase_process_class mPhase;
|
|
/* 0x04F4 */ J3DModel* mpHarpModel;
|
|
/* 0x04F8 */ J3DModel* mpHarpLightModel;
|
|
/* 0x04FC */ mDoExt_McaMorf2* mpMorf;
|
|
/* 0x0500 */ mDoExt_McaMorf2* mpArmMorf;
|
|
/* 0x0504 */ mDoExt_McaMorf* mpWingMorf;
|
|
/* 0x0508 */ JPABaseEmitter* m0508[6];
|
|
/* 0x0520 */ mDoExt_btpAnm m0520;
|
|
/* 0x0534 */ mDoExt_btkAnm mLightBtkAnm;
|
|
/* 0x0548 */ u32 mShadowId;
|
|
/* 0x054C */ dBgS_AcchCir mAcchCir[2];
|
|
/* 0x05CC */ dBgS_MirLightLinChk mLinChk;
|
|
/* 0x0638 */ dCcD_Stts mStts;
|
|
/* 0x0674 */ dCcD_Cyl mCyl1;
|
|
/* 0x07A4 */ dCcD_Cyl mCyl2;
|
|
/* 0x08D4 */ dCcD_Cyl mCyl3;
|
|
/* 0x0A04 */ dCcD_Cps mCps;
|
|
/* 0x0B3C */ dNpc_JntCtrl_c mJntCtrl;
|
|
/* 0x0B70 */ dDlst_mirrorPacket m0B70;
|
|
/* 0x304C */ daPy_mtxFollowEcallBack_c m304C;
|
|
/* 0x3058 */ daNpc_Md_followEcallBack_c m3058;
|
|
/* 0x3074 */ dPa_rippleEcallBack m3074;
|
|
/* 0x3088 */ cXyz m3088;
|
|
/* 0x3094 */ cXyz m3094;
|
|
/* 0x30A0 */ cXyz m30A0;
|
|
/* 0x30AC */ u8 m30AC[0x30D0 - 0x30AC];
|
|
/* 0x30D0 */ f32 m30D0;
|
|
/* 0x30D4 */ ActionFunc mCurrPlayerActionFunc;
|
|
/* 0x30E0 */ ActionFunc mCurrNpcActionFunc;
|
|
/* 0x30EC */ u32 mMsgNo;
|
|
/* 0x30F0 */ u32 m30F0;
|
|
/* 0x30F4 */ u8 m30F4[0x30F8 - 0x30F4];
|
|
/* 0x30F8 */ f32 m30F8;
|
|
/* 0x30FC */ f32 mRunRate;
|
|
/* 0x3100 */ int m3100;
|
|
/* 0x3104 */ int m3104;
|
|
/* 0x3108 */ f32 m3108;
|
|
/* 0x310C */ f32 m310C;
|
|
/* 0x3110 */ s16 m3110;
|
|
/* 0x3112 */ s16 m3112;
|
|
/* 0x3114 */ s16 m3114;
|
|
/* 0x3116 */ s16 m3116;
|
|
/* 0x3118 */ s16 m3118;
|
|
/* 0x311A */ s16 m311A;
|
|
/* 0x311C */ s8 m_backbone1_jnt_num;
|
|
/* 0x311D */ s8 m_backbone2_jnt_num;
|
|
/* 0x311E */ s8 m_armR_jnt_num;
|
|
/* 0x311F */ s8 m_armL_jnt_num;
|
|
/* 0x3120 */ s8 m_armRloc_jnt_num;
|
|
/* 0x3121 */ s8 m_armLloc_jnt_num;
|
|
/* 0x3122 */ s8 m_wingRloc_jnt_num;
|
|
/* 0x3123 */ s8 m_wingLloc_jnt_num;
|
|
/* 0x3124 */ s8 m_neck_jnt_num;
|
|
/* 0x3125 */ s8 m_wingR2_jnt_num;
|
|
/* 0x3126 */ s8 m_wingL2_jnt_num;
|
|
/* 0x3127 */ s8 m_wingR3_jnt_num;
|
|
/* 0x3128 */ s8 m_wingL3_jnt_num;
|
|
/* 0x3129 */ s8 m_handL_jnt_num;
|
|
/* 0x312A */ s8 m312A;
|
|
/* 0x312B */ u8 m312B;
|
|
/* 0x312C */ u8 m312C;
|
|
/* 0x312D */ s8 m312D;
|
|
/* 0x312E */ s8 mCurEventMode;
|
|
/* 0x312F */ u8 m312F[0x3131 - 0x312F];
|
|
/* 0x3131 */ u8 m3131;
|
|
/* 0x3132 */ s8 mActionStatus;
|
|
/* 0x3133 */ u8 m3133;
|
|
/* 0x3134 */ u8 m3134;
|
|
/* 0x3135 */ u8 m3135[0x3136 - 0x3135];
|
|
/* 0x3136 */ u8 m3136;
|
|
/* 0x3137 */ u8 m3137;
|
|
/* 0x3138 */ u8 mType;
|
|
/* 0x3139 */ s8 mCurEvent;
|
|
/* 0x313A */ u8 m313A;
|
|
/* 0x313B */ u8 m313B[0x313C - 0x313B];
|
|
/* 0x313C */ u8 m313C;
|
|
/* 0x313D */ u8 m313D;
|
|
/* 0x313E */ u8 m313E[0x3140 - 0x313E];
|
|
/* 0x3140 */ bool m3140;
|
|
/* 0x3141 */ u8 m3141[0x3144 - 0x3141];
|
|
/* 0x3144 */ s16 m3144;
|
|
/* 0x3146 */ s16 m3146;
|
|
/* 0x3148 */ s16 m3148;
|
|
/* 0x314A */ s16 m314A;
|
|
/* 0x314C */ s16 m314C;
|
|
/* 0x314E */ u8 m314E[0x3150 - 0x314E];
|
|
/* 0x3150 */ f32 m3150;
|
|
/* 0x3154 */ u8 m3154[0x3158 - 0x3154];
|
|
/* 0x3158 */ s16 mEventIdxTable[10];
|
|
/* 0x316C */ s8 m_hair_jnt_nums[8];
|
|
/* 0x3174 */ cXyz m3174[8];
|
|
/* 0x31D4 */ cXyz m31D4[8];
|
|
/* 0x3234 */ cXyz m3234[4];
|
|
/* 0x3264 */ f32 m3264[8];
|
|
/* 0x3284 */ char mModelArcName[3];
|
|
/* 0x3287 */ u8 m3287[0x32A4 - 0x3287];
|
|
/* 0x32A4 */ cXyz m32A4;
|
|
/* 0x32B0 */ cBgS_PolyInfo mPolyInfo;
|
|
};
|
|
|
|
#endif /* D_A_NPC_MD_H */
|