mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-02 03:40:15 -04:00
365 lines
11 KiB
C++
365 lines
11 KiB
C++
#ifndef D_A_NPC_JI1_H
|
|
#define D_A_NPC_JI1_H
|
|
|
|
#include "f_op/f_op_actor.h"
|
|
#include "m_Do/m_Do_hostIO.h"
|
|
#include "d/d_cc_d.h"
|
|
#include "d/d_npc.h"
|
|
#include "d/d_particle.h"
|
|
|
|
class mDoExt_McaMorf;
|
|
|
|
class daNpc_Ji1_c : public fopAc_ac_c {
|
|
public:
|
|
typedef int (daNpc_Ji1_c::*Action_t)(void*);
|
|
typedef int (daNpc_Ji1_c::*SubAction_t)();
|
|
|
|
void SpRollCutChcek() {}
|
|
|
|
bool checkAction(Action_t action) {
|
|
return field_0x2B0 == action;
|
|
}
|
|
|
|
bool checkSubAction(SubAction_t subAction) {
|
|
return field_0x2D4 == subAction;
|
|
}
|
|
|
|
void setAction(Action_t action, void* arg) {
|
|
if(field_0x2B0 != action) {
|
|
if(field_0x2B0) {
|
|
field_0xC78 = 0xFF;
|
|
(this->*field_0x2B0)(arg);
|
|
}
|
|
|
|
field_0x2BC = field_0x2B0;
|
|
field_0x2B0 = action;
|
|
field_0xC78 = 0;
|
|
(this->*field_0x2B0)(arg);
|
|
}
|
|
}
|
|
|
|
void setSubAction(SubAction_t subAction) {
|
|
field_0x2D4 = subAction;
|
|
}
|
|
|
|
BOOL isGuardAnim();
|
|
BOOL isAttackAnim();
|
|
int isAttackFrame();
|
|
BOOL isItemWaitAnim();
|
|
BOOL isClearRecord(short);
|
|
void setClearRecord(short);
|
|
BOOL normalSubActionHarpoonGuard(short);
|
|
BOOL normalSubActionGuard(short);
|
|
BOOL normalAction(void*);
|
|
BOOL kaitenExpAction(void*);
|
|
BOOL kaitenspeakAction(void*);
|
|
BOOL kaitenwaitAction(void*);
|
|
BOOL kaitenAction(void*);
|
|
u32 getMsg1stType();
|
|
u32 getMsg2ndType();
|
|
u32 getMsg();
|
|
u16 next_msgStatus(u32* msgId);
|
|
BOOL talkAction(void*);
|
|
BOOL speakAction(void*);
|
|
BOOL speakBadAction(void*);
|
|
static void* initPosObject(void*, void*);
|
|
void initPos(int);
|
|
void createItem();
|
|
void set_mtx();
|
|
s32 getEventActionNo(int);
|
|
BOOL eventAction(void*);
|
|
u32 evn_init_pos_init(int);
|
|
u32 evn_setAnm_init(int);
|
|
u32 evn_talk_init(int);
|
|
u32 evn_talk();
|
|
u32 evn_continue_talk_init(int);
|
|
u32 evn_continue_talk();
|
|
u32 evn_setAngle_init(int);
|
|
u32 evn_sound_proc_init(int);
|
|
u32 evn_head_swing_init(int);
|
|
u32 evn_harpoon_proc_init(int);
|
|
u32 evn_RollAtControl_init(int);
|
|
u32 evn_RollAtControl();
|
|
u32 evn_game_mode_init(int);
|
|
u32 evn_turn_to_player();
|
|
u32 evn_hide_init(int);
|
|
void AnimeControlToWait();
|
|
u32 privateCut();
|
|
u32 setParticle(int, f32, f32);
|
|
void dtParticle();
|
|
u32 setParticleAT(int, f32, f32);
|
|
void dtParticleAT();
|
|
BOOL startspeakAction(void*);
|
|
BOOL endspeakAction(void*);
|
|
BOOL reiAction(void*);
|
|
BOOL plmoveAction(void*);
|
|
void teachMove(f32);
|
|
BOOL teachSpRollCutMove(f32);
|
|
void calcCoCorrectValue();
|
|
void calcBgCorrectValue();
|
|
BOOL MoveToPlayer(f32, u8);
|
|
void teachSubActionAttackInit();
|
|
BOOL teachSubActionAttack();
|
|
void teachSubActionJumpInit();
|
|
BOOL teachSubActionJump();
|
|
BOOL teachAction(void*);
|
|
BOOL teachSPRollCutAction(void*);
|
|
void battleGameSetTimer();
|
|
void battleMove(f32);
|
|
void battleSubActionWaitInit();
|
|
BOOL battleSubActionWait();
|
|
void battleSubActionNockBackInit(int);
|
|
BOOL battleSubActionNockBack();
|
|
void battleSubActionAttackInit();
|
|
BOOL battleSubActionAttack();
|
|
void battleSubActionTateAttackInit();
|
|
BOOL battleSubActionTateAttack();
|
|
void battleSubActionYokoAttackInit();
|
|
BOOL battleSubActionYokoAttack();
|
|
void battleSubActionJumpInit();
|
|
BOOL battleSubActionJump();
|
|
void battleSubActionDamageInit();
|
|
BOOL battleSubActionDamage();
|
|
void battleSubActionJpGuardInit();
|
|
BOOL battleSubActionJpGuard();
|
|
void battleSubActionGuardInit();
|
|
BOOL battleSubActionGuard();
|
|
void battleAtSet();
|
|
BOOL battleGuardCheck();
|
|
BOOL battleAction(void*);
|
|
BOOL checkCutType(int, int);
|
|
void setAnimFromMsgNo(u32);
|
|
BOOL setAnm(int, f32, int);
|
|
cPhs_State _create();
|
|
BOOL CreateHeap();
|
|
BOOL CreateInit();
|
|
BOOL _delete();
|
|
BOOL _execute();
|
|
BOOL _draw();
|
|
BOOL chkAttention(cXyz, s16);
|
|
BOOL lookBack();
|
|
void setHitParticle(cXyz*, u32);
|
|
void setGuardParticle();
|
|
void BackSlideInit();
|
|
void BackSlide(f32, f32);
|
|
void harpoonRelease(cXyz*);
|
|
void harpoonMove();
|
|
|
|
public:
|
|
/* 0x290 */ f32 field_0x290;
|
|
/* 0x294 */ f32 field_0x294;
|
|
/* 0x298 */ f32 field_0x298;
|
|
/* 0x29C */ f32 field_0x29C;
|
|
/* 0x2A0 */ f32 field_0x2A0;
|
|
/* 0x2A4 */ f32 field_0x2A4;
|
|
/* 0x2A8 */ u8 field_0x2A8;
|
|
/* 0x2AC */ u32 field_0x2AC;
|
|
/* 0x2B0 */ Action_t field_0x2B0;
|
|
/* 0x2BC */ Action_t field_0x2BC;
|
|
/* 0x2C8 */ Action_t field_0x2C8;
|
|
/* 0x2D4 */ SubAction_t field_0x2D4;
|
|
/* 0x2E0 */ dPa_smokeEcallBack field_0x2E0;
|
|
/* 0x300 */ dPa_smokeEcallBack field_0x300;
|
|
/* 0x320 */ cXyz field_0x320;
|
|
/* 0x32C */ s16 field_0x32C;
|
|
/* 0x330 */ mDoExt_McaMorf* field_0x330;
|
|
/* 0x334 */ dNpc_EventCut_c mEventCut;
|
|
/* 0x3A0 */ dNpc_JntCtrl_c m_jnt;
|
|
/* 0x3D4 */ J3DAnmTexPattern* headTexPattern;
|
|
/* 0x3D8 */ mDoExt_btpAnm field_0x3D8;
|
|
/* 0x3EC */ u8 field_0x3EC;
|
|
/* 0x3EE */ s16 field_0x3EE;
|
|
/* 0x3F0 */ u32 field_0x3F0;
|
|
/* 0x3F4 */ mDoExt_McaMorf* mpMorf;
|
|
/* 0x3F8 */ J3DModel* field_0x3F8;
|
|
/* 0x3FC */ mDoExt_brkAnm field_0x3FC;
|
|
/* 0x414 */ f32 field_0x414;
|
|
/* 0x418 */ mDoExt_btkAnm field_0x418;
|
|
/* 0x42C */ f32 field_0x42C;
|
|
/* 0x430 */ JPABaseEmitter* field_0x430;
|
|
/* 0x434 */ dBgS_ObjAcch field_0x434;
|
|
/* 0x5F8 */ dBgS_AcchCir field_0x5F8;
|
|
/* 0x638 */ dCcD_Stts field_0x638;
|
|
/* 0x674 */ dCcD_Stts field_0x674;
|
|
/* 0x6B0 */ dCcD_Cyl field_0x6B0;
|
|
/* 0x7E0 */ dCcD_Cyl field_0x7E0;
|
|
/* 0x910 */ dCcD_Cyl field_0x910;
|
|
/* 0xA40 */ dCcD_Cps field_0xA40;
|
|
/* 0xB78 */ cXyz field_0xB78;
|
|
/* 0xB84 */ cXyz field_0xB84;
|
|
/* 0xB90 */ cXyz field_0xB90;
|
|
/* 0xB9C */ s8 handRJointNo;
|
|
/* 0xB9D */ s8 hair1JointNo;
|
|
/* 0xB9E */ s8 hair2JointNo;
|
|
/* 0xB9F */ s8 hair3JointNo;
|
|
/* 0xBA0 */ s8 armLJointNo;
|
|
/* 0xBA1 */ s8 armRJointNo;
|
|
/* 0xBA2 */ s16 field_0xBA2;
|
|
/* 0xBA4 */ s16 field_0xBA4;
|
|
/* 0xBA6 */ s16 field_0xBA6;
|
|
/* 0xBA8 */ s16 field_0xBA8;
|
|
/* 0xBAA */ s16 field_0xBAA;
|
|
/* 0xBAC */ s16 field_0xBAC;
|
|
/* 0xBAE */ s16 field_0xBAE;
|
|
/* 0xBB0 */ s16 field_0xBB0;
|
|
/* 0xBB2 */ s16 field_0xBB2;
|
|
/* 0xBB4 */ s16 field_0xBB4;
|
|
/* 0xBB6 */ s16 field_0xBB6;
|
|
/* 0xBB8 */ s16 field_0xB86;
|
|
/* 0xBBA */ s16 field_0xBBA;
|
|
/* 0xBBC */ s16 field_0xBBC;
|
|
/* 0xBBE */ s16 field_0xBBE;
|
|
/* 0xBC0 */ s16 field_0xBC0;
|
|
/* 0xBC2 */ s16 field_0xBC2;
|
|
/* 0xBC4 */ s16 field_0xBC4;
|
|
/* 0xBC6 */ s16 field_0xBC6;
|
|
/* 0xBC8 */ s16 field_0xBC8;
|
|
/* 0xBCA */ s16 field_0xBCA;
|
|
/* 0xBCC */ s16 field_0xBCC;
|
|
/* 0xBCE */ s16 field_0xBCE;
|
|
/* 0xBD0 */ s16 field_0xBD0;
|
|
/* 0xBD2 */ s16 field_0xBD2;
|
|
/* 0xBD4 */ s16 field_0xBD4;
|
|
/* 0xBD6 */ s16 field_0xBD6;
|
|
/* 0xBD8 */ cXyz field_0xBD8[3];
|
|
/* 0xBFC */ dNpc_HeadAnm_c field_0xBFC;
|
|
/* 0xC20 */ u32 pad_0xC20;
|
|
/* 0xC24 */ s32 field_0xC24;
|
|
/* 0xC28 */ u32 field_0xC28;
|
|
/* 0xC2C */ u32 field_0xC2C;
|
|
/* 0xC30 */ s32 field_0xC30;
|
|
/* 0xC34 */ s32 field_0xC34;
|
|
/* 0xC38 */ s32 field_0xC38;
|
|
/* 0xC3C */ int field_0xC3C;
|
|
/* 0xC40 */ cXyz field_0xC40;
|
|
/* 0xC4C */ f32 field_0xC4C;
|
|
/* 0xC50 */ f32 field_0xC50;
|
|
/* 0xC54 */ s16 field_0xC54[0x12];
|
|
/* 0xC78 */ s8 field_0xC78;
|
|
/* 0xC7C */ request_of_phase_process_class field_0xC7C;
|
|
/* 0xC84 */ u32 field_0xC84;
|
|
/* 0xC88 */ s16 field_0xC88;
|
|
/* 0xC8C */ s32 field_0xC8C;
|
|
/* 0xC90 */ s32 field_0xC90;
|
|
/* 0xC94 */ u32 field_0xC94;
|
|
/* 0xC98 */ u32 field_0xC98;
|
|
/* 0xC9C */ f32 field_0xC9C;
|
|
/* 0xCA0 */ Mtx field_0xCA0;
|
|
/* 0xCD0 */ cXyz field_0xCD0;
|
|
/* 0xCDC */ cXyz field_0xCDC;
|
|
/* 0xCE8 */ u8 pad_0xCE8[0xC];
|
|
/* 0xCF4 */ Quaternion field_0xCF4;
|
|
/* 0xD04 */ f32 field_0xD04;
|
|
/* 0xD08 */ f32 field_0xD08;
|
|
/* 0xD0C */ f32 field_0xD0C;
|
|
/* 0xD10 */ f32 field_0xD10;
|
|
/* 0xD14 */ s16 field_0xD14;
|
|
/* 0xD16 */ s16 field_0xD16;
|
|
/* 0xD18 */ f32 field_0xD18;
|
|
/* 0xD1C */ cXyz field_0xD1C;
|
|
/* 0xD28 */ cXyz field_0xD28;
|
|
/* 0xD34 */ u32 field_0xD34;
|
|
/* 0xD38 */ cXyz field_0xD38;
|
|
/* 0xD44 */ u8 pad_0xD44[0xC];
|
|
/* 0xD50 */ cXyz field_0xD50;
|
|
/* 0xD5C */ csXyz field_0xD5C;
|
|
/* 0xD64 */ s32 field_0xD64;
|
|
/* 0xD68 */ s32 field_0xD68;
|
|
/* 0xD6C */ s32 field_0xD6C;
|
|
/* 0xD70 */ s32 field_0xD70;
|
|
/* 0xD74 */ s32 field_0xD74;
|
|
/* 0xD78 */ u8 field_0xD78;
|
|
/* 0xD79 */ u8 field_0xD79;
|
|
/* 0xD7A */ u8 field_0xD7A;
|
|
/* 0xD7B */ u8 field_0xD7B;
|
|
/* 0xD7C */ u8 field_0xD7C;
|
|
/* 0xD7D */ u8 field_0xD7D;
|
|
/* 0xD7E */ u8 field_0xD7E;
|
|
/* 0xD80 */ u32 field_0xD80;
|
|
/* 0xD84 */ u8 field_0xD84;
|
|
/* 0xD85 */ u8 field_0xD85;
|
|
|
|
static s8 game_life_point;
|
|
}; // Size: 0xD88
|
|
|
|
class daNpc_Ji1_HIO_c : public JORReflexible {
|
|
public:
|
|
daNpc_Ji1_HIO_c();
|
|
virtual ~daNpc_Ji1_HIO_c() {}
|
|
|
|
void genMessage(JORMContext* ctx);
|
|
|
|
public:
|
|
/* 0x004 */ s8 field_0x04;
|
|
/* 0x008 */ f32 field_0x08;
|
|
/* 0x00C */ s16 field_0x0C;
|
|
/* 0x00E */ s16 field_0x0E;
|
|
/* 0x010 */ s16 field_0x10;
|
|
/* 0x012 */ s16 field_0x12;
|
|
/* 0x014 */ s16 field_0x14;
|
|
/* 0x016 */ s16 field_0x16;
|
|
/* 0x018 */ s16 field_0x18;
|
|
/* 0x01A */ u8 field_0x1A;
|
|
/* 0x01C */ f32 field_0x1C;
|
|
/* 0x020 */ f32 field_0x20;
|
|
/* 0x024 */ f32 field_0x24;
|
|
/* 0x028 */ u8 field_0x28;
|
|
/* 0x02C */ f32 field_0x2C;
|
|
/* 0x030 */ u8 field_0x30;
|
|
/* 0x034 */ f32 field_0x34;
|
|
/* 0x038 */ f32 field_0x38;
|
|
/* 0x03C */ f32 field_0x3C;
|
|
/* 0x040 */ f32 field_0x40;
|
|
/* 0x044 */ f32 field_0x44;
|
|
/* 0x048 */ f32 field_0x48;
|
|
/* 0x04C */ f32 field_0x4C;
|
|
/* 0x050 */ f32 field_0x50;
|
|
/* 0x054 */ s16 field_0x54[6];
|
|
/* 0x060 */ s16 field_0x60[4];
|
|
/* 0x068 */ u8 field_0x68;
|
|
/* 0x06C */ f32 field_0x6C;
|
|
/* 0x070 */ f32 field_0x70;
|
|
/* 0x074 */ f32 field_0x74;
|
|
/* 0x078 */ f32 field_0x78;
|
|
/* 0x07C */ f32 field_0x7C;
|
|
/* 0x080 */ f32 field_0x80;
|
|
/* 0x084 */ f32 field_0x84;
|
|
/* 0x088 */ u16 field_0x88;
|
|
/* 0x08A */ u16 field_0x8A;
|
|
/* 0x08C */ u16 field_0x8C;
|
|
/* 0x08E */ u16 field_0x8E;
|
|
/* 0x090 */ u16 field_0x90;
|
|
/* 0x092 */ u16 field_0x92;
|
|
/* 0x094 */ u16 field_0x94;
|
|
/* 0x096 */ u16 field_0x96;
|
|
/* 0x098 */ u16 field_0x98;
|
|
/* 0x09A */ u16 field_0x9A;
|
|
/* 0x09C */ u16 field_0x9C;
|
|
/* 0x09E */ u16 field_0x9E;
|
|
/* 0x0A0 */ u16 field_0xA0;
|
|
/* 0x0A2 */ u8 field_0xA2;
|
|
/* 0x0A4 */ f32 field_0xA4;
|
|
/* 0x0A8 */ f32 field_0xA8;
|
|
/* 0x0AC */ f32 field_0xAC;
|
|
/* 0x0B0 */ f32 field_0xB0;
|
|
/* 0x0B4 */ f32 field_0xB4;
|
|
/* 0x0B8 */ u8 field_0xB8;
|
|
/* 0x0BC */ f32 field_0xBC;
|
|
/* 0x0C0 */ f32 field_0xC0;
|
|
/* 0x0C4 */ cXyz field_0xC4[3];
|
|
/* 0x0E8 */ s16 field_0xE8;
|
|
/* 0x0EA */ s16 field_0xEA;
|
|
/* 0x0EC */ s16 field_0xEC;
|
|
/* 0x0EE */ s16 field_0xEE;
|
|
/* 0x0F0 */ s16 field_0xF0;
|
|
/* 0x0F2 */ s16 field_0xF2;
|
|
/* 0x0F4 */ s16 field_0xF4;
|
|
/* 0x0F6 */ s16 field_0xF6;
|
|
/* 0x0F8 */ s16 field_0xF8;
|
|
/* 0x0FA */ s16 field_0xFA;
|
|
/* 0x0FC */ s16 field_0xFC;
|
|
/* 0x0FE */ s16 field_0xFE;
|
|
}; // Size: 0x100
|
|
|
|
#endif /* D_A_NPC_JI1_H */
|