tp/include/d/actor/d_a_ni.h

181 lines
4.7 KiB
C++

#ifndef D_A_NI_H
#define D_A_NI_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
#include "d/d_bg_s_acch.h"
#define BCK_FALL 5
#define BCK_FLY 6
#define BCK_IKAKU 7
#define BCK_MIWATASI 8
#define BCK_MOGAKU 9
#define BCK_NAKU 10
#define BCK_WAIT1 11
#define BCK_WALK_A 12
#define BCK_WALK_B 13
enum daNi_color {
COLOR_WHITE,
COLOR_BLACK,
COLOR_BROWN,
COLOR_GOLD,
COLOR_RANDOM = 0xFF,
};
enum daNi_action {
ACTION_NORMAL_e,
ACTION_AWAY_e,
ACTION_SWIM_e,
ACTION_CARRY_e,
ACTION_FLY_e,
ACTION_DROP_e,
ACTION_RETURN_e,
ACTION_MESSAGE_e,
ACTION_DAMAGE_e,
ACTION_WINDSPIN_e,
ACTION_DEMO0_e,
ACTION_PLAY_e = 15,
};
/**
* @ingroup actors-unsorted
* @class ni_class
* @brief Cucco
*
* @details
*
*/
class ni_class : public fopEn_enemy_c {
public:
bool checkGold() { return mColor == COLOR_GOLD; }
void setMtx(MtxP mtx) {
cXyz newPos;
field_0xb08 = 1;
mDoMtx_stack_c::copy(mtx);
mDoMtx_stack_c::multVecZero(&newPos);
current.pos = newPos;
old.pos = current.pos;
speed.y = 0.0f;
speedF = 0.0f;
mpMorf->getModel()->setBaseTRMtx(mtx);
}
void changeMode() { field_0x5fe = 1; }
/* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x5B4 */ u8 field_0x5b4;
/* 0x5B5 */ u8 mType;
/* 0x5B6 */ u8 field_0x5b6[0x5C0 - 0x5B6];
/* 0x5C0 */ cXyz field_0x5c0;
/* 0x5CC */ cXyz mDemoInitPos;
/* 0x5D8 */ f32 field_0x5d8;
/* 0x5DC */ s16 mMoveAngle;
/* 0x5E0 */ f32 mDistToPlayer;
/* 0x5E4 */ s16 mAngleToPlayer;
/* 0x5E8 */ mDoExt_McaMorf* mpMorf;
/* 0x5EC */ mDoExt_btkAnm* mpBtk;
/* 0x5F0 */ s8 mColor;
/* 0x5F4 */ int mAnmID;
/* 0x5F8 */ s16 mCounter;
/* 0x5FA */ s16 mAction;
/* 0x5FC */ s16 mMode;
/* 0x5FE */ s16 field_0x5fe;
/* 0x600 */ u32 mShadowKey;
/* 0x604 */ s16 mTimers[4];
/* 0x60C */ s16 field_0x60c;
/* 0x60E */ s16 field_0x60e;
/* 0x610 */ f32 field_0x610;
/* 0x614 */ s16 field_0x614;
/* 0x616 */ s16 field_0x616;
/* 0x618 */ s16 field_0x618;
/* 0x61A */ s16 field_0x61a;
/* 0x61C */ s16 field_0x61c;
/* 0x61E */ s16 field_0x61e;
/* 0x620 */ s16 field_0x620;
/* 0x622 */ s16 field_0x622;
/* 0x624 */ s16 field_0x624;
/* 0x626 */ s16 field_0x626;
/* 0x628 */ s16 field_0x628;
/* 0x62A */ s16 field_0x62a;
/* 0x62C */ int mTargetActorID;
/* 0x630 */ dBgS_AcchCir mAcchCir;
/* 0x670 */ dBgS_ObjAcch mAcch;
/* 0x848 */ s8 field_0x848;
/* 0x84C */ dCcD_Stts mCcStts;
/* 0x888 */ dCcD_Sph mCcSph;
/* 0x9C0 */ dCcU_AtInfo mAtInfo;
/* 0x9E4 */ s8 field_0x9e4;
/* 0x9E6 */ s16 field_0x9e6;
/* 0x9E8 */ f32 field_0x9e8;
/* 0x9EC */ s16 field_0x9ec;
/* 0x9EE */ s16 field_0x9ee[4];
/* 0x9F8 */ f32 mSplGroundH;
/* 0x9FC */ f32 mBoomerangMoveMaxStep;
/* 0xA00 */ f32 field_0xa00;
/* 0xA04 */ s16 field_0xa04;
/* 0xA06 */ s8 field_0xa06;
/* 0xA08 */ u32 field_0xa08[4];
/* 0xA18 */ u32 mHamonEmtrID;
/* 0xA1C */ u8 field_0xA1C[0xA20 - 0xA1C];
/* 0xA20 */ u32 mEnoEmtrIDs[2];
/* 0xA28 */ Z2SoundObjSimple mSound;
/* 0xA48 */ s8 field_0xa48;
/* 0xA4C */ u32 mHaneEmitterID;
/* 0xA50 */ s8 field_0xa50;
/* 0xA52 */ s16 field_0xa52;
/* 0xA54 */ s16 mFlowNo;
/* 0xA58 */ dMsgFlow_c mMsgFlow;
/* 0xAA4 */ f32 mPadMainStickX;
/* 0xAA8 */ f32 mPadMainStickY;
/* 0xAAC */ f32 mPadSubStickX;
/* 0xAB0 */ f32 mPadSubStickY;
/* 0xAB4 */ f32 mPadAnalogL;
/* 0xAB8 */ u32 mPadHoldL;
/* 0xABC */ f32 field_0xabc;
/* 0xAC0 */ f32 mPlayAnmSpeed;
/* 0xAC4 */ s16 mPlayCamMode;
/* 0xAC6 */ s16 mPlayCamModeTimer;
/* 0xAC8 */ cXyz field_0xac8;
/* 0xAD4 */ cXyz field_0xad4;
/* 0xAE0 */ u8 field_0xAE0[0xAEC - 0xAE0];
/* 0xAEC */ f32 field_0xaec;
/* 0xAF0 */ f32 field_0xaf0;
/* 0xAF4 */ s16 field_0xaf4;
/* 0xAF8 */ f32 field_0xaf8;
/* 0xAFC */ f32 field_0xafc;
/* 0xB00 */ f32 field_0xb00;
/* 0xB04 */ f32 field_0xb04;
/* 0xB08 */ u8 field_0xb08;
/* 0xB09 */ u8 mInitHIO;
};
STATIC_ASSERT(sizeof(ni_class) == 0xb0c);
class daNi_HIO_c {
public:
daNi_HIO_c();
virtual ~daNi_HIO_c() {}
/* 0x04 */ s8 field_0x04;
/* 0x08 */ f32 mBaseSize;
/* 0x0C */ f32 mMoveSpeed;
/* 0x10 */ f32 mMotionSpeed;
/* 0x14 */ u8 mRecognizeLink;
/* 0x18 */ f32 mRecognizeRange;
/* 0x1C */ f32 mFleeWalkSpeed;
/* 0x20 */ f32 mFleeFlySpeed;
/* 0x24 */ f32 mFleeJumpPower;
/* 0x28 */ f32 mFleeJumpGravity;
/* 0x2C */ f32 mThrowSpeed;
/* 0x30 */ f32 mThrowJumpPower;
/* 0x34 */ f32 field_0x34;
/* 0x38 */ u8 mMogakuModelShake;
/* 0x39 */ u8 field_0x39;
};
#endif /* D_A_NI_H */