Setup d_a_b + misc actors (#2166)

* setup d_a_b actors

* misc actor checkpoint

* misc actor finish

* add d_a_b class comments

* add misc actor class comments wip

* add misc actor class comments
This commit is contained in:
Pheenoh
2024-06-10 00:34:52 -07:00
committed by GitHub
parent 946b2e81d9
commit 3a2e38dc5c
651 changed files with 4656 additions and 9409 deletions
+4 -4
View File
@@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
.init | 97.972973% | 9280 | 9472
.extab | 100.000000% | 96 | 96
.extabindex | 100.000000% | 96 | 96
.text | 49.647439% | 1785592 | 3596544
.text | 50.281826% | 1808408 | 3596544
.ctors | 100.000000% | 448 | 448
.dtors | 100.000000% | 32 | 32
.rodata | 100.000000% | 193856 | 193856
.data | 100.000000% | 197632 | 197632
.sdata | 100.000000% | 1408 | 1408
.sdata2 | 100.000000% | 20832 | 20832
Total | 54.954197% | 2209528 | 4020672
Total | 55.521664% | 2232344 | 4020672
## Total
Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|---
main.dol | 54.954197% | 2209528 | 4020672
main.dol | 55.521664% | 2232344 | 4020672
RELs | 38.860853% | 4469124 | 11500324
Total | 43.029790% | 6678652 | 15520996
Total | 43.176791% | 6701468 | 15520996
## RELs
+1
View File
@@ -13,6 +13,7 @@ This site contains documentation for the Twilight Princess code base. It is a wo
- @ref actors-objects "Objects"
- @ref actors-npcs "NPCs"
- @ref actors-tags "Tags"
- @ref actors-unsorted "Unsorted"
@subsection dolphin Dolphin
+23
View File
@@ -1,4 +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 */
+131
View File
@@ -1,4 +1,135 @@
#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/cc/d_cc_d.h"
#include "d/cc/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();
private:
/* 0x05AC */ request_of_phase_process_class mPhase;
/* 0x05B4 */ mDoExt_McaMorfSO* mpMorf;
/* 0x05B8 */ mDoExt_brkAnm* field_0x5b8;
/* 0x05BC */ mDoExt_btkAnm* field_0x5bc;
/* 0x05C0 */ s8 field_0x5c0;
/* 0x05C4 */ J3DModel* field_0x5c4;
/* 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 field_0x6d4[5];
/* 0x06DE */ s16 field_0x6de;
/* 0x06E0 */ int field_0x6e0;
/* 0x06E4 */ int field_0x6e4;
/* 0x06E8 */ fopAc_ac_c* mpMBactor;
/* 0x06EC */ u8 field_0x6ec;
/* 0x06ED */ u8 field_0x6ed;
/* 0x06F0 */ f32 field_0x6f0;
/* 0x06F4 */ s16 field_0x6f4;
/* 0x06F6 */ s16 field_0x6f6;
/* 0x06F8 */ s8 field_0x6f8;
/* 0x06F9 */ u8 field_0x6f9;
/* 0x06FA */ u8 field_0x6fa;
/* 0x06FB */ u8 field_0x6fb;
/* 0x06FC */ u8 field_0x6fc;
/* 0x06FE */ s16 field_0x6fe;
/* 0x0700 */ dCcD_Stts field_0x700;
/* 0x073C */ dCcD_Sph field_0x73c;
/* 0x0874 */ dCcD_Stts field_0x874;
/* 0x08B0 */ dCcD_Sph field_0x8b0;
/* 0x09E8 */ dCcD_Sph field_0x9e8;
/* 0x0B20 */ dCcD_Sph field_0xb20[4];
/* 0x1000 */ dCcD_Sph field_0x1000;
/* 0x1138 */ cXyz field_0x1138;
/* 0x1144 */ cXyz field_0x1144;
/* 0x1150 */ s8 field_0x1150;
/* 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 field_0x1200[4];
/* 0x1210 */ u32 field_0x1210[2];
/* 0x1218 */ u8 field_0x1218[0x1220 - 0x1218];
/* 0x1220 */ u32 field_0x1220;
/* 0x1224 */ u32 field_0x1224;
/* 0x1228 */ u32 field_0x1228[4];
/* 0x1238 */ s16 field_0x1238;
/* 0x123A */ s16 field_0x123a;
/* 0x123C */ u8 field_0x123C[0x1240 - 0x123C];
/* 0x1240 */ cXyz field_0x1240;
/* 0x124C */ cXyz field_0x124c;
/* 0x1258 */ cXyz field_0x1258;
/* 0x1264 */ cXyz field_0x1264;
/* 0x1270 */ cXyz field_0x1270;
/* 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 field_0x12a4;
/* 0x12A8 */ f32 field_0x12a8;
/* 0x12AC */ s16 field_0x12ac;
/* 0x12AE */ s16 field_0x12ae;
/* 0x12B0 */ cXyz field_0x12b0;
/* 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 */ u8 field_0x1394;
/* 0x1395 */ u8 field_0x1395;
/* 0x1396 */ u8 field_0x1396;
/* 0x1397 */ s8 field_0x1397;
/* 0x1398 */ f32 field_0x1398;
/* 0x139C */ u8 field_0x139c;
};
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 */
+20 -3
View File
@@ -1,12 +1,19 @@
#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/cc/d_cc_d.h"
#include "d/msg/d_msg_flow.h"
#include "d/bg/d_bg_s_acch.h"
/**
* @ingroup actors-enemies
* @class daB_DR_c
* @brief Argorok
*
* City in the Sky dungeon boss.
*
*
* @details City in the Sky dungeon boss.
*
*/
class daB_DR_c : public fopEn_enemy_c {
public:
@@ -72,6 +79,7 @@ public:
void onTarget() { mTarget = true; }
bool isBack() { return mPrm0; }
private:
/* 0x05AC */ request_of_phase_process_class mPhase;
/* 0x05B4 */ mDoExt_McaMorfSO* mpModelMorf;
/* 0x05B8 */ J3DModel* mpPartModel;
@@ -163,4 +171,13 @@ public:
/* 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 */
+41
View File
@@ -2,5 +2,46 @@
#define D_A_B_DRE_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.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();
private:
/* 0x5ac */ u8 field_0x5ac[0x930 - 0x5ac];
};
STATIC_ASSERT(sizeof(daB_DRE_c) == 0x930);
#endif /* D_A_B_DRE_H */
+48 -3
View File
@@ -12,10 +12,11 @@
/**
* @ingroup actors-enemies
* @class daB_DS_c
* @brief Stallord
*
* Arbiter's Grounds dungeon boss.
*
*
* @details Arbiter's Grounds dungeon boss.
*
*/
class daB_DS_c : public fopEn_enemy_c {
public:
@@ -177,6 +178,7 @@ public:
/* 805DB974 */ cPhs__Step create();
/* 805DC1E8 */ daB_DS_c();
private:
/* 0x05AC */ request_of_phase_process_class mPhase;
/* 0x05B4 */ mDoExt_McaMorfSO* mpMorf;
/* 0x05B8 */ mDoExt_McaMorfSO* mpSwordMorf;
@@ -321,4 +323,47 @@ public:
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 */
+100
View File
@@ -1,4 +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 */
+32
View File
@@ -1,4 +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 */
+13
View File
@@ -3,6 +3,10 @@
#include "d/msg/d_msg_flow.h"
#include "f_op/f_op_actor_mng.h"
#include "Z2AudioLib/Z2Creature.h"
#include "d/cc/d_cc_d.h"
#include "d/cc/d_cc_uty.h"
#include "d/bg/d_bg_s_acch.h"
struct g_himo_s {
/* 80601D40 */ ~g_himo_s();
@@ -25,6 +29,7 @@ public:
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;
@@ -186,4 +191,12 @@ public:
/* 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 */
+42 -3
View File
@@ -9,13 +9,37 @@
#include "d/cc/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
*
* Unused golem boss made up of several small Gorons.
*
*
* @details Unused golem boss made up of several small Gorons.
*
*/
class b_go_class : public fopEn_enemy_c {
public:
@@ -48,4 +72,19 @@ public:
/* 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 */
+25 -3
View File
@@ -8,12 +8,14 @@
#include "d/cc/d_cc_uty.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class b_gos_class
* @brief Goron Golem (small)
*
* Unused golem boss made up of several small Gorons.
*
*
* @details Unused golem boss made up of several small Gorons.
*
*/
class b_gos_class : public fopEn_enemy_c {
public:
@@ -49,4 +51,24 @@ public:
/* 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 */
+81
View File
@@ -2,5 +2,86 @@
#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 */
+23 -3
View File
@@ -65,10 +65,11 @@ struct ob_ke_s {
/**
* @ingroup actors-enemies
* @class b_ob_class
* @brief Morpheel (body)
*
* Lakebed Temple dungeon boss. This is the core/body part of the boss.
*
*
* @details Lakebed Temple dungeon boss. This is the core/body part of the boss.
*
*/
class b_ob_class : public fopEn_enemy_c {
public:
@@ -188,4 +189,23 @@ public:
/* 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 */
+6 -3
View File
@@ -27,10 +27,11 @@ enum b_oh_action {
/**
* @ingroup actors-enemies
* @class b_oh_class
* @brief Morpheel (head)
*
* Lakebed Temple dungeon boss. This is the head part of the boss.
*
*
* @details Lakebed Temple dungeon boss. This is the head part of the boss.
*
*/
class b_oh_class : public fopEn_enemy_c {
public:
@@ -97,4 +98,6 @@ public:
/* 0x1F86 */ u8 field_0x1f86;
};
STATIC_ASSERT(sizeof(b_oh_class) == 0x1F88);
#endif /* D_A_B_OH_H */
+6 -3
View File
@@ -6,10 +6,11 @@
/**
* @ingroup actors-enemies
* @class b_oh2_class
* @brief Morpheel (tentacle)
*
* Lakebed Temple dungeon boss. This is the tentacle part of the boss.
*
*
* @details Lakebed Temple dungeon boss. This is the tentacle part of the boss.
*
*/
class b_oh2_class : public fopEn_enemy_c {
public:
@@ -35,4 +36,6 @@ public:
/* 0x93C */ u8 field_0x93c[0x948 - 0x93C];
};
STATIC_ASSERT(sizeof(b_oh2_class) == 0x948);
#endif /* D_A_B_OH2_H */
+88 -1
View File
@@ -1,6 +1,93 @@
#ifndef D_A_B_TN_H
#define D_A_B_TN_H
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "d/cc/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 */
+1
View File
@@ -86,6 +86,7 @@ private:
/* 0xFCC */ u8 field_0xfcc;
/* 0xFCD */ u8 field_0xfcd[0x1B88 - 0xFCD];
};
STATIC_ASSERT(sizeof(daB_YO_c) == 0x1B88);
struct daB_YO_HIO_c {
@@ -2,5 +2,57 @@
#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 */
+30 -11
View File
@@ -1,14 +1,22 @@
#ifndef D_A_B_ZANT_H
#define D_A_B_ZANT_H
#include "f_op/f_op_actor_mng.h"
#include "d/cc/d_cc_d.h"
#include "d/cc/d_cc_uty.h"
#include "Z2AudioLib/Z2Creature.h"
#include "d/bg/d_bg_s_acch.h"
#include "d/msg/d_msg_flow.h"
/**
* @ingroup actors-enemies
* @class daB_ZANT_c
* @brief Zant
*
* Palace of Twilight dungeon boss.
*
*
* @details Palace of Twilight dungeon boss.
*
*/
class daB_ZANT_c : public fopAc_ac_c {
class daB_ZANT_c : public fopEn_enemy_c {
public:
/* 8063E19C */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 8063E264 */ void JointCallBack(J3DJoint*, int);
@@ -82,9 +90,6 @@ public:
/* 8064E190 */ void create();
private:
/* 0x0568 */ u8 field_0x568[0x58e - 0x568];
/* 0x058E */ u16 field_0x58e;
/* 0x0590 */ u8 field_0x590[0x5ac - 0x590];
/* 0x05AC */ request_of_phase_process_class mPhase;
/* 0x05B4 */ mDoExt_McaMorfSO* mpMorfSO;
/* 0x05B8 */ J3DModel* field_0x5b8;
@@ -185,11 +190,25 @@ private:
/* 0x3624 */ dCcD_Sph field_0x3624[2];
/* 0x3894 */ u32 field_0x3894;
/* 0x3898 */ u32 field_0x3898;
/* 0x389C */ u32 field_0x389c;
// /* 0x389C */ u32 field_0x389c;
/* 0x38A0 */ u8 field_0x38a0[0x38ac - 0x38a0];
/* 0x38AC */ u32 field_0x38ac[2];
/* 0x38B4 */ u32 field_0x38b4;
/* 0x38B8 */ u8 field_0x38b8;
// /* 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 */

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