EnDekubaba OK and documented, object_dekubaba documented, EnKarebaba documented (#1088)

* OK, struct documented

* Data imported, update spec

* Name data

* Name all functions and variables

* Document object

* Bit more documentation

* Document Karebaba

* Add note to object_dekubaba

* Bit more cleanup

* Review

* Shadow

* Review

* Rename functions, add hit enum

* Figured out the enum

* Review

* MarkForDeath -> Kill
This commit is contained in:
EllipticEllipsis
2023-02-21 14:30:09 -03:00
committed by GitHub
parent 38edda8508
commit 9297e6dd52
9 changed files with 1718 additions and 543 deletions
+36 -23
View File
@@ -1,27 +1,40 @@
<Root>
<!-- Deku Baba and withered Deku Baba assets. Identical to OoT -->
<File Name="object_dekubaba" Segment="6">
<Animation Name="object_dekubaba_Anim_000208" Offset="0x208" />
<Animation Name="object_dekubaba_Anim_0002B8" Offset="0x2B8" />
<DList Name="object_dekubaba_DL_000580" Offset="0x580" />
<DList Name="object_dekubaba_DL_000B68" Offset="0xB68" />
<DList Name="object_dekubaba_DL_0010F0" Offset="0x10F0" />
<DList Name="object_dekubaba_DL_001330" Offset="0x1330" />
<DList Name="object_dekubaba_DL_001628" Offset="0x1628" />
<DList Name="object_dekubaba_DL_001828" Offset="0x1828" />
<Texture Name="object_dekubaba_Tex_0018D0" OutName="tex_0018D0" Format="rgba16" Width="16" Height="32" Offset="0x18D0" />
<Texture Name="object_dekubaba_Tex_001CD0" OutName="tex_001CD0" Format="rgba16" Width="32" Height="32" Offset="0x1CD0" />
<Texture Name="object_dekubaba_Tex_0024D0" OutName="tex_0024D0" Format="rgba16" Width="16" Height="32" Offset="0x24D0" />
<Texture Name="object_dekubaba_Tex_0028D0" OutName="tex_0028D0" Format="rgba16" Width="8" Height="8" Offset="0x28D0" />
<Texture Name="object_dekubaba_Tex_002950" OutName="tex_002950" Format="rgba16" Width="8" Height="8" Offset="0x2950" />
<Limb Name="object_dekubaba_Standardlimb_0029D0" Type="Standard" EnumName="OBJECT_DEKUBABA_LIMB_01" Offset="0x29D0" />
<Limb Name="object_dekubaba_Standardlimb_0029DC" Type="Standard" EnumName="OBJECT_DEKUBABA_LIMB_02" Offset="0x29DC" />
<Limb Name="object_dekubaba_Standardlimb_0029E8" Type="Standard" EnumName="OBJECT_DEKUBABA_LIMB_03" Offset="0x29E8" />
<Limb Name="object_dekubaba_Standardlimb_0029F4" Type="Standard" EnumName="OBJECT_DEKUBABA_LIMB_04" Offset="0x29F4" />
<Limb Name="object_dekubaba_Standardlimb_002A00" Type="Standard" EnumName="OBJECT_DEKUBABA_LIMB_05" Offset="0x2A00" />
<Limb Name="object_dekubaba_Standardlimb_002A0C" Type="Standard" EnumName="OBJECT_DEKUBABA_LIMB_06" Offset="0x2A0C" />
<Limb Name="object_dekubaba_Standardlimb_002A18" Type="Standard" EnumName="OBJECT_DEKUBABA_LIMB_07" Offset="0x2A18" />
<Skeleton Name="object_dekubaba_Skel_002A40" Type="Normal" LimbType="Standard" LimbNone="OBJECT_DEKUBABA_LIMB_NONE" LimbMax="OBJECT_DEKUBABA_LIMB_MAX" EnumName="ObjectDekubabaLimb" Offset="0x2A40" />
<DList Name="object_dekubaba_DL_003070" Offset="0x3070" />
<Texture Name="object_dekubaba_Tex_0031C0" OutName="tex_0031C0" Format="rgba16" Width="32" Height="32" Offset="0x31C0" />
<!-- Deku Baba animations -->
<Animation Name="gDekuBabaPauseChompAnim" Offset="0x208"/>
<Animation Name="gDekuBabaFastChompAnim" Offset="0x2B8"/>
<!-- Deku Baba body DLists (not all are limb DLists) -->
<DList Name="gDekuBabaLowerJawDL" Offset="0x580"/>
<DList Name="gDekuBabaUpperJawDL" Offset="0xB68"/>
<DList Name="gDekuBabaBaseLeavesDL" Offset="0x10F0"/>
<DList Name="gDekuBabaStemTopDL" Offset="0x1330"/>
<DList Name="gDekuBabaStemMiddleDL" Offset="0x1628"/>
<DList Name="gDekuBabaStemBaseDL" Offset="0x1828"/>
<!-- Deku Baba body textures -->
<Texture Name="gDekuBabaJawOuterTex" OutName="deku_baba_jaw_outer" Format="rgba16" Width="16" Height="32" Offset="0x18D0"/>
<Texture Name="gDekuBabaJawInnerTex" OutName="deku_baba_jaw_inner" Format="rgba16" Width="32" Height="32" Offset="0x1CD0"/>
<Texture Name="gDekuBabaLeafTex" OutName="deku_baba_leaf" Format="rgba16" Width="16" Height="32" Offset="0x24D0"/>
<Texture Name="gDekuBabaBulbTex" OutName="deku_baba_bulb" Format="rgba16" Width="8" Height="8" Offset="0x28D0"/>
<Texture Name="gDekuBabaStemTex" OutName="deku_baba_stem" Format="rgba16" Width="8" Height="8" Offset="0x2950"/>
<!-- Deku Baba limbs (upper/lower is only based on the "tongue" being in the lower) -->
<Limb Name="gDekuBabaRootLimb" Type="Standard" EnumName="DEKUBABA_LIMB_ROOT" Offset="0x29D0" />
<Limb Name="gDekuBabaUpperJawRootLimb" Type="Standard" EnumName="DEKUBABA_LIMB_UPPER_JAW_ROOT" Offset="0x29DC" />
<Limb Name="gDekuBabaUpperJawRooWrappertLimb" Type="Standard" EnumName="DEKUBABA_LIMB_UPPER_JAW_WRAPPER" Offset="0x29E8" />
<Limb Name="gDekuBabaUpperJawLimb" Type="Standard" EnumName="DEKUBABA_LIMB_UPPER_JAW" Offset="0x29F4" />
<Limb Name="gDekuBabaLowerJawRootLimb" Type="Standard" EnumName="DEKUBABA_LIMB_LOWER_JAW_ROOT" Offset="0x2A00" />
<Limb Name="gDekuBabaLowerJawWrapperLimb" Type="Standard" EnumName="DEKUBABA_LIMB_LOWER_JAW_WRAPPER" Offset="0x2A0C" />
<Limb Name="gDekuBabaLowerJawLimb" Type="Standard" EnumName="DEKUBABA_LIMB_LOWER_JAW" Offset="0x2A18" />
<!-- Deku Baba skeleton (only used for jaws) -->
<Skeleton Name="gDekuBabaSkel" Type="Normal" LimbType="Standard" LimbNone="DEKUBABA_LIMB_NONE" LimbMax="DEKUBABA_LIMB_MAX" EnumName="DekuBabaLimb" Offset="0x2A40" />
<!-- Deku Baba stick drop -->
<DList Name="gDekuBabaStickDropDL" Offset="0x3070"/>
<Texture Name="gDekuBabaStickDropTex" OutName="deku_baba_stick_drop" Format="rgba16" Width="32" Height="32" Offset="0x31C0"/>
</File>
</Root>
+1 -2
View File
@@ -963,8 +963,7 @@ beginseg
name "ovl_En_Dekubaba"
compress
include "build/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.o"
include "build/data/ovl_En_Dekubaba/ovl_En_Dekubaba.data.o"
include "build/data/ovl_En_Dekubaba/ovl_En_Dekubaba.reloc.o"
include "build/src/overlays/actors/ovl_En_Dekubaba/ovl_En_Dekubaba_reloc.o"
endseg
beginseg
File diff suppressed because it is too large Load Diff
@@ -2,16 +2,35 @@
#define Z_EN_DEKUBABA_H
#include "global.h"
#include "objects/object_dekubaba/object_dekubaba.h"
struct EnDekubaba;
typedef void (*EnDekubabaActionFunc)(struct EnDekubaba*, PlayState*);
typedef enum {
/* 0 */ DEKUBABA_NORMAL,
/* 1 */ DEKUBABA_BIG
} DekuBabaType;
typedef struct EnDekubaba {
/* 0x000 */ Actor actor;
/* 0x144 */ char unk_144[0x44];
/* 0x144 */ SkelAnime skelAnime;
/* 0x188 */ EnDekubabaActionFunc actionFunc;
/* 0x18C */ char unk_18C[0x290];
/* 0x18C */ u8 drawDmgEffType;
/* 0x18E */ s16 timer;
/* 0x190 */ s16 targetSwayAngle;
/* 0x192 */ s16 stemSectionAngle[3];
/* 0x198 */ Vec3s jointTable[DEKUBABA_LIMB_MAX];
/* 0x1C8 */ Vec3s morphTable[DEKUBABA_LIMB_MAX];
/* 0x1F8 */ f32 size;
/* 0x1FC */ f32 drawDmgEffAlpha;
/* 0x200 */ f32 drawDmgEffScale;
/* 0x204 */ f32 drawDmgEffFrozenSteamScale;
/* 0x208 */ Vec3f bodyPartsPos[4];
/* 0x238 */ CollisionPoly* boundFloor;
/* 0x23C */ ColliderJntSph collider;
/* 0x25C */ ColliderJntSphElement colliderElements[7];
} EnDekubaba; // size = 0x41C
#endif // Z_EN_DEKUBABA_H
File diff suppressed because it is too large Load Diff
@@ -2,32 +2,33 @@
#define Z_EN_KAREBABA_H
#include "global.h"
#include "objects/object_dekubaba/object_dekubaba.h"
struct EnKarebaba;
typedef void (*EnKarebabaActionFunc)(struct EnKarebaba*, PlayState*);
enum {
/* 0 */ ENKAREBABA_0,
/* 1 */ ENKAREBABA_1,
/* 2 */ ENKAREBABA_2,
};
typedef enum {
/* 0 */ ENKAREBABA_0, // Unused, always shrinks and drops a Deku Nut
/* 1 */ ENKAREBABA_1, // Drops sticks (Only type OoT has)
/* 2 */ KAREBABA_MINI,
} KarebabaType;
typedef struct EnKarebaba {
/* 0x000 */ Actor actor;
/* 0x144 */ SkelAnime skelAnime;
/* 0x188 */ EnKarebabaActionFunc actionFunc;
/* 0x18C */ Vec3s jointTable[8];
/* 0x1BC */ Vec3s morphTable[8];
/* 0x18C */ Vec3s jointTable[DEKUBABA_LIMB_MAX];
/* 0x1BC */ Vec3s morphTable[DEKUBABA_LIMB_MAX];
/* 0x1EC */ u8 drawDmgEffType;
/* 0x1EE */ s16 unk_1EE;
/* 0x1EE */ s16 timer;
/* 0x1F0 */ f32 drawDmgEffAlpha;
/* 0x1F4 */ f32 drawDmgEffScale;
/* 0x1F8 */ f32 drawDmgEffFrozenSteamScale;
/* 0x1FC */ Vec3f limbPos[4];
/* 0x22C */ CollisionPoly* unk_22C;
/* 0x230 */ ColliderCylinder collider1;
/* 0x27C */ ColliderCylinder collider2;
/* 0x1FC */ Vec3f bodyPartsPos[4];
/* 0x22C */ CollisionPoly* boundFloor;
/* 0x230 */ ColliderCylinder attackCollider;
/* 0x27C */ ColliderCylinder hurtCollider;
} EnKarebaba; // size = 0x2C8
#endif // Z_EN_KAREBABA_H
+67 -67
View File
@@ -5901,48 +5901,48 @@
0x808B0F98:("EnAm_Draw",),
0x808B1330:("EnDekubaba_Init",),
0x808B1504:("EnDekubaba_Destroy",),
0x808B1530:("func_808B1530",),
0x808B15B8:("func_808B15B8",),
0x808B16BC:("func_808B16BC",),
0x808B1798:("func_808B1798",),
0x808B1814:("func_808B1814",),
0x808B18A8:("func_808B18A8",),
0x808B1B14:("func_808B1B14",),
0x808B1BC0:("func_808B1BC0",),
0x808B1CF0:("func_808B1CF0",),
0x808B2158:("func_808B2158",),
0x808B2240:("func_808B2240",),
0x808B2608:("func_808B2608",),
0x808B2660:("func_808B2660",),
0x808B2890:("func_808B2890",),
0x808B28B4:("func_808B28B4",),
0x808B2980:("func_808B2980",),
0x808B29C4:("func_808B29C4",),
0x808B2C40:("func_808B2C40",),
0x808B2CB8:("func_808B2CB8",),
0x808B3044:("func_808B3044",),
0x808B3078:("func_808B3078",),
0x808B3170:("func_808B3170",),
0x808B3280:("func_808B3280",),
0x808B3390:("func_808B3390",),
0x808B3404:("func_808B3404",),
0x808B3768:("func_808B3768",),
0x808B37E8:("func_808B37E8",),
0x808B39AC:("func_808B39AC",),
0x808B3B48:("func_808B3B48",),
0x808B3BE4:("func_808B3BE4",),
0x808B3C50:("func_808B3C50",),
0x808B3D74:("func_808B3D74",),
0x808B3DA8:("func_808B3DA8",),
0x808B3E40:("func_808B3E40",),
0x808B3EE8:("func_808B3EE8",),
0x808B3F50:("func_808B3F50",),
0x808B1530:("EnDekubaba_DisableHitboxes",),
0x808B15B8:("EnDekubaba_UpdateHeadPosition",),
0x808B16BC:("EnDekubaba_SetFireLightEffects",),
0x808B1798:("EnDekubaba_SetFrozenEffects",),
0x808B1814:("EnDekubaba_SpawnIceEffects",),
0x808B18A8:("EnDekubaba_SetupWait",),
0x808B1B14:("EnDekubaba_Wait",),
0x808B1BC0:("EnDekubaba_SetupGrow",),
0x808B1CF0:("EnDekubaba_Grow",),
0x808B2158:("EnDekubaba_SetupRetract",),
0x808B2240:("EnDekubaba_Retract",),
0x808B2608:("EnDekubaba_SetupDecideLunge",),
0x808B2660:("EnDekubaba_DecideLunge",),
0x808B2890:("EnDekubaba_SetupPrepareLunge",),
0x808B28B4:("EnDekubaba_PrepareLunge",),
0x808B2980:("EnDekubaba_SetupLunge",),
0x808B29C4:("EnDekubaba_Lunge",),
0x808B2C40:("EnDekubaba_SetupPullBack",),
0x808B2CB8:("EnDekubaba_PullBack",),
0x808B3044:("EnDekubaba_SetupRecover",),
0x808B3078:("EnDekubaba_Recover",),
0x808B3170:("EnDekubaba_SetupHit",),
0x808B3280:("EnDekubaba_Hit",),
0x808B3390:("EnDekubaba_SetupPrunedSomersaultDie",),
0x808B3404:("EnDekubaba_PrunedSomersaultDie",),
0x808B3768:("EnDekubaba_SetupShrinkDie",),
0x808B37E8:("EnDekubaba_ShrinkDie",),
0x808B39AC:("EnDekubaba_SetupStunnedVertical",),
0x808B3B48:("EnDekubaba_StunnedVertical",),
0x808B3BE4:("EnDekubaba_SetupSway",),
0x808B3C50:("EnDekubaba_Sway",),
0x808B3D74:("EnDekubaba_SetupFrozen",),
0x808B3DA8:("EnDekubaba_Frozen",),
0x808B3E40:("EnDekubaba_SetupDeadStickDrop",),
0x808B3EE8:("EnDekubaba_DeadStickDrop",),
0x808B3F50:("EnDekubaba_UpdateDamage",),
0x808B42FC:("EnDekubaba_Update",),
0x808B4548:("func_808B4548",),
0x808B465C:("func_808B465C",),
0x808B48FC:("func_808B48FC",),
0x808B49C8:("func_808B49C8",),
0x808B4ABC:("func_808B4ABC",),
0x808B4548:("EnDekubaba_DrawStemRetracted",),
0x808B465C:("EnDekubaba_DrawStemExtended",),
0x808B48FC:("EnDekubaba_DrawStemBasePruned",),
0x808B49C8:("EnDekubaba_DrawShadow",),
0x808B4ABC:("EnDekubaba_PostLimbDraw",),
0x808B4AF8:("EnDekubaba_Draw",),
0x808B5230:("EnMFire1_Init",),
0x808B5294:("EnMFire1_Destroy",),
@@ -6675,33 +6675,33 @@
0x808ED3F4:("func_808ED3F4",),
0x808F1200:("EnKarebaba_Init",),
0x808F1334:("EnKarebaba_Destroy",),
0x808F1374:("func_808F1374",),
0x808F13FC:("func_808F13FC",),
0x808F152C:("func_808F152C",),
0x808F155C:("func_808F155C",),
0x808F15B0:("func_808F15B0",),
0x808F1648:("func_808F1648",),
0x808F169C:("func_808F169C",),
0x808F16FC:("func_808F16FC",),
0x808F1778:("func_808F1778",),
0x808F1878:("func_808F1878",),
0x808F190C:("func_808F190C",),
0x808F1A3C:("func_808F1A3C",),
0x808F1A58:("func_808F1A58",),
0x808F1BF8:("func_808F1BF8",),
0x808F1C84:("func_808F1C84",),
0x808F1FAC:("func_808F1FAC",),
0x808F200C:("func_808F200C",),
0x808F20FC:("func_808F20FC",),
0x808F21A4:("func_808F21A4",),
0x808F220C:("func_808F220C",),
0x808F228C:("func_808F228C",),
0x808F238C:("func_808F238C",),
0x808F241C:("func_808F241C",),
0x808F24F8:("func_808F24F8",),
0x808F254C:("func_808F254C",),
0x808F1374:("EnKarebaba_SpawnIceEffects",),
0x808F13FC:("EnKarebaba_SetDamageEffects",),
0x808F152C:("EnKarebaba_ResetColliders",),
0x808F155C:("EnKarebaba_SetupGrow",),
0x808F15B0:("EnKarebaba_Grow",),
0x808F1648:("EnKarebaba_SetupIdle",),
0x808F169C:("EnKarebaba_Idle",),
0x808F16FC:("EnKarebaba_SetupAwaken",),
0x808F1778:("EnKarebaba_Awaken",),
0x808F1878:("EnKarebaba_SetupUpright",),
0x808F190C:("EnKarebaba_Upright",),
0x808F1A3C:("EnKarebaba_SetupSpin",),
0x808F1A58:("EnKarebaba_Spin",),
0x808F1BF8:("EnKarebaba_SetupDying",),
0x808F1C84:("EnKarebaba_Dying",),
0x808F1FAC:("EnKarebaba_SetupShrinkDie",),
0x808F200C:("EnKarebaba_ShrinkDie",),
0x808F20FC:("EnKarebaba_SetupDeadItemDrop",),
0x808F21A4:("EnKarebaba_DeadItemDrop",),
0x808F220C:("EnKarebaba_SetupRetract",),
0x808F228C:("EnKarebaba_Retract",),
0x808F238C:("EnKarebaba_SetupDead",),
0x808F241C:("EnKarebaba_Regrow",),
0x808F24F8:("EnKarebaba_SetupRegrow",),
0x808F254C:("EnKarebaba_Dead",),
0x808F25A4:("EnKarebaba_Update",),
0x808F280C:("func_808F280C",),
0x808F280C:("EnKarebaba_DrawShadow",),
0x808F28F8:("EnKarebaba_Draw",),
0x808F30B0:("EnIn_ChangeAnim",),
0x808F3178:("func_808F3178",),
+11 -11
View File
@@ -6431,15 +6431,15 @@
0x808B11B0:("D_808B11B0","f32","",0x4),
0x808B11B4:("D_808B11B4","f32","",0x4),
0x808B11B8:("D_808B11B8","f32","",0x4),
0x808B4D40:("En_Dekubaba_InitVars","UNK_TYPE1","",0x1),
0x808B4D60:("D_808B4D60","UNK_TYPE1","",0x1),
0x808B4E5C:("D_808B4E5C","UNK_TYPE1","",0x1),
0x808B4E6C:("D_808B4E6C","UNK_TYPE1","",0x1),
0x808B4E74:("D_808B4E74","UNK_TYPE1","",0x1),
0x808B4E94:("D_808B4E94","UNK_TYPE1","",0x1),
0x808B4E98:("D_808B4E98","UNK_TYPE1","",0x1),
0x808B4E9C:("D_808B4E9C","UNK_TYPE1","",0x1),
0x808B4EA0:("D_808B4EA0","UNK_PTR","",0x4),
0x808B4D40:("En_Dekubaba_InitVars","ActorInit","",0x20),
0x808B4D60:("sJntSphElementsInit","ColliderJntSphElementInit","[7]",0xFC),
0x808B4E5C:("sJntSphInit","ColliderJntSphInit","",0x10),
0x808B4E6C:("sColChkInfoInit","CollisionCheckInfoInit","",0x4),
0x808B4E74:("sDamageTable","DamageTable","",0x20),
0x808B4E94:("sInitChain","InitChainEntry","[1]",0x4),
0x808B4E98:("sDustPrimColor","Color_RGBA8","",0x4),
0x808B4E9C:("sDustEnvColor","Color_RGBA8","",0x4),
0x808B4EA0:("sStemDLists","Gfx*","[3]",0xC),
0x808B4EB0:("D_808B4EB0","f32","",0x4),
0x808B4EB4:("D_808B4EB4","f32","",0x4),
0x808B4EB8:("D_808B4EB8","f32","",0x4),
@@ -7197,8 +7197,8 @@
0x808F2DF8:("D_808F2DF8","UNK_TYPE1","",0x1),
0x808F2E00:("D_808F2E00","UNK_TYPE1","",0x1),
0x808F2E20:("D_808F2E20","UNK_TYPE1","",0x1),
0x808F2E28:("D_808F2E28","UNK_TYPE1","",0x1),
0x808F2E2C:("D_808F2E2C","UNK_PTR","",0x4),
0x808F2E28:("sFogColor","Color_RGBA8","",0x4),
0x808F2E2C:("sStemDLists","Gfx*","[3]",0xC),
0x808F2E40:("D_808F2E40","f32","",0x4),
0x808F2E44:("D_808F2E44","f32","",0x4),
0x808F2E48:("D_808F2E48","f32","",0x4),
-10
View File
@@ -780,16 +780,6 @@ D_0600CB2C = 0x0600CB2C;
D_0600CB84 = 0x0600CB84;
D_0600CBC0 = 0x0600CBC0;
// ovl_En_Dekubaba
D_06000208 = 0x06000208;
D_060002B8 = 0x060002B8;
D_060010F0 = 0x060010F0;
D_06001330 = 0x06001330;
D_06001828 = 0x06001828;
D_06002A40 = 0x06002A40;
D_06003070 = 0x06003070;
// ovl_En_Dnh
D_06002950 = 0x06002950;