switch to dtk setup (#2203)

* switch to dtk setup

* some cleanup / fixes

* cleanup d_a_alink literals

* Restore doxygen, update CI & README.md (#1)

* Fix build image ref (#2)

---------

Co-authored-by: Luke Street <luke@street.dev>
This commit is contained in:
TakaRikka
2024-10-10 07:29:58 -07:00
committed by GitHub
parent 3769ea47a6
commit 178194ccb2
33438 changed files with 370506 additions and 3055930 deletions
+39
View File
@@ -0,0 +1,39 @@
#ifndef D_A_L7DEMO_DR_H
#define D_A_L7DEMO_DR_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-unsorted
* @class daDr_c
* @brief
*
* @details
*
*/
class daDr_c : public fopAc_ac_c {
public:
/* 805A9238 */ void setAction(void (daDr_c::*)());
/* 805A92DC */ void action();
/* 805A9304 */ void mtx_set();
/* 805A93D4 */ void draw();
/* 805A9478 */ void wait();
/* 805A963C */ void pl_walk();
/* 805A9914 */ void pl_turn();
/* 805A9A34 */ void bridge_destroy();
/* 805A9D10 */ void bridge_destroy2();
/* 805A9EE4 */ void execute();
/* 805A9FFC */ void _delete();
/* 805AA084 */ void CreateHeap();
/* 805AA19C */ void check_start();
/* 805AA224 */ void create();
private:
/* 0x568 */ u8 field_0x568[0x65c - 0x568];
};
STATIC_ASSERT(sizeof(daDr_c) == 0x65c);
#endif /* D_A_L7DEMO_DR_H */
+34
View File
@@ -0,0 +1,34 @@
#ifndef D_A_L7LOW_DR_H
#define D_A_L7LOW_DR_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-unsorted
* @class daL7lowDr_c
* @brief
*
* @details
*
*/
class daL7lowDr_c : public fopAc_ac_c {
public:
/* 805AA5F8 */ void setAction(void (daL7lowDr_c::*)());
/* 805AA69C */ void action();
/* 805AA748 */ void _delete();
/* 805AA7B8 */ void mtx_set();
/* 805AA828 */ void fly();
/* 805AABF8 */ void execute();
/* 805AAC5C */ void CreateHeap();
/* 805AAD58 */ void create();
/* 805AAEA8 */ void draw();
private:
/* 0x568 */ u8 field_0x568[0x644 - 0x568];
};
STATIC_ASSERT(sizeof(daL7lowDr_c) == 0x644);
#endif /* D_A_L7LOW_DR_H */
+41
View File
@@ -0,0 +1,41 @@
#ifndef D_A_L7OP_DEMO_DR_H
#define D_A_L7OP_DEMO_DR_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-unsorted
* @class daL7ODR_c
* @brief
*
* @details
*
*/
class daL7ODR_c : public fopAc_ac_c {
public:
/* 805AB098 */ void setAction(void (daL7ODR_c::*)());
/* 805AB13C */ void action();
/* 805AB164 */ void setDrAction(void (daL7ODR_c::*)());
/* 805AB208 */ void dr_action();
/* 805AB230 */ void mtx_set();
/* 805AB2E8 */ void draw();
/* 805AB3F0 */ void wait();
/* 805AB520 */ void pl_walk();
/* 805ABC2C */ void setZoomOutCamPos(cXyz&, cXyz&, f32);
/* 805ABCF8 */ void dr_wait();
/* 805ABE0C */ void dr_fly();
/* 805AD7B4 */ void execute();
/* 805AD87C */ void _delete();
/* 805AD90C */ void CreateHeap();
/* 805ADA2C */ void check_start();
/* 805ADAC0 */ void create();
private:
/* 0x568 */ u8 field_0x568[0x8b8 - 0x568];
};
STATIC_ASSERT(sizeof(daL7ODR_c) == 0x8b8);
#endif /* D_A_L7OP_DEMO_DR_H */
File diff suppressed because it is too large Load Diff
+44
View File
@@ -0,0 +1,44 @@
#ifndef D_A_ALLDIE_H
#define D_A_ALLDIE_H
#include "f_op/f_op_actor.h"
/**
* @ingroup actors-unsorted
* @class daAlldie_c
* @brief
*
* @details
*
*/
class daAlldie_c : public fopAc_ac_c {
public:
enum EAction {
/* 0x0 */ ACT_WAIT,
/* 0x1 */ ACT_CHECK,
/* 0x2 */ ACT_TIMER,
/* 0x3 */ ACT_ORDER,
/* 0x4 */ ACT_NEXT,
/* 0x5 */ ACT_EVENT,
};
/* 804D5818 */ u8 getEventNo();
/* 804D5824 */ u8 getSwbit();
/* 804D5830 */ int actionWait();
/* 804D5838 */ int actionCheck();
/* 804D5888 */ int actionTimer();
/* 804D5938 */ int actionOrder();
/* 804D59A0 */ int actionEvent();
/* 804D5A44 */ int actionNext();
/* 804D5B10 */ int execute();
inline int create();
/* 0x568 */ u8 mAction;
/* 0x56A */ s16 mTimer;
/* 0x56C */ s16 mEventIdx;
/* 0x56E */ s16 mNextEventIdx;
/* 0x570 */ s16 mMapToolID;
}; // Size: 0x574
#endif /* D_A_ALLDIE_H */
+43
View File
@@ -0,0 +1,43 @@
#ifndef D_A_ANDSW_H
#define D_A_ANDSW_H
#include "d/d_com_inf_game.h"
/**
* @ingroup actors-unsorted
* @class daAndsw_c
* @brief
*
* @details
*
*/
class daAndsw_c : public fopAc_ac_c {
public:
u8 getSwNo() {
return fopAcM_GetParamBit(this,0,8);
}
u8 getSwNo2() {
return fopAcM_GetParamBit(this,8,8);
}
u16 getTimer() {
return fopAcM_GetParamBit(this,16,8);
}
u8 getType() {
return fopAcM_GetParamBit(this,24,8);
}
/* 80457978 */ int Create();
/* 804579B8 */ int create();
/* 80457A20 */ int execute();
/* 80457ABC */ int _delete();
/* 0x568 */ u8 mSwNo;
/* 0x568 */ u8 mSwNo2;
/* 0x56A */ s16 mTimer;
};
#endif /* D_A_ANDSW_H */
+48
View File
@@ -0,0 +1,48 @@
#ifndef D_A_ANDSW2_H
#define D_A_ANDSW2_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-unsorted
* @class daAndsw2_c
* @brief
*
* @details
*
*/
class daAndsw2_c : public fopAc_ac_c {
public:
enum Action_e {
ACT_ON_ALL_e,
ACT_TIMER_e,
ACT_ORDER_e,
ACT_EVENT_e,
ACT_OFF_e,
ACT_WAIT_e,
};
/* 804D5DF8 */ u8 getEventNo();
/* 804D5E04 */ u8 getSwbit();
/* 804D5E10 */ u8 getSwbit2();
/* 804D5E1C */ u8 getType();
/* 804D5E28 */ u8 getTimer();
/* 804D5E34 */ u8 getNum();
/* 804D5E40 */ u8 getTopSw();
/* 804D5EB0 */ u8 getSwAns();
/* 804D5EBC */ BOOL chkAllSw2();
/* 804D5F64 */ bool chkSwStatus();
/* 804D6024 */ bool chkSwStatus2();
/* 804D60CC */ ~daAndsw2_c();
/* 804D6120 */ int create();
inline int execute();
void setActio(u8 i_action) { mAction = i_action; }
/* 0x568 */ s16 mTimer;
/* 0x56A */ s16 mEventIdx;
/* 0x56C */ u8 mAction;
};
#endif /* D_A_ANDSW2_H */
+145
View File
@@ -0,0 +1,145 @@
#ifndef D_A_ARROW_H
#define D_A_ARROW_H
#include "d/actor/d_a_player.h"
#include "d/d_cc_d.h"
#include "d/d_particle.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-unsorted
* @class daArrow_c
* @brief Arrow
*
* @details
*
*/
class daArrow_c : public fopAc_ac_c {
public:
enum ArrowType_e {
ARROW_TYPE_NORMAL = 0, // Needs verification
ARROW_TYPE_BOMB = 1,
ARROW_TYPE_LIGHT = 2,
ARROW_TYPE_SLING = 4,
};
/* 80499C6C */ int createHeap();
/* 80499D8C */ void atHitCallBack(dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
/* 80499FBC */ void decAlphaBlur();
/* 8049A04C */ void setBlur();
/* 8049A110 */ void setLightArrowHitMark(cXyz const*);
/* 8049A1EC */ void setLightChargeEffect(int);
/* 8049A370 */ int setArrowWaterNextPos(cXyz*, cXyz*);
/* 8049A76C */ void setArrowAt(f32);
/* 8049A9CC */ void arrowShooting();
/* 8049AC84 */ void setBombArrowExplode(cXyz*);
/* 8049ACE0 */ void setRoomInfo();
/* 8049AD74 */ void clearNearActorData();
/* 8049AD94 */ s16 getVibAngle();
/* 8049AE64 */ void setNormalMatrix();
/* 8049AF18 */ void setSmokePos();
/* 8049AFEC */ void setKeepMatrix();
/* 8049B120 */ fopAc_ac_c* setStopActorMatrix();
/* 8049B214 */ void setBombMoveEffect();
/* 8049B370 */ bool checkReget();
/* 8049B45C */ int procWait();
/* 8049B764 */ int procMove();
/* 8049C700 */ int procReturnInit(int);
/* 8049C874 */ int procReturn();
/* 8049CB70 */ int procBGStop();
/* 8049CC60 */ int procActorStop();
/* 8049CCCC */ int procActorControllStop();
/* 8049CCF0 */ int procSlingHitInit(cXyz*, dCcD_GObjInf*);
/* 8049CE50 */ int procSlingHit();
/* 8049CEA0 */ int execute();
/* 8049D0CC */ int draw();
/* 8049D440 */ cPhs__Step create();
/* 8049D98C */ ~daArrow_c();
void setBombArrowExplode() { field_0x950 = 0; }
bool checkBombArrow() const { return mArrowType == true; }
void setShoot() { fopAcM_SetParam(this, 1); }
void setChargeShoot() { fopAcM_SetParam(this, 2); }
static fopAc_ac_c* makeArrow(fopAc_ac_c* i_actor, u16 param_1) {
return (fopAc_ac_c*)fopAcM_fastCreate(PROC_ARROW,
param_1 << 8,
&i_actor->current.pos,
fopAcM_GetRoomNo(i_actor),
NULL,
NULL,
-1,
NULL,
NULL);
}
static fopAc_ac_c* makeSlingStone(fopAc_ac_c* i_actor, cXyz* i_pos) {
return (fopAc_ac_c*)fopAcM_fastCreate(PROC_ARROW,
0x401,
i_pos,
fopAcM_GetRoomNo(i_actor),
NULL,
NULL,
-1,
NULL,
NULL);
}
private:
/* 0x568 */ J3DModel* mpModel;
/* 0x56C */ dBgS_ArrowLinChk field_0x56c;
/* 0x5DC */ dBgS_ObjLinChk field_0x5dc;
/* 0x64C */ dCcD_Stts field_0x64c;
/* 0x688 */ dCcD_Cps field_0x688;
/* 0x7CC */ dCcD_Sph field_0x7cc;
/* 0x904 */ Z2SoundObjArrow mSoundObjArrow;
/* 0x93C */ u8 mArrowType;
/* 0x93D */ u8 field_0x93d;
/* 0x93E */ s8 field_0x93e;
/* 0x93F */ u8 field_0x93f;
/* 0x940 */ u8 field_0x940;
/* 0x941 */ u8 field_0x941;
/* 0x942 */ u8 field_0x942;
/* 0x943 */ u8 field_0x943;
/* 0x944 */ u8 field_0x944;
/* 0x945 */ u8 field_0x945;
/* 0x946 */ u8 field_0x946;
/* 0x947 */ u8 field_0x947;
/* 0x948 */ s8 mReverb;
/* 0x949 */ u8 field_0x949[0x94C - 0x949];
/* 0x94C */ u16 field_0x94c;
/* 0x94E */ s16 field_0x94e;
/* 0x950 */ s16 field_0x950;
/* 0x952 */ s16 field_0x952;
/* 0x954 */ s16 field_0x954;
/* 0x956 */ s16 field_0x956;
/* 0x958 */ csXyz field_0x958;
/* 0x960 */ int field_0x960;
/* 0x964 */ u32 field_0x964;
/* 0x968 */ u32 field_0x968;
/* 0x96C */ u32 field_0x96c[4];
/* 0x97C */ u32 field_0x97c[6];
/* 0x994 */ u32 mHitAcID;
/* 0x998 */ f32 field_0x998;
/* 0x99C */ f32 field_0x99c;
/* 0x9A0 */ f32 mOutLengthRate;
/* 0x9A4 */ f32 mFlyMax;
/* 0x9A8 */ cXyz field_0x9a8;
/* 0x9B4 */ cXyz field_0x9b4;
/* 0x9C0 */ cXyz mStartPos;
/* 0x9CC */ cXyz field_0x9cc;
/* 0x9D8 */ cXyz field_0x9d8;
/* 0x9E4 */ cXyz field_0x9e4;
/* 0x9F0 */ cXyz mSmokePos;
/* 0x9FC */ cXyz field_0x9fc;
/* 0xA08 */ daPy_actorKeep_c field_0xa08;
/* 0xA10 */ dPa_hermiteEcallBack_c field_0xa10;
/* 0xA28 */ int (daArrow_c::*mProcFunc)();
static s16 m_count;
};
STATIC_ASSERT(sizeof(daArrow_c) == 0xA34);
#endif /* D_A_ARROW_H */
+27
View File
@@ -0,0 +1,27 @@
#ifndef D_A_B_BH_H
#define D_A_B_BH_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class b_bh_class
* @brief Big Baba
*
* @details Forest Temple enemy.
*
*/
class b_bh_class : public fopEn_enemy_c {
private:
/* 0x5AC */ u8 field_0x568[0xf4c - 0x5AC];
};
STATIC_ASSERT(sizeof(b_bh_class) == 0xf4c);
class daB_BH_HIO_c {
public:
/* 805AE26C */ daB_BH_HIO_c();
/* 805B3098 */ ~daB_BH_HIO_c();
};
#endif /* D_A_B_BH_H */
+133
View File
@@ -0,0 +1,133 @@
#ifndef D_A_B_BQ_H
#define D_A_B_BQ_H
#include "f_op/f_op_actor_mng.h"
#include "Z2AudioLib/Z2Creature.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
/**
* @ingroup actors-enemies
* @class b_bq_class
* @brief Diababa
*
* @details Forest Temple dungeon boss.
*
*/
class b_bq_class : public fopEn_enemy_c {
public:
/* 805B9B3C */ b_bq_class();
/* 0x05AC */ request_of_phase_process_class mPhase;
/* 0x05B4 */ mDoExt_McaMorfSO* mpMorf;
/* 0x05B8 */ mDoExt_brkAnm* mpDeadBrk;
/* 0x05BC */ mDoExt_btkAnm* mpTodomeBtk;
/* 0x05C0 */ s8 mPlayTodomeBtk;
/* 0x05C4 */ J3DModel* mpEyeballModel;
/* 0x05C8 */ s8 field_0x5c8;
/* 0x05CC */ cXyz field_0x5cc;
/* 0x05D8 */ f32 field_0x5d8;
/* 0x05DC */ s16 field_0x5dc;
/* 0x05E0 */ Z2CreatureEnemy mSound;
/* 0x0684 */ Z2SoundObjSimple field_0x684;
/* 0x06A4 */ Z2SoundObjSimple field_0x6a4;
/* 0x06C4 */ int mAnmID;
/* 0x06C8 */ s16 field_0x6c8;
/* 0x06CA */ s16 mAction;
/* 0x06CC */ s16 mMode;
/* 0x06CE */ s16 mAngleToPlayer;
/* 0x06D0 */ f32 mDistToPlayer;
/* 0x06D4 */ s16 mTimers[5];
/* 0x06DE */ s16 field_0x6de;
/* 0x06E0 */ unsigned int mTentacleIDs[2];
/* 0x06E8 */ unsigned int mMonkeyBombID;
/* 0x06EC */ u8 field_0x6ec;
/* 0x06ED */ s8 mColpatType;
/* 0x06F0 */ f32 mColpatBlend;
/* 0x06F4 */ s16 mHeadRot;
/* 0x06F6 */ s16 field_0x6f6;
/* 0x06F8 */ s8 mDisableDraw;
/* 0x06F9 */ u8 field_0x6f9;
/* 0x06FA */ u8 field_0x6fa;
/* 0x06FB */ u8 field_0x6fb;
/* 0x06FC */ s8 field_0x6fc;
/* 0x06FE */ s16 field_0x6fe;
/* 0x0700 */ dCcD_Stts mCcStts;
/* 0x073C */ dCcD_Sph mCcSph;
/* 0x0874 */ dCcD_Stts mCcCoStts;
/* 0x08B0 */ dCcD_Sph mCcCoreSph;
/* 0x09E8 */ dCcD_Sph mCcCoreCoSph;
/* 0x0B20 */ dCcD_Sph mCcMizuSph[4];
/* 0x1000 */ dCcD_Sph mCcBodyCoSph;
/* 0x1138 */ cXyz field_0x1138;
/* 0x1144 */ cXyz field_0x1144;
/* 0x1150 */ s8 mDamageBackCount;
/* 0x1151 */ u8 field_0x1151;
/* 0x1154 */ dCcU_AtInfo mAtInfo;
/* 0x1178 */ f32 field_0x1178;
/* 0x117C */ u8 field_0x117C[0x1180 - 0x117C];
/* 0x1180 */ u32 field_0x1180;
/* 0x1184 */ u32 field_0x1184;
/* 0x1188 */ u32 field_0x1188;
/* 0x118C */ u32 field_0x118c;
/* 0x1190 */ u32 field_0x1190;
/* 0x1194 */ u32 field_0x1194[5];
/* 0x11A8 */ u32 field_0x11a8[12];
/* 0x11D8 */ f32 field_0x11d8;
/* 0x11DC */ u8 field_0x11DC[0x11FC - 0x11DC];
/* 0x11FC */ s8 field_0x11fc;
/* 0x1200 */ u32 mMizutamaEmtrIDs[4];
/* 0x1210 */ u32 mSmokeEmtrIDs[2];
/* 0x1218 */ u8 field_0x1218[0x1220 - 0x1218];
/* 0x1220 */ u32 field_0x1220;
/* 0x1224 */ u32 field_0x1224;
/* 0x1228 */ u32 field_0x1228[4];
/* 0x1238 */ s16 mDemoMode;
/* 0x123A */ s16 mDemoModeTimer;
/* 0x123C */ u8 field_0x123c;
/* 0x1240 */ cXyz mDemoCamEye;
/* 0x124C */ cXyz mDemoCamCenter;
/* 0x1258 */ cXyz mDemoCamEyeTarget;
/* 0x1264 */ cXyz field_0x1264;
/* 0x1270 */ cXyz mDemoCamCenterTarget;
/* 0x127C */ cXyz field_0x127c;
/* 0x1288 */ cXyz field_0x1288;
/* 0x1294 */ u8 field_0x1294[0x1298 - 0x1294];
/* 0x1298 */ f32 field_0x1298;
/* 0x129C */ f32 field_0x129c;
/* 0x12A0 */ f32 field_0x12a0;
/* 0x12A4 */ f32 mDemoCamFovy;
/* 0x12A8 */ f32 field_0x12a8;
/* 0x12AC */ s16 mBlureRate;
/* 0x12AE */ s16 mBlureRateTarget;
/* 0x12B0 */ cXyz mMizuAtStartPos;
/* 0x12BC */ cXyz field_0x12bc;
/* 0x12C8 */ cXyz field_0x12c8[16];
/* 0x1388 */ int field_0x1388;
/* 0x138C */ s16 field_0x138c;
/* 0x138E */ s16 field_0x138e;
/* 0x1390 */ s16 field_0x1390;
/* 0x1392 */ u8 field_0x1392;
/* 0x1393 */ s8 field_0x1393;
/* 0x1394 */ s8 field_0x1394;
/* 0x1395 */ s8 mSetBossExplode;
/* 0x1396 */ s8 field_0x1396;
/* 0x1397 */ s8 mSetDeadColor;
/* 0x1398 */ f32 mDeadColor;
/* 0x139C */ u8 mInitHIO;
};
STATIC_ASSERT(sizeof(b_bq_class) == 0x13A0);
class daB_BQ_HIO_c {
public:
/* 805B356C */ daB_BQ_HIO_c();
/* 805B9FFC */ virtual ~daB_BQ_HIO_c();
/* 0x04 */ s8 field_0x4;
/* 0x08 */ f32 mModelSize;
/* 0x0C */ s16 mChanceTime;
/* 0x0E */ s16 mWaterSprayTime;
};
#endif /* D_A_B_BQ_H */
+185
View File
@@ -0,0 +1,185 @@
#ifndef D_A_B_DR_H
#define D_A_B_DR_H
#include "f_op/f_op_actor_mng.h"
#include "Z2AudioLib/Z2Creature.h"
#include "d/d_cc_d.h"
#include "d/d_msg_flow.h"
#include "d/d_bg_s_acch.h"
/**
* @ingroup actors-enemies
* @class daB_DR_c
* @brief Argorok
*
* @details City in the Sky dungeon boss.
*
*/
class daB_DR_c : public fopEn_enemy_c {
public:
/* 805BAF80 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 805BB120 */ void JointCallBack(J3DJoint*, int);
/* 805BB16C */ void draw();
/* 805BB408 */ void setBck(int, u8, f32, f32);
/* 805BB4B4 */ void setActionMode(int, int);
/* 805BB4CC */ void mGlider_WindPosSet();
/* 805BB540 */ void mBoot_c_tranceSet(bool);
/* 805BB64C */ void mStatusONOFF(int);
/* 805BB6E8 */ void setSe();
/* 805BBFC0 */ void setDeathLightEffect();
/* 805BC0B8 */ void chkPartCreate(bool);
/* 805BC248 */ void mHabatakiAnmSet(int);
/* 805BC57C */ void mGlider_AniSet(bool);
/* 805BC8B4 */ void mGliderAtAniSet();
/* 805BCA10 */ void tail_hit_check();
/* 805BCAD4 */ void week_hit_check();
/* 805BCBD0 */ void mTimerClr();
/* 805BCBF4 */ void mCountClr();
/* 805BCC18 */ void mAllClr();
/* 805BCC4C */ void mHeadAngleSet();
/* 805BCD7C */ void flapMove(bool);
/* 805BCEA4 */ void revolutionMove();
/* 805BD05C */ void mPlayerHighCheck();
/* 805BD15C */ void mBgFallGroundCheck();
/* 805BD3E4 */ void normalHoverMove();
/* 805BD5FC */ void executeWait();
/* 805BD98C */ void executeFlyWait();
/* 805BDBC4 */ void executeTailHit();
/* 805BE9B4 */ void executeWeekHit();
/* 805BF4C8 */ void mBreathSet();
/* 805BF768 */ void mBreathHighSet(bool);
/* 805BFA6C */ void mFeintBreath();
/* 805BFD88 */ void executeBreathAttack();
/* 805C062C */ void executeWindAttack();
/* 805C0CAC */ void mGliderMoveSub(f32);
/* 805C0EF8 */ void executeGliderAttack();
/* 805C1E0C */ void executePillarSearch();
/* 805C24BC */ void executePillarWait();
/* 805C2BE8 */ void startDemoCheck();
/* 805C2CD0 */ void executeDamageDemo();
/* 805C3558 */ void executeMiddleDemo();
/* 805C36A4 */ void executeDead();
/* 805C382C */ void executeBullet();
/* 805C39D8 */ void executeParts();
/* 805C3CB0 */ void action();
/* 805C40E0 */ void action_fire();
/* 805C4130 */ void action_parts();
/* 805C41A4 */ void mtx_set();
/* 805C4684 */ void parts_mtx_set();
/* 805C46E0 */ void cc_set();
/* 805C4E14 */ void down_cc_set();
/* 805C4FB4 */ void demo_skip(int);
/* 805C50BC */ void DemoSkipCallBack(void*, int);
/* 805C50F0 */ void execute();
/* 805C55B0 */ void _delete();
/* 805C56A4 */ void CreateHeap();
/* 805C5974 */ void create();
/* 805C62B0 */ daB_DR_c();
MtxP getMtx() { return mpModelMorf->getModel()->getAnmMtx(15); }
void onTarget() { mTarget = true; }
bool isBack() { return mPrm0; }
private:
/* 0x05AC */ request_of_phase_process_class mPhase;
/* 0x05B4 */ mDoExt_McaMorfSO* mpModelMorf;
/* 0x05B8 */ J3DModel* mpPartModel;
/* 0x05BC */ mDoExt_brkAnm* mpCoreBrk;
/* 0x05C0 */ Z2CreatureEnemy field_0x5c0;
/* 0x0664 */ Z2CreatureEnemy field_0x664;
/* 0x0708 */ int mAction;
/* 0x070C */ int mMode;
/* 0x0710 */ int mAnmID;
/* 0x0714 */ u8 field_0x714[0x0718 - 0x0714];
/* 0x0718 */ int field_0x718;
/* 0x071C */ u8 field_0x71C[0x0720 - 0x071C];
/* 0x0720 */ f32 field_0x720;
/* 0x0724 */ f32 field_0x724;
/* 0x0728 */ f32 field_0x728;
/* 0x072C */ f32 field_0x72c;
/* 0x0730 */ u8 field_0x730[0x0734 - 0x0730];
/* 0x0734 */ f32 field_0x734;
/* 0x0738 */ u8 field_0x738[0x073C - 0x0738];
/* 0x073C */ f32 field_0x73c;
/* 0x0740 */ f32 field_0x740;
/* 0x0744 */ f32 field_0x744;
/* 0x0748 */ f32 field_0x748;
/* 0x074C */ s16 field_0x74c;
/* 0x074E */ s16 field_0x74e;
/* 0x0750 */ s16 field_0x750;
/* 0x0752 */ s16 field_0x752;
/* 0x0754 */ s16 field_0x754;
/* 0x0756 */ s16 field_0x756;
/* 0x0758 */ s16 field_0x758;
/* 0x075A */ s16 field_0x75a;
/* 0x075C */ u8 field_0x75C[0x0760 - 0x075C];
/* 0x0760 */ cXyz field_0x760;
/* 0x076C */ cXyz field_0x76c;
/* 0x0778 */ cXyz field_0x778;
/* 0x0784 */ cXyz field_0x784;
/* 0x0790 */ cXyz field_0x790;
/* 0x079C */ cXyz field_0x79c;
/* 0x07A8 */ cXyz field_0x7a8;
/* 0x07B4 */ cXyz field_0x7b4;
/* 0x07C0 */ int mTimer[4];
/* 0x07D0 */ u8 field_0x7d0;
/* 0x07D1 */ u8 field_0x7d1;
/* 0x07D2 */ u8 field_0x7d2;
/* 0x07D3 */ u8 field_0x7d3;
/* 0x07D4 */ u8 field_0x7d4;
/* 0x07D5 */ u8 field_0x7D5[0x07D6 - 0x07D5];
/* 0x07D6 */ u8 field_0x7d6;
/* 0x07D7 */ u8 field_0x7d7;
/* 0x07D8 */ u8 field_0x7D8[0x07D9 - 0x07D8];
/* 0x07D9 */ u8 mTarget;
/* 0x07DA */ u8 field_0x7DA[0x07DB - 0x07DA];
/* 0x07DB */ u8 field_0x7db;
/* 0x07DC */ u8 field_0x7DC[0x07E0 - 0x07DC];
/* 0x07E0 */ int field_0x7e0;
/* 0x07E4 */ u8 field_0x7e4[4];
/* 0x07E8 */ u8 field_0x7e8;
/* 0x07E9 */ u8 field_0x7E9[0x07EA - 0x07E9];
/* 0x07EA */ u8 mPrm0;
/* 0x07EB */ u8 field_0x7eb;
/* 0x07EC */ u8 mPrm1;
/* 0x07ED */ u8 mPrm2;
/* 0x07EE */ u8 mPrm3;
/* 0x07EF */ u8 field_0x7EF[0x07F0 - 0x07EF];
/* 0x07F0 */ dBgS_AcchCir mAcchCir;
/* 0x0830 */ dBgS_ObjAcch mAcch;
/* 0x0A08 */ dCcD_Stts field_0xa08;
/* 0x0A44 */ dCcD_Cyl mWeekCc;
/* 0x0B80 */ dCcD_Sph mFootAtCc[2];
/* 0x0DF0 */ dCcD_Sph field_0xdf0;
/* 0x0F28 */ dCcD_Sph mBreathAtCc;
/* 0x1060 */ dCcD_Sph mWindAtCc;
/* 0x1198 */ dCcD_Sph mWindAtCc2;
/* 0x12D0 */ dCcD_Sph mWindAtCc3;
/* 0x1408 */ dCcD_Sph mTailCc;
/* 0x1540 */ dCcD_Cyl mPillarCc;
/* 0x167C */ dCcD_Sph mDownSphCc[9];
/* 0x2174 */ dCcD_Cyl mDownCc[5];
/* 0x27A0 */ u8 field_0x27A0[0x27A8 - 0x27A0];
/* 0x27A8 */ Z2CreatureEnemy* field_0x27a8;
/* 0x27AC */ u8 field_0x27AC[0x27C4 - 0x27AC];
/* 0x27C4 */ cXyz field_0x27c4;
/* 0x27D0 */ cXyz field_0x27d0;
/* 0x27DC */ u32 field_0x27dc[4];
/* 0x27EC */ u32 field_0x27ec[4];
/* 0x27FC */ u32 field_0x27fc[4];
/* 0x280C */ u32 field_0x280c;
/* 0x2810 */ u8 field_0x2810[0x2814 - 0x2810];
/* 0x2814 */ dMsgFlow_c mMsgFlow;
};
STATIC_ASSERT(sizeof(daB_DR_c) == 0x2860);
class daB_DR_HIO_c {
public:
/* 805BAE6C */ daB_DR_HIO_c();
/* 805C6B94 */ ~daB_DR_HIO_c();
};
#endif /* D_A_B_DR_H */
+87
View File
@@ -0,0 +1,87 @@
#ifndef D_A_B_DRE_H
#define D_A_B_DRE_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_s_acch.h"
#include "Z2AudioLib/Z2Creature.h"
/**
* @ingroup actors-enemies
* @class daB_DRE_c
* @brief Argorok (child actor?)
*
* @details Used in the City in the Sky dungeon boss fight.
*
*/
class daB_DRE_c : public fopEn_enemy_c {
public:
/* 805C7DD4 */ void SetAnm(mDoExt_McaMorfSO*, int, int, f32, f32);
/* 805C7EAC */ void CameraSet();
/* 805C8008 */ void SetStopingCam();
/* 805C808C */ void SetStopCam(cXyz, f32, f32, s16);
/* 805C8208 */ void SetCMoveCam(cXyz, f32, f32);
/* 805C81B8 */ void SetCMoveCam(cXyz, f32);
/* 805C8348 */ void SetEyeMoveCam(cXyz, f32, f32, s16, f32, f32);
/* 805C824C */ void SetEyeMoveCam(cXyz, f32, f32, s16, f32);
/* 805C8458 */ void SetMoveCam(f32, f32);
/* 805C8544 */ void SetReleaseCam();
/* 805C85E8 */ void CamAction2();
/* 805C8BF8 */ void DrAction2();
/* 805C8EDC */ void CamAction();
/* 805C9318 */ void Action();
/* 805C9378 */ void DrAction();
/* 805C9B40 */ void SoundChk();
/* 805CA158 */ void Execute();
/* 805CA49C */ void SpeedSet();
/* 805CA4FC */ void BreathSet();
/* 805CA670 */ void Delete();
/* 805CA6C0 */ void setBaseMtx();
/* 805CA944 */ void create();
MtxP getMtx() { return field_0x6ec->getModel()->getAnmMtx(15); }
private:
/* 0x5AC */ u8 field_0x5AC[0x5B0 - 0x5AC];
/* 0x5B0 */ int mAnm;
/* 0x5B4 */ u8 field_0x5b4;
/* 0x5B5 */ u8 field_0x5b5;
/* 0x5B6 */ u8 field_0x5B6[0x5B7 - 0x5B6];
/* 0x5B7 */ u8 field_0x5b7;
/* 0x5B8 */ u8 field_0x5b8;
/* 0x5B9 */ u8 field_0x5b9;
/* 0x5BA */ u8 field_0x5BA[0x5C8 - 0x5BA];
/* 0x5C8 */ cXyz field_0x5c8;
/* 0x5D4 */ cXyz field_0x5d4;
/* 0x5E0 */ cXyz field_0x5e0;
/* 0x5EC */ cXyz field_0x5ec;
/* 0x5F8 */ f32 field_0x5f8;
/* 0x5FC */ s16 field_0x5fc;
/* 0x5FE */ u8 field_0x5FE[0x600 - 0x5FE];
/* 0x600 */ f32 field_0x600;
/* 0x604 */ mDoExt_brkAnm* field_0x604;
/* 0x608 */ f32 field_0x608;
/* 0x60C */ u8 field_0x60C[0x610 - 0x60C];
/* 0x610 */ f32 field_0x610;
/* 0x614 */ f32 field_0x614;
/* 0x618 */ f32 field_0x618;
/* 0x61C */ u32 field_0x61c[4];
/* 0x62C */ s16 field_0x62c[5];
/* 0x636 */ u8 field_0x636;
/* 0x637 */ u8 field_0x637;
/* 0x638 */ u8 field_0x638;
/* 0x639 */ u8 field_0x639[0x63C - 0x639];
/* 0x63C */ request_of_phase_process_class mPhase;
/* 0x644 */ Z2CreatureEnemy mSound;
/* 0x6E8 */ u8 field_0x6E8[0x6EC - 0x6E8];
/* 0x6EC */ mDoExt_McaMorfSO* field_0x6ec;
/* 0x6F0 */ dBgS_AcchCir mAcchCir;
/* 0x730 */ dBgS_ObjAcch mAcch;
/* 0x908 */ u8 field_0x908[0x910 - 0x908];
/* 0x910 */ Z2CreatureEnemy* field_0x910;
/* 0x914 */ u8 field_0x914[0x930 - 0x914];
};
STATIC_ASSERT(sizeof(daB_DRE_c) == 0x930);
#endif /* D_A_B_DRE_H */
+369
View File
@@ -0,0 +1,369 @@
#ifndef D_A_B_DS_H
#define D_A_B_DS_H
#include "SSystem/SComponent/c_phase.h"
#include "Z2AudioLib/Z2Creature.h"
#include "f_op/f_op_actor.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
#include "d/d_msg_flow.h"
#include "m_Do/m_Do_ext.h"
/**
* @ingroup actors-enemies
* @class daB_DS_c
* @brief Stallord
*
* @details Arbiter's Grounds dungeon boss.
*
*/
class daB_DS_c : public fopEn_enemy_c {
public:
enum Arg0 {
/* 0 */ TYPE_BATTLE_1,
/* 1 */ TYPE_BULLET_A,
/* 2 */ TYPE_BATTLE_2,
/* 3 */ TYPE_BULLET_B,
/* 4 */ TYPE_BULLET_C,
};
enum Action {
/* 0 */ ACT_WAIT,
/* 1 */ ACT_OPENING_DEMO,
/* 2 */ ACT_CIRCLE,
/* 3 */ ACT_DAMAGE,
/* 4 */ ACT_ETC_DAMAGE,
/* 5 */ ACT_HAND_ATTACK,
/* 6 */ ACT_BREATH_ATTACK,
/* 7 */ ACT_BREATH_SEARCH,
};
enum B2Action {
/* 0 */ ACT_B2_OPENING_DEMO,
/* 1 */ ACT_B2_WAIT,
/* 2 */ ACT_B2_F_MOVE,
/* 3 */ ACT_B2_TIRED,
/* 4 */ ACT_B2_DAMAGE,
/* 5 */ ACT_B2_DEAD,
};
enum AnmID {
/* 0x06 */ ANM_ATTACK01_A = 6,
/* 0x07 */ ANM_ATTACK01_B,
/* 0x08 */ ANM_ATTACK01_C,
/* 0x09 */ ANM_ATTACK02_A_A,
/* 0x0A */ ANM_ATTACK02_A_B,
/* 0x0B */ ANM_ATTACK02_A_C,
/* 0x0C */ ANM_ATTACK02_B_A,
/* 0x0D */ ANM_ATTACK02_B_B,
/* 0x0E */ ANM_ATTACK02_B_C,
/* 0x0F */ ANM_ATTACK02_C_A,
/* 0x10 */ ANM_ATTACK02_C_B,
/* 0x11 */ ANM_ATTACK02_C_C,
/* 0x12 */ ANM_ATTACK_L_A,
/* 0x13 */ ANM_ATTACK_L_B,
/* 0x14 */ ANM_ATTACK_L_C,
/* 0x15 */ ANM_ATTACK_R_A,
/* 0x16 */ ANM_ATTACK_R_B,
/* 0x17 */ ANM_ATTACK_R_C,
/* 0x18 */ ANM_CIRCLE_L_A,
/* 0x19 */ ANM_CIRCLE_L_B,
/* 0x1A */ ANM_CIRCLE_L_C,
/* 0x1B */ ANM_CIRCLE_R_A,
/* 0x1C */ ANM_CIRCLE_R_B,
/* 0x1D */ ANM_CIRCLE_R_C,
/* 0x1E */ ANM_DAMAGE_A,
/* 0x1F */ ANM_DAMAGE_A_WAIT,
/* 0x20 */ ANM_DAMAGE_B,
/* 0x21 */ ANM_DAMAGE_B_WAIT,
/* 0x22 */ ANM_ENDDEMO,
/* 0x23 */ ANM_HEAD_DAMAGE,
/* 0x24 */ ANM_HEAD_DIE,
/* 0x25 */ ANM_HEAD_DIEB,
/* 0x26 */ ANM_HEAD_DOWN,
/* 0x27 */ ANM_HEAD_DOWN_DAMAGE,
/* 0x28 */ ANM_HEAD_DOWN_UP,
/* 0x29 */ ANM_HEAD_FATTACK_A,
/* 0x2A */ ANM_HEAD_FATTACK_B,
/* 0x2B */ ANM_HEAD_FATTACK_C,
/* 0x2C */ ANM_HEAD_FWAIT,
/* 0x2D */ ANM_HEAD_RETURN,
/* 0x2E */ ANM_HEAD_TIRED,
/* 0x2F */ ANM_LASTDAMAGE,
/* 0x30 */ ANM_LASTDAMAGE_WAIT,
/* 0x31 */ ANM_NODAMAGE_01_A,
/* 0x32 */ ANM_NODAMAGE_01_B,
/* 0x33 */ ANM_NODAMAGE_01_C,
/* 0x34 */ ANM_NODAMAGE_02_A,
/* 0x35 */ ANM_NODAMAGE_02_B,
/* 0x36 */ ANM_NODAMAGE_02_C,
/* 0x37 */ ANM_NODAMAGE_03_A,
/* 0x38 */ ANM_NODAMAGE_03_B,
/* 0x39 */ ANM_NODAMAGE_03_C,
/* 0x3A */ ANM_OPDEMO,
/* 0x3B */ ANM_REVIVAL,
/* 0x3C */ ANM_WAIT01_A,
/* 0x3D */ ANM_WAIT01_B,
/* 0x3E */ ANM_WAIT01_C,
};
/* 805CB314 */ int ctrlJoint(J3DJoint*, J3DModel*);
/* 805CB4A4 */ static int JointCallBack(J3DJoint*, int);
/* 805CB4F0 */ int draw();
/* 805CBAC8 */ void setBck(int, u8, f32, f32);
/* 805CBB74 */ void setActionMode(int, int);
/* 805CBB80 */ void mSmokeSet();
/* 805CBD00 */ void mHeadAngle_Clear();
/* 805CBD64 */ void HandHitSoundSet(bool);
/* 805CBED0 */ void handSPosSet(int);
/* 805CC158 */ void hand_smokeSet(u8);
/* 805CC1C4 */ void mZsMoveChk();
/* 805CC454 */ void mZsMoveChk_Guard();
/* 805CC6F4 */ void mTrapScale();
/* 805CC80C */ void mClearTrap(bool);
/* 805CC8A4 */ void mCreateTrap(bool);
/* 805CCEB4 */ void mChangeVer2();
/* 805CD074 */ void damage_check();
/* 805CD628 */ void neck_set();
/* 805CD844 */ bool mCutTypeCheck();
/* 805CD8D8 */ bool startDemoCheck();
/* 805CDA08 */ void setYoMessage(int);
/* 805CDA44 */ bool doYoMessage();
/* 805CDAC0 */ void executeOpeningDemo();
/* 805CFC8C */ bool mHandBreathChk();
/* 805D002C */ void executeWait();
/* 805D0194 */ void executeCircle();
/* 805D02F8 */ void mBreakBoneSUB();
/* 805D0374 */ void damageSet();
/* 805D03EC */ void damageHitCamera();
/* 805D0584 */ void damageDownCheck();
/* 805D074C */ void executeDamage();
/* 805D1E30 */ void executeEtcDamage();
/* 805D203C */ void breath_smokeSet();
/* 805D226C */ void executeBreathAttack();
/* 805D2520 */ void executeHandAttack();
/* 805D272C */ void executeBreathSearch();
/* 805D28D0 */ void executeBattle2OpeningDemo();
/* 805D3900 */ void mFlyBMove(f32);
/* 805D39A4 */ void mFuwafuwaSet(bool);
/* 805D3D14 */ void mBattle2BreathFireSet(u32);
/* 805D3D80 */ bool mNeckAngleSet();
/* 805D3EA0 */ void mSetFirstPos();
/* 805D3F90 */ bool mChkScreenIn();
/* 805D4054 */ bool mRailInOutCheck();
/* 805D41CC */ void executeBattle2Wait();
/* 805D429C */ bool mBattle2MoveFSet();
/* 805D497C */ void executeBattle2FMove();
/* 805D5040 */ void executeBattle2Tired();
/* 805D52D4 */ void executeBattle2Damage();
/* 805D60BC */ bool mDeadMove();
/* 805D6534 */ void executeBattle2Dead();
/* 805D7C10 */ void executeBullet();
/* 805D8078 */ void mBulletAction();
/* 805D80F0 */ void mSoundSE_Set();
/* 805D8D04 */ void action();
/* 805D91A4 */ void mtx_set();
/* 805D951C */ void cc_set();
/* 805D9A40 */ void cc_etc_set();
/* 805D9B74 */ void mBattle2Action();
/* 805D9CFC */ void mBattle2_spinner_damage_check();
/* 805D9FF4 */ bool mBattle2_damage_check();
/* 805DA584 */ void mBattle2_mtx_set();
/* 805DA9A4 */ void mBattle2_cc_etc_set();
/* 805DAA98 */ void mBattle2_cc_set();
/* 805DADC4 */ int execute();
/* 805DB1AC */ int _delete();
/* 805DB264 */ int CreateHeap();
/* 805DB974 */ cPhs__Step create();
/* 805DC1E8 */ daB_DS_c();
private:
/* 0x05AC */ request_of_phase_process_class mPhase;
/* 0x05B4 */ mDoExt_McaMorfSO* mpMorf;
/* 0x05B8 */ mDoExt_McaMorfSO* mpSwordMorf;
/* 0x05BC */ mDoExt_McaMorfSO* mpZantMorf;
/* 0x05C0 */ J3DModel* mpOpPatternModel;
/* 0x05C4 */ J3DModel* mpPatternModel;
/* 0x05C8 */ mDoExt_brkAnm* mpSwordBrkAnm;
/* 0x05CC */ mDoExt_brkAnm* mpOpPatternBrkAnm;
/* 0x05D0 */ mDoExt_btkAnm* mpOpPatternBtkAnm;
/* 0x05D4 */ mDoExt_brkAnm* mpPatternBrkAnm;
/* 0x05D8 */ mDoExt_btkAnm* mpPatternBtkAnm;
/* 0x05DC */ Z2CreatureEnemy mSound;
/* 0x0680 */ int mAction;
/* 0x0684 */ int mMode;
/* 0x0688 */ int mHitLocation;
/* 0x068C */ int mAnmID;
/* 0x0690 */ int mBirthTrapTimerF;
/* 0x0694 */ int mPedestalFallTimer;
/* 0x0698 */ int mSandFallTimer;
/* 0x069C */ int mSwordTimer;
/* 0x06A0 */ int mHintTimer1;
/* 0x06A4 */ int mHintTimer2;
/* 0x06A8 */ int field_0x6a8;
/* 0x06AC */ cXyz mZantScale;
/* 0x06B8 */ cXyz mSwordScale;
/* 0x06C4 */ cXyz mSoundPos;
/* 0x06D0 */ cXyz field_0x6d0;
/* 0x06DC */ cXyz mZantEyePos;
/* 0x06E8 */ cXyz mSwordPos;
/* 0x06F4 */ cXyz field_0x6f4;
/* 0x0700 */ cXyz mMouthPos;
/* 0x070C */ cXyz mBulletPos;
/* 0x0718 */ cXyz field_0x718;
/* 0x0724 */ cXyz field_0x724;
/* 0x0730 */ cXyz mSandPos;
/* 0x073C */ cXyz mBackbonePos;
/* 0x0748 */ cXyz mZantPos;
/* 0x0754 */ cXyz mHeadPos;
/* 0x0760 */ cXyz mHandPos[2];
/* 0x0778 */ cXyz mFingerPos[2];
/* 0x0790 */ cXyz field_0x790;
/* 0x079C */ cXyz field_0x79c;
/* 0x07A8 */ csXyz mHeadAngle;
/* 0x07AE */ csXyz field_0x7ae;
/* 0x07B4 */ u8 field_0x7b4[6];
/* 0x07BA */ csXyz field_0x7ba;
/* 0x07C0 */ csXyz field_0x7c0;
/* 0x07C6 */ u8 field_0x7c6[4];
/* 0x07CA */ s16 field_0x7ca;
/* 0x07CC */ s16 mBh2AttackAngleF;
/* 0x07CE */ s16 field_0x7ce;
/* 0x07D0 */ s16 field_0x7d0;
/* 0x07D2 */ s16 field_0x7d2;
/* 0x07D4 */ f32 mBreathTimerBase;
/* 0x07D8 */ f32 mBulletRadius;
/* 0x07DC */ f32 mBackboneCrackAlpha[3];
/* 0x07E8 */ f32 mEyeColorAlpha;
/* 0x07EC */ f32 mCrackAlpha;
/* 0x07F0 */ f32 mBulletDistance;
/* 0x07F4 */ f32 mChkHigh;
/* 0x07F8 */ f32 field_0x7f8;
/* 0x07FC */ f32 mColBlend;
/* 0x0800 */ f32 mGroundUpY;
/* 0x0804 */ f32 field_0x804;
/* 0x0808 */ f32 field_0x808;
/* 0x080C */ f32 field_0x80c;
/* 0x0810 */ f32 mWallR;
/* 0x0814 */ int mBrokenBone;
/* 0x0818 */ int mTimerCount;
/* 0x081C */ int mModeTimer;
/* 0x0820 */ int mHitTimer;
/* 0x0824 */ u8 field_0x824[4];
/* 0x0828 */ int mP2FallTimer;
/* 0x082C */ int field_0x82c;
/* 0x0830 */ int mBreathTimeCount;
/* 0x0834 */ int mOutTimer;
/* 0x0838 */ int mSmokeCount;
/* 0x083C */ int field_0x83c;
/* 0x0840 */ int field_0x840;
/* 0x0844 */ u8 field_0x844[4];
/* 0x0848 */ u32 mShadowKey;
/* 0x084C */ u8 mAttackingHand;
/* 0x084D */ u8 field_0x84d;
/* 0x084E */ u8 mDamageTimer;
/* 0x084F */ u8 mBackboneLevel;
/* 0x0850 */ bool mDead;
/* 0x0851 */ bool mIsDemo;
/* 0x0852 */ u8 mBossPhase;
/* 0x0853 */ bool mIsOpeningDemo;
/* 0x0854 */ bool mIsAppear;
/* 0x0855 */ bool mIsAppearG;
/* 0x0856 */ u8 arg0;
/* 0x0857 */ u8 bitSw;
/* 0x0858 */ u8 bitSw2;
/* 0x0859 */ u8 bitSw3;
/* 0x085A */ bool mCreateFireBreath;
/* 0x085B */ bool mNoDrawSword;
/* 0x085C */ bool mDrawZant;
/* 0x085D */ bool mDrawZantSword;
/* 0x085E */ bool field_0x85e;
/* 0x085F */ bool mPlayPatternAnm;
/* 0x0860 */ bool mTrapCreate;
/* 0x0861 */ bool field_0x861;
/* 0x0862 */ u8 field_0x862[1];
/* 0x0864 */ u32 mMsgIdx;
/* 0x0868 */ u32 mMsgPcID;
/* 0x086C */ msg_class* mpMsg;
/* 0x0870 */ dBgS_AcchCir mAcchCir;
/* 0x08B0 */ dBgS_ObjAcch mAcch;
/* 0x0A88 */ dCcD_Stts mCcStts;
/* 0x0AC4 */ dCcD_Sph mWeakSph;
/* 0x0BFC */ dCcD_Sph mHeadSph[5];
/* 0x1214 */ dCcD_Sph mBreathAtSph;
/* 0x134C */ dCcD_Sph mEtcSph[18];
/* 0x293C */ dCcD_Cyl mBackboneCyl;
/* 0x2A78 */ dCcD_Cyl mHandAtLCyl;
/* 0x2BB4 */ dCcD_Cyl mHandAtRCyl;
/* 0x2CF0 */ dCcU_AtInfo mAtInfo;
/* 0x2D14 */ cXyz mCameraEye;
/* 0x2D20 */ cXyz mCameraCenter;
/* 0x2D2C */ f32 mCameraFovy;
/* 0x2D30 */ u8 field_0x2d30[0xc];
/* 0x2D3C */ u32 mStaltroopID[15];
/* 0x2D78 */ u32 mTrapID[20];
/* 0x2DC8 */ u32 mStaltroop2ID[5];
/* 0x2DDC */ u32 mHandSmokeParticleKey[4];
/* 0x2DEC */ u32 mHitParticleKey[2];
/* 0x2DF4 */ u32 mDeathParticleKey;
/* 0x2DF8 */ u8 field_0x2df8[0xc];
/* 0x2E04 */ u32 mBackboneParticleKey[2];
/* 0x2E0C */ u32 mSandParticleKey[2];
/* 0x2E14 */ u32 mParticleKey1;
/* 0x2E18 */ u32 mParticleKey2;
/* 0x2E1C */ u32 mSmokeParticleKey[20];
/* 0x2E6C */ u32 mStartingParticleKey[16];
/* 0x2EAC */ u32 mBreathSmokeParticleKey[3];
/* 0x2EB8 */ u32 mBulletParticleKey[4];
/* 0x2EC8 */ bool mHIOInit;
/* 0x2EC9 */ u8 field_0x2ec9[0x13];
/* 0x2EDC */ dMsgFlow_c mMsgFlow;
};
STATIC_ASSERT(sizeof(daB_DS_c) == 0x2F28);
class daB_DS_HIO_c {
public:
/* 805CB22C */ daB_DS_HIO_c();
#ifdef NONMATCHING
/* 805DC89C */ virtual ~daB_DS_HIO_c() {}
#else
/* 805DC89C */ ~daB_DS_HIO_c();
#endif
#ifndef NONMATCHING
/* 0x00 */ void* _vtable;
#endif
/* 0x04 */ s8 field_0x04;
/* 0x08 */ f32 mModelSize;
/* 0x0C */ f32 mHandRange;
/* 0x10 */ f32 mBreathRange;
/* 0x14 */ f32 mGuardSpawnRange;
/* 0x18 */ f32 mNoSearchRange;
/* 0x1C */ f32 mP2MoveAxis;
/* 0x20 */ f32 mP2ModelSize;
/* 0x24 */ f32 mP2AttackHeight;
/* 0x28 */ s16 mP2FallTime;
/* 0x2A */ s16 mPedestalFallTime;
/* 0x2C */ s16 mSandFallWaitTime;
/* 0x2E */ s16 mP2BulletFireTime;
/* 0x30 */ s16 mP2OuterWallAttackTime;
/* 0x32 */ s16 mP2TrapCreateWaitTime1;
/* 0x34 */ s16 mP2TrapCreateWaitTime2;
/* 0x36 */ s16 mP2TrapCreateID1;
/* 0x38 */ s16 mP2TrapCreateID2;
/* 0x3A */ s16 mHintTime1;
/* 0x3C */ s16 mHintTime2;
/* 0x3E */ s16 mP2OuterWallTrapSpeed;
/* 0x40 */ s16 mTowerTrapSpeed;
/* 0x42 */ s16 mP2ApproachAccel;
/* 0x44 */ s16 mP2ApproachSpeedMax;
/* 0x46 */ s16 mP2ApproachAfterBullet;
/* 0x48 */ s16 mP2ApproachDist;
/* 0x4A */ s16 mP2Health;
/* 0x4C */ bool mP2HealthDebugOn;
};
#endif /* D_A_B_DS_H */
+104
View File
@@ -0,0 +1,104 @@
#ifndef D_A_B_GG_H
#define D_A_B_GG_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daB_GG_c
* @brief Aeralfos
*
* @details City in the Sky dungeon mini-boss.
*
*/
class daB_GG_c : public fopEn_enemy_c {
public:
/* 805DE464 */ void CreateHeap();
/* 805DE650 */ void initCc();
/* 805DE7A4 */ void setCcCylinder();
/* 805DE9B8 */ void G_setCcCylinder();
/* 805DEAD0 */ void MoveCo();
/* 805DEB44 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 805DED58 */ void HeadctrlJoint(J3DJoint*, J3DModel*);
/* 805DEF64 */ void SetAnm(int, int, f32, f32);
/* 805DF9F4 */ void Yazirushi();
/* 805DFA48 */ void SpeedClear();
/* 805DFA64 */ void SetAction(u8, u8, u8);
/* 805DFA8C */ void GetAction(u8, u8, u8);
/* 805DFACC */ void DemoSkip(int);
/* 805DFC24 */ void DemoSkipCallBack(void*, int);
/* 805DFC58 */ void CameraSet();
/* 805DFD78 */ void SetStopingCam();
/* 805DFDFC */ void SetStopCam(cXyz, f32, f32, s16);
/* 805DFF4C */ void SetMoveCam(cXyz, f32, f32, s16, f32, f32);
/* 805E00D4 */ void SetMoveCam1(f32, f32);
/* 805E01F8 */ void SetReleaseCam();
/* 805E029C */ void St_CamAction();
/* 805E0F2C */ void St_DemoAction();
/* 805E18E8 */ void Md_CamAction();
/* 805E1C28 */ void Md_DemoAction();
/* 805E23E8 */ void Gn_CamAction();
/* 805E2974 */ void Gn_DemoAction();
/* 805E2F44 */ void DemoAction();
/* 805E3024 */ void F_WaitAction();
/* 805E31E4 */ void F_FookChk();
/* 805E3448 */ void F_MoveAction();
/* 805E3CAC */ void F_LV7_W_MoveAction();
/* 805E3F0C */ void F_AttackAction();
/* 805E4914 */ void F_DamageAction();
/* 805E5190 */ void AttentionChk();
/* 805E5220 */ void FlyAction();
/* 805E561C */ void F_A_TargetMove(cXyz);
/* 805E53DC */ void F_A_TargetMove(cXyz, u8);
/* 805E5808 */ void F_A_MoveAction();
/* 805E5D0C */ void F_A_WaitAction();
/* 805E5D2C */ void F_A_Action();
/* 805E5E78 */ void FookChk();
/* 805E608C */ void CutChk();
/* 805E6174 */ void G_MoveAction();
/* 805E6AB0 */ void FallChk();
/* 805E6E30 */ void G_AttackAction();
/* 805E73A8 */ void G_DamageAction();
/* 805E7D50 */ void G_DeathAction();
/* 805E7F50 */ void G_DeathAction1();
/* 805E82F0 */ void DeathCam();
/* 805E8D48 */ void GroundAction();
/* 805E8EE8 */ void StopAction();
/* 805E92A0 */ void HitChk();
/* 805E9310 */ void Action();
/* 805E9418 */ void HeadAction();
/* 805E9A28 */ void SetHeadAngle();
/* 805E9B48 */ void SoundChk();
/* 805EA344 */ void Execute();
/* 805EA72C */ void ObjHit();
/* 805EA74C */ void At_Check();
/* 805EA938 */ void MoveAt();
/* 805EA9AC */ void F_AtHit();
/* 805EAAFC */ void ChanceTime();
/* 805EB028 */ void ArmAngleSet();
/* 805EB090 */ void Guard();
/* 805EB5E0 */ void Draw();
/* 805EB8A8 */ void Delete();
/* 805EB910 */ void setBaseMtx();
/* 805EB980 */ void setShieldMtx();
/* 805EB9DC */ void setSwordMtx();
/* 805EBA4C */ void setSwordMtx1();
/* 805EBAB8 */ void setHeadMtx();
/* 805EBB30 */ void setHeadMtx1();
/* 805EBBE4 */ void Create();
/* 805EC424 */ daB_GG_c();
private:
/* 0x5ac */ u8 field_0x5ac[0x116c - 0x5ac];
};
STATIC_ASSERT(sizeof(daB_GG_c) == 0x116c);
class daB_GG_HIO_c {
public:
/* 805DE40C */ daB_GG_HIO_c();
/* 805EC9C4 */ ~daB_GG_HIO_c();
};
#endif /* D_A_B_GG_H */
+36
View File
@@ -0,0 +1,36 @@
#ifndef D_A_B_GM_H
#define D_A_B_GM_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class b_gm_class
* @brief Armogohma
*
* @details Temple of Time dungeon boss.
*
*/
class b_gm_class : public fopEn_enemy_c {
public:
/* 805F38E4 */ b_gm_class();
private:
/* 0x5ac */ u8 field_0x5ac[0x1d08 - 0x5ac];
};
STATIC_ASSERT(sizeof(b_gm_class) == 0x1d08);
class daB_GM_HIO_c {
public:
/* 805ED94C */ daB_GM_HIO_c();
/* 805F3E64 */ ~daB_GM_HIO_c();
};
struct b_gm_foot {
public:
/* 805F3AC0 */ ~b_gm_foot();
/* 805F3AFC */ b_gm_foot();
};
#endif /* D_A_B_GM_H */
+202
View File
@@ -0,0 +1,202 @@
#ifndef D_A_B_GND_H
#define D_A_B_GND_H
#include "d/d_msg_flow.h"
#include "f_op/f_op_actor_mng.h"
#include "Z2AudioLib/Z2Creature.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
#include "d/d_bg_s_acch.h"
struct g_himo_s {
/* 80601D40 */ ~g_himo_s();
/* 80601DA0 */ g_himo_s();
/* 0x0 */ cXyz field_0x0[16];
};
/**
* @ingroup actors-enemies
* @class b_gnd_class
* @brief Ganondorf
*
* @details Hyrule Castle dungeon boss.
*
*/
class b_gnd_class : public fopEn_enemy_c {
public:
/* 80601960 */ b_gnd_class();
bool checkAttackChance() { return field_0x2740 != 0; }
private:
/* 0x05AC */ request_of_phase_process_class mPhaseReq;
/* 0x05B4 */ request_of_phase_process_class mHorsePhaseReq;
/* 0x05BC */ s16 field_0x05bc;
/* 0x05BE */ u8 field_0x05be;
/* 0x05BF */ u8 field_0x05BF[0x05C0 - 0x05BF];
/* 0x05C0 */ cXyz field_0x05c0;
/* 0x05CC */ s16 field_0x05cc;
/* 0x05CE */ u8 field_0x05CE[0x05D0 - 0x05CE];
/* 0x05D0 */ mDoExt_McaMorfSO* mpMorf;
/* 0x05D4 */ mDoExt_McaMorfSO* mpHorseMorf;
/* 0x05D8 */ mDoExt_McaMorf* field_0x05d8;
/* 0x05DC */ Z2CreatureEnemy mZ2Creature;
/* 0x0680 */ Z2CreatureEnemy field_0x0680;
/* 0x0724 */ mDoExt_brkAnm* field_0x0724;
/* 0x0728 */ mDoExt_btkAnm* field_0x0728[6];
/* 0x0740 */ u8 field_0x0740[0x0744 - 0x0740];
/* 0x0744 */ mDoExt_btpAnm* field_0x0744;
/* 0x0748 */ int field_0x0748;
/* 0x074C */ mDoExt_btpAnm* field_0x074c;
/* 0x0750 */ mDoExt_btkAnm* field_0x0750;
/* 0x0754 */ u8 field_0x0754[0x0758 - 0x0754];
/* 0x0758 */ int mAnmID;
/* 0x075C */ int mHorseAnmID;
/* 0x0760 */ f32 field_0x0760;
/* 0x0764 */ u8 field_0x0764[0x0768 - 0x0764];
/* 0x0768 */ J3DModel* field_0x0768;
/* 0x076C */ J3DModel* field_0x076c;
/* 0x0770 */ u8 field_0x0770[0x0772 - 0x0770];
/* 0x0772 */ s16 field_0x0772;
/* 0x0774 */ dKy_tevstr_c field_0x0774;
/* 0x0AFC */ s16 field_0x0afc;
/* 0x0AFE */ s16 mActionID;
/* 0x0B00 */ s16 field_0x0b00;
/* 0x0B02 */ u8 field_0x0B02[0x0B94 - 0x0B02];
/* 0x0B94 */ J3DModel* field_0x0b94[36];
/* 0x0C24 */ s16 field_0x0c24;
/* 0x0C26 */ s16 field_0x0c26;
/* 0x0C28 */ s16 field_0x0c28;
/* 0x0C2A */ u8 field_0x0C2A[0x0C2C - 0x0C2A];
/* 0x0C2C */ J3DModel* field_0x0c2c[2];
/* 0x0C34 */ u8 field_0x0C34[0x0C38 - 0x0C34];
/* 0x0C38 */ f32 field_0x0c38;
/* 0x0C3C */ s16 field_0x0c3c;
/* 0x0C3E */ u8 field_0x0C3E[0x0C40 - 0x0C3E];
/* 0x0C40 */ u32 field_0x0c40;
/* 0x0C44 */ s16 field_0x0c44[10];
/* 0x0C58 */ s16 field_0x0c58;
/* 0x0C5A */ s16 field_0x0c5a;
/* 0x0C5C */ u8 field_0x0C5C[0x0C60 - 0x0C5C];
/* 0x0C60 */ int field_0x0c60;
/* 0x0C64 */ int field_0x0c64;
/* 0x0C68 */ s16 field_0x0c68;
/* 0x0C6A */ s16 field_0x0c6a;
/* 0x0C6C */ f32 field_0x0c6c;
/* 0x0C70 */ s16 field_0x0c70;
/* 0x0C72 */ s16 field_0x0c72;
/* 0x0C74 */ s16 field_0x0c74;
/* 0x0C76 */ u8 field_0x0C76[0x0C7D - 0x0C76];
/* 0x0C7D */ u8 field_0x0c7d;
/* 0x0C7E */ u8 field_0x0C7E[0x0C80 - 0x0C7E];
/* 0x0C80 */ cXyz field_0x0c80;
/* 0x0C8C */ s16 field_0x0c8c;
/* 0x0C8E */ s16 field_0x0c8e;
/* 0x0C90 */ s16 field_0x0c90;
/* 0x0C92 */ s16 field_0x0c92;
/* 0x0C94 */ dBgS_AcchCir field_0x0c94;
/* 0x0CD4 */ dBgS_ObjAcch field_0x0cd4;
/* 0x0EAC */ s16 field_0x0eac;
/* 0x0EAE */ u8 field_0x0EAE[0x0EB0 - 0x0EAE];
/* 0x0EB0 */ f32 field_0x0eb0;
/* 0x0EB4 */ cXyz field_0x0eb4;
/* 0x0EC0 */ csXyz field_0x0ec0;
/* 0x0EC6 */ u8 field_0x0EC6[0x0EC8 - 0x0EC6];
/* 0x0EC8 */ dCcD_Stts field_0x0ec8;
/* 0x0F04 */ dCcD_Sph field_0x0f04[2];
/* 0x1174 */ dCcD_Sph field_0x1174[4];
/* 0x1654 */ dCcD_Stts field_0x1654;
/* 0x1690 */ dCcD_Sph field_0x1690[3];
/* 0x1A38 */ dCcD_Sph field_0x1a38;
/* 0x1B70 */ dCcD_Sph field_0x1b70;
/* 0x1CA8 */ dCcD_Cyl field_0x1ca8;
/* 0x1DE4 */ dCcU_AtInfo mAtInfo;
/* 0x1E08 */ u8 field_0x1E08[0x1E0A - 0x1E08];
/* 0x1E0A */ u16 field_0x1e0a;
/* 0x1E0C */ u16 field_0x1e0c;
/* 0x1E0E */ u8 field_0x1E0E[0x1E0F - 0x1E0E];
/* 0x1E0F */ s8 field_0x1e0f;
/* 0x1E10 */ f32 field_0x1e10;
/* 0x1E14 */ cXyz field_0x1e14;
/* 0x1E20 */ cXyz field_0x1e20;
/* 0x1E2C */ Z2SoundObjSimple field_0x1e2c;
/* 0x1E4C */ f32 field_0x1e4c;
/* 0x1E50 */ csXyz field_0x1e50;
/* 0x1E56 */ u8 field_0x1e56[5];
/* 0x1E5B */ u8 field_0x1E5B[0x1E5C - 0x1E5B];
/* 0x1E5C */ cXyz field_0x1e5c[5];
/* 0x1E98 */ cXyz field_0x1e98[5];
/* 0x1ED4 */ cXyz field_0x1ed4[5];
/* 0x1F10 */ Z2SoundObjSimple field_0x1f10[5];
/* 0x1FB0 */ u8 field_0x1FB0[0x1FB4 - 0x1FB0];
/* 0x1FB4 */ fopAc_ac_c* mMantChild;
/* 0x1FB8 */ cXyz field_0x1fb8;
/* 0x1FC4 */ int field_0x1fc4;
/* 0x1FC8 */ s16 field_0x1fc8;
/* 0x1FCA */ s16 field_0x1fca;
/* 0x1FCC */ s16 field_0x1fcc;
/* 0x1FCE */ u8 field_0x1FCE[0x1FD0 - 0x1FCE];
/* 0x1FD0 */ f32 field_0x1fd0;
/* 0x1FD4 */ s16 field_0x1fd4;
/* 0x1FD6 */ s16 field_0x1fd6;
/* 0x1FD8 */ cXyz field_0x1fd8[2];
/* 0x1FF0 */ g_himo_s field_0x1ff0[2];
/* 0x2170 */ mDoExt_3DlineMat1_c field_0x2170[2];
/* 0x21E8 */ mDoExt_3DlineMat1_c field_0x21e8;
/* 0x2224 */ dKy_tevstr_c field_0x2224;
/* 0x25AC */ u32 field_0x25ac;
/* 0x25B0 */ u32 field_0x25b0;
/* 0x25B4 */ u32 field_0x25b4;
/* 0x25B8 */ u32 field_0x25b8;
/* 0x25BC */ u32 field_0x25bc;
/* 0x25C0 */ u32 field_0x25c0;
/* 0x25C4 */ u32 field_0x25c4;
/* 0x25C8 */ u32 field_0x25c8;
/* 0x25CC */ u32 field_0x25cc;
/* 0x25D0 */ u32 field_0x25d0;
/* 0x25D4 */ u8 field_0x25D4[0x25D8 - 0x25D4];
/* 0x25D8 */ u32 field_0x25d8;
/* 0x25DC */ u32 field_0x25dc;
/* 0x25E0 */ u32 field_0x25e0;
/* 0x25E4 */ u32 field_0x25e4[3];
/* 0x25F0 */ u8 field_0x25F0[0x2688 - 0x25F0];
/* 0x2688 */ u32 field_0x2688;
/* 0x268C */ u32 field_0x268c[3];
/* 0x2698 */ u8 field_0x2698[0x269C - 0x2698];
/* 0x269C */ cXyz field_0x269c;
/* 0x26A8 */ cXyz field_0x26a8[2];
/* 0x26C0 */ s16 field_0x26c0;
/* 0x26C2 */ s16 field_0x26c2;
/* 0x26C4 */ s16 field_0x26c4;
/* 0x26C6 */ s16 field_0x26c6;
/* 0x26C8 */ cXyz field_0x26c8;
/* 0x26D4 */ cXyz field_0x26d4;
/* 0x26E0 */ cXyz field_0x26e0;
/* 0x26EC */ cXyz field_0x26ec;
/* 0x26F8 */ cXyz field_0x26f8;
/* 0x2704 */ cXyz field_0x2704;
/* 0x2710 */ cXyz field_0x2710;
/* 0x271C */ s16 field_0x271c;
/* 0x271E */ u8 field_0x271E[0x272C - 0x271E];
/* 0x272C */ s16 field_0x272c;
/* 0x272E */ u8 field_0x272E[0x2730 - 0x272E];
/* 0x2730 */ f32 field_0x2730;
/* 0x2734 */ f32 field_0x2734;
/* 0x2738 */ u8 field_0x2738;
/* 0x2739 */ u8 field_0x2739[0x273C - 0x2739];
/* 0x273C */ f32 field_0x273c;
/* 0x2740 */ u8 field_0x2740;
/* 0x2741 */ u8 field_0x2741[0x2744 - 0x2741];
/* 0x2744 */ dMsgFlow_c mMsgFlow;
};
STATIC_ASSERT(sizeof(b_gnd_class) == 0x2790);
class daB_GND_HIO_c {
public:
/* 805F4A4C */ daB_GND_HIO_c();
/* 80602230 */ ~daB_GND_HIO_c();
};
#endif /* D_A_B_GND_H */
+90
View File
@@ -0,0 +1,90 @@
#ifndef D_A_B_GO_H
#define D_A_B_GO_H
#include "SSystem/SComponent/c_phase.h"
#include "Z2AudioLib/Z2Creature.h"
#include "f_op/f_op_actor.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
#define GORON_CHILD_MAX 31
#define RES_IS_MODEL 0x13
enum daB_GO_ANM {
/* 0x04 */ ANM_ATTACK = 4,
/* 0x05 */ ANM_DAMAGE_01,
/* 0x06 */ ANM_DAMAGE_02,
/* 0x07 */ ANM_DEAD_01,
/* 0x08 */ ANM_DEAD_02,
/* 0x09 */ ANM_FALL,
/* 0x0A */ ANM_START_L,
/* 0x0B */ ANM_START_R,
/* 0x0C */ ANM_STEP,
/* 0x0D */ ANM_TRAP,
/* 0x0E */ ANM_WAIT_02,
/* 0x0F */ ANM_WAIT_03,
/* 0x10 */ ANM_WALK,
};
enum daB_GO_Action {
/* 0x0 */ ACT_WAIT,
/* 0x1 */ ACT_WALK,
/* 0x2 */ ACT_ATTACK,
};
/**
* @ingroup actors-enemies
* @class b_go_class
* @brief Goron Golem
*
* @details Unused golem boss made up of several small Gorons.
*
*/
class b_go_class : public fopEn_enemy_c {
public:
/* 80603CA0 */ b_go_class();
/* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x5B4 */ mDoExt_McaMorfSO* mpMorf;
/* 0x5B8 */ Z2CreatureEnemy mSound;
/* 0x65C */ int mAnmID;
/* 0x660 */ u8 unk_0x660;
/* 0x661 */ u8 field_0x661[0x668 - 0x661];
/* 0x668 */ s16 unk_0x668;
/* 0x66A */ s16 mActionID;
/* 0x66C */ s16 mMode;
/* 0x66E */ u8 field_0x66e[0x67e - 0x66e];
/* 0x67E */ s16 mAngleToPlayer;
/* 0x680 */ f32 mDistToPlayer;
/* 0x684 */ u8 field_0x684[4];
/* 0x688 */ s16 mTimers[4];
/* 0x690 */ s16 unk_0x690;
/* 0x692 */ s16 field_0x692;
/* 0x694 */ dBgS_AcchCir mAcchCir;
/* 0x6D4 */ dBgS_ObjAcch mAcch;
/* 0x8AC */ dCcD_Stts mStts;
/* 0x8E8 */ dCcD_Sph field_0x8e8;
/* 0xA20 */ dCcD_Sph field_0xa20;
/* 0xB58 */ dCcD_Cyl field_0xb58;
/* 0xC94 */ dCcU_AtInfo mAtInfo;
/* 0xCB8 */ u32 mGoronChildIDs[GORON_CHILD_MAX];
/* 0xD34 */ u8 field_0xd34;
};
STATIC_ASSERT(sizeof(b_go_class) == 0xD38);
class daB_GO_HIO_c {
public:
/* 806031AC */ daB_GO_HIO_c();
/* 80603F9C */ virtual ~daB_GO_HIO_c() {}
/* 0x04 */ s8 field_0x4;
/* 0x08 */ f32 mSmallSize;
/* 0x0C */ f32 mNormalSpeed;
/* 0x10 */ f32 mAttackInitRange;
/* 0x14 */ bool mDisplayModelImage;
};
#endif /* D_A_B_GO_H */
+74
View File
@@ -0,0 +1,74 @@
#ifndef D_A_B_GOS_H
#define D_A_B_GOS_H
#include "SSystem/SComponent/c_phase.h"
#include "Z2AudioLib/Z2Creature.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class b_gos_class
* @brief Goron Golem (small)
*
* @details Unused golem boss made up of several small Gorons.
*
*/
class b_gos_class : public fopEn_enemy_c {
public:
/* 80605024 */ b_gos_class();
/* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x5B4 */ mDoExt_McaMorfSO* mpMorf;
/* 0x5B8 */ Z2CreatureEnemy mSound;
/* 0x65C */ int mAnmID;
/* 0x660 */ u32 mJointIndex;
/* 0x664 */ u8 field_0x664[0x668 - 0x664];
/* 0x668 */ u32 mShadowKey;
/* 0x66C */ s16 field_0x66c;
/* 0x66E */ s16 mAction;
/* 0x670 */ s16 mMode;
/* 0x672 */ u8 field_0x672[0x680 - 0x672];
/* 0x680 */ s16 mWalkDirection;
/* 0x682 */ s16 mAngleToPlayer;
/* 0x684 */ f32 mDistToPlayer;
/* 0x688 */ u8 field_0x688[0x68C - 0x688];
/* 0x68C */ s16 mTimers[4];
/* 0x694 */ s16 field_0x694;
/* 0x698 */ f32 field_0x698;
/* 0x69C */ f32 field_0x69c;
/* 0x6A0 */ s16 mAngleOffset;
/* 0x6A4 */ dBgS_AcchCir mAcchCir;
/* 0x6E4 */ dBgS_ObjAcch mAcch;
/* 0x8BC */ dCcD_Stts mCcStts;
/* 0x8F8 */ dCcD_Sph field_0x8f8;
/* 0xA30 */ dCcD_Sph field_0xa30;
/* 0xB68 */ dCcD_Cyl mCyl;
/* 0xCA4 */ dCcU_AtInfo mAtInfo;
/* 0xCC8 */ u8 field_0xcc8;
};
STATIC_ASSERT(sizeof(b_gos_class) == 0xCCC);
class daB_GOS_HIO_c {
public:
public:
/* 8060426C */ daB_GOS_HIO_c();
/* 80605320 */ virtual ~daB_GOS_HIO_c() {}
/* 0x4 */ s8 field_0x4;
/* 0x8 */ f32 mSize;
/* 0xC */ f32 mNormalSpeed;
};
struct b_gos_j_info {
public:
s16 joint_no;
f32 field_0x4;
};
#endif /* D_A_B_GOS_H */
+87
View File
@@ -0,0 +1,87 @@
#ifndef D_A_B_MGN_H
#define D_A_B_MGN_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daB_MGN_c
* @brief Beast Ganon?
*
* @details Hyrule Castle dungeon boss.
*
*/
class daB_MGN_c : public fopEn_enemy_c {
public:
/* 8060577C */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 8060584C */ void JointCallBack(J3DJoint*, int);
/* 80605898 */ void draw();
/* 80605D78 */ void setDashSmokeEffect();
/* 8060601C */ void setBackJumpEffect();
/* 806062C0 */ void setSlideSmokeEffect();
/* 80606424 */ void setBodySlideEffect();
/* 806065D4 */ void setOpeningEffect();
/* 80606754 */ void setStepEffect();
/* 8060688C */ void setFallAttackEffect();
/* 80606A10 */ void setHeadLightEffect();
/* 80606AEC */ void setHeadHitEffect();
/* 80606C6C */ void setHideSmokeEffect(cXyz*, u8);
/* 80606D60 */ void calcHideSmokeEffect();
/* 806071C4 */ void drawHideSmokeEffect();
/* 8060729C */ void setBloodEffect();
/* 80607498 */ void calcBloodMove();
/* 8060778C */ void checkDownBeforeBG();
/* 80607924 */ void setBck(int, u8, f32, f32);
/* 806079CC */ void checkBck(int);
/* 80607A2C */ void setActionMode(int, int);
/* 80607A80 */ void setExitMode(int);
/* 80607B50 */ void onBodyShield();
/* 80607B80 */ void offBodyShield();
/* 80607BB0 */ void onBodySlideAt();
/* 80607BFC */ void offBodySlideAt();
/* 80607C20 */ void checkHitSlideAt();
/* 80607CB0 */ void onBodyFallAt();
/* 80607CE4 */ void offBodyFallAt();
/* 80607D08 */ void onBodyCo();
/* 80607D44 */ void offBodyCo();
/* 80607D7C */ void getNearHitPos(cXyz*);
/* 8060819C */ void damage_check();
/* 80608738 */ void calcJointAngle(s16);
/* 806087A8 */ void executeCircle();
/* 80608EF8 */ void executeDash();
/* 80609D70 */ void executeThrown();
/* 8060A670 */ void setDownEnd();
/* 8060A72C */ void executeDown();
/* 8060ACB8 */ void executeDownDamage();
/* 8060B028 */ void executeDownBiteDamage();
/* 8060B430 */ void executeWarp();
/* 8060B544 */ void executeFall();
/* 8060BE6C */ void demo_skip(int);
/* 8060C034 */ void DemoSkipCallBack(void*, int);
/* 8060C068 */ void executeOpening();
/* 8060D078 */ void executeDeath();
/* 8060D880 */ void executeJump();
/* 8060DAC0 */ void checkStartJump();
/* 8060DDA0 */ void action();
/* 8060E158 */ void mtx_set();
/* 8060E1D0 */ void cc_set();
/* 8060E820 */ void execute();
/* 8060EA38 */ void _delete();
/* 8060EAE0 */ void CreateHeap();
/* 8060F0D0 */ void create();
private:
/* 0x5ac */ u8 field_0x5ac[0x26cc - 0x5ac];
};
STATIC_ASSERT(sizeof(daB_MGN_c) == 0x26cc);
class daB_MGN_HIO_c {
public:
/* 8060572C */ daB_MGN_HIO_c();
/* 8060F8D0 */ ~daB_MGN_HIO_c();
};
#endif /* D_A_B_MGN_H */
+211
View File
@@ -0,0 +1,211 @@
#ifndef D_A_B_OB_H
#define D_A_B_OB_H
#include "SSystem/SComponent/c_phase.h"
#include "Z2AudioLib/Z2Creature.h"
#include "f_op/f_op_actor.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
enum b_ob_action {
// Phase 1
OB_ACTION_CORE_START,
OB_ACTION_CORE_HAND_MOVE,
OB_ACTION_BOMBFISH_SET,
OB_ACTION_CORE_HOOK,
OB_ACTION_CORE_CHANCE,
OB_ACTION_CORE_END,
// Phase 2
OB_ACTION_FISH_NORMAL = 100,
OB_ACTION_FISH_VACUME,
OB_ACTION_FISH_END,
};
enum b_oh_anm {
OB_ANM_APPEAR = 0x12,
OB_ANM_APPEAR_2,
OB_ANM_DEAD,
OB_ANM_EAT,
OB_ANM_EAT_2,
OB_ANM_LAST_DAMAGE,
OB_ANM_OPEN_MOUTH,
OB_ANM_OPEN_MOUTH_WAIT,
OB_ANM_SWALLOW,
OB_ANM_SWIM_WAIT,
OB_ANM_TENTACLE_END,
OB_ANM_THROWUP,
OB_ANM_WAIT,
};
struct ob_part_s {
/* 0x00 */ mDoExt_McaMorf* mpMorf;
/* 0x04 */ mDoExt_McaMorf* mpFinMorf;
/* 0x08 */ mDoExt_McaMorf* mpFinUnkMorf;
/* 0x0C */ mDoExt_McaMorf* mpFinBMorf;
/* 0x10 */ mDoExt_McaMorf* mpFinCMorf;
/* 0x14 */ cXyz mPos;
/* 0x20 */ csXyz mAngle;
/* 0x26 */ s16 field_0x26;
/* 0x28 */ f32 mSize;
/* 0x2C */ csXyz mFinARot;
/* 0x32 */ csXyz mFinBRot;
/* 0x38 */ csXyz mFinCRot;
/* 0x3E */ s8 field_0x3e;
/* 0x3F */ s8 mHide;
/* 0x40 */ dCcD_Sph mSph;
}; // Size: 0x178
struct ob_ke_s {
/* 0x000 */ cXyz field_0x0[20];
/* 0x0F0 */ cXyz field_0xf0[20];
/* 0x1E0 */ cXyz field_0x1e0;
}; // Size: 0x1EC
/**
* @ingroup actors-enemies
* @class b_ob_class
* @brief Morpheel (body)
*
* @details Lakebed Temple dungeon boss. This is the core/body part of the boss.
*
*/
class b_ob_class : public fopEn_enemy_c {
public:
/* 0x05AC */ request_of_phase_process_class mPhase;
/* 0x05B4 */ mDoExt_McaMorfSO* mpCoreMorf;
/* 0x05B8 */ s8 mHideCore;
/* 0x05BC */ f32 mBossLightScale;
/* 0x05C0 */ ob_part_s mBodyParts[20];
/* 0x2320 */ int field_0x2320;
/* 0x2324 */ cXyz field_0x2324[512];
/* 0x3B24 */ csXyz field_0x3b24[512];
/* 0x4724 */ J3DModel* mpSuiModel;
/* 0x4728 */ mDoExt_btkAnm* mpSuiBtk;
/* 0x472C */ mDoExt_brkAnm* mpSuiBrk;
/* 0x4730 */ f32 mSuiBrkFrame;
/* 0x4734 */ int mAnmID;
/* 0x4738 */ int mCoreAnm;
/* 0x473C */ u8 mCoreAnmMode;
/* 0x4740 */ f32 field_0x4740;
/* 0x4744 */ s8 field_0x4744;
/* 0x4745 */ s8 mDrawShadow;
/* 0x4748 */ u32 mShadowKey;
/* 0x474C */ s8 mCoreBattleMode;
/* 0x474D */ s8 mFishBattleMode;
/* 0x474E */ u8 mAttnOffTimer;
/* 0x4750 */ s16 field_0x4750;
/* 0x4752 */ s16 mAction;
/* 0x4754 */ s16 mMode;
/* 0x4756 */ s16 field_0x4756;
/* 0x4758 */ cXyz mTargetMovePos;
/* 0x4764 */ csXyz mMoveAngle;
/* 0x476A */ s16 field_0x476a;
/* 0x476C */ s16 mYAngleToPlayer;
/* 0x476E */ s16 mXAngleToPlayer;
/* 0x4770 */ f32 mDistToPlayer;
/* 0x4774 */ u8 field_0x4774[0x4778 - 0x4774];
/* 0x4778 */ s16 mTimers[6];
/* 0x05AC */ s16 mHitIFrameTimer;
/* 0x4786 */ u8 field_0x4786[0x4788 - 0x4786];
/* 0x4788 */ int mCoreHandNo;
/* 0x478C */ int field_0x478c;
/* 0x4790 */ int field_0x4790;
/* 0x4794 */ s16 field_0x4794;
/* 0x4798 */ f32 field_0x4798;
/* 0x479C */ f32 field_0x479c;
/* 0x47A0 */ f32 field_0x47a0;
/* 0x47A4 */ s16 field_0x47a4[3];
/* 0x47AA */ s16 field_0x47aa;
/* 0x47AC */ s16 field_0x47ac;
/* 0x47AE */ s16 field_0x47ae;
/* 0x47B0 */ s16 field_0x47b0;
/* 0x47B4 */ int field_0x47b4;
/* 0x47B8 */ s16 mHangTimer;
/* 0x47BA */ s16 field_0x47ba;
/* 0x47BC */ s16 field_0x47bc;
/* 0x47C0 */ f32 field_0x47c0;
/* 0x47C4 */ s16 field_0x47c4;
/* 0x47C8 */ int mDemoMovePosIdx;
/* 0x47CC */ dCcD_Stts mCoreCcStts;
/* 0x4808 */ dCcD_Sph mCcSph;
/* 0x4940 */ dCcD_Sph mCoreSph;
/* 0x4A78 */ dCcU_AtInfo mAtInfo;
/* 0x4A9C */ u8 field_0x4a9c[0x4aa0 - 0x4a9c];
/* 0x4AA0 */ dCcD_Stts mBodyCcStts;
/* 0x4ADC */ dCcD_Sph mBodySph;
/* 0x4C14 */ dCcD_Sph mFishHeadSph;
/* 0x4D4C */ dBgS_AcchCir mAcchCir;
/* 0x4D8C */ dBgS_ObjAcch mAcch;
/* 0x4F64 */ u32 mTentacleActorIDs[8];
/* 0x4F84 */ ob_ke_s field_0x4f84[5];
/* 0x5920 */ mDoExt_3DlineMat0_c field_0x5920;
/* 0x593C */ Z2CreatureEnemy mSound;
/* 0x59E0 */ Z2CreatureOI mOISound;
/* 0x5BE4 */ cXyz field_0x5be4[13];
/* 0x5C80 */ s16 mDemoAction;
/* 0x5C82 */ s16 mDemoActionTimer;
/* 0x5C84 */ cXyz mDemoCamEye;
/* 0x5C90 */ cXyz mDemoCamCenter;
/* 0x5C9C */ cXyz mDemoCamEyeTarget;
/* 0x5CA8 */ cXyz mDemoCamCenterTarget;
/* 0x5CB4 */ f32 field_0x5cb4;
/* 0x5CB8 */ f32 field_0x5cb8;
/* 0x5CBC */ f32 field_0x5cbc;
/* 0x5CC0 */ f32 field_0x5cc0;
/* 0x5CC4 */ f32 field_0x5cc4;
/* 0x5CC8 */ f32 field_0x5cc8;
/* 0x5CCC */ f32 mDemoCamFovy;
/* 0x5CD0 */ f32 field_0x5cd0;
/* 0x5CD4 */ f32 field_0x5cd4;
/* 0x5CD8 */ f32 field_0x5cd8;
/* 0x5CDC */ f32 field_0x5cdc;
/* 0x5CE0 */ s16 field_0x5ce0;
/* 0x5CE4 */ f32 field_0x5ce4;
/* 0x5CE8 */ int field_0x5ce8;
/* 0x5CEC */ cXyz field_0x5cec;
/* 0x5CF8 */ s16 field_0x5cf8;
/* 0x5CFC */ f32 field_0x5cfc;
/* 0x5D00 */ f32 field_0x5d00;
/* 0x5D04 */ f32 field_0x5d04;
/* 0x5D08 */ s16 field_0x5d08;
/* 0x5D0A */ s16 mBlureRate;
/* 0x5D0C */ s16 mBlureRateTarget;
/* 0x5D0E */ u8 field_0x5d0e[0x5d10 - 0x5d0e];
/* 0x5D10 */ u8 field_0x5d10;
/* 0x5D11 */ s8 mHangHitCount;
/* 0x5D12 */ s8 mHangFinishCount;
/* 0x5D12 */ s8 field_0x5d13;
/* 0x5D14 */ f32 field_0x5d14;
/* 0x5D18 */ u8 field_0x5d18;
/* 0x5D19 */ u8 field_0x5d19[0x5d24 - 0x5d19];
/* 0x5D24 */ u32 field_0x5d24[5];
/* 0x5D38 */ u32 field_0x5d38;
/* 0x5D3C */ s16 mZoneSwTimer;
/* 0x5D40 */ JPABaseEmitter* field_0x5d40[2][19];
/* 0x5DD8 */ int field_0x5dd8;
/* 0x5DDC */ f32 mColsetBlend;
/* 0x5DE0 */ u8 mHIOInit;
};
STATIC_ASSERT(sizeof(b_ob_class) == 0x5DE4);
class daB_OB_HIO_c {
public:
public:
/* 8061056C */ daB_OB_HIO_c();
/* 8061A808 */ virtual ~daB_OB_HIO_c();
/* 0x04 */ s8 field_0x04;
/* 0x08 */ f32 mCoreSize;
/* 0x0C */ f32 mCoreMoveSpeed;
/* 0x10 */ f32 mBodySize;
/* 0x14 */ s16 mLightR;
/* 0x16 */ s16 mLightG;
/* 0x18 */ s16 mLightB;
/* 0x1C */ f32 mRange;
};
#endif /* D_A_B_OB_H */
+103
View File
@@ -0,0 +1,103 @@
#ifndef D_A_B_OH_H
#define D_A_B_OH_H
#include "SSystem/SComponent/c_phase.h"
#include "f_op/f_op_actor.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
class daB_OH_HIO_c {
public:
/* 8061B72C */ daB_OH_HIO_c();
/* 8061D93C */ virtual ~daB_OH_HIO_c(); // supposed to be inlined
/* 0x4 */ s8 field_0x4;
/* 0x8 */ f32 mModelSize;
/* 0xC */ f32 mLength;
};
enum b_oh_action {
OH_ACTION_START,
OH_ACTION_WAIT,
OH_ACTION_ATTACK,
OH_ACTION_CAUGHT,
OH_ACTION_END = 10,
OH_ACTION_NON = 11,
};
/**
* @ingroup actors-enemies
* @class b_oh_class
* @brief Morpheel (head)
*
* @details Lakebed Temple dungeon boss. This is the head part of the boss.
*
*/
class b_oh_class : public fopEn_enemy_c {
public:
/* 0x05AC */ request_of_phase_process_class mPhase;
/* 0x05B4 */ mDoExt_McaMorf* mpMorf;
/* 0x05B8 */ mDoExt_invisibleModel mInvisModel;
/* 0x05C0 */ mDoExt_btkAnm* mpBtk;
/* 0x05C4 */ mDoExt_brkAnm* mpBrk;
/* 0x05C8 */ int field_0x5c8;
/* 0x05CC */ s16 field_0x5cc;
/* 0x05CE */ s16 mAction;
/* 0x05D0 */ s16 mActionPhase;
/* 0x05D2 */ u8 field_0x5D2[0x05E2 - 0x05D2];
/* 0x05E2 */ s16 mAngleToPlayer;
/* 0x05E4 */ f32 mDistToPlayer;
/* 0x05E8 */ u8 field_0x5E8[0x05EC - 0x05E8];
/* 0x05EC */ s16 mTimers[4];
/* 0x05F4 */ s16 field_0x5f4;
/* 0x05F6 */ s16 field_0x5f6;
/* 0x05F8 */ s16 field_0x5f8;
/* 0x05FA */ s16 field_0x5fa;
/* 0x05FC */ f32 field_0x5fc;
/* 0x0600 */ f32 field_0x600;
/* 0x0604 */ f32 field_0x604;
/* 0x0608 */ f32 field_0x608;
/* 0x060C */ f32 field_0x60c;
/* 0x0610 */ f32 field_0x610;
/* 0x0614 */ f32 field_0x614;
/* 0x0618 */ f32 mTentacleLength;
/* 0x061C */ csXyz field_0x61c[30];
/* 0x06D0 */ csXyz field_0x6d0[30];
/* 0x0784 */ csXyz field_0x784[30];
/* 0x0838 */ csXyz field_0x838[30];
/* 0x08EC */ f32 field_0x8ec[30];
/* 0x0964 */ f32 field_0x964[30];
/* 0x09DC */ f32 field_0x9dc[30];
/* 0x0A54 */ u8 field_0xa54[0xA58 - 0xA54];
/* 0x0A58 */ cXyz field_0xa58[31];
/* 0x0BCC */ csXyz field_0xbcc[31];
/* 0x0C86 */ u8 field_0xC86[0x0C88 - 0x0C86];
/* 0x0C88 */ int field_0xc88;
/* 0x0C8C */ f32 field_0xc8c;
/* 0x0C90 */ f32 field_0xc90;
/* 0x0C94 */ s16 field_0xc94;
/* 0x0C96 */ s16 field_0xc96;
/* 0x0C98 */ s16 field_0xc98;
/* 0x0C9A */ u8 field_0xC9A[0x0C9C - 0x0C9A];
/* 0x0C9C */ f32 field_0xc9c;
/* 0x0CA0 */ s16 field_0xca0;
/* 0x0CA2 */ s16 field_0xca2;
/* 0x0CA4 */ s16 field_0xca4;
/* 0x0CA6 */ u8 field_0xCA6[0x0CA8 - 0x0CA6];
/* 0x0CA8 */ int field_0xca8;
/* 0x0CAC */ f32 field_0xcac;
/* 0x0CB0 */ dCcD_Stts mCcStts;
/* 0x0CEC */ dCcD_Sph mColliders[15];
/* 0x1F34 */ dCcU_AtInfo mAtInfo;
/* 0x1F58 */ u8 field_0x1F58[0x1F68 - 0x1F58];
/* 0x1F68 */ cXyz field_0x1f68;
/* 0x1F74 */ csXyz field_0x1f74;
/* 0x1F7C */ f32 field_0x1f7c;
/* 0x1F80 */ u32 field_0x1f80;
/* 0x1F84 */ u8 field_0x1F84[0x1F86 - 0x1F84];
/* 0x1F86 */ u8 field_0x1f86;
};
STATIC_ASSERT(sizeof(b_oh_class) == 0x1F88);
#endif /* D_A_B_OH_H */
+41
View File
@@ -0,0 +1,41 @@
#ifndef D_A_B_OH2_H
#define D_A_B_OH2_H
#include "f_op/f_op_actor_mng.h"
#include "Z2AudioLib/Z2Creature.h"
/**
* @ingroup actors-enemies
* @class b_oh2_class
* @brief Morpheel (tentacle)
*
* @details Lakebed Temple dungeon boss. This is the tentacle part of the boss.
*
*/
class b_oh2_class : public fopEn_enemy_c {
public:
/* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x5B4 */ mDoExt_McaMorfSO* mpMorf;
/* 0x5B8 */ mDoExt_invisibleModel mInvisModel;
/* 0x5C0 */ mDoExt_btkAnm* mpBtk;
/* 0x5C4 */ mDoExt_brkAnm* mpBrk;
/* 0x5C8 */ int field_0x5c8;
/* 0x5CC */ s16 field_0x5cc;
/* 0x5CE */ s16 field_0x5ce;
/* 0x5D0 */ u8 field_0x5d0;
/* 0x5D2 */ s16 field_0x5d2[4];
/* 0x5DA */ s16 field_0x5da;
/* 0x5DC */ s16 field_0x5dc;
/* 0x5E0 */ f32 field_0x5e0;
/* 0x5E4 */ f32 field_0x5e4;
/* 0x5E8 */ f32 field_0x5e8[30];
/* 0x660 */ cXyz field_0x660[31];
/* 0x7D4 */ csXyz field_0x7d4[31];
/* 0x88E */ u8 field_0x88e[0x898 - 0x88e];
/* 0x898 */ Z2CreatureEnemy mZ2Enemy;
/* 0x93C */ u8 field_0x93c[0x948 - 0x93C];
};
STATIC_ASSERT(sizeof(b_oh2_class) == 0x948);
#endif /* D_A_B_OH2_H */
+93
View File
@@ -0,0 +1,93 @@
#ifndef D_A_B_TN_H
#define D_A_B_TN_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_cc_d.h"
/**
* @ingroup actors-enemies
* @class daB_TN_c
* @brief Darknut
*
* @details Temple of Time dungeon mini-boss.
*
*/
class daB_TN_c : public fopEn_enemy_c {
public:
/* 8061EC58 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 8061ED10 */ void JointCallBack(J3DJoint*, int);
/* 8061ED5C */ void calcNeckAngle();
/* 8061EE14 */ void calcWaistAngle();
/* 8061EEC8 */ void draw();
/* 8061F200 */ void setBreakPart(int);
/* 8061F31C */ void setBreakHeadPart(int);
/* 8061F3D0 */ void setPartLandEffect(int, int);
/* 8061F520 */ void calcShieldMove();
/* 8061F9F4 */ void calcSwordMoveA();
/* 8061FD7C */ void calcSwordMoveB();
/* 8061FFE0 */ void calcOtherPartMove(int);
/* 8062070C */ void calcPartMove();
/* 806208C8 */ void setBck(int, u8, f32, f32);
/* 8062096C */ void checkBck(int);
/* 806209C8 */ void setActionMode(int, int);
/* 806209E0 */ void setSwordAtBit(int);
/* 80620AE4 */ void setSwordAtBreak(int);
/* 80620B4C */ void setBodyShield();
/* 80620E90 */ void checkNormalAttackAble();
/* 80620FA0 */ void getCutType();
/* 80621070 */ void setDamage(dCcD_Sph*, int);
/* 8062138C */ void setShieldEffect(dCcD_Sph*);
/* 806213FC */ void damage_check();
/* 806227D0 */ void checkMoveArea();
/* 80622B60 */ void checkMoveAngle();
/* 80622BE0 */ void setAttackBlurEffect(int);
/* 80622CE4 */ void setArmorBreakEffect(int);
/* 80622F64 */ void demo_skip(int);
/* 8062318C */ void DemoSkipCallBack(void*, int);
/* 806231C0 */ void executeRoomDemo();
/* 80623920 */ void executeOpening();
/* 806246E8 */ void executeWaitH();
/* 806247D8 */ void setAwaitSound();
/* 80624890 */ void executeChaseH();
/* 80625394 */ void checkStartAttackH();
/* 806255F0 */ void executeAttackH();
/* 80625C74 */ void executeAttackShieldH();
/* 80625E40 */ void executeGuardH();
/* 80626034 */ void executeDamageH();
/* 80626320 */ void executeChangeDemo();
/* 80627100 */ void executeZakoChangeDemo();
/* 80627790 */ void setWalkDir();
/* 8062799C */ void initChaseL(int);
/* 80627CBC */ void checkAttackAble();
/* 80627D3C */ void checkNextMove();
/* 8062868C */ void executeChaseL();
/* 806292F8 */ void executeAttackL();
/* 80629D20 */ void executeAttackShieldL();
/* 80629FB0 */ void executeGuardL();
/* 8062A3D0 */ void executeDamageL();
/* 8062A71C */ void executeYoroke();
/* 8062A950 */ void executeEnding();
/* 8062B344 */ void executeZakoEnding();
/* 8062B6A8 */ void action();
/* 8062BA5C */ void mtx_set();
/* 8062BDCC */ void cc_set();
/* 8062C5B4 */ void execute();
/* 8062C7C8 */ void _delete();
/* 8062C868 */ void CreateHeap();
/* 8062CD78 */ void create();
/* 8062D2F0 */ daB_TN_c();
private:
/* 0x5ac */ u8 field_0x5ac[0x5630 - 0x5ac];
};
STATIC_ASSERT(sizeof(daB_TN_c) == 0x5630);
class daB_TN_HIO_c {
public:
/* 8061EBEC */ daB_TN_HIO_c();
/* 8062D98C */ ~daB_TN_HIO_c();
};
#endif /* D_A_B_TN_H */
+101
View File
@@ -0,0 +1,101 @@
#ifndef D_A_B_YO_H
#define D_A_B_YO_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daB_YO_c
* @brief Blizzeta
*
* @details Snowpeak Ruins dungeon boss.
*
*/
class daB_YO_c : public fopEn_enemy_c {
public:
/* 8062F51C */ s32 draw();
/* 8062FBEC */ void onIceBreak(u16);
/* 8062FC08 */ void setBck(int, u8, f32, f32);
/* 8062FE0C */ void setActionMode(int, int);
/* 8062FE18 */ void damage_check();
/* 806300F4 */ void setBreakFrizad();
/* 8063022C */ void setIcicleOperate(int);
/* 806302B4 */ void setIcicleSubNumber();
/* 80630330 */ void setWindowBreakEffect(int);
/* 8063040C */ void setHensinEffect();
/* 806305B8 */ void setLandingEffect(f32);
/* 806306F0 */ void setBreakIceEffect();
/* 8063089C */ void setWallHitEffect();
/* 80630A9C */ void setChillEffect();
/* 80630BF0 */ void setApperEffect();
/* 80630CA0 */ void setApperEffect2();
/* 80630DD8 */ void demo_skip(int);
/* 80630E3C */ void DemoSkipCallBack(void*, int);
/* 80630E70 */ void setYoMessage(int);
/* 80630EAC */ void doYoMessage();
/* 80630F28 */ void executeOpening();
/* 80632598 */ void reflectFreeMove();
/* 80632660 */ void calcFreeMove(f32);
/* 8063290C */ void setReflectAngle();
/* 806329CC */ void executeChase();
/* 806331CC */ void executeSeriousDemo();
/* 80633EDC */ void checkIcecleRevival();
/* 80633F50 */ void createIcecleRevival(u8);
/* 80634040 */ void executeJump();
/* 80634548 */ void executeAttackIce();
/* 8063476C */ void executeAttackYose();
/* 80634CEC */ void checkDamageWithIceBreak();
/* 80634E04 */ void executeAttackBody();
/* 806352C8 */ void executeDemoRevival();
/* 80635798 */ void executeDamage();
/* 80635ABC */ void executeDeath();
/* 80636E9C */ void reviseIceCenterPos(cXyz*);
/* 80637048 */ void calcPlayerBufPos();
/* 806374BC */ void action();
/* 80637990 */ void mtx_set();
/* 80637B30 */ void cc_set();
/* 80637E10 */ void execute();
/* 80637FC8 */ void _delete();
/* 806380F8 */ void CreateHeap();
/* 806388A0 */ void CreateHeap2();
/* 806389C0 */ void create();
u8 getModelNo() { return mModelNo;}
s16 getFrizadRollAngle() { return mFrizadRollAngle;}
f32 getModeRarius() { return mModeRarius;}
u8 getFrizadAttack() { return mFrizadAttack;}
private:
/* 0x5AC */ u8 field_0x5ac[0x5D8 - 0x5AC];
/* 0x5D8 */ mDoExt_btkAnm* mBtk;
/* 0x5DC */ mDoExt_btpAnm* mBtp;
/* 0x5E0 */ mDoExt_brkAnm* mBrk;
/* 0x5E4 */ mDoExt_bckAnm* mBck;
/* 0x5E8 */ mDoExt_McaMorfSO* mpMorf;
/* 0x5EC */ u8 field_0x5f8[0xF54 - 0x5EC];
/* 0xF54 */ f32 mModeRarius;
/* 0xF58 */ u8 field_0xf58[0xF5C - 0xF58];
/* 0xF5C */ s16 mFrizadRollAngle;
/* 0xF5E */ u8 field_0xf5e[0xF6E - 0xF5E];
/* 0xF6E */ u16 mIceBreak;
/* 0xF70 */ u8 field_0xf70[0xFA8 - 0xF70];
/* 0xFA8 */ u8 mModelNo;
/* 0xFA9 */ u8 field_0xfa9[0xFAD - 0xFA9];
/* 0xFAD */ u8 mFrizadAttack;
/* 0xFAE */ u8 field_0xfae[0xFCC - 0xFAE];
/* 0xFCC */ u8 field_0xfcc;
/* 0xFCD */ u8 field_0xfcd[0x1B88 - 0xFCD];
};
STATIC_ASSERT(sizeof(daB_YO_c) == 0x1B88);
struct daB_YO_HIO_c {
/* 8062F46C */ daB_YO_HIO_c();
/* 806395E4 */ ~daB_YO_HIO_c();
};
struct daB_YOI_c {
/* 8063A480 */ void setOperate(int);
};
#endif /* D_A_B_YO_H */
+58
View File
@@ -0,0 +1,58 @@
#ifndef D_A_B_YO_ICE_H
#define D_A_B_YO_ICE_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daB_YOI_c
* @brief Blizzeta Second Phase Ice Block
*
* @details Snowpeak Ruins dungeon boss second phase ice blocks.
*
*/
class daB_YOI_c : public fopEn_enemy_c {
public:
/* 8063A17C */ void draw();
/* 8063A2D8 */ void setActionMode(int, int);
/* 8063A2E4 */ void damage_check();
/* 8063A480 */ void setOperate(int);
/* 8063A628 */ void setWeight(u8);
/* 8063A638 */ void setBreakIceEffect();
/* 8063A6F8 */ void setWallBreakIceEffect();
/* 8063A79C */ void setApperEffect();
/* 8063A824 */ void setApperEffect2();
/* 8063A8C8 */ void setLandingEffect();
/* 8063A96C */ void executeFirst();
/* 8063ABC0 */ void getSingleFallPos();
/* 8063ACCC */ void executeRiseUp();
/* 8063B238 */ void executeSingleFall();
/* 8063BB40 */ void executeYose();
/* 8063C3F0 */ void executeYoseFall();
/* 8063C76C */ void executeDemoRevival();
/* 8063C900 */ void executeDamage();
/* 8063CC90 */ void executeDeath();
/* 8063CD14 */ void crack_execute();
/* 8063CD90 */ void action();
/* 8063D0C8 */ void mtx_set();
/* 8063D1B0 */ void cc_set();
/* 8063D350 */ void execute();
/* 8063D45C */ void _delete();
/* 8063D4F8 */ void CreateHeap();
/* 8063D5D0 */ void create();
/* 8063D8FC */ daB_YOI_c();
private:
/* 0x5ac */ u8 field_0x5ac[0xb3c - 0x5ac];
};
STATIC_ASSERT(sizeof(daB_YOI_c) == 0xb3c);
class daB_YOI_HIO_c {
public:
/* 8063A14C */ daB_YOI_HIO_c();
/* 8063DBD0 */ ~daB_YOI_HIO_c();
};
#endif /* D_A_B_YO_ICE_H */
+214
View File
@@ -0,0 +1,214 @@
#ifndef D_A_B_ZANT_H
#define D_A_B_ZANT_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
#include "Z2AudioLib/Z2Creature.h"
#include "d/d_bg_s_acch.h"
#include "d/d_msg_flow.h"
/**
* @ingroup actors-enemies
* @class daB_ZANT_c
* @brief Zant
*
* @details Palace of Twilight dungeon boss.
*
*/
class daB_ZANT_c : public fopEn_enemy_c {
public:
/* 8063E19C */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 8063E264 */ void JointCallBack(J3DJoint*, int);
/* 8063E2B0 */ void draw();
/* 8063E5C4 */ void setBck(int, u8, f32, f32);
/* 8063E668 */ void checkBck(int);
/* 8063E6C4 */ void setActionMode(int, int);
/* 8063E6F8 */ void checkBigDamage();
/* 8063E79C */ void checkDamageType();
/* 8063E810 */ void setDamageSe(dCcD_Sph*, int);
/* 8063E938 */ void damage_check();
/* 8063F524 */ void ice_damage_check();
/* 8063F84C */ void setNextDamageMode(int);
/* 8063FAB4 */ void checkAvoidWeapon(int);
/* 8063FF6C */ void setTgHitBit(int);
/* 8063FFAC */ void setCoHitBit(int);
/* 8063FFEC */ void setTgShield(int);
/* 806400BC */ void setTgType(u32);
/* 806400C8 */ void setZantMessage(int);
/* 80640104 */ void doZantMessage();
/* 80640180 */ void setIceLandingEffect(int);
/* 80640310 */ void setWaterBubble();
/* 806403D4 */ void setMonkeyFallEffect();
/* 80640478 */ void setLastRollEffect();
/* 80640654 */ void getMagicSpeed();
/* 80640664 */ void getMagicWaterSpeed();
/* 80640674 */ void executeSmallAttack();
/* 80640C20 */ void calcScale(int);
/* 80640D14 */ void executeWarp();
/* 806412A8 */ void executeDamage();
/* 806414E4 */ void executeConfuse();
/* 80641640 */ void executeOpening();
/* 806427EC */ void executeFly();
/* 80642EC8 */ void executeFlyGround();
/* 806430E0 */ void checkSwimLinkNearMouth();
/* 806432F8 */ void checkSwimLinkNear();
/* 8064350C */ void executeHook();
/* 80643690 */ void executeWater();
/* 80644074 */ void executeSwim();
/* 80644A3C */ void executeSimaJump();
/* 80645014 */ void executeIceDemo();
/* 8064524C */ void executeIceJump();
/* 80645DA4 */ void executeIceStep();
/* 8064687C */ void executeIceDamage();
/* 806471CC */ void setFarPillarPos();
/* 806473E4 */ void setNearPillarPos();
/* 80647468 */ void setNextPillarInfo(int);
/* 806474F4 */ void setNextPillarPos();
/* 80647A34 */ void checkPillarSwing();
/* 80647AC8 */ void executeMonkey();
/* 806481F4 */ void executeMonkeyFall();
/* 80648544 */ void executeMonkeyDamage();
/* 80648778 */ void setLastWarp(int, int);
/* 80648F64 */ void executeLastStartDemo();
/* 806494A8 */ void executeLastAttack();
/* 8064A58C */ void executeLastTired();
/* 8064A688 */ void executeLastDamage();
/* 8064AC8C */ void executeLastEndDemo();
/* 8064B270 */ void calcMahojinAnime();
/* 8064B49C */ void calcRoomChangeCamera(int);
/* 8064B69C */ void initNextRoom();
/* 8064B868 */ void executeRoomChange();
/* 8064C1C0 */ void setBaseActionMode(int);
/* 8064C5A8 */ void action();
/* 8064CB1C */ void mtx_set();
/* 8064CD0C */ void cc_set();
/* 8064CFA8 */ void cc_ice_set();
/* 8064DA48 */ void execute();
/* 8064DB70 */ void _delete();
/* 8064DC04 */ void CreateHeap();
/* 8064E190 */ void create();
private:
/* 0x05AC */ request_of_phase_process_class mPhase;
/* 0x05B4 */ mDoExt_McaMorfSO* mpMorfSO;
/* 0x05B8 */ J3DModel* field_0x5b8;
/* 0x05BC */ J3DModel* field_0x5bc;
/* 0x05C0 */ J3DModel* field_0x5c0;
/* 0x05C4 */ J3DModel* field_0x5c4;
/* 0x05C8 */ mDoExt_brkAnm* field_0x5c8;
/* 0x05CC */ mDoExt_btkAnm* field_0x5cc;
/* 0x05D0 */ mDoExt_btkAnm* field_0x5d0;
/* 0x05D4 */ mDoExt_brkAnm* field_0x5d4;
/* 0x05D8 */ mDoExt_btkAnm* field_0x5d8;
/* 0x05DC */ u8 field_0x5dc[0x5e8 - 0x5dc];
/* 0x05E8 */ u8 field_0x5e8;
/* 0x05E9 */ u8 field_0x5e9;
/* 0x05EC */ f32 field_0x5ec;
/* 0x05F0 */ Z2CreatureEnemy mZ2Enemy;
/* 0x0680 */ u8 field_0x680[0x6a0 - 0x680];
/* 0x06A0 */ cXyz mFlyWarpPos;
/* 0x06AC */ cXyz field_0x6ac;
/* 0x06B8 */ s16 field_0x6b8;
/* 0x06BA */ s16 field_0x6ba;
/* 0x06BC */ f32 field_0x6bc;
/* 0x06C0 */ f32 field_0x6c0;
/* 0x06C4 */ f32 field_0x6c4;
/* 0x06C8 */ f32 field_0x6c8;
/* 0x06CC */ f32 field_0x6cc;
/* 0x06D0 */ f32 field_0x6d0;
/* 0x06D4 */ int mActionID;
/* 0x06D8 */ int mLastActionID;
/* 0x06DC */ int mActionMode;
/* 0x06E0 */ u32 field_0x6e0;
/* 0x06E4 */ u16 field_0x6e4;
/* 0x06E8 */ int field_0x6e8;
/* 0x06EC */ int field_0x6ec;
/* 0x06F0 */ int field_0x6f0;
/* 0x06F4 */ int field_0x6f4;
/* 0x06F8 */ s16 field_0x6f8;
/* 0x06FA */ u8 field_0x6fa;
/* 0x06FB */ u8 mFightPhase;
/* 0x06FC */ u8 field_0x6fc;
/* 0x06FD */ u8 field_0x6fd;
/* 0x06FE */ u8 mFlyWarpPosID;
/* 0x06FF */ u8 field_0x6ff;
/* 0x0700 */ u8 field_0x700;
/* 0x0701 */ u8 field_0x701;
/* 0x0702 */ u8 field_0x702;
/* 0x0703 */ u8 field_0x703;
/* 0x0704 */ u8 field_0x704;
/* 0x0705 */ u8 field_0x705;
/* 0x0706 */ u8 field_0x706;
/* 0x0707 */ u8 field_0x707;
/* 0x0708 */ u8 field_0x708;
/* 0x0709 */ u8 field_0x709;
/* 0x070A */ u8 field_0x70a;
/* 0x070B */ u8 field_0x70b;
/* 0x070C */ u8 field_0x70c;
/* 0x070D */ u8 field_0x70d;
/* 0x070E */ u8 field_0x70e;
/* 0x070F */ u8 field_0x70f;
/* 0x0710 */ u8 field_0x710;
/* 0x0711 */ u8 field_0x711;
/* 0x0712 */ u8 field_0x712;
/* 0x0713 */ u8 field_0x713;
/* 0x0714 */ u8 field_0x714;
/* 0x0715 */ u8 field_0x715;
/* 0x0716 */ u8 field_0x716;
/* 0x0717 */ u8 field_0x717;
/* 0x0718 */ u8 field_0x718;
/* 0x0719 */ bool mTakenBigDmg;
/* 0x071A */ u8 mFightCycle;
/* 0x071B */ u8 field_0x71b;
/* 0x071C */ u8 field_0x71c;
/* 0x071D */ u8 field_0x71d;
/* 0x071E */ s16 field_0x71e;
/* 0x0720 */ s16 field_0x720;
/* 0x0722 */ s16 field_0x722;
/* 0x0724 */ u32 field_0x724;
/* 0x0728 */ u8 field_0x728;
/* 0x072C */ u32 field_0x72c[4];
/* 0x073C */ u32 field_0x73c[9];
/* 0x0760 */ cXyz field_0x760;
/* 0x076C */ cXyz field_0x76c;
/* 0x0778 */ f32 field_0x778;
/* 0x077C */ f32 field_0x77c;
/* 0x0780 */ int mMsgNo;
/* 0x0784 */ int mMsgID;
/* 0x0788 */ msg_class* mpMsg;
/* 0x078C */ dBgS_AcchCir mAcchCir;
/* 0x07CC */ dBgS_Acch mAcch;
/* 0x09A4 */ dCcD_Stts mStts;
/* 0x09E0 */ dCcD_Sph field_0x9e0[2];
/* 0x0C50 */ dCcU_AtInfo mAtInfo;
/* 0x0C74 */ dCcD_Stts field_0xc74;
/* 0x0CB0 */ dCcD_Sph field_0xcb0[11];
/* 0x1A18 */ dCcD_Sph field_0x1a18[11];
/* 0x2780 */ dCcD_Sph field_0x2780[11];
/* 0x34E8 */ dCcD_Cyl field_0x34e8;
/* 0x3624 */ dCcD_Sph field_0x3624[2];
/* 0x3894 */ u32 field_0x3894;
/* 0x3898 */ u32 field_0x3898;
// /* 0x389C */ u32 field_0x389c;
/* 0x38A0 */ u8 field_0x38a0[0x38ac - 0x38a0];
// /* 0x38AC */ u32 field_0x38ac[2];
// /* 0x38B4 */ u32 field_0x38b4;
// /* 0x38B8 */ u8 field_0x38b8;
};
/*
There is a misalignment here causing the class to be too big by 0x14.
Commenting out the class members at the end fixed it temporarily.
Needs to be fixed properly at some point.
*/
STATIC_ASSERT(sizeof(daB_ZANT_c) == 0x38BC);
class daB_ZANT_HIO_c {
public:
/* 8063E10C */ daB_ZANT_HIO_c();
/* 8064E994 */ ~daB_ZANT_HIO_c();
};
#endif /* D_A_B_ZANT_H */
+33
View File
@@ -0,0 +1,33 @@
#ifndef D_A_B_ZANT_MAGIC_H
#define D_A_B_ZANT_MAGIC_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daB_ZANTM_c
* @brief Zant - Magic Attack
*
* @details Palace of Twilight dungeon boss magic attack.
*
*/
class daB_ZANTM_c : public fopEn_enemy_c {
public:
/* 8064F778 */ void draw();
/* 8064F7D4 */ void setMagicEffect();
/* 8064F938 */ void setMagicHitEffect();
/* 8064FA50 */ void executeSmall();
/* 8064FD6C */ void cc_set();
/* 8064FE6C */ void execute();
/* 8064FF2C */ bool _delete();
/* 8064FF54 */ void create();
/* 806500A8 */ daB_ZANTM_c();
private:
/* 0x5ac */ u8 field_0x5ac[0xc0c - 0x5ac];
};
STATIC_ASSERT(sizeof(daB_ZANTM_c) == 0xc0c);
#endif /* D_A_B_ZANT_MAGIC_H */
+42
View File
@@ -0,0 +1,42 @@
#ifndef D_A_B_ZANT_MOBILE_H
#define D_A_B_ZANT_MOBILE_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daB_ZANTZ_c
* @brief Zant (Mobile)
*
* @details Palace of Twilight dungeon boss (mobile form?).
*
*/
class daB_ZANTZ_c : public fopEn_enemy_c {
public:
/* 806507B0 */ void draw();
/* 80650854 */ void setSnortEffect(int);
/* 806508E0 */ void calcSnortEffect();
/* 80650B7C */ void setMouthMode(u8);
/* 80650D0C */ void setAppearMode(u8);
/* 806510C0 */ void getGroundPos();
/* 8065127C */ void action();
/* 80651B1C */ void cc_set();
/* 80651C20 */ void execute();
/* 80651D1C */ void _delete();
/* 80651DC4 */ void CreateHeap();
/* 80652038 */ void create();
private:
/* 0x5ac */ u8 field_0x5ac[0xd14 - 0x5ac];
};
STATIC_ASSERT(sizeof(daB_ZANTZ_c) == 0xd14);
class daB_ZANTZ_HIO_c {
public:
/* 8065078C */ daB_ZANTZ_HIO_c();
/* 8065268C */ ~daB_ZANTZ_HIO_c();
};
#endif /* D_A_B_ZANT_MOBILE_H */
+41
View File
@@ -0,0 +1,41 @@
#ifndef D_A_B_ZANT_SIMA_H
#define D_A_B_ZANT_SIMA_H
#include "d/d_bg_w.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daB_ZANTS_c
* @brief Zant (Goron Mines Phase)
*
* @details Palace of Twilight dungeon boss. This is the actor used during the Goron Mines part of the fight.
*
*/
class daB_ZANTS_c : public fopAc_ac_c {
public:
/* 806529D8 */ int draw();
/* 80652B28 */ void action();
/* 80652DA8 */ int execute();
/* 80652EC0 */ int _delete();
/* 80652F38 */ int CreateHeap();
/* 806531E8 */ int create();
/* 0x568 */ request_of_phase_process_class mPhase;
/* 0x570 */ J3DModel* mpModel;
/* 0x574 */ mDoExt_brkAnm* mpBrkAnm;
/* 0x578 */ mDoExt_btkAnm* mpBtkAnm;
/* 0x57C */ u32 mPlayerID;
/* 0x580 */ u32 mBossID;
/* 0x584 */ u8 mSinkTimers[2];
/* 0x586 */ bool mSinkPlayer;
/* 0x587 */ bool mSinkZant;
/* 0x588 */ f32 mHeight;
/* 0x58C */ csXyz mRotation;
/* 0x594 */ Mtx mMtx;
/* 0x5C4 */ dBgW* mpBgW;
};
STATIC_ASSERT(sizeof(daB_ZANTS_c) == 0x5C8);
#endif /* D_A_B_ZANT_SIMA_H */
+181
View File
@@ -0,0 +1,181 @@
#ifndef D_A_BALLOON_2D_H
#define D_A_BALLOON_2D_H
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
#include "SSystem/SComponent/c_phase.h"
#include "d/d_drawlist.h"
#include "d/d_s_play.h"
class J2DScreen;
class CPaneMgr;
class J2DPicture;
class J2DPane;
class J2DTextBox;
/**
* @ingroup actors-unsorted
* @class daBalloon2D_c
* @brief ???
*
* @details
*
*/
class daBalloon2D_c : public fopAc_ac_c, public request_of_phase_process_class {
public:
class c_list : public dDlst_base_c {
public:
c_list() { mBalloon = NULL; }
void set(daBalloon2D_c* i_this) { mBalloon = i_this; }
#ifdef NONMATCHING
/* 806534CC */ virtual void draw();
/* 8065544C */ virtual ~c_list();
#else
void draw();
~c_list();
void* vtable;
#endif
daBalloon2D_c* mBalloon;
};
class CHeadScore {
public:
/* 80655304 */ ~CHeadScore();
/* 80655340 */ CHeadScore();
};
daBalloon2D_c() {
initiate();
}
/* 80653538 */ int createHeap();
/* 80653D24 */ int create();
/* 80653DB4 */ int destroy();
/* 80653E10 */ int draw();
/* 80653EC0 */ int execute();
/* 80653F04 */ void drawMeter();
/* 80653F58 */ void setComboCount(u8, u8);
/* 80653FC0 */ void setScoreCount(u32);
/* 80653FEC */ void addScoreCount(cXyz*, u32, u8);
/* 806540B4 */ void initiate();
/* 806540B8 */ void update();
/* 806540BC */ void setComboNum(u8);
/* 806541B4 */ void setBalloonSize(u8);
/* 80654258 */ void setScoreNum(int);
/* 80654440 */ void setAllAlpha();
/* 8065464C */ void setComboAlpha();
/* 80654730 */ void drawAddScore();
/* 80654E8C */ void setHIO(bool);
/* 80655494 */
#ifdef NONMATCHING
virtual
#endif
~daBalloon2D_c();
void show() { mIsVisible = 1; }
void hide() { mIsVisible = 0; }
u8 isVisible() { return mIsVisible; }
static daBalloon2D_c* myclass;
struct ScoreCount {
cXyz field_0x0;
u16 field_0xc;
u8 field_0xe;
u8 field_0xf;
};
#ifdef NONMATCHING
#else
/* 0x570 */ u32 vtable;
#endif
/* 0x574 */ J2DScreen* mScreen;
/* 0x578 */ CPaneMgr* field_0x578;
/* 0x57C */ CPaneMgr* field_0x57c;
/* 0x580 */ CPaneMgr* field_0x580;
/* 0x584 */ CPaneMgr* field_0x584;
/* 0x588 */ CPaneMgr* field_0x588;
/* 0x58C */ CPaneMgr* field_0x58c;
/* 0x590 */ CPaneMgr* field_0x590;
/* 0x594 */ CPaneMgr* field_0x594;
/* 0x598 */ CPaneMgr* field_0x598;
/* 0x59C */ CPaneMgr* field_0x59c;
/* 0x5A0 */ CPaneMgr* field_0x5a0;
/* 0x5A4 */ CPaneMgr* field_0x5a4;
/* 0x5A8 */ J2DPicture* field_0x5a8[7];
/* 0x5A4 */ J2DPicture* field_0x5c4[10];
/* 0x5EC */ J2DPicture* field_0x5ec;
/* 0x5F0 */ c_list field_0x5f0;
/* 0x5F8 */ ScoreCount field_0x5f8[20];
/* 0x738 */ f32 mAllAlpha;
/* 0x73C */ f32 mComboAlpha;
/* 0x740 */ u32 mScoreCount;
/* 0x744 */ u8 mComboNum;
/* 0x745 */ u8 mBalloonSize;
/* 0x746 */ u8 mIsVisible;
};
class daBalloon2D_HIO_c /*: public mDoHIO_entry_c */ {
public:
/* 806553A8 */ /* virtual */ ~daBalloon2D_HIO_c();
/* 0x00 */ u32 field_0x00;
/* 0x04 */ u8 field_0x04;
/* 0x00 */ u8 field_0x05[0x20 - 5];
/* 0x20 */ f32 field_0x20;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ f32 field_0x34;
/* 0x38 */ f32 field_0x38;
/* 0x3C */ f32 field_0x3c;
/* 0x40 */ f32 field_0x40;
/* 0x44 */ f32 field_0x44;
/* 0x48 */ f32 field_0x48;
/* 0x4C */ f32 field_0x4c;
/* 0x50 */ f32 field_0x50;
/* 0x54 */ f32 field_0x54;
/* 0x58 */ f32 field_0x58;
/* 0x5C */ f32 field_0x5c;
/* 0x60 */ f32 field_0x60;
/* 0x64 */ f32 field_0x64;
/* 0x68 */ f32 field_0x68;
/* 0x6C */ f32 field_0x6c;
/* 0x70 */ f32 field_0x70;
/* 0x74 */ f32 field_0x74;
/* 0x78 */ f32 field_0x78;
/* 0x7C */ f32 field_0x7c;
/* 0x80 */ f32 field_0x80;
/* 0x84 */ f32 field_0x84;
/* 0x88 */ f32 field_0x88;
/* 0x8C */ f32 field_0x8c;
/* 0x90 */ f32 field_0x90;
/* 0x94 */ f32 field_0x94;
/* 0x98 */ f32 field_0x98;
/* 0x9C */ f32 field_0x9c;
/* 0xA0 */ f32 field_0xa0;
/* 0xA4 */ f32 field_0xa4;
/* 0xA8 */ f32 field_0xa8;
/* 0xAC */ f32 field_0xac;
/* 0xB0 */ f32 field_0xb0;
/* 0xB4 */ f32 field_0xb4;
/* 0xB8 */ f32 field_0xb8;
/* 0xBC */ f32 field_0xbc;
/* 0xC0 */ f32 field_0xc0;
/* 0xC4 */ f32 field_0xc4;
};
#include "f_op/f_op_actor_mng.h"
class JMSMesgEntry_c : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0x748 - 0x5ac];
};
STATIC_ASSERT(sizeof(JMSMesgEntry_c) == 0x748);
struct JKRExpHeap {};
#endif /* D_A_BALLOON_2D_H */
+28
View File
@@ -0,0 +1,28 @@
#ifndef D_A_BD_H
#define D_A_BD_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-unsorted
* @class bd_class
* @brief Bird
*
* @details Used by birds that sit on Coro's head.
*
*/
class bd_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0x9ec - 0x5ac];
};
STATIC_ASSERT(sizeof(bd_class) == 0x9ec);
class daBd_HIO_c {
public:
/* 804D6C4C */ daBd_HIO_c();
/* 804D9CB8 */ ~daBd_HIO_c();
};
#endif /* D_A_BD_H */
+72
View File
@@ -0,0 +1,72 @@
#ifndef D_A_BG_H
#define D_A_BG_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_w_kcol.h"
class daBg_btkAnm_c {
public:
/* 80457F34 */ int create(J3DModelData*, J3DAnmTextureSRTKey*, int);
/* 80458088 */ void entry(J3DModelData*);
/* 804580CC */ void play();
void entryFrame() { mpBtk->entryFrame(); }
void playspeed(f32 speed) { mpBtk->setPlaySpeed(speed); }
/* 0x0 */ mDoExt_btkAnm* mpBtk;
/* 0x4 */ u8 field_0x4;
};
class daBg_brkAnm_c {
public:
/* 804580F0 */ int create(J3DModelData*, J3DAnmTevRegKey*, int);
/* 80458230 */ void entry(J3DModelData*);
/* 80458274 */ void play();
void entryFrame() { mpBrk->entryFrame(); }
void entryFrame(f32 frame) { mpBrk->entryFrame(frame); }
f32 getEndFrame() { return mpBrk->getEndFrame(); }
/* 0x0 */ mDoExt_brkAnm* mpBrk;
/* 0x4 */ u8 field_0x4;
};
struct daBg_unkData {
/* 0x00 */ J3DModel* mpBgModel;
/* 0x04 */ daBg_btkAnm_c* mpBgBtk;
/* 0x08 */ daBg_brkAnm_c* mpBgBrk;
/* 0x0C */ dKy_tevstr_c* mpTevStr;
/* 0x10 */ f32 mBtkAnmSpeed;
}; // Size: 0x14
/**
* @ingroup actors-unsorted
* @class daBg_c
* @brief Background
*
* @details Stage collision.
*
*/
class daBg_c : public fopAc_ac_c {
public:
/* 80457BF8 */ const char* setArcName();
/* 804582B8 */ int createHeap();
/* 80458788 */ ~daBg_c();
/* 804588C4 */ int draw();
/* 8045906C */ int create();
inline int execute();
private:
/* 0x568 */ u8 field_0x568[0x570 - 0x568];
/* 0x570 */ daBg_unkData mBgData[6];
/* 0x5E8 */ dBgW* mpBgW;
/* 0x5EC */ dBgWKCol* mpKCol;
/* 0x5F0 */ u8 field_0x5f0;
/* 0x5F0 */ u8 field_0x5f1;
};
STATIC_ASSERT(sizeof(daBg_c) == 0x5F4);
#endif /* D_A_BG_H */
+146
View File
@@ -0,0 +1,146 @@
#ifndef D_A_BG_OBJ_H
#define D_A_BG_OBJ_H
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_bg_w.h"
#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"
class daBgObj_c;
typedef int (daBgObj_c::*createHeapFunc)();
typedef int (daBgObj_c::*createInitFunc)();
typedef int (daBgObj_c::*executeFunc)();
typedef void (daBgObj_c::*tgSetFunc)();
typedef int (daBgObj_c::*actionFunc)();
/**
* @ingroup actors-unsorted
* @class daBgObj_c
* @brief Moving Background Obj?
*
* @details
*
*/
class daBgObj_c : public dBgS_MoveBgActor {
public:
class spec_data_c {
public:
/* 804597E8 */ u8* initParticleBlock(u8*);
/* 80459814 */ u8* initSoundBlock(u8*);
/* 80459840 */ u8* initTexShareBlock(u8*);
/* 804598F4 */ u8* initFarInfoBlock(u8*);
/* 80459904 */ bool Set(void*);
/* 0x00 */ u16 mSpecType;
/* 0x02 */ u8 field_0x02;
/* 0x03 */ u8 field_0x03;
/* 0x04 */ u32 mParticleNum;
/* 0x08 */ u8* mpParticleBlock;
/* 0x0C */ u32 mSoundNum;
/* 0x10 */ u8* mpSoundBlock;
/* 0x14 */ u8 field_0x14;
/* 0x15 */ u8 field_0x15;
/* 0x16 */ u8 field_0x16;
/* 0x18 */ u8* mpTexShareBlock;
/* 0x1C */ u8 mTexShareNum;
/* 0x20 */ f32 mpFarInfoBlock;
};
/* 80459B64 */ void release(dBgW*);
/* 80459BB4 */ void regist(dBgW*);
/* 80459BEC */ void initAtt();
/* 80459D0C */ void setAttentionInfo(fopAc_ac_c*);
/* 80459D3C */ void initBaseMtx();
/* 80459D94 */ void setBaseMtx();
/* 80459E04 */ void settingCullSizeBoxForCo(int);
/* 80459F14 */ void settingCullSizeBoxForCull(int);
/* 8045A0EC */ int CreateInitType0();
/* 8045A160 */ int CreateInitType1();
/* 8045A2F0 */ int CreateHeapType0();
/* 8045A574 */ int CreateHeapType1();
/* 8045A83C */ void doShareTexture();
/* 8045A9E8 */ int create1st();
/* 8045AAF0 */ void setColCommon();
/* 8045AB80 */ void set_tri_0();
/* 8045ACC0 */ void set_tri_1();
/* 8045AE00 */ void set_cyl_0();
/* 8045AE98 */ void set_tri_2();
/* 8045AFD4 */ void set_tri_3();
/* 8045B17C */ void setParticle();
/* 8045B3A0 */ void setSe();
/* 8045B44C */ BOOL checkDestroy();
/* 8045B534 */ BOOL checkHitAt(cCcD_Obj*);
/* 8045B5E0 */ void orderWait_tri();
/* 8045B7FC */ void orderWait_cyl();
/* 8045B9C4 */ void orderWait_spec();
/* 8045BB38 */ int actionOrderWait();
/* 8045BBE0 */ int actionOrder();
/* 8045BD50 */ int actionEvent();
/* 8045BDB0 */ int actionWait();
/* 8045BDB8 */ int ExecuteType0();
/* 8045BED0 */ int ExecuteType1();
/* 8045C25C */ void indirectProc(J3DModel*);
/* 8045A940 */ virtual int CreateHeap();
/* 8045A2B8 */ virtual int Create();
/* 8045BFBC */ virtual int Execute(f32 (**)[3][4]);
/* 8045C078 */ virtual int Draw();
/* 8045C2E8 */ virtual int Delete();
void setAction(u8 i_action) { mAction = i_action; }
static createHeapFunc mCreateHeapFunc[];
static createInitFunc mCreateInitFunc[];
static executeFunc mExecuteFunc[];
static tgSetFunc mTgSetFunc[];
/* 0x5A0 */ request_of_phase_process_class mPhase;
/* 0x5A8 */ J3DModel* field_0x5a8[2][2];
/* 0x5B8 */ mDoExt_btkAnm* field_0x5b8[2][2];
/* 0x5C8 */ mDoExt_brkAnm* field_0x5c8[2][2];
/* 0x5D8 */ dBgW* mpBgW2;
/* 0x5DC */ dCcD_Stts mStts;
/* 0x618 */ dCcD_Tri mTris[4];
/* 0xB88 */ dCcD_Cyl mCyl;
/* 0xCC4 */ u8 field_0xcc4;
/* 0xCC5 */ u8 mAction;
/* 0xCC6 */ s16 mEventIdx;
/* 0xCC8 */ u8 field_0xcc8;
/* 0xCC9 */ u8 field_0xcc9;
/* 0xCCA */ u16 field_0xcca;
/* 0xCCC */ u16 field_0xccc;
/* 0xCD0 */ spec_data_c mSpecData;
/* 0xCF4 */ csXyz field_0xcf4;
/* 0xCFC */ u32 mAttnActorID;
/* 0xD00 */ u8 field_0xd00;
/* 0xD01 */ u8 field_0xd01;
/* 0xD02 */ u8 field_0xd02;
};
namespace daBgObj_prm {
inline u8 getEvId(daBgObj_c* i_this) {
return (fopAcM_GetParam(i_this) >> 0x15) & 0xFF;
}
inline u8 getSwBit(daBgObj_c* i_this) {
return i_this->field_0xccc & 0xFF;
}
inline u8 getSwBit2(daBgObj_c* i_this) {
return (i_this->field_0xccc >> 8) & 0xFF;
}
inline u8 getObjArg0(daBgObj_c* i_this) {
return i_this->field_0xcca & 0xFF;
}
}; // namespace daBgObj_prm
struct spec_dat {
public:
u16 field_0x0;
u16 field_0x2;
u8 field_0x4;
};
#endif /* D_A_BG_OBJ_H */
+192
View File
@@ -0,0 +1,192 @@
#ifndef D_A_BOOMERANG_H
#define D_A_BOOMERANG_H
#include "JSystem/J2DGraph/J2DScreen.h"
#include "d/d_particle_copoly.h"
#include "f_op/f_op_actor_mng.h"
class daBoomerang_sight_c {
public:
/* 8049E0B8 */ int createHeap();
/* 8049E36C */ void initialize();
/* 8049EB64 */ int playAnime(int, int);
/* 8049EDA8 */ void initFrame(int);
/* 8049EDE8 */ void copyNumData(int);
/* 8049EEC8 */ void setSight(cXyz const*, int);
/* 8049EF60 */ void draw();
/* 804A278C */ virtual ~daBoomerang_sight_c();
u8 getReserve() const { return mReserve; }
u8 getAlpha(int i_index) { return mAlpha[i_index]; }
void offRedSight() { mRedSight = false; }
void onReserve() { mReserve = 1; }
void offReserve() { mReserve = 0; }
private:
/* 0x04 */ J2DScreen* field_0x4;
/* 0x08 */ J2DPane* field_0x8;
/* 0x0C */ J2DPane* field_0xc;
/* 0x10 */ J2DPane* field_0x10;
/* 0x14 */ J2DPane* field_0x14;
/* 0x18 */ J2DAnmTevRegKey* field_0x18;
/* 0x1C */ J2DAnmTevRegKey* field_0x1c;
/* 0x20 */ J2DScreen* field_0x20;
/* 0x24 */ J2DPane* field_0x24;
/* 0x28 */ J2DPane* field_0x28;
/* 0x2C */ J2DPane* field_0x2c;
/* 0x30 */ J2DPane* field_0x30;
/* 0x34 */ J2DAnmTevRegKey* field_0x34;
/* 0x38 */ J2DAnmTevRegKey* field_0x38;
/* 0x3C */ J2DScreen* field_0x3c;
/* 0x40 */ J2DPane* field_0x40;
/* 0x44 */ J2DPane* field_0x44;
/* 0x48 */ J2DPane* field_0x48;
/* 0x4C */ J2DPane* field_0x4c;
/* 0x50 */ J2DAnmTevRegKey* field_0x50;
/* 0x54 */ J2DAnmTevRegKey* field_0x54;
/* 0x58 */ J2DAnmColor* field_0x58;
/* 0x5C */ J2DAnmTransform* field_0x5c;
/* 0x60 */ bool mRedSight;
/* 0x61 */ u8 mReserve;
/* 0x62 */ u8 mAlpha[6];
/* 0x68 */ f32 field_0x68[6];
/* 0x80 */ f32 field_0x80[6];
/* 0x98 */ f32 field_0x98[6];
/* 0xB0 */ f32 field_0xb0[6];
/* 0xC8 */ cXyz field_0xc8[6];
}; // Size: 0x110
class daAlink_c;
/**
* @ingroup actors-items
* @class daBoomerang_c
* @brief Gale Boomerang
*
* @details Forest Temple dungeon item.
*
*/
class daBoomerang_c : public fopAc_ac_c {
public:
enum daBoomerang_FLG0 {
/* 0x001 */ FLG0_1 = 0x001,
/* 0x004 */ FLG0_UNK = 0x004,
/* 0x010 */ FLG0_10 = 0x010,
/* 0x200 */ FLG0_0x200 = 0x200,
/* 0x800 */ FLG0_LOCK_DIST_CANCEL = 0x800,
/* 0x080 */ WIND_CATCH = 0x80,
};
/* 8049F280 */ void windModelCallBack();
/* 8049F39C */ int draw();
/* 8049F5F4 */ void lockLineCallback(fopAc_ac_c*);
/* 8049F660 */ void moveLineCallback(fopAc_ac_c*);
/* 8049F710 */ void pushLockList(int);
/* 8049F818 */ void cancelLockActorBase(fopAc_ac_c*);
/* 8049F874 */ void setAimActorBase(fopAc_ac_c*);
/* 8049F8B0 */ int setLockActor(fopAc_ac_c*, int);
/* 8049F9A4 */ void resetLockActor();
/* 8049F9F0 */ void setRoomInfo();
/* 8049FAA4 */ void setKeepMatrix();
/* 8049FBAC */ void setMoveMatrix();
/* 8049FCD0 */ void setRotAngle();
/* 8049FD6C */ void setAimPos();
/* 8049FE6C */ void checkBgHit(cXyz*, cXyz*);
/* 804A006C */ JPABaseEmitter* setEffectTraceMatrix(u32*, u16);
/* 804A012C */ void setEffect();
/* 804A0874 */ void procWait();
/* 804A0F0C */ void procMove();
/* 804A1814 */ int execute();
/* 804A1BF4 */ ~daBoomerang_c();
/* 804A1EE4 */ int createHeap();
/* 804A2084 */ int create();
/* 804A230C */ daBoomerang_c();
u32 checkStateFlg0(daBoomerang_FLG0 i_flag) { return mStateFlg0 & i_flag; }
void onStateFlg0(daBoomerang_FLG0 flag) { mStateFlg0 |= flag; }
void onWindCatch() { onStateFlg0(WIND_CATCH); }
bool checkForceDelete() const { return mForceDelete; }
void onForceDelete() { mForceDelete = true; }
bool checkCharge() const { return true; }
void setThrow() { fopAcM_SetParam(this, 1); }
void setAimActor(fopAc_ac_c* i_actor) { (this->*mpSetAimActorFn)(i_actor); }
void cancelLockActor(fopAc_ac_c* i_actor) { (this->*mpCancelLockActorFn)(i_actor); }
u8 getLockReserve() const { return mSight.getReserve(); }
bool getLockCntMax() { return mLockCnt >= 5; }
void onLockDistanceCancel() { onStateFlg0(FLG0_LOCK_DIST_CANCEL); }
private:
/* 0x568 */ J3DModel* field_0x568;
/* 0x56C */ J3DModel* field_0x56c;
/* 0x570 */ J3DAnmTextureSRTKey* m_windBtk;
/* 0x574 */ mDoExt_bckAnm mBck;
/* 0x590 */ J3DModel* field_0x590;
/* 0x594 */ J3DAnmTextureSRTKey* m_waitEffBtk;
/* 0x598 */ daBoomerang_sight_c mSight;
/* 0x6A8 */ s32 field_0x6a8;
/* 0x6AC */ s32 field_0x6ac[5];
/* 0x6C0 */ fopAc_ac_c* mLockActors[5]; // Actors corresponding to the five target points
/* 0x6D4 */ u32 field_0x6d4;
/* 0x6D8 */ fopAc_ac_c* field_0x6d8;
/* 0x6DC */ cXyz mLockActorsPositions[5];
/* 0x718 */ u8 field_0x718[5];
/* 0x720 */ Z2SoundObjSimple field_0x720;
/* 0x740 */ dBgS_Acch field_0x740;
/* 0x918 */ dPaPo_c field_0x918;
/* 0x950 */ u8 mLockCnt;
/* 0x951 */ u8 field_0x951;
/* 0x952 */ u8 field_0x952;
/* 0x953 */ u8 field_0x953;
/* 0x954 */ u8 field_0x954;
/* 0x955 */ u8 field_0x955;
/* 0x956 */ bool mForceDelete;
/* 0x957 */ u8 field_0x957;
/* 0x958 */ s16 field_0x958;
/* 0x95A */ s16 field_0x95a;
/* 0x95C */ s16 field_0x95c;
/* 0x95E */ s16 field_0x95e;
/* 0x960 */ s16 field_0x960;
/* 0x962 */ s16 field_0x962;
/* 0x964 */ u32 mStateFlg0;
/* 0x968 */ u32 field_0x968;
/* 0x96C */ u32 field_0x96c;
/* 0x970 */ u32 field_0x970;
/* 0x974 */ u32 field_0x974;
/* 0x978 */ u32 field_0x978;
/* 0x97C */ u32 field_0x97c;
/* 0x980 */ f32 field_0x980;
/* 0x984 */ f32 field_0x984;
/* 0x988 */ f32 field_0x988;
/* 0x98C */ f32 field_0x98c;
/* 0x990 */ cXyz field_0x990;
/* 0x99C */ cXyz field_0x99c;
/* 0x9A8 */ f32 field_0x9a8;
/* 0x9AC */ cXyz field_0x9ac;
/* 0x9B8 */ cXyz field_0x9b8;
/* 0x9C4 */ cXyz field_0x9c4;
/* 0x9D0 */ dCcD_Stts field_0x9d0;
/* 0xA0C */ dCcD_Cps field_0xa0c;
/* 0xB50 */ dCcD_Cyl field_0xb50;
/* 0xC8C */ dBgS_BoomerangLinChk field_0xc8c;
/* 0xCFC */ dBgS_ObjLinChk field_0xcfc;
/* 0xD6C */ dBgS_ObjGndChk field_0xd6c;
/* 0xDC0 */ int (daBoomerang_c::*mpProcFn)();
/* 0xDCC */ void (daBoomerang_c::*mpSetAimActorFn)(fopAc_ac_c*);
/* 0xDD8 */ void (daBoomerang_c::*mpCancelLockActorFn)(fopAc_ac_c*);
};
STATIC_ASSERT(sizeof(daBoomerang_c) == 0xDE4);
class daBoomerang_HIO_c0 {
public:
static u16 const m_lockWaitTime;
static f32 const m_minCircleR;
static f32 const m_middleCircleR;
static f32 const m_maxCircleR;
static f32 const m_scale;
static f32 const m_lockWindScale;
};
#endif /* D_A_BOOMERANG_H */
+49
View File
@@ -0,0 +1,49 @@
#ifndef D_A_BULLET_H
#define D_A_BULLET_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-unsorted
* @class daBullet_c
* @brief Bullet (Unused?)
*
* @details
*
*/
class daBullet_c : public fopEn_enemy_c {
public:
/* 8065594C */ ~daBullet_c();
/* 80655B08 */ void create();
/* 80655E5C */ void CreateHeap();
/* 80655EDC */ void Delete();
/* 80655F10 */ void Execute();
/* 806560FC */ void Draw();
/* 80656160 */ void createHeapCallBack(fopAc_ac_c*);
/* 80656180 */ void getResName();
/* 80656198 */ void getBmdName();
/* 806561B0 */ void getTypeFromParam();
/* 806561D0 */ void initialize();
/* 80656378 */ void setProcess(int (daBullet_c::*)(void*));
/* 80656420 */ void wait(void*);
/* 806564B8 */ void move(void*);
static u8 const mCcDObjInfo[48];
static u8 mCcDSph[64];
private:
/* 0x5ac */ u8 field_0x5ac[0x95c - 0x5ac];
};
STATIC_ASSERT(sizeof(daBullet_c) == 0x95c);
class daBullet_Param_c {
public:
/* 806566A8 */ ~daBullet_Param_c();
static u8 const m[24];
};
#endif /* D_A_BULLET_H */
+100
View File
@@ -0,0 +1,100 @@
#ifndef D_A_CANOE_H
#define D_A_CANOE_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_cc_d.h"
#include "d/d_bg_s_acch.h"
#include "SSystem/SComponent/c_phase.h"
/**
* @ingroup actors-unsorted
* @class daCanoe_c
* @brief Canoe
*
* @details
*
*/
class daCanoe_c : public fopAc_ac_c {
public:
/* 804DA5F4 */ void createHeap();
/* 804DA740 */ void create();
/* 804DAEA8 */ ~daCanoe_c();
/* 804DB008 */ void setRoomInfo();
/* 804DB0B0 */ void setMatrix();
/* 804DB3F4 */ void setCollision();
/* 804DB578 */ void posMove();
/* 804DB754 */ void checkGomikabe(cBgS_PolyInfo&);
/* 804DB7AC */ void setFrontBackPos();
/* 804DB828 */ void frontBackBgCheck();
/* 804DC330 */ void setPaddleEffect();
/* 804DC554 */ void setCanoeSliderEffect();
/* 804DC7B4 */ void execute();
/* 804DD35C */ void draw();
J3DModel* getModel() { return mpModel; }
MtxP getModelMtx() { return mpModel->getBaseTRMtx(); }
bool checkTandem() { return fopAcM_GetParam(this) == 2; }
bool checkJumpRideFlg() { return mJumpRideFlg; }
void incShapeOffsetY(f32 offset) { mShapeOffsetY += offset; }
void incShapeAngleZ(s16 incZ) { shape_angle.z += incZ; }
void onRodID(unsigned int i_rodID) { mRodID = i_rodID; }
void setWaterFallDownSe() { field_0x141c.startSound(Z2SE_AL_CANOE_FALL_DW, 0, -1); }
void setPosAndAngle(cXyz const* i_pos, s16 i_angle) {
field_0x14d0 = *i_pos;
field_0x144a = i_angle;
field_0x1446 = 1;
}
private:
/* 0x0568 */ request_of_phase_process_class mPhaseReq;
/* 0x0570 */ J3DModel* mpModel;
/* 0x0574 */ J3DModel* mpPaddleModel;
/* 0x0578 */ J3DModel* mpMaskModel;
/* 0x057C */ dCcD_Stts field_0x57c;
/* 0x05B8 */ dBgS_AcchCir field_0x5b8[9];
/* 0x07F8 */ dBgS_LinkAcch field_0x7f8[3];
/* 0x0D80 */ dCcD_Cyl field_0xd80[5];
/* 0x13AC */ dBgS_LinkLinChk field_0x13ac;
/* 0x141C */ Z2SoundObjSimple field_0x141c;
/* 0x143C */ char* mResName;
/* 0x1440 */ u8 mPaddleWaterType;
/* 0x1441 */ u8 field_0x1441;
/* 0x1442 */ u8 field_0x1442;
/* 0x1443 */ u8 mJumpRideFlg;
/* 0x1444 */ u8 field_0x1444;
/* 0x1445 */ u8 mReverb;
/* 0x1446 */ u8 field_0x1446;
/* 0x1448 */ s16 field_0x1448;
/* 0x144A */ s16 field_0x144a;
/* 0x144C */ s16 mAimAngle;
/* 0x144E */ s16 field_0x144e;
/* 0x1450 */ s16 field_0x1450;
/* 0x1452 */ s16 field_0x1452;
/* 0x1454 */ s16 field_0x1454;
/* 0x1456 */ s16 field_0x1456;
/* 0x1458 */ s16 field_0x1458;
/* 0x145A */ s16 field_0x145a;
/* 0x145C */ s16 field_0x145c;
/* 0x145E */ s16 field_0x145e;
/* 0x1460 */ s16 field_0x1460;
/* 0x1464 */ u32 mRodID;
/* 0x1468 */ f32 mAimSpeed;
/* 0x146C */ f32 mShapeOffsetY;
/* 0x1470 */ f32 field_0x1470;
/* 0x1474 */ u32 field_0x1474;
/* 0x1478 */ u8 field_0x1478[0x1480 - 0x1478];
/* 0x1480 */ u32 field_0x1480;
/* 0x1484 */ u8 field_0x1484[0x1490 - 0x1484];
/* 0x1490 */ u32 field_0x1490;
/* 0x1494 */ cXyz field_0x1494;
/* 0x14A0 */ cXyz field_0x14a0;
/* 0x14AC */ cXyz field_0x14ac;
/* 0x14B8 */ cXyz field_0x14b8;
/* 0x14C4 */ cXyz field_0x14c4;
/* 0x14D0 */ cXyz field_0x14d0;
};
STATIC_ASSERT(sizeof(daCanoe_c) == 0x14dc);
#endif /* D_A_CANOE_H */
+44
View File
@@ -0,0 +1,44 @@
#ifndef D_A_COACH_2D_H
#define D_A_COACH_2D_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-unsorted
* @class daCoach2D_c
* @brief Coach 2D
*
* @details
*
*/
class daCoach2D_c : public fopAc_ac_c {
public:
struct c_list {
/* 806569CC */ void draw();
/* 806577DC */ ~c_list();
};
/* 80656A38 */ void createHeap();
/* 80656D18 */ void create();
/* 80656D94 */ void destroy();
/* 80656DE4 */ void draw();
/* 80656E94 */ void execute();
/* 80656ED0 */ void drawMeter();
/* 8065722C */ void initiate();
/* 80657260 */ void update();
/* 80657490 */ void setBrkAnime(bool);
/* 80657824 */ ~daCoach2D_c();
private:
/* 0x568 */ u8 field_0x568[0x784 - 0x568];
};
STATIC_ASSERT(sizeof(daCoach2D_c) == 0x784);
class daCoach2D_HIO_c {
public:
/* 80657738 */ ~daCoach2D_HIO_c();
};
#endif /* D_A_COACH_2D_H */
+31
View File
@@ -0,0 +1,31 @@
#ifndef D_A_COACH_FIRE_H
#define D_A_COACH_FIRE_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-unsorted
* @class daCoachFire_c
* @brief Coach Fire
*
* @details
*
*/
class daCoachFire_c : public fopAc_ac_c {
public:
/* 80657B78 */ void create_init();
/* 80657C48 */ void initBaseMtx();
/* 80657CA8 */ void setBaseMtx();
/* 80657D2C */ void initCcSphere();
static u8 const M_attr[16];
private:
/* 0x568 */ u8 field_0x568[0x714 - 0x568];
};
STATIC_ASSERT(sizeof(daCoachFire_c) == 0x714);
#endif /* D_A_COACH_FIRE_H */
+112
View File
@@ -0,0 +1,112 @@
#ifndef D_A_COW_H
#define D_A_COW_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-unsorted
* @class daCow_c
* @brief Ordon Goat
*
* @details
*
*/
class daCow_c : public fopAc_ac_c {
public:
/* 806585CC */ void calcRunAnime(int);
/* 80658730 */ void setBck(int, u8, f32, f32);
/* 806587D4 */ void checkBck(int);
/* 80658830 */ void setEffect();
/* 80658AA4 */ void isChaseCowGame();
/* 80658B10 */ void setCarryStatus();
/* 80658C18 */ void setActetcStatus();
/* 80658C78 */ void checkNadeNadeFinish();
/* 80658CA4 */ void checkNadeNade();
/* 80658CD0 */ void setSeSnort();
/* 80658D3C */ void setRushVibration(int);
/* 80658DB8 */ void checkThrow();
/* 80658E98 */ void setBodyAngle(s16);
/* 80658F94 */ void setBodyAngle2(s16);
/* 806590E8 */ void checkProcess(void (daCow_c::*)());
/* 80659114 */ void setProcess(void (daCow_c::*)(), int);
/* 806591BC */ void damage_check();
/* 8065945C */ void setEnterCow20();
/* 80659540 */ void setEnterCow10();
/* 80659630 */ void setGroundAngle();
/* 80659970 */ void checkRun();
/* 806599C0 */ void checkNearCowRun();
/* 80659ADC */ void action_wait();
/* 8065A0E8 */ void action_eat();
/* 8065A594 */ void action_moo();
/* 8065A8A4 */ void action_shake();
/* 8065ACC8 */ void checkNearWolf();
/* 8065AD2C */ void checkPlayerWait();
/* 8065ADB0 */ void checkPlayerSurprise();
/* 8065AE88 */ void checkPlayerPos();
/* 8065B034 */ void checkBeforeBg();
/* 8065B760 */ void checkOutOfGate(cXyz);
/* 8065B8A8 */ void getCowshedAngle();
/* 8065B8D8 */ void getCowshedDist();
/* 8065BA30 */ void checkCowIn(f32, f32);
/* 8065BB34 */ void checkCowInOwn(int);
/* 8065BC68 */ void action_run();
/* 8065C32C */ void checkCurringPen();
/* 8065C508 */ void setCowInCage();
/* 8065C680 */ void setEnterCount();
/* 8065C70C */ void action_enter();
/* 8065CFBC */ void isAngry();
/* 8065D03C */ void isGuardFad();
/* 8065D0B8 */ void setAngryHit();
/* 8065D17C */ void checkBeforeBgAngry(s16);
/* 8065D230 */ void setRedTev();
/* 8065D29C */ void setAngryTurn();
/* 8065D2F0 */ void action_angry();
/* 8065DC08 */ void calcCatchPos(f32, int);
/* 8065DE70 */ void executeCrazyWait();
/* 8065DF40 */ void executeCrazyDash();
/* 8065E6BC */ void initCrazyBeforeCatch(int);
/* 8065E6E8 */ void executeCrazyBeforeCatch();
/* 8065E7D0 */ void initCrazyCatch(int);
/* 8065E888 */ void executeCrazyCatch();
/* 8065EAF4 */ void initCrazyThrow(int);
/* 8065EBF0 */ void executeCrazyThrow();
/* 8065F088 */ void initCrazyAttack(int);
/* 8065F144 */ void executeCrazyAttack();
/* 8065F308 */ void initCrazyAway(int);
/* 8065F37C */ void executeCrazyAway();
/* 8065F6E0 */ void executeCrazyEnd();
/* 8065F744 */ void initCrazyBack(int);
/* 8065F7DC */ void executeCrazyBack();
/* 8065FE50 */ void action_crazy();
/* 8066010C */ void executeCrazyBack2();
/* 80660544 */ void action_thrown();
/* 806607B8 */ void checkWolfBusters();
/* 806608F0 */ void action_wolf();
/* 806612DC */ void action_damage();
/* 806613EC */ void action();
/* 80661580 */ void setMtx();
/* 806615EC */ void setAttnPos();
/* 80661720 */ void setCollisions();
/* 80661940 */ void Execute();
/* 80661AF0 */ void CreateHeap();
/* 80661D24 */ void createHeapCallBack(fopAc_ac_c*);
/* 80661D44 */ void initialize();
/* 80662228 */ void create();
/* 80662710 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 80662920 */ void ctrlJointCallBack(J3DJoint*, int);
/* 8066296C */ void Draw();
/* 80662BE4 */ void Delete();
/* 80662D70 */ void getShapeAngle();
void setNaderu() { field_0x568 |= 0x80; }
void setNaderuFinish() { field_0x568 |= 0x100; }
private:
/* 0x568 */ u16 field_0x568;
/* 0x56A */ u8 field_0x56a[0xD40 - 0x56A];
};
STATIC_ASSERT(sizeof(daCow_c) == 0xd40);
#endif /* D_A_COW_H */
+63
View File
@@ -0,0 +1,63 @@
#ifndef D_A_CROD_H
#define D_A_CROD_H
#include "d/actor/d_a_player.h"
#include "d/d_cc_d.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-items
* @class daCrod_c
* @brief Dominion Rod
*
* @details Temple of Time dungeon item.
*
*/
class daCrod_c : public fopAc_ac_c {
public:
/* 80141A94 */ void setControllActorData();
/* 804A2E38 */ int createHeap();
/* 804A2F18 */ int create();
/* 804A3304 */ ~daCrod_c();
/* 804A34B0 */ void setRoomInfo();
/* 804A34B4 */ void setMatrix();
/* 804A3500 */ void posMove();
/* 804A3580 */ void setBckAnm(u16);
/* 804A35FC */ void setReturn();
/* 804A365C */ void setLightPower();
/* 804A36D8 */ int execute();
/* 804A3FD4 */ int draw();
static fopAc_ac_c* makeIronBallDummy(fopAc_ac_c* p_actor) {
return (fopAc_ac_c*)fopAcM_fastCreate(0x2F4, 6, &p_actor->current.pos,
fopAcM_GetRoomNo(p_actor), NULL, NULL, -1, NULL,
NULL);
}
fopAc_ac_c* getControllActor() { return mControllActorKeep.getActor(); }
fopAc_ac_c* getCameraActor() { return mCameraActorKeep.getActor(); }
void setThrow() { fopAcM_SetParam(this, 2); }
void offControll() { mControllActorKeep.clearData(); }
static f32 getFlyInitY() { return 40.0f; }
static f32 getFlyInitZ() { return 50.0f; }
private:
/* 0x568 */ J3DModel* mpBallModel;
/* 0x56C */ mDoExt_bckAnm mBck;
/* 0x588 */ J3DAnmTevRegKey* mpBallBrk;
/* 0x58C */ J3DAnmTextureSRTKey* mpBallBtk;
/* 0x590 */ dCcD_Stts mCcStts;
/* 0x5CC */ dCcD_Cps mAtCps;
/* 0x710 */ LIGHT_INFLUENCE mLight;
/* 0x730 */ u8 field_0x730;
/* 0x731 */ u8 field_0x731;
/* 0x732 */ u8 field_0x732;
/* 0x734 */ cXyz field_0x734;
/* 0x740 */ daPy_actorKeep_c mControllActorKeep;
/* 0x748 */ daPy_actorKeep_c mCameraActorKeep;
}; // Size: 0x750
#endif /* D_A_CROD_H */
+71
View File
@@ -0,0 +1,71 @@
#ifndef D_A_CSTAF_H
#define D_A_CSTAF_H
#include "Z2AudioLib/Z2Creature.h"
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_particle_copoly.h"
/**
* @ingroup actors-unsorted
* @class daCstaF_c
* @brief Dominion Rod Statue
*
* @details
*
*/
class daCstaF_c : public dBgS_MoveBgActor {
public:
/* 804DDB48 */ void checkCoverModel();
/* 804DDBB4 */ void create();
/* 804DE2F8 */ ~daCstaF_c();
/* 804DE558 */ void setRoomInfo();
/* 804DE5F0 */ void setMatrix();
/* 804DE698 */ void posMove();
/* 804DEB60 */ void setCollision();
/* 804DEC14 */ void setAnime();
/* 804DF0D8 */ void initBrk(u16);
/* 804DF150 */ void initStopBrkBtk();
/* 804DF1A4 */ void initStartBrkBtk();
/* 804DD978 */ virtual int CreateHeap();
/* 804DF37C */ virtual int Execute(f32 (**)[3][4]);
/* 804DF6E4 */ virtual int Draw();
cXyz& getBallPos() { return mBallPos; }
static u8 const m_bckIdxTable[16];
private:
/* 0x5A0 */ const char* mResName;
/* 0x5A4 */ request_of_phase_process_class mPhase;
/* 0x5AC */ J3DModel* field_0x5ac;
/* 0x5B0 */ mDoExt_McaMorfSO* field_0x5b0;
/* 0x5B4 */ J3DModel* field_0x5b4;
/* 0x5B8 */ J3DAnmTextureSRTKey* m_coverBtk;
/* 0x5BC */ J3DAnmTevRegKey* m_coverBrk;
/* 0x5C0 */ mDoExt_btkAnm field_0x5c0;
/* 0x5D8 */ mDoExt_brkAnm field_0x5d8;
/* 0x5F0 */ dBgS_AcchCir mAcchCir[4];
/* 0x6F0 */ dBgS_StatueAcch mAcch;
/* 0x8C8 */ dCcD_Stts mCcStts;
/* 0x904 */ dCcD_Cyl mCylCc;
/* 0xA40 */ Z2Creature mSound;
/* 0xAD0 */ dPaPo_c field_0xad0;
/* 0xB08 */ s8 mReverb;
/* 0xB09 */ u8 field_0xb09;
/* 0xB0A */ u8 field_0xb0a;
/* 0xB0B */ u8 field_0xb0b;
/* 0xB0C */ u8 field_0xb0c;
/* 0xB0D */ u8 mIsPlayerRide;
/* 0xB0E */ u8 field_0xb0e;
/* 0xB0F */ u8 field_0xb0f;
/* 0xB10 */ u8 mCoverVanishFlg;
/* 0xB12 */ s16 field_0xb12;
/* 0xB14 */ u8 field_0xb14[4];
/* 0xB18 */ u32 mShadowKey;
/* 0xB1C */ f32 field_0xb1c;
/* 0xB20 */ cXyz field_0xb20;
/* 0xB2C */ cXyz mBallPos;
};
#endif /* D_A_CSTAF_H */
+102
View File
@@ -0,0 +1,102 @@
#ifndef D_A_CSTATUE_H
#define D_A_CSTATUE_H
#include "Z2AudioLib/Z2Creature.h"
#include "d/d_particle_copoly.h"
#include "f_op/f_op_actor.h"
/**
* @ingroup actors-unsorted
* @class daCstatue_c
* @brief Dominion Rod Statue (small?)
*
* @details
*
*/
class daCstatue_c : public fopAc_ac_c {
public:
/* 806636AC */ void atHitCallback(fopAc_ac_c*);
/* 806636EC */ void createHeap();
/* 80663D28 */ void create();
/* 80664840 */ ~daCstatue_c();
/* 80664AA0 */ void setRoomInfo();
/* 80664B38 */ void setMatrix();
/* 80664C9C */ void posMove();
/* 8066555C */ void setCollision();
/* 80665E14 */ void checkHammerReverse();
/* 80665F80 */ void setDemo();
/* 80666390 */ void setAnime();
/* 80666B80 */ void initBrk(u16);
/* 80666BF8 */ void initStopBrkBtk();
/* 80666C38 */ void initStartBrkBtk();
/* 80666DE8 */ void execute();
/* 80667438 */ void draw();
bool checkNormalType() const { return mType == 0; }
bool checkNotSmallType() const { return mType == 1; }
bool checkBossType() const { return mType == 4 || mType == 3; }
cXyz& getBallPos() { return mBallPos; }
void onWarpGround(const cXyz& pos) {
field_0xb14 = pos;
field_0xae1 = 3;
}
void warpStart(const cXyz& pos) {
field_0xb14 = pos;
field_0xae1 = 1;
}
void onStateFlg0(int flg) {
mStateFlg0 |= flg;
}
void warpDelete() {
onStateFlg0(1);
field_0xae1 = 1;
}
static u8 const m_bckIdxTable[70 + 2 /* padding */];
private:
/* 0x568 */ char* mResName;
/* 0x56C */ request_of_phase_process_class mPhaseReq;
/* 0x574 */ J3DModel* field_0x574;
/* 0x578 */ mDoExt_McaMorfSO* field_0x578;
/* 0x57C */ mDoExt_btkAnm field_0x57c;
/* 0x594 */ mDoExt_brkAnm field_0x594;
/* 0x5AC */ dBgS_AcchCir field_0x5ac[4];
/* 0x6AC */ dBgS_StatueAcch field_0x6ac;
/* 0x884 */ dCcD_Stts field_0x884;
/* 0x8C0 */ dCcD_Cyl field_0x8c0;
/* 0x9FC */ dCcD_Cyl* field_0x9fc;
/* 0xA00 */ dCcD_Cps* field_0xa00;
/* 0xA04 */ dCcD_Cps* field_0xa04;
/* 0xA08 */ dCcD_Sph* field_0xa08;
/* 0xA0C */ mDoExt_invisibleModel field_0xa0c;
/* 0xA14 */ Z2Creature field_0xa14;
/* 0xAA4 */ dPaPo_c field_0xaa4;
/* 0xADC */ u8 mReverb;
/* 0xADD */ u8 mType;
/* 0xADE */ u8 field_0xade;
/* 0xADF */ u8 field_0xadf;
/* 0xAE0 */ u8 field_0xae0;
/* 0xAE1 */ u8 field_0xae1;
/* 0xAE2 */ u8 field_0xae2;
/* 0xAE3 */ u8 field_0xae3;
/* 0xAE4 */ u8 field_0xae4;
/* 0xAE5 */ u8 mBossAtGndHit;
/* 0xAE6 */ u8 field_0xae6[0xAE8 - 0xAE6];
/* 0xAE8 */ s16 field_0xae8;
/* 0xAEA */ s16 field_0xaea;
/* 0xAEC */ u32 mStateFlg0;
/* 0xAF0 */ u32 field_0xaf0;
/* 0xAF4 */ f32 field_0xaf4;
/* 0xAF8 */ f32 field_0xaf8;
/* 0xAFC */ f32 field_0xafc;
/* 0xB00 */ f32 field_0xb00;
/* 0xB04 */ f32 field_0xb04;
/* 0xB08 */ cXyz field_0xb08;
/* 0xB14 */ cXyz field_0xb14;
/* 0xB20 */ cXyz mBallPos;
};
STATIC_ASSERT(sizeof(daCstatue_c) == 0xB2C);
#endif /* D_A_CSTATUE_H */
+50
View File
@@ -0,0 +1,50 @@
#ifndef D_A_DEMO00_H
#define D_A_DEMO00_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_demo.h"
struct demo_s1_ke_s {
public:
/* 804A4420 */ ~demo_s1_ke_s();
/* 804A86B4 */ demo_s1_ke_s();
};
class daDemo00_resID_c {
public:
/* 804A430C */ void reset();
};
class daDemo00_model_c {
public:
/* 804A4338 */ void reset();
};
/**
* @ingroup actors-unsorted
* @class daDemo00_c
* @brief Cutscene
*
* @details
*
*/
class daDemo00_c : public fopAc_ac_c {
public:
/* 804A4388 */ ~daDemo00_c();
/* 804A45A0 */ void setBaseMtx();
/* 804A4948 */ void setShadowSize();
/* 804A4F74 */ void createHeap();
/* 804A5798 */ void actStandby(dDemo_actor_c*);
/* 804A594C */ void actPerformance(dDemo_actor_c*);
/* 804A604C */ void actLeaving(dDemo_actor_c*);
/* 804A6F94 */ void draw();
/* 804A7BA8 */ void execute();
private:
/* 0x568 */ u8 field_0x568[0x292c - 0x568];
};
STATIC_ASSERT(sizeof(daDemo00_c) == 0x292c);
#endif /* D_A_DEMO00_H */
+43
View File
@@ -0,0 +1,43 @@
#ifndef D_A_DEMO_ITEM_H
#define D_A_DEMO_ITEM_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-unsorted
* @class daDitem_c
* @brief Cutscene Item
*
* @details
*
*/
class daDitem_c : public fopAc_ac_c {
public:
/* 804DFBCC */ bool __CreateHeap();
/* 804DFBD4 */ void CreateInit();
/* 804DFC98 */ void action();
/* 804DFD10 */ void actionStart();
/* 804E00DC */ void actionEvent();
/* 804E0A50 */ void actionWaitLightEnd();
/* 804E0B40 */ void actionEnd();
/* 804E0B60 */ void setInsectEffect();
/* 804E0C44 */ void followInsectEffect();
/* 804E0CB0 */ void endInsectEffect();
/* 804E0D44 */ void onEventReg(int, int);
/* 804E0DB4 */ void set_pos();
/* 804E105C */ void anim_control();
/* 804E1098 */ void initEffectLight();
/* 804E10D0 */ void settingEffectLight();
/* 804E111C */ void set_mtx();
/* 804E11D4 */ void setTevStr();
/* 804E122C */ void setListStart();
/* 804E1230 */ void draw_WOOD_STICK();
private:
/* 0x568 */ u8 field_0x568[0x9c8 - 0x568];
};
STATIC_ASSERT(sizeof(daDitem_c) == 0x9c8);
#endif /* D_A_DEMO_ITEM_H */
+21
View File
@@ -0,0 +1,21 @@
#ifndef D_A_DISAPPEAR_H
#define D_A_DISAPPEAR_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-unsorted
* @class disappear_class
* @brief Enemy Death Effect
*
* @details
*
*/
class disappear_class : public fopAc_ac_c {
public:
/* 0x568 */ u8 field_0x568[0x574 - 0x568];
/* 0x574 */ s16 mDeleteTimer;
/* 0x576 */ u8 field_0x576[0x578 - 0x576];
};
#endif /* D_A_DISAPPEAR_H */
+28
View File
@@ -0,0 +1,28 @@
#ifndef D_A_DMIDNA_H
#define D_A_DMIDNA_H
#include "d/d_com_inf_game.h"
/**
* @ingroup actors-unsorted
* @class daDmidna_c
* @brief Dying Midna (White Midna)
*
* @details
*
*/
class daDmidna_c : public fopAc_ac_c {
public:
/* 8045CED8 */ int createHeap();
/* 8045CFE4 */ int create();
/* 8045D0B4 */ ~daDmidna_c();
/* 8045D144 */ void setMatrix();
/* 8045D1A0 */ int execute();
/* 8045D204 */ int draw();
/* 0x568 */ request_of_phase_process_class mPhase;
/* 0x570 */ u8 unk_0x570[4];
/* 0x574 */ mDoExt_McaMorfSO* mpModelMorf;
};
#endif /* D_A_DMIDNA_H */
+183
View File
@@ -0,0 +1,183 @@
#ifndef D_A_DO_H
#define D_A_DO_H
#include "SSystem/SComponent/c_phase.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_msg_flow.h"
#include "f_op/f_op_actor.h"
enum daDo_Anm {
ANM_BULBUL = 6,
ANM_CARRY_B,
ANM_CLIFF,
ANM_CLIFF_WT,
ANM_DEFEND,
ANM_DOWN,
ANM_DOWN_WT,
ANM_JOYFUL,
ANM_RUN,
ANM_SIT,
ANM_SIT_WAIT,
ANM_STEP,
ANM_STEP_2,
ANM_SWIM,
ANM_TO_CARRY_B,
ANM_WAIT,
ANM_WALK
};
enum daDo_Action {
ACT_STAY,
ACT_WALK,
ACT_WALK_RUN,
ACT_RUN,
ACT_RUN_WALK,
ACT_FOOD,
ACT_WAIT_1,
ACT_WAIT_2,
ACT_SIT,
ACT_A_SWIM = 10,
ACT_SWIM = 20,
ACT_HELP,
ACT_BOAT,
ACT_HANG = 30,
ACT_CARRY = 35,
ACT_MESSAGE = 39
};
// Remove this once the TU matches
struct daDo_HIO_tmp {
/* 0x00 */ u8 field_0x00[4];
/* 0x04 */ s8 field_0x04;
/* 0x08 */ f32 mBaseSize;
/* 0x0C */ f32 mWalkSpeed;
/* 0x10 */ f32 mRunSpeed;
/* 0x14 */ f32 mSwimSpeed;
/* 0x18 */ f32 mPlayerRecognitionDist;
/* 0x1C */ u8 mWaitType;
/* 0x1D */ u8 mSwimming;
/* 0x1E */ s16 mWaterHuntAnimType;
};
class daDo_HIO_c {
public:
/* 80667D4C */ daDo_HIO_c();
/* 8066ED40 */ virtual ~daDo_HIO_c(); // should be inlined
/* 0x04 */ s8 field_0x04;
/* 0x08 */ f32 mBaseSize;
/* 0x0C */ f32 mWalkSpeed;
/* 0x10 */ f32 mRunSpeed;
/* 0x14 */ f32 mSwimSpeed;
/* 0x18 */ f32 mPlayerRecognitionDist;
/* 0x1C */ u8 mWaitType;
/* 0x1D */ u8 mSwimming;
/* 0x1E */ s16 mWaterHuntAnimType;
};
/**
* @ingroup actors-unsorted
* @class do_class
* @brief Dog
*
* @details
*
*/
class do_class : public fopEn_enemy_c {
public:
/* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x5B4 */ u8 mParam0;
/* 0x5B5 */ u8 mParam1;
/* 0x5B6 */ u8 mParam2;
/* 0x5B8 */ cXyz mTargetPos;
/* 0x5C4 */ u8 field_0x5c4[4];
/* 0x5C8 */ f32 mDistFromPlayer;
/* 0x5CC */ s16 mTargetAngleY;
/* 0x5D8 */ mDoExt_McaMorf* mpMorf;
/* 0x5D4 */ mDoExt_btkAnm* mpBtk;
/* 0x5D8 */ mDoExt_btpAnm* mpBtp;
/* 0x5DC */ s8 mBtkFrame;
/* 0x5DE */ s16 mBtpFrame;
/* 0x5E0 */ s16 mBtpTimer;
/* 0x5E2 */ s8 mBtpReset;
/* 0x5E4 */ int mAnmID;
/* 0x5E8 */ f32 mAnmSpeed;
/* 0x5EC */ f32 mTargetAnmSpeed;
/* 0x5F0 */ s16 mCounter;
/* 0x5F2 */ s16 mAction;
/* 0x5F4 */ s16 field_0x5f4;
/* 0x5F6 */ s16 mMode;
/* 0x5F8 */ u32 mShadowKey;
/* 0x5FC */ s16 mTimer[4];
/* 0x604 */ s16 mCcDisableTimer;
/* 0x606 */ s16 mSwimEffectTimer;
/* 0x608 */ f32 field_0x608;
/* 0x60C */ s16 field_0x60c;
/* 0x60E */ csXyz mHeadAngle;
/* 0x614 */ s16 mHeadTilt;
/* 0x616 */ s8 field_0x616;
/* 0x618 */ cXyz mLookPos;
/* 0x624 */ s16 mLookTimer;
/* 0x626 */ csXyz mHeadBob;
/* 0x62C */ csXyz mHeadBobTarget;
/* 0x632 */ s16 mHeadBobTimer;
/* 0x634 */ f32 mShakeSpeed;
/* 0x638 */ f32 mShakeTargetSpeed;
/* 0x63C */ s16 mASwimTimer;
/* 0x63E */ csXyz mTailAngle;
/* 0x644 */ f32 mTailWag;
/* 0x648 */ f32 mTailWagTarget;
/* 0x64C */ f32 mTailPhaseY;
/* 0x650 */ f32 mTailPhaseX;
/* 0x654 */ s16 mRandomAngleY;
/* 0x656 */ s16 mRandomTargetAngleY;
/* 0x658 */ f32 field_0x658;
/* 0x65C */ f32 mWaterY;
/* 0x660 */ s16 mHangAngleY;
/* 0x664 */ cXyz mHangPos;
/* 0x670 */ f32 mHangSpeed;
/* 0x674 */ cXyz mScale;
/* 0x680 */ u32 mItemActorID;
/* 0x684 */ u32 mFoodActorID;
/* 0x688 */ s8 mFoodInMouth;
/* 0x689 */ s8 mNoDraw;
/* 0x68C */ cXyz field_0x68c;
/* 0x698 */ cXyz field_0x698;
/* 0x6A4 */ u8 field_0x6a4[10];
/* 0x6AE */ s8 mRunningSoundTimer;
/* 0x6B0 */ s16 field_0x6b0;
/* 0x6B4 */ f32 field_0x6b4;
/* 0x6B8 */ u8 mItemControlTimer;
/* 0x6BC */ dBgS_AcchCir mBgS_AcchCir;
/* 0x6FC */ dBgS_ObjAcch mBgS_Acch;
/* 0x8D4 */ dCcD_Stts mStts;
/* 0x910 */ dCcD_Sph mCcSph;
/* 0xA48 */ dCcD_Sph field_0xa48;
/* 0xB80 */ cXyz field_0xb80;
/* 0xB8C */ cXyz field_0xb8c;
/* 0xB98 */ cXyz field_0xb98;
/* 0xBA4 */ cXyz field_0xba4;
/* 0xBB0 */ cXyz field_0xbb0;
/* 0xBBC */ cXyz field_0xbbc;
/* 0xBC8 */ u8 field_0xb4c[4];
/* 0xBCC */ u32 mRippleKey;
/* 0xBD0 */ u8 field_0xbd0[4];
/* 0xBD4 */ u32 mParticleKey[4];
/* 0xBE4 */ Z2SoundObjSimple mSound;
/* 0xC04 */ u8 mFoodEndTimer;
/* 0xC05 */ s8 mMessageState;
/* 0xC06 */ s16 mIsTalking;
/* 0xC08 */ s16 mFlowID;
/* 0xC0C */ dMsgFlow_c mMsg;
/* 0xC58 */ u8 field_0xc58[40];
/* 0xC80 */ bool field_0xc80;
/* 0xC84 */ cXyz field_0xc84;
/* 0xC90 */ cXyz field_0xc90;
/* 0xC9C */ cXyz field_0xc9c;
/* 0xCA8 */ cXyz field_0xca8;
/* 0xCB4 */ cXyz field_0xcb4;
/* 0xCC0 */ bool mHIOInit;
};
#endif /* D_A_DO_H */
+74
View File
@@ -0,0 +1,74 @@
#ifndef D_A_DOOR_BOSS_H
#define D_A_DOOR_BOSS_H
#include "SSystem/SComponent/c_phase.h"
#include "f_op/f_op_actor.h"
#include "d/d_bg_s_acch.h"
#include "d/d_bg_w.h"
/**
* @ingroup actors-doors
* @class daBdoor_c
* @brief Boss Door (Unused?)
*
* @details The door that leads to the boss room.
*
*/
class daBdoor_c : public fopAc_ac_c {
public:
enum Action {
/* 0 */ ACT_WAIT,
/* 1 */ ACT_CLOSE_WAIT,
/* 2 */ ACT_OPEN,
/* 3 */ ACT_END,
};
/* 8066F418 */ char* getArcName();
/* 8066F424 */ char* getBmd();
/* 8066F434 */ char* getDzb();
/* 8066F444 */ char* getBmd2();
/* 8066F454 */ J3DModelData* getDoorModelData();
/* 8066F4E4 */ int CreateHeap();
/* 8066F738 */ void calcMtx();
/* 8066F7EC */ int CreateInit();
/* 8066F8E4 */ cPhs__Step create();
/* 8066FAB8 */ int getDemoAction();
/* 8066FB00 */ void demoProc();
/* 8066FF04 */ void calcGoal(cXyz*, int);
/* 8067002C */ void smokeInit();
/* 806700C4 */ BOOL checkArea();
/* 806701F4 */ BOOL checkFront();
/* 80670294 */ BOOL checkOpen();
/* 80670320 */ BOOL actionWait();
/* 80670328 */ BOOL actionCloseWait();
/* 806703C0 */ BOOL actionOpen();
/* 806703E4 */ BOOL actionEnd();
/* 80670544 */ int execute();
/* 80670664 */ BOOL checkDraw();
/* 806706A4 */ int draw();
/* 80670804 */ int Delete();
void setAction(u8 i_action) { mAction = i_action; }
private:
/* 0x568 */ request_of_phase_process_class mPhaseReq;
/* 0x570 */ J3DModel* mpDoorModel;
/* 0x574 */ J3DModel* mpLockModel;
/* 0x578 */ mDoExt_bckAnm* mpLockAnm;
/* 0x57C */ dBgW* mpBgW;
/* 0x580 */ bool mBgInactive;
/* 0x581 */ u8 mAction;
/* 0x582 */ u8 field_0x582[6];
/* 0x588 */ u32 mStaffID;
/* 0x58C */ s16 field_0x58c;
/* 0x590 */ f32 mOffsetY;
/* 0x594 */ bool mLocked;
/* 0x598 */ cXyz mParticlePos;
/* 0x5A4 */ csXyz mParticleAngle;
/* 0x5AC */ dBgS_ObjAcch mAcch;
/* 0x784 */ dBgS_AcchCir mAcchCir;
};
STATIC_ASSERT(sizeof(daBdoor_c) == 0x7C4);
#endif /* D_A_DOOR_BOSS_H */
+109
View File
@@ -0,0 +1,109 @@
#ifndef D_A_DOOR_BOSSL1_H
#define D_A_DOOR_BOSSL1_H
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
#include "d/d_bg_w.h"
#include "d/d_bg_s_acch.h"
#include "SSystem/SComponent/c_phase.h"
class JPABaseEmitter;
/**
* @ingroup actors-doors
* @class daBdoorL1_c
* @brief Boss Door
*
* @details Multi-purpose door actor. This actor is used for boss doors in the game.
*
*/
class daBdoorL1_c : public fopAc_ac_c {
public:
enum DoorType {
DOOR_TYPE_0,
DOOR_TYPE_1,
};
enum ActionType {
ACTION_WAIT,
ACTION_CLOSE_WAIT,
ACTION_OPEN,
ACTION_END,
};
typedef int (daBdoorL1_c::*actionFunc)();
/* 804E1E2C */ char* getDoorEventName();
/* 804E1EE8 */ char* getDoorEventName2();
/* 804E1FA4 */ const char* getArcName();
/* 804E2060 */ const char* getAnmArcName();
/* 804E20C4 */ int getDoorType();
/* 804E2104 */ int getOpenAnm();
/* 804E2158 */ int getCloseAnm();
/* 804E21AC */ const char* getAlwaysArcName();
/* 804E21BC */ const char* getBmd();
/* 804E21CC */ const char* getDzb();
/* 804E21DC */ J3DModelData* getDoorModelData();
/* 804E2258 */ int CreateHeap();
/* 804E2578 */ void calcMtx();
/* 804E2754 */ int CreateInit();
/* 804E28E4 */ int create();
/* 804E2B78 */ int getDemoAction();
/* 804E2BC0 */ void demoProc();
/* 804E3180 */ int openInit();
/* 804E357C */ int openProc();
/* 804E3794 */ int openEnd();
/* 804E3850 */ int closeInit();
/* 804E3A2C */ int closeProc();
/* 804E3C0C */ int closeEnd();
/* 804E3C14 */ int unlockInit();
/* 804E3CCC */ void setPos();
/* 804E3DE8 */ void calcGoal(cXyz*, int);
/* 804E3F10 */ int setAngle();
/* 804E3FF8 */ int createKey();
/* 804E4100 */ void smokeInit();
/* 804E4104 */ void deleteEmitter();
/* 804E4158 */ int checkArea();
/* 804E432C */ int checkFront();
/* 804E43A0 */ int checkOpen();
/* 804E4414 */ int actionWait();
/* 804E441C */ int actionCloseWait();
/* 804E44B4 */ int actionOpen();
/* 804E44EC */ int actionEnd();
/* 804E464C */ int execute();
/* 804E476C */ int draw();
/* 804E48BC */ int Delete();
void setAction(u8 action) { mAction = action; }
private:
/* 0x568 */ request_of_phase_process_class mPhase1;
/* 0x570 */ request_of_phase_process_class mPhase2;
/* 0x578 */ request_of_phase_process_class mPhase3;
/* 0x580 */ J3DModel* field_0x580;
/* 0x584 */ J3DModel* field_0x584;
/* 0x588 */ mDoExt_bckAnm* field_0x588;
/* 0x58C */ mDoExt_btkAnm* field_0x58c;
/* 0x590 */ dBgW* field_0x590;
/* 0x594 */ u32 mKeyHoleId;
/* 0x598 */ u8 field_0x598;
/* 0x599 */ u8 mAction;
/* 0x59A */ u8 field_0x59a;
/* 0x59B */ u8 field_0x59b;
/* 0x59C */ s16 field_0x59c;
/* 0x59E */ s16 field_0x59e;
/* 0x5A0 */ int field_0x5a0;
/* 0x5A4 */ int field_0x5a4;
/* 0x5A8 */ f32 field_0x5a8;
/* 0x5AC */ dBgS_ObjAcch field_0x5ac;
/* 0x784 */ dBgS_AcchCir field_0x784;
/* 0x7C4 */ cXyz field_0x7c4;
/* 0x7D0 */ cXyz field_0x7d0;
/* 0x7DC */ csXyz field_0x7dc;
/* 0x7E4 */ JPABaseEmitter* field_0x7e4[2];
/* 0x7EC */ Mtx field_0x7ec;
};
STATIC_ASSERT(sizeof(daBdoorL1_c) == 0x81C);
#endif /* D_A_DOOR_BOSSL1_H */
+102
View File
@@ -0,0 +1,102 @@
#ifndef D_A_DOOR_BOSSL5_H
#define D_A_DOOR_BOSSL5_H
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
#include "SSystem/SComponent/c_phase.h"
#include "d/d_bg_w.h"
#include "d/d_bg_s_acch.h"
#include "f_pc/f_pc_manager.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-doors
* @class daBdoorL5_c
* @brief Snowpeak Ruins Boss Door
*
* @details
*
*/
class daBdoorL5_c : public fopAc_ac_c {
public:
enum ActionType {
ACTION_WAIT,
ACTION_CLOSE_WAIT,
ACTION_OPEN,
ACTION_END,
};
typedef int (daBdoorL5_c::*actionFunc)();
/* 80670C38 */ const char* getArcName();
/* 80670C44 */ const char* getAlwaysArcName();
/* 80670C54 */ const char* getBmd();
/* 80670C64 */ const char* getDzb();
/* 80670C74 */ const char* getAnmArcName();
/* 80670C84 */ s32 getOpenAnm();
/* 80670C8C */ s32 getCloseAnm();
/* 80670C94 */ J3DModelData* getDoorModelData();
/* 80670D10 */ int CreateHeap();
/* 80670F08 */ void calcMtx();
/* 80670F5C */ int CreateInit();
/* 8067106C */ int create();
/* 806712DC */ int getDemoAction();
/* 80671324 */ void demoProc();
/* 806715D0 */ int openInit();
/* 80671670 */ int openProc();
/* 80671718 */ int openEnd();
/* 80671720 */ int closeInit();
/* 806717FC */ int closeProc();
/* 80671820 */ int closeEnd();
/* 80671878 */ int unlockInit();
/* 80671954 */ void calcGoal(cXyz*, int);
/* 80671A7C */ void smokeInit();
/* 80671B14 */ int createKey();
/* 80671C14 */ int checkArea();
/* 80671D44 */ int checkFront();
/* 80671DE4 */ int checkOpen();
/* 80671E70 */ int actionWait();
/* 80671E78 */ int actionCloseWait();
/* 80671F58 */ int actionOpen();
/* 80672004 */ int actionEnd();
/* 80672164 */ int execute();
/* 8067228C */ int draw();
/* 80672374 */ int Delete();
void setAction(u8 action) { mAction = action; }
int deleteKey() {
if (mKeyHoleId != -1 && fpcM_IsCreating(mKeyHoleId) == 0) {
fopAcM_delete(mKeyHoleId);
mKeyHoleId = -1;
}
return 1;
}
private:
/* 0x568 */ request_of_phase_process_class mPhase1;
/* 0x570 */ request_of_phase_process_class mPhase2;
/* 0x578 */ request_of_phase_process_class mPhase3;
/* 0x580 */ J3DModel* field_0x580;
/* 0x584 */ mDoExt_bckAnm* field_0x584;
/* 0x588 */ dBgW* field_0x588;
/* 0x58C */ u32 mKeyHoleId;
/* 0x590 */ u8 field_0x590;
/* 0x591 */ u8 mAction;
/* 0x592 */ u8 field_0x592;
/* 0x593 */ u8 field_0x593;
/* 0x594 */ u8 field_0x594;
/* 0x596 */ s16 field_0x596;
/* 0x598 */ s16 field_0x598;
/* 0x59A */ s16 field_0x59a;
/* 0x59C */ int field_0x59c;
/* 0x5A0 */ int field_0x5a0;
/* 0x5A4 */ cXyz field_0x5a4;
/* 0x5B0 */ csXyz field_0x5b0;
/* 0x5B6 */ u16 field_0x5b6;
/* 0x5B8 */ dBgS_ObjAcch field_0x5b8;
/* 0x790 */ dBgS_AcchCir field_0x790;
};
STATIC_ASSERT(sizeof(daBdoorL5_c) == 0x7D0);
#endif /* D_A_DOOR_BOSSL5_H */
+70
View File
@@ -0,0 +1,70 @@
#ifndef D_A_DOOR_DBDOOR00_H
#define D_A_DOOR_DBDOOR00_H
#include "d/d_bg_w.h"
#include "d/d_com_inf_game.h"
/**
* @ingroup actors-doors
* @class daDbDoor00_c
* @brief Double Door
*
* @details
*
*/
class daDbDoor00_c : public fopAc_ac_c {
public:
/* 8045D470 */ char* getAlwaysArcName();
/* 8045D480 */ char* getDzb();
/* 8045D490 */ char* getDummyBmdName();
/* 8045D4A0 */ char* getBmdArcName();
/* 8045D4B0 */ char* getBmdName();
/* 8045D504 */ J3DModelData* getDoorModelData();
/* 8045D594 */ int CreateHeap();
/* 8045D744 */ void calcMtx();
/* 8045D8F4 */ int CreateInit();
/* 8045D9A8 */ int create();
/* 8045DA68 */ int getDemoAction();
/* 8045DAB0 */ void demoProc();
/* 8045DE44 */ int checkArea();
/* 8045DF70 */ int checkUnlock();
/* 8045DF78 */ int actionWait();
/* 8045DF9C */ int actionLockWait();
/* 8045E000 */ int actionLockOff();
/* 8045E094 */ int actionLockDemo();
/* 8045E108 */ int actionCloseWait();
/* 8045E1C8 */ int actionOpen();
/* 8045E1EC */ int execute();
/* 8045E2DC */ int checkDraw();
/* 8045E31C */ int draw();
/* 8045E428 */ int Delete();
void setAction(u8 i_action) { mAction = i_action; }
// private:
/* 0x568 */ request_of_phase_process_class mPhaseReq;
/* 0x570 */ request_of_phase_process_class mPhaseReq2;
/* 0x578 */ J3DModel* mpModel;
/* 0x57C */ J3DModel* mpModel2;
/* 0x580 */ dBgW* mpBgW;
/* 0x584 */ u8 field_0x584;
/* 0x585 */ u8 field_0x585;
/* 0x586 */ u8 mAction;
/* 0x587 */ u8 field_0x587[0x58A - 0x587];
/* 0x58A */ s16 field_0x58a;
/* 0x58C */ s16 field_0x58c;
/* 0x58E */ u8 field_0x58E[0x590 - 0x58E];
/* 0x590 */ s16 field_0x590;
/* 0x594 */ s32 field_0x594;
/* 0x598 */ s32 field_0x598;
/* 0x59C */ cXyz field_0x59c;
/* 0x5A8 */ cXyz field_0x5a8;
/* 0x5B4 */ cXyz field_0x5b4;
/* 0x5C0 */ s8 field_0x5c0;
/* 0x5C1 */ s8 field_0x5c1;
/* 0x5C2 */ s16 field_0x5c2;
};
STATIC_ASSERT(sizeof(daDbDoor00_c) == 0x5C4);
#endif /* D_A_DOOR_DBDOOR00_H */
+108
View File
@@ -0,0 +1,108 @@
#ifndef D_A_DOOR_KNOB00_H
#define D_A_DOOR_KNOB00_H
#include "f_op/f_op_actor.h"
#include "SSystem/SComponent/c_phase.h"
#include "d/d_bg_w.h"
#include "d/d_msg_flow.h"
/**
* @ingroup actors-doors
* @class daKnob20_c
* @brief Knob Door
*
* @details
*
*/
class daKnob20_c : public fopAc_ac_c {
public:
enum {
ACTION_INIT,
ACTION_WAIT,
ACTION_DEMO,
ACTION_TALK,
ACTION_TALK_WAIT,
ACTION_TALK_OPEN,
ACTION_DEAD,
ACTION_SPECIAL_DEMO,
};
typedef int (daKnob20_c::*actionFunc)();
/* 8045E888 */ char* getAlwaysArcName();
/* 8045E898 */ char* getEvArcName();
/* 8045E8A8 */ char* getDzb();
/* 8045E8B8 */ char* getDummyBmd();
/* 8045E8C8 */ char* getBmd();
/* 8045E91C */ J3DModelData* getDoorModelData();
/* 8045E960 */ int CreateHeap();
/* 8045EBA0 */ void calcMtx();
/* 8045EC44 */ int CreateInit();
/* 8045ED1C */ int create();
/* 8045EE5C */ int checkOpenDoor(int*);
/* 8045EEE4 */ void setActionFromFlow();
/* 8045EFCC */ void setEventId();
/* 8045F058 */ int checkArea(f32, f32, f32);
/* 8045F29C */ void setEventPrm();
/* 8045F428 */ int releaseBG();
/* 8045F478 */ int frontCheck();
/* 8045F520 */ int getDemoAction();
/* 8045F568 */ int demoProc();
/* 8045F8A4 */ void setStart(f32, f32);
/* 8045F94C */ void setAngle();
/* 8045F968 */ int adjustmentProc();
/* 8045FA98 */ int openInit(int);
/* 8045FBF8 */ int openProc(int);
/* 8045FCA4 */ int openEnd(int);
/* 8045FDF8 */ void initOpenDemo();
/* 8045FE68 */ void startDemoProc();
/* 8045FF08 */ int actionWait();
/* 8045FFB0 */ int actionSpecialDemo();
/* 8046002C */ int actionDemo();
/* 804600C0 */ int actionTalk();
/* 8046012C */ int actionTalkWait();
/* 804601D4 */ int actionTalkOpen();
/* 8046027C */ int actionInit();
/* 804602D8 */ int actionDead();
/* 804602E0 */ int execute();
/* 8046045C */ int draw();
/* 80460550 */ int Delete();
void setAction(u8 action) { mAction = action; }
void offFlag(u16 flag) { field_0x60c &= ~flag; }
void onFlag(u16 flag) { field_0x60c |= flag; }
int checkFlag(u16 flag) { return field_0x60c & flag; }
private:
/* 0x568 */ request_of_phase_process_class mPhase1;
/* 0x570 */ request_of_phase_process_class mPhase2;
/* 0x578 */ J3DModel* mModel1;
/* 0x57C */ mDoExt_bckAnm field_0x57c;
/* 0x598 */ J3DModel* mModel2;
/* 0x59C */ s8 mJoint;
/* 0x5A0 */ dBgW* field_0x5a0;
/* 0x5A4 */ s16 field_0x5a4[7];
/* 0x5B2 */ u8 field_0x5b2[7];
/* 0x5B9 */ u8 field_0x5b9;
/* 0x5BA */ u16 field_0x5ba;
/* 0x5BC */ int field_0x5bc;
/* 0x5C0 */ dMsgFlow_c field_0x5c0;
/* 0x60C */ u16 field_0x60c;
/* 0x60E */ u8 mAction;
/* 0x60F */ u8 field_0x60f;
/* 0x610 */ s16 field_0x610;
/* 0x612 */ s16 field_0x612;
/* 0x614 */ s16 field_0x614;
};
STATIC_ASSERT(sizeof(daKnob20_c) == 0x618);
class knob_param_c {
public:
/* 8045E858 */ static u32 getDoorModel(fopAc_ac_c*);
/* 8045E864 */ static u32 getDoorLightInf(fopAc_ac_c*);
/* 8045E870 */ static u16 getMsgNo(fopAc_ac_c*);
/* 8045E87C */ static u8 getExitNo(fopAc_ac_c*);
};
#endif /* D_A_DOOR_KNOB00_H */
+160
View File
@@ -0,0 +1,160 @@
#ifndef D_A_DOOR_MBOSSL1_H
#define D_A_DOOR_MBOSSL1_H
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
#include "SSystem/SComponent/c_phase.h"
#include "d/d_bg_w.h"
#include "d/d_bg_s_acch.h"
class dDoor_stop2_c {
public:
/* 806728B4 */ void calcMtx(fopAc_ac_c*);
/* 80672970 */ void closeInit(fopAc_ac_c*, u8);
/* 80672AE4 */ int closeProc(fopAc_ac_c*);
/* 80672B70 */ void openInit(fopAc_ac_c*, u8);
/* 80672CD8 */ int openProc(fopAc_ac_c*);
/* 80672D80 */ int create(J3DModelData*);
/* 80672DCC */ void draw(fopAc_ac_c*);
/* 80672E44 */ f32 getHeight();
/* 0x0 */ J3DModel* mModel;
/* 0x4 */ f32 field_0x4;
/* 0x8 */ u8 field_0x8;
/* 0x9 */ u8 field_0x9;
/* 0xA */ u8 field_0xa;
/* 0xB */ u8 field_0xb;
};
/**
* @ingroup actors-doors
* @class daMBdoorL1_c
* @brief Mini Boss Door
*
* @details Multi-purpose door actor. This actor is used for mini boss doors in the game.
*
*/
class daMBdoorL1_c : public fopAc_ac_c {
public:
enum DoorType {
DOOR_TYPE_0,
DOOR_TYPE_1,
DOOR_TYPE_2,
};
enum ActionType {
ACTION_INIT,
ACTION_START_DEMO,
ACTION_WAIT,
ACTION_CLOSE_WAIT,
ACTION_OPEN,
ACTION_DEMO,
ACTION_STOP_CLOSE,
};
typedef int (daMBdoorL1_c::*actionFunc)();
/* 80672E70 */ char* getAnmArcName();
/* 80672EE8 */ char* getArcName();
/* 80672F74 */ char* getAlwaysArcName();
/* 80672F84 */ int getDoorType();
/* 80672FE4 */ char* getOpenAnm();
/* 80673048 */ char* getCloseAnm();
/* 806730AC */ char* getBmd();
/* 80673100 */ char* getBtk();
/* 80673110 */ char* getDzb();
/* 80673140 */ J3DModelData* getDoorModelData();
/* 80673164 */ int CreateHeap();
/* 806735F8 */ void calcMtx();
/* 80673790 */ int createKey();
/* 806738CC */ int CreateInit();
/* 80673B9C */ int create();
/* 80673E78 */ int getDemoAction();
/* 80673EC0 */ void demoProc();
/* 80674AF4 */ int openInit();
/* 80674DA4 */ int openProc();
/* 80674FDC */ int openEnd();
/* 80675068 */ int closeInit();
/* 806752BC */ int closeProc();
/* 80675304 */ int closeEnd();
/* 806753CC */ int unlockInit();
/* 80675414 */ int unlock();
/* 80675470 */ int openInitKnob(int);
/* 80675678 */ int openProcKnob(int);
/* 80675734 */ int openEndKnob(int);
/* 80675894 */ void calcGoal(cXyz*, int);
/* 806759E4 */ int setAngle();
/* 80675ADC */ void setAngleQuickly();
/* 80675B30 */ int adjustmentProc();
/* 80675DB0 */ void setPos();
/* 80675EE4 */ void setStart(f32, f32);
/* 80676004 */ void smokeInit2();
/* 806760B4 */ int checkArea();
/* 806762A4 */ int checkFront();
/* 80676308 */ int checkOpen();
/* 806764D0 */ int checkFrontKey();
/* 80676568 */ int checkBackKey();
/* 80676570 */ int checkFrontStop();
/* 80676610 */ int checkBackStop();
/* 806766B0 */ int checkFrontSw();
/* 80676744 */ int checkBackSw();
/* 806767D8 */ int checkStopOpen();
/* 8067684C */ int startDemoEnd();
/* 806769A4 */ int checkMBossRoom();
/* 806769D0 */ int checkStopClose();
/* 80676AB4 */ int checkMakeStop();
/* 80676B64 */ int checkMakeKey();
/* 80676BE0 */ int actionWait();
/* 80676BE8 */ int actionCloseWait();
/* 80676DEC */ int actionStopClose();
/* 80676E40 */ int actionDemo();
/* 80676EB4 */ int actionOpen();
/* 80676ED8 */ int actionInit();
/* 80676FE4 */ int actionStartDemo();
/* 80677050 */ int execute();
/* 80677158 */ int draw();
/* 806771B4 */ void draw_sub0();
/* 806772C4 */ void draw_sub1();
/* 806773DC */ int Delete();
void setAction(u8 action) {
mAction = action;
}
private:
/* 0x568 */ request_of_phase_process_class mPhase1;
/* 0x570 */ request_of_phase_process_class mPhase2;
/* 0x578 */ request_of_phase_process_class mPhase3;
/* 0x580 */ J3DModel* mModels[2];
/* 0x588 */ mDoExt_bckAnm* mBckAnms[2];
/* 0x590 */ mDoExt_bckAnm* field_0x590;
/* 0x594 */ mDoExt_btkAnm* field_0x594;
/* 0x598 */ dBgW* field_0x598;
/* 0x59C */ Mtx field_0x59c;
/* 0x5CC */ u8 mAction;
/* 0x5CD */ u8 field_0x5cd;
/* 0x5CE */ s16 field_0x5ce;
/* 0x5D0 */ s16 field_0x5d0;
/* 0x5D2 */ s16 field_0x5d2;
/* 0x5D4 */ s16 field_0x5d4[4];
/* 0x5DC */ u8 field_0x5dc;
/* 0x5DE */ u8 field_0x5dd;
/* 0x5DE */ u8 field_0x5de;
/* 0x5DF */ u8 field_0x5df;
/* 0x5E0 */ u8 field_0x5e0;
/* 0x5E1 */ u8 field_0x5e1;
/* 0x5E4 */ u32 field_0x5e4;
/* 0x5E8 */ u32 field_0x5e8;
/* 0x5EC */ int field_0x5ec;
/* 0x5F0 */ u32 mStopperId;
/* 0x5F4 */ s32 mKeyHoleId;
/* 0x5F8 */ dDoor_stop2_c mDoorStop;
/* 0x604 */ dBgS_ObjAcch field_0x604;
/* 0x81C */ dBgS_AcchCir field_0x7dc;
/* 0x81C */ cXyz field_0x81c;
/* 0x828 */ cXyz field_0x828;
};
STATIC_ASSERT(sizeof(daMBdoorL1_c) == 0x834);
#endif /* D_A_DOOR_MBOSSL1_H */
+80
View File
@@ -0,0 +1,80 @@
#ifndef D_A_DOOR_PUSH_H
#define D_A_DOOR_PUSH_H
#include "d/actor/d_a_player.h"
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_com_inf_game.h"
/**
* @ingroup actors-doors
* @class daDoorPush_c
* @brief Push Door
*
* @details
*
*/
class daDoorPush_c : public dBgS_MoveBgActor {
public:
enum act_e {
WAIT_e,
OPEN_e,
SCENE_CHG_e,
};
enum action_e {
ACTION_OPEN_WAIT_e = 1,
ACTION_ORDER_EVENT_e,
};
/* 80677E08 */ void initBaseMtx();
/* 80677F38 */ void setBaseMtx();
/* 8067809C */ int Create();
/* 806781FC */ int CreateHeap();
/* 80678318 */ int create1st();
/* 8067839C */ int Execute(Mtx**);
/* 8067840C */ void action();
/* 80678488 */ void init_modeWait();
/* 806784B4 */ void modeWait();
/* 80678664 */ void event_proc_call();
/* 80678708 */ void actionOpenWait();
/* 8067877C */ void actionOrderEvent();
/* 806787F8 */ void actionEvent();
/* 80678818 */ int demoProc();
/* 80678AEC */ void rotateInit();
/* 80678B10 */ int rotate();
/* 80678BC0 */ void setGoal();
/* 80678C70 */ int Draw();
/* 80678D2C */ int Delete();
void setAction(u8 i_action) { mAction = i_action; }
u32 getSceneNo() { return fopAcM_GetParamBit(this, 4, 6); }
// private:
/* 0x5A0 */ request_of_phase_process_class mPhaseReq;
/* 0x5A8 */ J3DModel* mpModel[2];
/* 0x5B0 */ dBgW* mpDoorBgW;
/* 0x5B4 */ Mtx mDoorMtx;
/* 0x5E4 */ Mtx mActorMtx;
/* 0x614 */ cXyz mXyz[2];
/* 0x62C */ u8 field_0x62c[2];
/* 0x62E */ u8 field_0x62e[2];
/* 0x630 */ s16 field_0x630[2];
/* 0x634 */ s16 field_0x634[2];
/* 0x638 */ u8 field_0x638;
/* 0x639 */ u8 mIndex;
/* 0x63A */ s16 field_0x63a[2];
/* 0x63E */ u8 field_0x63e[2];
/* 0x640 */ u8 mAction;
/* 0x641 */ u8 field_0x641;
/* 0x644 */ s32 field_0x644;
/* 0x648 */ u8 field_0x648;
/* 0x649 */ u8 field_0x649;
/* 0x64A */ s16 field_0x64a;
/* 0x64C */ s16 field_0x64c;
/* 0x64E */ s16 field_0x64e[2];
/* 0x654 */ cXyz mPosition;
};
STATIC_ASSERT(sizeof(daDoorPush_c) == 0x660);
#endif /* D_A_DOOR_PUSH_H */
+174
View File
@@ -0,0 +1,174 @@
#ifndef D_A_DOOR_SHUTTER_H
#define D_A_DOOR_SHUTTER_H
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
#include "SSystem/SComponent/c_phase.h"
#include "d/d_bg_w.h"
#include "d/d_msg_flow.h"
#include "d/d_bg_s_acch.h"
struct daDoor20_c;
class dDoor_stop_c {
public:
/* 804660F4 */ void calcMtx(daDoor20_c*);
/* 804661B0 */ void closeInit(daDoor20_c*);
/* 804662C0 */ int closeProc(daDoor20_c*);
/* 8046634C */ void openInit(daDoor20_c*);
/* 80466458 */ int openProc(daDoor20_c*);
/* 804664E8 */ int create(daDoor20_c*);
/* 80466538 */ void draw(daDoor20_c*);
J3DModel* field_0x0;
f32 field_0x4;
u8 field_0x8;
u8 field_0x9;
u8 field_0xa;
u8 field_0xb;
};
/**
* @ingroup actors-doors
* @class daDoor20_c
* @brief Sliding Door
*
* @details Multi-purpose door actor. This actor is used for vertical sliding doors in the game.
*
*/
class daDoor20_c : public fopAc_ac_c {
public:
enum ActionType {
ACTION_INIT,
ACTION_WAIT,
ACTION_STOP_CLOSE,
ACTION_DEMO,
};
/* 80460B38 */ char* getStopBmdName();
/* 80460B70 */ J3DModelData* getStopModelData();
/* 80460B94 */ char* getAlwaysArcName();
/* 80460BA4 */ char* getArcName();
/* 80460C40 */ char* getBmdName();
/* 80460CF0 */ char* getBtk();
/* 80460D5C */ J3DModelData* getModelData();
/* 80460D80 */ f32 getSize2X();
/* 80460DAC */ int CreateHeap();
/* 8046129C */ void setEventPrm();
/* 804616EC */ int checkOpenMsgDoor(int*);
/* 8046178C */ int adjustmentAngle();
/* 80461874 */ int adjustmentProc();
/* 80461A44 */ void setAngle();
/* 80461A60 */ void openInit_0();
/* 80461D24 */ void openInit_1();
/* 80461EC4 */ int openInit(int);
/* 80461F60 */ int openProc(int);
/* 804622A8 */ void openEnd_0();
/* 804622AC */ void openEnd_1();
/* 80462328 */ int openEnd(int);
/* 80462398 */ void closeInit_0();
/* 8046266C */ void closeInit_1();
/* 80462738 */ int closeInit(int);
/* 804627C4 */ int closeProc(int);
/* 804627E8 */ void closeEnd_0();
/* 804627EC */ void closeEnd_1();
/* 80462868 */ int closeEnd(int);
/* 80462928 */ void openInit2();
/* 80462A1C */ void closeEnd2();
/* 80462A5C */ void calcMtx_2();
/* 80462B58 */ void calcMtx();
/* 80462C2C */ int CreateInit();
/* 80462EB4 */ void setKey();
/* 80462F2C */ int create();
/* 80462FE0 */ int demoProc();
/* 80463E30 */ int orderStopEvent();
/* 80463FBC */ int actionWait();
/* 80464118 */ int actionStopClose();
/* 8046416C */ int actionDemo();
/* 804641EC */ int actionInit();
/* 80464240 */ int execute();
/* 804643B0 */ int draw();
/* 80464638 */ void setDoorAngleSpec();
/* 804647BC */ int _delete();
/* 80464858 */ int createKey();
/* 80464AE4 */ int deleteKey();
/* 80464B3C */ int adjoinPlayer();
/* 80464BD8 */ int frontCheckOld();
/* 80464C68 */ int frontCheck();
/* 80464CEC */ int drawCheck(int);
/* 80464E18 */ int checkExecute();
/* 80464EC4 */ void startDemoProc();
/* 80464F64 */ void makeEventId();
/* 804653B0 */ void initProc();
/* 80465400 */ void initOpenDemo(int);
/* 80465490 */ int checkArea(f32, f32, f32);
/* 80465620 */ void openInitCom(int);
/* 804656F0 */ void closeEndCom();
/* 8046581C */ void getRestartPos(cXyz*);
/* 80465960 */ void setGoal();
/* 80465AC0 */ int chkMakeStop();
/* 80465B34 */ int chkStopF();
/* 80465C04 */ int chkStopB();
/* 80465CC0 */ void setStopDemo();
/* 80465DA8 */ int chkStopClose();
/* 80465E8C */ void setStop();
/* 80465F20 */ int chkStopOpen();
/* 8046609C */ int chkMakeKey();
/* 80460D00 */ virtual char* getDzbName();
/* 80465918 */ virtual int getDemoAction();
void onFlag(u16 flag) { field_0x68e |= flag; }
void offFlag(u16 flag) { field_0x68e &= ~flag; }
bool checkFlag(u16 flag) { return field_0x68e & flag; }
void setAction(u8 action) { mAction = action; }
private:
/* 0x56C */ request_of_phase_process_class mPhase1;
/* 0x574 */ request_of_phase_process_class mPhase2;
/* 0x57C */ J3DModel* mModel1;
/* 0x580 */ J3DModel* mModel2;
/* 0x584 */ mDoExt_bckAnm field_0x584;
/* 0x5A0 */ mDoExt_bckAnm field_0x5a0;
/* 0x5BC */ J3DModel* field_0x5bc;
/* 0x5C0 */ mDoExt_btkAnm* field_0x5c0;
/* 0x5C4 */ dBgW* field_0x5c4;
/* 0x5C8 */ s8 field_0x5c8;
/* 0x5C9 */ bool field_0x5c9;
/* 0x5CA */ u8 field_0x5ca[0x5dd - 0x5ca];
/* 0x5DD */ u8 field_0x5dd;
/* 0x5E0 */ cXyz field_0x5e0;
/* 0x5EC */ u32 field_0x5ec;
/* 0x5F0 */ bool field_0x5f0;
/* 0x5F1 */ u8 field_0x5f1;
/* 0x5F4 */ Mtx field_0x5f4;
/* 0x624 */ dMsgFlow_c field_0x624;
/* 0x670 */ s16 field_0x670;
/* 0x672 */ bool field_0x672;
/* 0x673 */ u8 field_0x673;
/* 0x674 */ u8 field_0x674;
/* 0x678 */ int field_0x678;
/* 0x67C */ u8 field_0x67c;
/* 0x67D */ s8 field_0x67d;
/* 0x67E */ u8 field_0x67e;
/* 0x67F */ u8 field_0x67f;
/* 0x680 */ cXyz field_0x680;
/* 0x68C */ u8 field_0x68c;
/* 0x68D */ u8 field_0x68d;
/* 0x68E */ u16 field_0x68e;
/* 0x690 */ u8 mAction;
/* 0x691 */ u8 field_0x691;
/* 0x692 */ s16 field_0x692[19];
/* 0x6B8 */ u8 field_0x6b8[19];
/* 0x6CB */ u8 field_0x6cb;
/* 0x6CC */ u32 field_0x6cc;
/* 0x6D0 */ dDoor_stop_c mDoorStop;
/* 0x6DC */ s16 field_0x6dc;
/* 0x6DE */ dBgS_ObjAcch field_0x6de;
/* 0x8B8 */ dBgS_AcchCir field_0x8b8;
/* 0x8F8 */ u32 field_0x8f8;
};
STATIC_ASSERT(sizeof(daDoor20_c) == 0x8FC);
#endif /* D_A_DOOR_SHUTTER_H */
+6
View File
@@ -0,0 +1,6 @@
#ifndef D_A_DOOR_SPIRAL_H
#define D_A_DOOR_SPIRAL_H
#include "dolphin/types.h"
#endif /* D_A_DOOR_SPIRAL_H */
+86
View File
@@ -0,0 +1,86 @@
#ifndef D_A_DSHUTTER_H
#define D_A_DSHUTTER_H
#include "d/d_bg_s_movebg_actor.h"
#include "d/d_com_inf_game.h"
/**
* @ingroup actors-unsorted
* @class daDsh_c
* @brief Death Sword Shutter Gate
*
* @details
*
*/
class daDsh_c : public dBgS_MoveBgActor {
public:
class action_c {
public:
typedef int (daDsh_c::*actionFunc)();
/* action_c(actionFunc i_initFunc, actionFunc i_execFunc) {
mInitFunc = i_initFunc;
mExecuteFunc = i_execFunc;
} */
actionFunc& getInit() { return mInitFunc; }
actionFunc& getExecute() { return mExecuteFunc; }
/* 0x0 */ actionFunc mInitFunc;
/* 0xC */ actionFunc mExecuteFunc;
};
/* 80467498 */ ~daDsh_c();
/* 80467694 */ void setMtx();
/* 80467708 */ void setAction(daDsh_c::action_c*);
/* 8046772C */ int callInit();
/* 8046777C */ int callExecute();
/* 804677D4 */ int initOpenWait();
/* 804677E4 */ int executeOpenWait();
/* 80467840 */ int initOpen();
/* 80467988 */ int executeOpen();
/* 80467A64 */ int initCloseWait();
/* 80467A80 */ int executeCloseWait();
/* 80467ADC */ int initClose();
/* 80467B04 */ int executeClose();
/* 8046751C */ virtual int CreateHeap();
/* 80467640 */ virtual int Execute(f32 (**)[3][4]);
/* 8046759C */ virtual int Draw();
inline int create();
u8 getType() { return (fopAcM_GetParam(this) >> 8) & 0xF; }
int getSw() { return fopAcM_GetParam(this) & 0xFF; }
u8 getOpenTiltTime() { return 0; }
f32 getOpenAccel() { return OPEN_ACCEL; }
f32 getOpenSpeed() { return OPEN_SPEED; }
f32 getOpenBoundSpeed() { return OPEN_BOUND_SPEED; }
f32 getOpenBoundRatio() { return OPEN_BOUND_RATIO; }
u8 getCloseTiltTime() { return 0; }
f32 getCloseAccel() { return CLOSE_ACCEL; }
f32 getCloseSpeed() { return CLOSE_SPEED; }
f32 getCloseBoundSpeed() { return CLOSE_BOUND_SPEED; }
f32 getCloseBoundRatio() { return CLOSE_BOUND_RATIO; }
static f32 OPEN_SIZE;
static f32 OPEN_ACCEL;
static f32 OPEN_SPEED;
static f32 OPEN_BOUND_SPEED;
static f32 OPEN_BOUND_RATIO;
static f32 CLOSE_ACCEL;
static f32 CLOSE_SPEED;
static f32 CLOSE_BOUND_SPEED;
static f32 CLOSE_BOUND_RATIO;
/* 0x5A0 */ dComIfG_resLoader_c mResLoader;
/* 0x5B0 */ J3DModel* mpModel;
/* 0x5B4 */ action_c* mpAction;
/* 0x5B8 */ s16 mTiltTime;
/* 0x5BA */ u8 mSw;
/* 0x5BB */ u8 mType;
};
#endif /* D_A_DSHUTTER_H */
+48
View File
@@ -0,0 +1,48 @@
#ifndef D_A_E_AI_H
#define D_A_E_AI_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_ai_class
* @brief Armos
*
* @details
*
*/
class e_ai_class : public fopEn_enemy_c {
/* 806791BC */ void initCcCylinder();
/* 80679284 */ void setCcCylinder();
/* 80679350 */ void anm_init(int, f32, u8, f32);
/* 806793FC */ void Draw();
/* 806794F4 */ void player_way_check();
/* 80679538 */ void other_bg_check(fopAc_ac_c*);
/* 80679610 */ void pl_check(f32, s16);
/* 8067968C */ void damage_check();
/* 80679DC8 */ void e_ai_damage();
/* 8067A2CC */ void e_ai_attack();
/* 8067A54C */ void e_ai_move();
/* 8067AA48 */ void e_ai_wait();
/* 8067ACA0 */ void e_ai_return();
/* 8067B024 */ void action();
/* 8067B2B0 */ void PlayerWaySet();
/* 8067B31C */ void AttentionSet();
/* 8067B378 */ void Execute();
/* 8067B598 */ void setBaseMtx();
/* 8067B620 */ void Delete();
/* 8067B6F0 */ void CreateHeap();
/* 8067B8E4 */ void Create();
/* 8067BAEC */ e_ai_class();
private:
/* 0x5ac */ u8 field_0x5ac[0xd44 - 0x5ac];
};
STATIC_ASSERT(sizeof(e_ai_class) == 0xd44);
class daE_AI_HIO_c {
/* 8067916C */ daE_AI_HIO_c();
/* 8067BF40 */ ~daE_AI_HIO_c();
};
#endif /* D_A_E_AI_H */
+61
View File
@@ -0,0 +1,61 @@
#ifndef D_A_E_ARROW_H
#define D_A_E_ARROW_H
#include "d/d_com_inf_game.h"
enum e_arrow_action {
ACTION_ARROW_SHOT,
ACTION_ARROW_BG,
ACTION_ARROW_SPIN,
ACTION_ARROW_SHIELD,
ACTION_ARROW_FIRE,
ACTION_ARROW_BOUND,
};
enum e_arrow_type {
ARROW_TYPE_NORMAL,
ARROW_TYPE_FIRE,
ARROW_TYPE_BOMB,
};
/**
* @ingroup actors-enemies
* @class e_arrow_class
* @brief Enemy Arrow
*
* @details
*
*/
class e_arrow_class : public fopEn_enemy_c {
public:
/* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x5B4 */ J3DModel* mpModel;
/* 0x5B8 */ u8 mArrowType;
/* 0x5B9 */ u8 mFlags;
/* 0x5BC */ char* mResName;
/* 0x5C0 */ s16 field_0x5c0;
/* 0x5C2 */ s16 mAction;
/* 0x5C4 */ s16 mMode;
/* 0x5C6 */ s16 mTimers[4];
/* 0x5CE */ s16 field_0x5ce;
/* 0x5D0 */ f32 field_0x5d0;
/* 0x5D4 */ f32 field_0x5d4;
/* 0x5D8 */ cXyz field_0x5d8;
/* 0x5E4 */ dCcD_Stts mCcStts;
/* 0x620 */ dCcD_Sph mCcAtSph;
/* 0x758 */ dCcD_Sph mCcTgSph;
/* 0x890 */ dCcD_Sph mCcFireEffSph;
/* 0x9C8 */ cXyz field_0x9c8;
/* 0x9D4 */ cXyz field_0x9d4;
/* 0x9E0 */ u32 mStickSmokeEMKey;
/* 0x9E4 */ u32 mFireEMKeys[2];
/* 0x9EC */ u32 field_0x9ec;
/* 0x9F0 */ u32 field_0x9f0[4];
/* 0xA00 */ cXyz field_0xa00;
/* 0xA0C */ s16 field_0xa0c;
/* 0xA10 */ f32 field_0xa10;
/* 0xA14 */ u8 field_0xa14;
/* 0xA18 */ Z2SoundObjArrow mSound;
};
#endif /* D_A_E_ARROW_H */
+117
View File
@@ -0,0 +1,117 @@
#ifndef D_A_E_BA_H
#define D_A_E_BA_H
#include "Z2AudioLib/Z2Creature.h"
#include "f_op/f_op_actor_mng.h"
#include "d/d_cc_d.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_uty.h"
#include "d/d_path.h"
/**
* @ingroup actors-enemies
* @class e_ba_class
* @brief Keese
*
* @details
*
*/
class e_ba_class : public fopEn_enemy_c {
public:
enum Type {
/* 0 */ TYPE_NORMAL,
/* 1 */ TYPE_FIRE,
/* 2 */ TYPE_ICE,
};
enum HomeType {
/* 0 */ HOME_ROOF,
/* 1 */ HOME_FLY,
/* 2 */ HOME_APPEAR,
};
enum Action {
/* 0x0 */ ACT_ROOF,
/* 0x1 */ ACT_FIGHT_FLY,
/* 0x2 */ ACT_FIGHT,
/* 0x3 */ ACT_ATTACK,
/* 0x4 */ ACT_RETURN,
/* 0x5 */ ACT_FLY,
/* 0x6 */ ACT_PATH_FLY,
/* 0xA */ ACT_CHANCE = 10,
/* 0xD */ ACT_WOLFBITE = 13,
/* 0xE */ ACT_WIND,
/* 0xF */ ACT_APPEAR,
};
enum Animation {
/* 0x4 */ ANM_APPEAR = 4,
/* 0x5 */ ANM_DEAD,
/* 0x6 */ ANM_FLY,
/* 0x7 */ ANM_FURA2,
/* 0x8 */ ANM_HOLDWAIT,
/* 0x9 */ ANM_HOVERING,
/* 0xA */ ANM_WAIT,
};
/* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x5B4 */ u8 mHomeType;
/* 0x5B5 */ u8 mDistanceParam;
/* 0x5B6 */ u8 mType;
/* 0x5B7 */ u8 mPathIndex;
/* 0x5B8 */ char* mArcName;
/* 0x5BC */ u8 field_0x5bc;
/* 0x5BD */ s8 mPathPoint;
/* 0x5BE */ s8 mPathStep;
/* 0x5C0 */ dPath* mpPath;
/* 0x5C4 */ mDoExt_McaMorfSO* mpMorf;
/* 0x5C8 */ Z2CreatureEnemy mCreatureSound;
/* 0x66C */ int mAnm;
/* 0x670 */ s16 mCounter;
/* 0x672 */ s16 mAction;
/* 0x674 */ s16 mMode;
/* 0x678 */ cXyz mTargetPos;
/* 0x684 */ s16 mPlayerAngleY;
/* 0x688 */ f32 mPlayerDistanceXZ;
/* 0x68C */ f32 mFightFlyDistance;
/* 0x690 */ f32 mSpeedRatio;
/* 0x694 */ f32 mBaseAngleSpeed;
/* 0x698 */ f32 mKnockbackSpeed;
/* 0x69C */ s16 mKnockbackAngle;
/* 0x69E */ csXyz mChanceAngle;
/* 0x6A4 */ bool mIsDying;
/* 0x6A6 */ s16 mTimer[4];
/* 0x6AE */ s16 mIFrames;
/* 0x6B0 */ cXyz field_0x6b0;
/* 0x6BC */ cXyz mWindOffset;
/* 0x6C8 */ s16 mWindSpinSpeed;
/* 0x6CC */ dBgS_AcchCir mAcchCir;
/* 0x70C */ dBgS_ObjAcch mAcch;
/* 0x8E4 */ dCcD_Stts mStts;
/* 0x920 */ dCcD_Sph mSph;
/* 0xA58 */ dCcU_AtInfo mAtInfo;
/* 0xA7C */ u32 mSmokeKey1;
/* 0xA80 */ u32 mSmokeKey2;
/* 0xA84 */ u32 mParticleKey[4];
/* 0xA94 */ u8 field_0xa94[0xc];
/* 0xAA0 */ bool mHIOInit;
};
STATIC_ASSERT(sizeof(e_ba_class) == 0xAA4);
class daE_BA_HIO_c {
public:
/* 8067ECEC */ daE_BA_HIO_c();
/* 80681F00 */ virtual ~daE_BA_HIO_c() {}
/* 0x04 */ s8 field_0x04;
/* 0x08 */ f32 mScale;
/* 0x0C */ f32 mFlySpeed;
/* 0x10 */ f32 mFightDistance;
/* 0x14 */ f32 mFightSpeed;
/* 0x18 */ f32 mAttackSpeed;
};
STATIC_ASSERT(sizeof(daE_BA_HIO_c) == 0x1C);
#endif /* D_A_E_BA_H */
+92
View File
@@ -0,0 +1,92 @@
#ifndef D_A_E_BEE_H
#define D_A_E_BEE_H
#include "f_op/f_op_actor.h"
#include "SSystem/SComponent/c_phase.h"
#include "Z2AudioLib/Z2Creature.h"
#include "d/d_cc_d.h"
struct bee_s {
enum Action {
/* 0x0 */ ACT_DEAD,
/* 0x1 */ ACT_FLY,
/* 0x2 */ ACT_FLY_HOME_A,
/* 0x3 */ ACT_FLY_HOME_B,
/* 0x4 */ ACT_FAIL,
/* 0x5 */ ACT_START,
/* 0xA */ ACT_HOME = 10,
};
/* 80685368 */ bee_s() {}
/* 806852FC */ ~bee_s() {}
/* 0x00 */ J3DModel* mpModel1;
/* 0x04 */ J3DModel* mpModel2;
/* 0x08 */ J3DModel* mpModel3;
/* 0x0C */ J3DModel* mpModel4;
/* 0x10 */ cXyz mPos;
/* 0x1C */ cXyz mTarget;
/* 0x28 */ cXyz mSpeed;
/* 0x34 */ csXyz mAngle;
/* 0x3C */ f32 mSpeedF;
/* 0x40 */ f32 mScale;
/* 0x44 */ f32 mStartDistance;
/* 0x48 */ s16 mCounter;
/* 0x4A */ s16 mHomeTimer;
/* 0x4C */ s8 mAction;
/* 0x4D */ s8 mMode;
/* 0x4E */ s8 mIsFlying;
/* 0x4F */ u8 mTimer;
/* 0x50 */ bool mNoDraw;
/* 0x54 */ Z2SoundObjSimple mSound;
};
STATIC_ASSERT(sizeof(bee_s) == 0x74);
/**
* @ingroup actors-enemies
* @class e_bee_class
* @brief Bee
*
* @details
*
*/
class e_bee_class : public fopAc_ac_c {
public:
/* 0x0568 */ request_of_phase_process_class mPhase;
/* 0x0570 */ u8 mParam0;
/* 0x0571 */ u8 mParam1;
/* 0x0572 */ u8 mParam2;
/* 0x0574 */ Z2SoundObjBeeGroup mSound;
/* 0x0594 */ s16 mCounter;
/* 0x0596 */ u8 unused_0x596[4];
/* 0x059A */ s16 mTimers[2];
/* 0x059E */ u8 mCcSetTimer;
/* 0x059F */ u8 mHomeTimer;
/* 0x05A0 */ bee_s mBees[0x40];
/* 0x22A0 */ int mNumBees;
/* 0x22A4 */ u8 unused_0x22a4[0x30];
/* 0x22D4 */ dCcD_Stts mCcStts;
/* 0x2310 */ dCcD_Cyl mCcCyl;
/* 0x244C */ dCcD_Sph mCcSph;
/* 0x2584 */ s16 mBoomerangAngle;
/* 0x2586 */ bool mHIOInit;
/* 0x2587 */ bool mResLoaded;
};
STATIC_ASSERT(sizeof(e_bee_class) == 0x2588);
class daE_Bee_HIO_c {
public:
/* 8068286C */ daE_Bee_HIO_c();
/* 8068539C */ virtual ~daE_Bee_HIO_c() {}
/* 0x4 */ s8 field_0x4;
/* 0x8 */ f32 mScale;
/* 0xC */ bool mDelete;
/* 0xD */ bool mNoKill;
};
STATIC_ASSERT(sizeof(daE_Bee_HIO_c) == 0x10);
#endif /* D_A_E_BEE_H */
+51
View File
@@ -0,0 +1,51 @@
#ifndef D_A_E_BG_H
#define D_A_E_BG_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_BG_c
* @brief Bomb Fish
*
* @details
*
*/
class daE_BG_c : public fopEn_enemy_c {
/* 8068585C */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 80685948 */ void JointCallBack(J3DJoint*, int);
/* 80685994 */ void draw();
/* 80685B70 */ void setBck(int, u8, f32, f32);
/* 80685C14 */ void setActionMode(int, int);
/* 80685C2C */ void damage_check();
/* 80685DBC */ void setSparkEffect();
/* 80685F04 */ void search_esa();
/* 80685F88 */ void executeBorn();
/* 80686210 */ void executeSwim();
/* 80686C90 */ void executeAttack();
/* 80687B38 */ void executeDamage();
/* 80687CD8 */ void setBombCarry(int);
/* 80687DEC */ void executeBomb();
/* 80687FC4 */ void executeBirth();
/* 8068838C */ void executeHook();
/* 806883D0 */ void executeEat();
/* 80689168 */ void action();
/* 80689544 */ void mtx_set();
/* 8068966C */ void cc_set();
/* 806897EC */ void execute();
/* 80689978 */ void _delete();
/* 80689A0C */ void CreateHeap();
/* 80689C38 */ void create();
private:
/* 0x5ac */ u8 field_0x5ac[0xbbc - 0x5ac];
};
STATIC_ASSERT(sizeof(daE_BG_c) == 0xbbc);
class daE_BG_HIO_c {
/* 8068580C */ daE_BG_HIO_c();
/* 8068A19C */ ~daE_BG_HIO_c();
};
#endif /* D_A_E_BG_H */
+26
View File
@@ -0,0 +1,26 @@
#ifndef D_A_E_BI_H
#define D_A_E_BI_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_bi_class
* @brief Bomb Insect
*
* @details
*
*/
class e_bi_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0xc00 - 0x5ac];
};
STATIC_ASSERT(sizeof(e_bi_class) == 0xc00);
class daE_BI_HIO_c {
/* 8068A5EC */ daE_BI_HIO_c();
/* 8068D2DC */ ~daE_BI_HIO_c();
};
#endif /* D_A_E_BI_H */
+24
View File
@@ -0,0 +1,24 @@
#ifndef D_A_E_BI_LEAF_H
#define D_A_E_BI_LEAF_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_bi_leaf_class
* @brief Bomb Insect - Leaf
*
* @details
*
*/
class e_bi_leaf_class : public fopEn_enemy_c {
public:
/* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x5B4 */ u8 field_0x5b4;
/* 0x5B8 */ J3DModel* mpModel;
/* 0x5BC */ s16 mAction;
/* 0x5BE */ s16 mTimer;
/* 0x5C0 */ u8 field_0x5c0[0x5D0 - 0x5C0];
};
#endif /* D_A_E_BI_LEAF_H */
+26
View File
@@ -0,0 +1,26 @@
#ifndef D_A_E_BS_H
#define D_A_E_BS_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_bs_class
* @brief Stalkin
*
* @details
*
*/
class e_bs_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0xcfc - 0x5ac];
};
STATIC_ASSERT(sizeof(e_bs_class) == 0xcfc);
class daE_BS_HIO_c {
/* 8068E12C */ daE_BS_HIO_c();
/* 8069091C */ ~daE_BS_HIO_c();
};
#endif /* D_A_E_BS_H */
+26
View File
@@ -0,0 +1,26 @@
#ifndef D_A_E_BU_H
#define D_A_E_BU_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_bu_class
* @brief Bubble
*
* @details
*
*/
class e_bu_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0xaa4 - 0x5ac];
};
STATIC_ASSERT(sizeof(e_bu_class) == 0xaa4);
class daE_BU_HIO_c {
/* 806911AC */ daE_BU_HIO_c();
/* 806941D4 */ ~daE_BU_HIO_c();
};
#endif /* D_A_E_BU_H */
+32
View File
@@ -0,0 +1,32 @@
#ifndef D_A_E_BUG_H
#define D_A_E_BUG_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_bug_class
* @brief Poison Mite
*
* @details
*
*/
class e_bug_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0x7db0 - 0x5ac];
};
STATIC_ASSERT(sizeof(e_bug_class) == 0x7db0);
class daE_Bug_HIO_c {
/* 80694B8C */ daE_Bug_HIO_c();
/* 80697BEC */ ~daE_Bug_HIO_c();
};
struct bug_s {
/* 80697B4C */ ~bug_s();
/* 80697BB8 */ bug_s();
};
#endif /* D_A_E_BUG_H */
+26
View File
@@ -0,0 +1,26 @@
#ifndef D_A_E_CR_H
#define D_A_E_CR_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_cr_class
* @brief Bombskit
*
* @details
*
*/
class e_cr_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0xa60 - 0x5ac];
};
STATIC_ASSERT(sizeof(e_cr_class) == 0xa60);
class daE_CR_HIO_c {
/* 8069800C */ daE_CR_HIO_c();
/* 806997F4 */ ~daE_CR_HIO_c();
};
#endif /* D_A_E_CR_H */
+21
View File
@@ -0,0 +1,21 @@
#ifndef D_A_E_CR_EGG_H
#define D_A_E_CR_EGG_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_cr_egg_class
* @brief Bombskit Egg
*
* @details
*
*/
class e_cr_egg_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0xa0c - 0x5ac];
};
STATIC_ASSERT(sizeof(e_cr_egg_class) == 0xa0c);
#endif /* D_A_E_CR_EGG_H */
+26
View File
@@ -0,0 +1,26 @@
#ifndef D_A_E_DB_H
#define D_A_E_DB_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_db_class
* @brief Deku Baba
*
* @details
*
*/
class e_db_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0x1270 - 0x5ac];
};
STATIC_ASSERT(sizeof(e_db_class) == 0x1270);
class daE_DB_HIO_c {
/* 8069AAEC */ daE_DB_HIO_c();
/* 806A13D8 */ ~daE_DB_HIO_c();
};
#endif /* D_A_E_DB_H */
+21
View File
@@ -0,0 +1,21 @@
#ifndef D_A_E_DB_LEAF_H
#define D_A_E_DB_LEAF_H
#include "d/d_com_inf_game.h"
#include "dolphin/types.h"
/**
* @ingroup actors-enemies
* @class e_db_leaf_class
* @brief Deku Baba - Leaf
*
* @details
*
*/
class e_db_leaf_class : public fopEn_enemy_c {
public:
/* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x5B4 */ mDoExt_McaMorf* mpMorf;
}; // Size: 0x5B8
#endif /* D_A_E_DB_LEAF_H */
+26
View File
@@ -0,0 +1,26 @@
#ifndef D_A_E_DD_H
#define D_A_E_DD_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_dd_class
* @brief Dodongo
*
* @details
*
*/
class e_dd_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0xe94 - 0x5ac];
};
STATIC_ASSERT(sizeof(e_dd_class) == 0xe94);
class daE_DD_HIO_c {
/* 806A226C */ daE_DD_HIO_c();
/* 806A6D08 */ ~daE_DD_HIO_c();
};
#endif /* D_A_E_DD_H */
+54
View File
@@ -0,0 +1,54 @@
#ifndef D_A_E_DF_H
#define D_A_E_DF_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_DF_c
* @brief Deku Flower
*
* @details
*
*/
class daE_DF_c : public fopEn_enemy_c {
/* 806A7710 */ void CreateHeap();
/* 806A7828 */ void initCcCylinder();
/* 806A78A0 */ void setCcCylinder();
/* 806A78D4 */ void SetAnm(int, int, f32, f32);
/* 806A7980 */ void CameraSet(f32);
/* 806A7B40 */ void DemoStart();
/* 806A7C3C */ void SetReleaseCam();
/* 806A7CE0 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 806A8030 */ void Link_Eat_Pos();
/* 806A8098 */ void Set_Angle(cXyz*);
/* 806A816C */ void Obj_Damage();
/* 806A8244 */ void DamageAction();
/* 806A8368 */ void BombEatAction();
/* 806A8790 */ void Spid_Out();
/* 806A8938 */ void LinkEatAction();
/* 806A8C80 */ void Mogu_Mogu();
/* 806A8D98 */ void ObjEatAction();
/* 806A8ED4 */ void EatAction();
/* 806A8F2C */ void SearchAction();
/* 806A91B4 */ void WaitAction();
/* 806A9254 */ void MissAction();
/* 806A9304 */ void Action();
/* 806A9384 */ void Execute();
/* 806A949C */ void Yazirushi();
/* 806A94E0 */ void Draw();
/* 806A9550 */ void Delete();
/* 806A95B8 */ void setBaseMtx();
/* 806A9678 */ void Create();
private:
/* 0x5ac */ u8 field_0x5ac[0x838 - 0x5ac];
};
STATIC_ASSERT(sizeof(daE_DF_c) == 0x838);
class daE_DF_HIO_c {
/* 806A76EC */ daE_DF_HIO_c();
/* 806A9A84 */ ~daE_DF_HIO_c();
};
#endif /* D_A_E_DF_H */
+53
View File
@@ -0,0 +1,53 @@
#ifndef D_A_E_DK_H
#define D_A_E_DK_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_DK_c
* @brief Bari
*
* @details
*
*/
class daE_DK_c : public fopEn_enemy_c {
/* 806AA228 */ void draw();
/* 806AA5C8 */ void setBck(int, u8, f32, f32);
/* 806AA68C */ void setBckCore(int, u8, f32, f32);
/* 806AA730 */ void setActionMode(int, int);
/* 806AA73C */ void damage_check();
/* 806AA8B0 */ void checkPlayerSearch();
/* 806AAB18 */ void checkPlayerAttack(f32);
/* 806AAC24 */ void checkWaterHeight();
/* 806AAD68 */ void SphBgcCallBack(dBgS_SphChk*, cBgD_Vtx_t*, int, int, int, cM3dGPla*, void*);
/* 806AAE10 */ void setElectricEffect();
/* 806AB054 */ void setCoreDeadEffect();
/* 806AB158 */ void setBodyDeadEffect();
/* 806AB29C */ void executeWait();
/* 806AB684 */ void executeChase();
/* 806ABA78 */ void executeAttack();
/* 806ABCC8 */ void executeDamage();
/* 806ABE3C */ void BodyDeathMove();
/* 806ABF6C */ void executeDeath();
/* 806AC390 */ void action();
/* 806AC5BC */ void mtx_set();
/* 806AC754 */ void cc_set();
/* 806AC968 */ void execute();
/* 806ACA10 */ void _delete();
/* 806ACAA4 */ void CreateHeap();
/* 806ACE14 */ void create();
/* 806AD0AC */ daE_DK_c();
private:
/* 0x5ac */ u8 field_0x5ac[0xd54 - 0x5ac];
};
STATIC_ASSERT(sizeof(daE_DK_c) == 0xd54);
class daE_DK_HIO_c {
/* 806AA1EC */ daE_DK_HIO_c();
/* 806AD490 */ ~daE_DK_HIO_c();
};
#endif /* D_A_E_DK_H */
+27
View File
@@ -0,0 +1,27 @@
#ifndef D_A_E_DN_H
#define D_A_E_DN_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_dn_class
* @brief Lizalfos
*
* @details
*
*/
class e_dn_class : public fopEn_enemy_c {
/* 804EDE58 */ e_dn_class();
private:
/* 0x5ac */ u8 field_0x5ac[0x110c - 0x5ac];
};
STATIC_ASSERT(sizeof(e_dn_class) == 0x110c);
class daE_DN_HIO_c {
/* 804E51AC */ daE_DN_HIO_c();
/* 804EE39C */ ~daE_DN_HIO_c();
};
#endif /* D_A_E_DN_H */
+94
View File
@@ -0,0 +1,94 @@
#ifndef D_A_E_DT_H
#define D_A_E_DT_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_DT_c
* @brief Deku Toad
*
* @details
*
*/
class daE_DT_c : public fopEn_enemy_c {
/* 806AD97C */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 806ADBA0 */ void JointCallBack(J3DJoint*, int);
/* 806ADBEC */ void ctrlJointTuba(J3DJoint*, J3DModel*);
/* 806ADD30 */ void JointCallBackTuba(J3DJoint*, int);
/* 806ADD7C */ void draw();
/* 806AE5C8 */ void demo_skip(int);
/* 806AE618 */ void DemoSkipCallBack(void*, int);
/* 806AE64C */ void setBck(int, u8, f32, f32);
/* 806AE6F0 */ void checkBck(int);
/* 806AE74C */ void setActionMode(int, int);
/* 806AE758 */ void damage_check();
/* 806AEB48 */ void setStabPos();
/* 806AEBD4 */ void checkBeforeBg(f32);
/* 806AED94 */ void checkTongueBg();
/* 806AEEFC */ void checkWaterSurface();
/* 806AEFE8 */ void setSmallWaterEffect();
/* 806AF09C */ void setLargeWaterEffect();
/* 806AF150 */ void setHamonEffect(int);
/* 806AF240 */ void setJumpEffect();
/* 806AF2F4 */ void setJumpSizukuEffect();
/* 806AF3D0 */ void setDamageShibukiEffect(int);
/* 806AF460 */ void setDamageYodareEffect(int);
/* 806AF548 */ void setSwingEffect();
/* 806AF5CC */ void setStepEffect();
/* 806AF740 */ void setBombEffect();
/* 806AF848 */ void setBombSmokeEffect();
/* 806AF924 */ void setDeadShibukiEffect();
/* 806AF9D8 */ void setDeadYodareEffect();
/* 806AFAE0 */ void setBoxTubaEffect();
/* 806AFBBC */ void setBoxTubaLandEffect();
/* 806AFD30 */ void getNumberOfOtama();
/* 806AFE24 */ void setStayOtamaFall();
/* 806AFEAC */ void setStayOtamaDelete();
/* 806B0114 */ void checkBombEat();
/* 806B01B4 */ void isShutterOpen();
/* 806B0200 */ void executeWait();
/* 806B0368 */ void executeCry();
/* 806B063C */ void executeShake();
/* 806B07C4 */ void executeWalk();
/* 806B0E9C */ void executeJump();
/* 806B177C */ void executeDown();
/* 806B1B60 */ void executeSearch();
/* 806B1BEC */ void executeDamage();
/* 806B1D48 */ void executeBombDamage();
/* 806B1F78 */ void executeDeath();
/* 806B28E4 */ void pointInSight(cXyz*);
/* 806B29D4 */ void executeOpening();
/* 806B3B08 */ void calcCamera();
/* 806B40D8 */ void calcBoxAndTuba();
/* 806B4724 */ void action();
/* 806B49F0 */ void mtx_set();
/* 806B4B24 */ void cc_set();
/* 806B4FD8 */ void execute();
/* 806B5158 */ void _delete();
/* 806B5214 */ void CreateHeap();
/* 806B5460 */ void create();
private:
/* 0x5ac */ u8 field_0x5ac[0x1174 - 0x5ac];
};
STATIC_ASSERT(sizeof(daE_DT_c) == 0x1174);
class daE_DT_HIO_c {
/* 806AD90C */ daE_DT_HIO_c();
/* 806B5BDC */ ~daE_DT_HIO_c();
};
struct E_DT_n {
static u8 eDt_ShakeFrame[40];
static u8 eDt_ShakeFrameDemo[40];
static u8 cc_dt_body_src[64];
static u8 cc_dt_tongue_src[64];
static u8 mDt_OtamaNum[4];
static u8 mDt_OtamaNo[80];
static u8 m_fall_no[4];
static u8 m_tongue_pos[12];
};
#endif /* D_A_E_DT_H */
+49
View File
@@ -0,0 +1,49 @@
#ifndef D_A_E_FB_H
#define D_A_E_FB_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_FB_c
* @brief Freezard
*
* @details
*
*/
class daE_FB_c : public fopEn_enemy_c {
/* 806B6520 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 806B65C0 */ void JointCallBack(J3DJoint*, int);
/* 806B660C */ void draw();
/* 806B67E0 */ void setBck(int, u8, f32, f32);
/* 806B688C */ void setActionMode(int, int);
/* 806B6898 */ void damage_check();
/* 806B6D20 */ void mBgLineCheck();
/* 806B6DF4 */ void search_check();
/* 806B6F40 */ void executeWait();
/* 806B70FC */ void executeAttack();
/* 806B78A0 */ void executeDamage();
/* 806B7B88 */ void executeBullet();
/* 806B7DDC */ void action();
/* 806B80A4 */ void mtx_set();
/* 806B811C */ void cc_set();
/* 806B82B4 */ void normal_eff_set();
/* 806B83F0 */ void dead_eff_set();
/* 806B8518 */ void execute();
/* 806B85C8 */ void _delete();
/* 806B8678 */ void CreateHeap();
/* 806B88E0 */ void create();
/* 806B8C1C */ daE_FB_c();
private:
/* 0x5ac */ u8 field_0x5ac[0xce8 - 0x5ac];
};
STATIC_ASSERT(sizeof(daE_FB_c) == 0xce8);
class daE_FB_HIO_c {
/* 806B64AC */ daE_FB_HIO_c();
/* 806B8EE4 */ ~daE_FB_HIO_c();
};
#endif /* D_A_E_FB_H */
+60
View File
@@ -0,0 +1,60 @@
#ifndef D_A_E_FK_H
#define D_A_E_FK_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_FK_c
* @brief Phantom Rider
*
* @details
*
*/
class daE_FK_c : public fopEn_enemy_c {
/* 806B93CC */ void CreateHeap();
/* 806B9534 */ void initBodySph();
/* 806B95BC */ void initSwordSph();
/* 806B9670 */ void SetBodySph();
/* 806B97A4 */ void SetSwordSph();
/* 806B98C4 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 806B9A28 */ void SetAnm(int, int, f32, f32);
/* 806B9AD8 */ void Yazirushi();
/* 806B9B2C */ void SpeedSet();
/* 806B9BB4 */ void TnNeckSet(s16);
/* 806B9C14 */ void HsAngleSet();
/* 806B9C18 */ void SpeedChk();
/* 806B9C1C */ void SetAnmSpeed();
/* 806B9C20 */ void TgChk();
/* 806B9D00 */ void AtChk();
/* 806B9D7C */ void OnAt();
/* 806B9DA4 */ void R_MoveAction();
/* 806B9E6C */ void StartAction();
/* 806B9F20 */ void RunAction();
/* 806BA004 */ void Action();
/* 806BA024 */ void DeathAction();
/* 806BA188 */ void DamageChk();
/* 806BA24C */ void DamageAction();
/* 806BA330 */ void checkViewArea();
/* 806BA3B4 */ void AttackAction();
/* 806BA61C */ void UpDown();
/* 806BA6EC */ void Execute();
/* 806BABB8 */ void At_Check(int);
/* 806BACEC */ void Draw();
/* 806BADB4 */ void Delete();
/* 806BAE1C */ void setBaseMtx();
/* 806BAEB0 */ void setEfMtx();
/* 806BAF74 */ void CreateChk();
/* 806BB004 */ void Create();
private:
/* 0x5ac */ u8 field_0x5ac[0xf6c - 0x5ac];
};
STATIC_ASSERT(sizeof(daE_FK_c) == 0xf6c);
class daE_FK_HIO_c {
/* 806B938C */ daE_FK_HIO_c();
/* 806BB594 */ ~daE_FK_HIO_c();
};
#endif /* D_A_E_FK_H */
+38
View File
@@ -0,0 +1,38 @@
#ifndef D_A_E_FM_H
#define D_A_E_FM_H
#include "f_op/f_op_actor_mng.h"
#include "Z2AudioLib/Z2Creature.h"
/**
* @ingroup actors-enemies
* @class e_fm_class
* @brief Fyrus
*
* @details
*
*/
class e_fm_class : public fopEn_enemy_c {
public:
/* 804F9B64 */ e_fm_class();
/* 0x005AC */ u8 field_0x5ac[0x63c - 0x5ac];
/* 0x0063C */ Z2CreatureFM field_0x63c;
/* 0x00760 */ u8 field_0x760[0x1828 - 0x760];
/* 0x01828 */ u8 field_0x1828;
/* 0x01829 */ u8 field_0x1829[0x1b084 - 0x1829];
};
STATIC_ASSERT(sizeof(e_fm_class) == 0x1b084);
class daE_FM_HIO_c {
/* 804EF0EC */ daE_FM_HIO_c();
/* 804FA3D8 */ ~daE_FM_HIO_c();
};
struct chain_s {
/* 804F9E14 */ ~chain_s();
/* 804F9F14 */ chain_s();
};
#endif /* D_A_E_FM_H */
+26
View File
@@ -0,0 +1,26 @@
#ifndef D_A_E_FS_H
#define D_A_E_FS_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_fs_class
* @brief Wooden Puppet
*
* @details
*
*/
class e_fs_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0xb9c - 0x5ac];
};
STATIC_ASSERT(sizeof(e_fs_class) == 0xb9c);
class daE_Fs_HIO_c {
/* 806BBACC */ daE_Fs_HIO_c();
/* 806BDF94 */ ~daE_Fs_HIO_c();
};
#endif /* D_A_E_FS_H */
+170
View File
@@ -0,0 +1,170 @@
/**
* @file d_a_e_fz.h
* @brief Freezard header file.
*
* @details This header contains information about the Mini Freezard actor.
*
*/
#ifndef D_A_E_FZ_H
#define D_A_E_FZ_H
#include "SSystem/SComponent/c_phase.h"
#include "Z2AudioLib/Z2Creature.h"
#include "f_op/f_op_actor.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
#include "m_Do/m_Do_hostIO.h"
/**
* @enum daE_FZ_Action
* @brief Mini Freezard current action.
*
*/
enum daE_FZ_Action {
ACT_WAIT, /**< Mini Freezard is waiting. */
ACT_MOVE, /**< Mini Freezard is moving to attack. */
ACT_ATTACK, /**< Mini Freezard is attacking. */
ACT_DAMAGE, /**< Mini Freezard is damaged. */
ACT_ROLLMOVE /**< Mini Freezard is spinning around Blizzeta.
This action is only taken when actor is loaded in with parameter 3
(during the Blizzeta fight).*/
};
/**
* @brief Temporary HIO struct to get a match. Remove later.
*
*/
struct daE_FZ_HIO_c_tmp {
void* vtable;
/* 0x04 */ s8 field_0x04;
/* 0x05 */ u8 field_0x05[0x06 - 0x05];
/* 0x06 */ s16 field_0x06;
/* 0x08 */ s16 field_0x08;
/* 0x0A */ u8 field_0x0A[0x0C - 0x0A];
/* 0x0C */ f32 field_0x0c;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ f32 field_0x1c;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ f32 field_0x34;
};
/**
* @ingroup actors-enemies
* @class daE_FZ_c
* @brief Mini Freezard
*
* @details Miniature Freezard enemy.
*
*/
class daE_FZ_c : public fopEn_enemy_c {
public:
/* 806BE9D4 */ s32 draw();
/* 806BEAF8 */ void setActionMode(int, int);
/* 806BEB04 */ void setReflectAngle();
/* 806BEBA0 */ void mBoundSoundset();
/* 806BEC08 */ void deadnextSet(bool);
/* 806BED34 */ void damage_check();
/* 806BF444 */ bool way_gake_check();
/* 806BF58C */ void executeWait();
/* 806BF8E8 */ void executeMove();
/* 806BFA64 */ void executeAttack();
/* 806BFB60 */ void executeDamage();
/* 806BFF94 */ void executeRollMove();
/* 806C0224 */ void action();
/* 806C06DC */ void mtx_set();
/* 806C0760 */ void cc_set();
/* 806C08C4 */ s32 execute();
/* 806C0B20 */ void demoDelete();
/* 806C0B94 */ s32 _delete();
/* 806C0C28 */ s32 CreateHeap();
/* 806C0CD0 */ s32 create();
private:
/* 0x5AC */ request_of_phase_process_class mPhaseReq; /**< Phase request used when creating the actor. */
/* 0x5B4 */ J3DModel* mpModel; /**< Pointer to the Mini Freezard's model. */
/* 0x5B8 */ mDoExt_invisibleModel mInvisibleModel; /**< Invisible model used for the Mini Freezard. */
/* 0x5C0 */ Z2CreatureEnemy mCreature; /**< Z2CreatureEnemy class used for playing sound effects. */
/* 0x664 */ cXyz mUserWork; /**< ??? */
/* 0x670 */ cXyz field_0x670; /**< Appears unused. Set to current position on actor creation. */
/* 0x67C */ cXyz field_0x67c[4]; /**< ??? */
/* 0x6AC */ cXyz field_0x6ac[4]; /**< ??? */
/* 0x6DC */ cXyz field_0x6dc; /**< ??? */
/* 0x6E8 */ cXyz field_0x6e8; /**< ??? */
/* 0x6F4 */ s32 mActionMode; /**< Current action mode. */
/* 0x6F8 */ s32 mActionPhase; /**< Current phase of @ref mActionMode. */
/* 0x6FC */ f32 field_0x6fc; /**< ??? */
/* 0x700 */ f32 mRadiusBase; /**< Base radius value used by @ref mTgCoSph and @ref mAtSph. */
/* 0x704 */ s16 field_0x704; /**< ??? */
/* 0x706 */ s16 mAngleFromPlayer; /**< Angle the mini freezard is from the player. */
/* 0x708 */ s16 mLastWallHitAngle; /**< Angle of the last wall the mini freezard hit. */
/* 0x70C */ s32 field_0x70c; /**< ??? */
/* 0x710 */ u8 field_0x710; /**< ??? */
/* 0x711 */ u8 field_0x711; /**< ??? */
/* 0x712 */ u8 field_0x712; /**< ??? */
/* 0x713 */ u8 field_0x713; /**< ??? */
/* 0x714 */ u8 field_0x714; /**< ??? */
/* 0x715 */ u8 field_0x715; /**< ??? */
/* 0x716 */ u8 field_0x716; /**< ??? */
/* 0x717 */ u8 field_0x717; /**< ??? */
/* 0x718 */ fopAc_ac_c* mpBlizzetaActor; /**< Pointer to Blizzeta's actor (if used). Used to figure out what the mini freezard's angle and positioning should be when Blizzeta is attacking with them. */
/* 0x71C */ u32 mParticleSet[3]; /**< Particle set */
/* 0x728 */ u8 field_0x728[4]; /**< ??? */
/* 0x72C */ dBgS_AcchCir mAcchCir; /**< Checks for actor collision with background circles? */
/* 0x76C */ dBgS_ObjAcch mObjAcch; /**< Checks for actor collision with background objects. */
/* 0x944 */ dCcD_Stts mStts; /**< Track Mini Freezard collider status. */
/* 0x980 */ dCcD_Sph mTgCoSph; /**< Sphere collider used when Mini Freezard is attacked / pushed. */
/* 0xAB8 */ dCcD_Sph mAtSph; /**< Sphere collider used when Mini Freezard is attacking. */
/* 0xBF0 */ dCcU_AtInfo mAtInfo; /**< Tracks information when the Mini Freezard is attacked. */
/* 0xC14 */ u8 field_0xc14; /**< ??? */
/* 0xC15 */ u8 field_0xc15; /**< ??? */
/* 0xC16 */ u8 field_0xc16; /**< ??? */
/* 0xC17 */ u8 field_0xc17; /**< ??? */
/* 0xC18 */ u8 field_0xc18; /**< ??? */
/* 0xC19 */ u8 field_0xc19; /**< ??? */
/* 0xC1A */ u8 field_0xc1a; /**< ??? */
/* 0xC1B */ u8 field_0xc1b; /**< ??? */
/* 0xC1C */ u8 field_0xc1c; /**< ??? */
/* 0xC1D */ u8 field_0xc1d; /**< ??? */
/* 0xC1E */ u8 field_0xc1e; /**< ??? */
/* 0xC1F */ u8 field_0xc1f; /**< ??? */
/* 0xC20 */ u8 field_0xc20; /**< ??? */
/* 0xC21 */ u8 field_0xc21; /**< ??? */
/* 0xC22 */ u8 field_0xc22; /**< ??? */
/* 0xC23 */ u8 field_0xc23; /**< ??? */
};
STATIC_ASSERT(sizeof(daE_FZ_c) == 0xC24);
class daE_FZ_HIO_c {
public:
/* 806BE94C */ daE_FZ_HIO_c();
/* 806C1440 */ virtual ~daE_FZ_HIO_c() {};
public:
/* 0x04 */ s8 field_0x04;
/* 0x05 */ u8 field_0x05[0x06 - 0x05];
/* 0x06 */ s16 field_0x06;
/* 0x08 */ s16 field_0x08;
/* 0x0A */ u8 field_0x0A[0x0C - 0x0A];
/* 0x0C */ f32 field_0x0c;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ f32 field_0x1c;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ f32 field_0x34;
};
#endif /* D_A_E_FZ_H */
+32
View File
@@ -0,0 +1,32 @@
#ifndef D_A_E_GA_H
#define D_A_E_GA_H
#include "f_op/f_op_actor_mng.h"
struct ga_s {
/* 804FBAB8 */ ~ga_s();
/* 804FBAF4 */ ga_s();
};
/**
* @ingroup actors-enemies
* @class e_ga_class
* @brief Decorative Moth
*
* @details
*
*/
class e_ga_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0x4d7c - 0x5ac];
};
STATIC_ASSERT(sizeof(e_ga_class) == 0x4d7c);
class daE_Ga_HIO_c {
/* 804FB0EC */ daE_Ga_HIO_c();
/* 804FBAF8 */ ~daE_Ga_HIO_c();
};
#endif /* D_A_E_GA_H */
+27
View File
@@ -0,0 +1,27 @@
#ifndef D_A_E_GB_H
#define D_A_E_GB_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_gb_class
* @brief Giant Baba
*
* @details
*
*/
class e_gb_class : public fopEn_enemy_c {
/* 806C6B94 */ e_gb_class();
private:
/* 0x5ac */ u8 field_0x5ac[0xef8 - 0x5ac];
};
STATIC_ASSERT(sizeof(e_gb_class) == 0xef8);
class daE_GB_HIO_c {
/* 806C1CEC */ daE_GB_HIO_c();
/* 806C6F98 */ ~daE_GB_HIO_c();
};
#endif /* D_A_E_GB_H */
+68
View File
@@ -0,0 +1,68 @@
#ifndef D_A_E_GE_H
#define D_A_E_GE_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_GE_c
* @brief Guay
*
* @details
*
*/
class daE_GE_c : public fopEn_enemy_c {
public:
u8 getGroupNo() {
return mGroupNo;
}
/* 806C7AB8 */ void bckSet(int, f32, u8, f32);
/* 806C7B5C */ void bckCheck(int);
/* 806C7BB8 */ void draw();
/* 806C7CAC */ void checkBeforeBg(int, f32);
/* 806C80F8 */ void setActionMode(int);
/* 806C8130 */ void damage_check();
/* 806C8374 */ void checkOtherAttacker();
/* 806C83F8 */ void searchNextAttacker();
/* 806C84A0 */ void checkCircleSpeedAdd(cXyz*, cXyz*);
/* 806C8518 */ void setAddCalcSpeed(cXyz&, cXyz const&, f32, f32, f32, f32);
/* 806C88C8 */ void calcCircleFly(cXyz*, cXyz*, s16, f32, s16, f32);
/* 806C89C0 */ void executeWait();
/* 806C8C20 */ void executeFly();
/* 806C9150 */ void checkAttackPossible(s16, bool);
/* 806C921C */ void executeAttack();
/* 806C9F04 */ void setBackAnime(int);
/* 806CA024 */ void executeBack();
/* 806CAA34 */ void executeDown();
/* 806CADCC */ void setSurpriseTime(s16);
/* 806CADF4 */ void setSurprise();
/* 806CAE58 */ void executeSurprise();
/* 806CB280 */ void setCaw();
/* 806CB2F0 */ void executeCaw();
/* 806CB6FC */ void executeWind();
/* 806CBAB8 */ void executeShield();
/* 806CBC38 */ void action();
/* 806CBE98 */ void mtx_set();
/* 806CBEF0 */ void cc_set();
/* 806CC068 */ void execute();
/* 806CC1E4 */ void _delete();
/* 806CC278 */ void CreateHeap();
/* 806CC390 */ void create();
private:
/* 0x5AC */ u8 field_0x5ac[1519];
/* 0xB9B */ u8 mGroupNo;
/* 0xB9C */ u8 field_0xb9c[4];
static u8 l_actionmenu[108];
};
STATIC_ASSERT(sizeof(daE_GE_c) == 0xBA0);
class daE_GE_HIO_c {
/* 806C7A4C */ daE_GE_HIO_c();
/* 806CCA58 */ ~daE_GE_HIO_c();
};
#endif /* D_A_E_GE_H */
+53
View File
@@ -0,0 +1,53 @@
#ifndef D_A_E_GI_H
#define D_A_E_GI_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_GI_c
* @brief Gibdo
*
* @details
*
*/
class daE_GI_c : public fopEn_enemy_c {
/* 806CD4F4 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 806CD594 */ void JointCallBack(J3DJoint*, int);
/* 806CD5E0 */ void draw();
/* 806CD868 */ void setBck(int, u8, f32, f32);
/* 806CD90C */ void setActionMode(int, int);
/* 806CD938 */ void damage_check();
/* 806CDD1C */ void setWeaponAtBit(u8);
/* 806CDD8C */ void setCryStop();
/* 806CDED8 */ void setAttackEffect();
/* 806CDFB0 */ void setDragSwordEffect();
/* 806CE0D4 */ void setDeathSmokeEffect();
/* 806CE184 */ void setDamageEffect();
/* 806CE3C4 */ void executeSleep();
/* 806CE6AC */ void executeWait();
/* 806CE858 */ void executeChase();
/* 806CEC94 */ void executeAttack();
/* 806CF0B8 */ void executeDamage();
/* 806CF410 */ void executeBiteDamage();
/* 806CF720 */ void PushButtonCount();
/* 806CF878 */ void action();
/* 806CFB60 */ void mtx_set();
/* 806CFBF0 */ void cc_set();
/* 806CFDF4 */ void execute();
/* 806D0054 */ void _delete();
/* 806D00E8 */ void CreateHeap();
/* 806D027C */ void create();
private:
/* 0x5ac */ u8 field_0x5ac[0x107c - 0x5ac];
};
STATIC_ASSERT(sizeof(daE_GI_c) == 0x107c);
class daE_GI_HIO_c {
/* 806CD48C */ daE_GI_HIO_c();
/* 806D098C */ ~daE_GI_HIO_c();
};
#endif /* D_A_E_GI_H */
+60
View File
@@ -0,0 +1,60 @@
#ifndef D_A_E_GM_H
#define D_A_E_GM_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_GM_c
* @brief Baby Gohma
*
* @details
*
*/
class daE_GM_c : public fopEn_enemy_c {
/* 806D12C8 */ void setAction(void (daE_GM_c::*)());
/* 806D136C */ void action();
/* 806D1580 */ void egg_wait();
/* 806D1A9C */ void appear();
/* 806D1CC0 */ void walk();
/* 806D21A4 */ void create_item();
/* 806D2294 */ void pechanko_damage();
/* 806D24C0 */ void wait();
/* 806D25E8 */ void egg_damage();
/* 806D289C */ void setDeathLightEffect();
/* 806D2940 */ void setEggBreakEffect();
/* 806D29E4 */ void damage();
/* 806D2DD4 */ void core_damage();
/* 806D3308 */ void core_delwait();
/* 806D344C */ void core_piku();
/* 806D35E4 */ void core_pechanko_damage();
/* 806D378C */ void hook();
/* 806D398C */ void rebound();
/* 806D3EC4 */ void walk2();
/* 806D4288 */ void dead_wait();
/* 806D4468 */ void core_wait();
/* 806D462C */ void core_escape();
/* 806D4D1C */ void chaseCheck();
/* 806D4EF4 */ void normal_wait();
/* 806D545C */ void normal_chase();
/* 806D578C */ void mtx_set();
/* 806D59D0 */ void cc_set();
/* 806D5D54 */ void draw();
/* 806D631C */ void damage_check();
/* 806D6708 */ void execute();
/* 806D6980 */ void _delete();
/* 806D6AC8 */ void CreateHeap();
/* 806D6CF0 */ void create();
private:
/* 0x5ac */ u8 field_0x5ac[0xa78 - 0x5ac];
};
STATIC_ASSERT(sizeof(daE_GM_c) == 0xa78);
class daE_GM_HIO_c {
/* 806D126C */ daE_GM_HIO_c();
/* 806D7428 */ ~daE_GM_HIO_c();
};
#endif /* D_A_E_GM_H */
+27
View File
@@ -0,0 +1,27 @@
#ifndef D_A_E_GOB_H
#define D_A_E_GOB_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_gob_class
* @brief Dangoro
*
* @details
*
*/
class e_gob_class : public fopEn_enemy_c {
/* 806DEA10 */ e_gob_class();
private:
/* 0x5ac */ u8 field_0x5ac[0xde4 - 0x5ac];
};
STATIC_ASSERT(sizeof(e_gob_class) == 0xde4);
class daE_GOB_HIO_c {
/* 806D808C */ daE_GOB_HIO_c();
/* 806DECD0 */ ~daE_GOB_HIO_c();
};
#endif /* D_A_E_GOB_H */
+27
View File
@@ -0,0 +1,27 @@
#ifndef D_A_E_GS_H
#define D_A_E_GS_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_gs_class
* @brief Ghost Soldier
*
* @details
*
*/
class e_gs_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0x6bc - 0x5ac];
};
STATIC_ASSERT(sizeof(e_gs_class) == 0x6bc);
class daE_GS_HIO_c {
/* 806DF46C */ daE_GS_HIO_c();
/* 806DFD5C */ ~daE_GS_HIO_c();
};
#endif /* D_A_E_GS_H */
+26
View File
@@ -0,0 +1,26 @@
#ifndef D_A_E_HB_H
#define D_A_E_HB_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_hb_class
* @brief Hebi Baba
*
* @details
*
*/
class e_hb_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0x1268 - 0x5ac];
};
STATIC_ASSERT(sizeof(e_hb_class) == 0x1268);
class daE_HB_HIO_c {
/* 804FBD6C */ daE_HB_HIO_c();
/* 805005D0 */ ~daE_HB_HIO_c();
};
#endif /* D_A_E_HB_H */
+23
View File
@@ -0,0 +1,23 @@
#ifndef D_A_E_HB_LEAF_H
#define D_A_E_HB_LEAF_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_hb_leaf_class
* @brief Hebi Baba - Leaf
*
* @details
*
*/
class e_hb_leaf_class : public fopEn_enemy_c {
public:
/* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x5B4 */ mDoExt_McaMorf* mpMorf;
/* 0x5B8 */ s16 field_0x5b8;
/* 0x5BA */ s8 field_0x5ba;
/* 0x5BC */ unsigned int field_0x5bc;
};
#endif /* D_A_E_HB_LEAF_H */
+77
View File
@@ -0,0 +1,77 @@
#ifndef D_A_E_HM_H
#define D_A_E_HM_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_HM_c
* @brief Torch Slug
*
* @details
*
*/
class daE_HM_c : public fopEn_enemy_c {
/* 806E043C */ void CreateHeap();
/* 806E06C0 */ void initCcCylinder();
/* 806E074C */ void setCcCylinder();
/* 806E0958 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 806E0DB0 */ void Particle_Set(u32&, u16);
/* 806E0E8C */ void SetAnm(int, int, f32, f32);
/* 806E0F38 */ void W_TargetAngle(cXyz, cXyz);
/* 806E0FF4 */ void W_DeathSpSet();
/* 806E1118 */ void W_DeathAction();
/* 806E1370 */ void W_DeathMotion();
/* 806E155C */ void W_MoveCheckWall();
/* 806E18A0 */ void W_WallCheck();
/* 806E1A00 */ void WallExecute();
/* 806E1AA0 */ void WallCreateExecute();
/* 806E1B5C */ void CreateExecute();
/* 806E1C28 */ void Tyakuchi_Set();
/* 806E1E78 */ void UpDeathAction();
/* 806E20FC */ void UpMoveAction();
/* 806E2410 */ void UpWaitAction();
/* 806E2568 */ void UpExecute();
/* 806E25E8 */ void WallCheck();
/* 806E2694 */ void MoveCheck();
/* 806E29B8 */ void ShippuAction();
/* 806E2B80 */ void ShieldMotion();
/* 806E2C50 */ void ShieldAction();
/* 806E2D08 */ void DeathSpSet();
/* 806E2D40 */ void DeathMotion();
/* 806E2EA0 */ void DeathCutDown();
/* 806E2F5C */ void DeathAction();
/* 806E31B0 */ void AttackAfter();
/* 806E3208 */ void AttackMotion();
/* 806E3420 */ void AttackAction();
/* 806E34C8 */ void FreeMove();
/* 806E3690 */ void LinkSearch();
/* 806E3724 */ void WaitAction();
/* 806E37F4 */ void MemberClear();
/* 806E3800 */ void DownExecute();
/* 806E3884 */ void At_Check();
/* 806E39E8 */ void Obj_Damage();
/* 806E3BE4 */ void ActionMode();
/* 806E4008 */ void Yazirushi();
/* 806E40B8 */ void setStabPos();
/* 806E40D4 */ void Execute();
/* 806E434C */ void Draw();
/* 806E44F0 */ void Delete();
/* 806E4558 */ void setBaseMtx();
/* 806E4620 */ void CheckRoof();
/* 806E486C */ void CheckWall();
/* 806E4CCC */ void CreateStyle();
/* 806E4E64 */ void Create();
private:
/* 0x5ac */ u8 field_0x5ac[0xa88 - 0x5ac];
};
STATIC_ASSERT(sizeof(daE_HM_c) == 0xa88);
class daE_HM_HIO_c {
/* 806E03EC */ daE_HM_HIO_c();
/* 806E53F8 */ ~daE_HM_HIO_c();
};
#endif /* D_A_E_HM_H */
+51
View File
@@ -0,0 +1,51 @@
#ifndef D_A_E_HP_H
#define D_A_E_HP_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_HP_c
* @brief Huge Poe?
*
* @details
*
*/
class daE_HP_c : public fopEn_enemy_c {
/* 806E5E30 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 806E5ED0 */ void JointCallBack(J3DJoint*, int);
/* 806E5F1C */ void LampCtrlJoint(J3DJoint*, J3DModel*);
/* 806E5FCC */ void LampJointCallBack(J3DJoint*, int);
/* 806E6018 */ void draw();
/* 806E6514 */ void setBck(int, u8, f32, f32);
/* 806E65C0 */ void setActionMode(int, int);
/* 806E65CC */ void mChkDistance(f32);
/* 806E673C */ void damage_check();
/* 806E6948 */ void executeWait();
/* 806E6C74 */ void executeMove();
/* 806E6ED8 */ void executeRetMove();
/* 806E7228 */ void executeAttack();
/* 806E7574 */ void executeDamage();
/* 806E77C0 */ void executeDown();
/* 806E7E94 */ void executeDead();
/* 806E814C */ void action();
/* 806E89C0 */ void mtx_set();
/* 806E8DE0 */ void cc_set();
/* 806E8FEC */ void execute();
/* 806E9198 */ void _delete();
/* 806E9240 */ void CreateHeap();
/* 806E951C */ void create();
/* 806E9900 */ daE_HP_c();
private:
/* 0x5ac */ u8 field_0x5ac[0xdfc - 0x5ac];
};
STATIC_ASSERT(sizeof(daE_HP_c) == 0xdfc);
class daE_HP_HIO_c {
/* 806E5DEC */ daE_HP_HIO_c();
/* 806E9D38 */ ~daE_HP_HIO_c();
};
#endif /* D_A_E_HP_H */
+68
View File
@@ -0,0 +1,68 @@
#ifndef D_A_E_HZ_H
#define D_A_E_HZ_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_HZ_c
* @brief Tile Worm
*
* @details
*
*/
class daE_HZ_c : public fopEn_enemy_c {
/* 806EA690 */ void setBck(int, u8, f32, f32);
/* 806EA734 */ void checkBck(int);
/* 806EA790 */ void draw();
/* 806EAADC */ void setActionMode(int);
/* 806EAB68 */ void checkHideStart();
/* 806EAEDC */ void checkAttackStart();
/* 806EB05C */ void checkArrowCharge();
/* 806EB0A4 */ void setTgSetBit(int);
/* 806EB0FC */ void isWait();
/* 806EB13C */ void checkFall();
/* 806EB2E8 */ void setCloseSmokeEffect();
/* 806EB3EC */ void executeWait();
/* 806EB7B0 */ void getHideSpeed();
/* 806EB818 */ void executeHide();
/* 806EBD44 */ void executeAttack();
/* 806EC068 */ void initBackWalk();
/* 806EC348 */ void executeAway();
/* 806ECAEC */ void setWindEnd();
/* 806ECB64 */ void executeWind();
/* 806ED5B0 */ void executeChance();
/* 806ED6C8 */ void initRollDamage();
/* 806ED7A8 */ void doRollDamage();
/* 806ED8A4 */ void executeDamage();
/* 806EDAA8 */ void executeDeath();
/* 806EDDCC */ void setWindChanceEnd();
/* 806EDDE8 */ void executeWindChance();
/* 806EE120 */ void executeWindWalk();
/* 806EE2A4 */ void setWaterEffect();
/* 806EE3BC */ void executeWaterDeath();
/* 806EE820 */ void executeDeathWait();
/* 806EE978 */ void damage_check();
/* 806EEE10 */ void checkWaterSurface();
/* 806EEEE4 */ void action();
/* 806EF144 */ void mtx_set();
/* 806EF2C8 */ void cc_set();
/* 806EF46C */ void execute();
/* 806EF6B4 */ void _delete();
/* 806EF770 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 806EF880 */ void JointCallBack(J3DJoint*, int);
/* 806EF8CC */ void CreateHeap();
/* 806EFB54 */ void setInitPos();
/* 806EFC18 */ void create();
private:
/* 0x5ac */ u8 field_0x5ac[0x1238 - 0x5ac];
};
STATIC_ASSERT(sizeof(daE_HZ_c) == 0x1238);
class daE_HZ_HIO_c {
/* 806EA60C */ daE_HZ_HIO_c();
/* 806F0368 */ ~daE_HZ_HIO_c();
};
#endif /* D_A_E_HZ_H */
+27
View File
@@ -0,0 +1,27 @@
#ifndef D_A_E_HZELDA_H
#define D_A_E_HZELDA_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_hzelda_class
* @brief Puppet Zelda
*
* @details
*
*/
class e_hzelda_class : public fopEn_enemy_c {
/* 806F4E48 */ e_hzelda_class();
private:
/* 0x5ac */ u8 field_0x5ac[0x1460 - 0x5ac];
};
STATIC_ASSERT(sizeof(e_hzelda_class) == 0x1460);
class daE_HZELDA_HIO_c {
/* 806F0D4C */ daE_HZELDA_HIO_c();
/* 806F546C */ ~daE_HZELDA_HIO_c();
};
#endif /* D_A_E_HZELDA_H */
+27
View File
@@ -0,0 +1,27 @@
#ifndef D_A_E_IS_H
#define D_A_E_IS_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_is_class
* @brief Armos Titan
*
* @details Armos Titans are enemies from early, unreleased versions of the game.
*
*/
class e_is_class : public fopEn_enemy_c {
/* 806F76B4 */ e_is_class();
private:
/* 0x5ac */ u8 field_0x5ac[0xcf8 - 0x5ac];
};
STATIC_ASSERT(sizeof(e_is_class) == 0xcf8);
class daE_IS_HIO_c {
/* 806F5A4C */ daE_IS_HIO_c();
/* 806F7AC4 */ ~daE_IS_HIO_c();
};
#endif /* D_A_E_IS_H */
+26
View File
@@ -0,0 +1,26 @@
#ifndef D_A_E_KG_H
#define D_A_E_KG_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_kg_class
* @brief Young Gohma
*
* @details
*
*/
class e_kg_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0xa74 - 0x5ac];
};
STATIC_ASSERT(sizeof(e_kg_class) == 0xa74);
class daE_KG_HIO_c {
/* 806F7EEC */ daE_KG_HIO_c();
/* 806F9EE8 */ ~daE_KG_HIO_c();
};
#endif /* D_A_E_KG_H */
+57
View File
@@ -0,0 +1,57 @@
#ifndef D_A_E_KK_H
#define D_A_E_KK_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_KK_c
* @brief Chilfos
*
* @details
*
*/
class daE_KK_c : public fopEn_enemy_c {
/* 806FA75C */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 806FA7FC */ void JointCallBack(J3DJoint*, int);
/* 806FA848 */ void draw();
/* 806FAA68 */ void setBck(int, u8, f32, f32);
/* 806FAB14 */ void setWeaponBck(int, u8, f32, f32);
/* 806FABC0 */ void mCutTypeCheck(int);
/* 806FAC80 */ void setActionMode(int, int);
/* 806FAC8C */ void damage_check();
/* 806FB2EC */ void nextActionCheck();
/* 806FB4F4 */ void way_gake_check();
/* 806FB6C0 */ void mDeadEffSet(cXyz&);
/* 806FB7D8 */ void executeWait();
/* 806FB908 */ void executeIcicleWait();
/* 806FBB1C */ void executeWalk();
/* 806FBE98 */ void executeSpearThrow();
/* 806FC370 */ void executeBackWalk();
/* 806FC75C */ void executeYoroke();
/* 806FC8F4 */ void executeGuard();
/* 806FCA28 */ void executeDamage();
/* 806FCC34 */ void executeAttack();
/* 806FD068 */ void executeDead();
/* 806FD294 */ void executeWeaponMove();
/* 806FD930 */ void action();
/* 806FDD0C */ void mtx_set();
/* 806FDF0C */ void weapon_mtx_set();
/* 806FE0B8 */ void cc_set();
/* 806FE2A8 */ void execute();
/* 806FE3E0 */ void _delete();
/* 806FE480 */ void CreateHeap();
/* 806FE6B8 */ void create();
private:
/* 0x5ac */ u8 field_0x5ac[0x13d4 - 0x5ac];
};
STATIC_ASSERT(sizeof(daE_KK_c) == 0x13d4);
class daE_KK_HIO_c {
/* 806FA70C */ daE_KK_HIO_c();
/* 806FF0F0 */ ~daE_KK_HIO_c();
};
#endif /* D_A_E_KK_H */
+26
View File
@@ -0,0 +1,26 @@
#ifndef D_A_E_KR_H
#define D_A_E_KR_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_kr_class
* @brief Kargorok
*
* @details
*
*/
class e_kr_class : public fopEn_enemy_c {
/* 80705004 */ e_kr_class();
private:
/* 0x5ac */ u8 field_0x5ac[0xf08 - 0x5ac];
};
STATIC_ASSERT(sizeof(e_kr_class) == 0xf08);
class e_krHIO_c {
/* 80705574 */ ~e_krHIO_c();
};
#endif /* D_A_E_KR_H */
+26
View File
@@ -0,0 +1,26 @@
#ifndef D_A_E_MB_H
#define D_A_E_MB_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class e_mb_class
* @brief Ook (Diababa Fight)
*
* @details
*
*/
class e_mb_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0x8cc - 0x5ac];
};
STATIC_ASSERT(sizeof(e_mb_class) == 0x8cc);
class daE_MB_HIO_c {
/* 8070616C */ daE_MB_HIO_c();
/* 8070882C */ ~daE_MB_HIO_c();
};
#endif /* D_A_E_MB_H */
+36
View File
@@ -0,0 +1,36 @@
#ifndef D_A_E_MD_H
#define D_A_E_MD_H
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_MD_c
* @brief Suit of Armor
*
* @details
*
*/
class daE_MD_c : public fopEn_enemy_c {
/* 80708DF8 */ void initCcCylinder();
/* 80708E70 */ void setCcCylinder(f32);
/* 807091F0 */ void SetAnm(mDoExt_McaMorfSO*, int, int, f32, f32);
/* 807092C8 */ void At_Check();
/* 80709378 */ void CheckHit();
/* 8070992C */ void WaitAction();
/* 8070994C */ void HalfBreakAction();
/* 80709A04 */ void VibAction();
/* 80709ABC */ void DummyAction();
/* 80709BB4 */ void RealAction();
/* 80709C3C */ void Action();
/* 80709CFC */ void Execute();
/* 80709D58 */ void Delete();
/* 80709DA8 */ void setBaseMtx();
/* 8070A044 */ void create();
private:
/* 0x5ac */ u8 field_0x5ac[0xa50 - 0x5ac];
};
STATIC_ASSERT(sizeof(daE_MD_c) == 0xa50);
#endif /* D_A_E_MD_H */

Some files were not shown because too many files have changed in this diff Show More