diff --git a/assets/xml/objects/object_anubice.xml b/assets/xml/objects/object_anubice.xml
index 492a8e4235..903804f74a 100644
--- a/assets/xml/objects/object_anubice.xml
+++ b/assets/xml/objects/object_anubice.xml
@@ -1,6 +1,6 @@
-
+
@@ -69,20 +69,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_bl.xml b/assets/xml/objects/object_bl.xml
index a987840a31..3ae9c89dc0 100644
--- a/assets/xml/objects/object_bl.xml
+++ b/assets/xml/objects/object_bl.xml
@@ -34,10 +34,10 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/assets/xml/objects/object_bw.xml b/assets/xml/objects/object_bw.xml
index 27a84f18f2..e7693b47aa 100644
--- a/assets/xml/objects/object_bw.xml
+++ b/assets/xml/objects/object_bw.xml
@@ -33,20 +33,20 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/assets/xml/objects/object_fu.xml b/assets/xml/objects/object_fu.xml
index 1bc18759a5..4a5bb6c74d 100644
--- a/assets/xml/objects/object_fu.xml
+++ b/assets/xml/objects/object_fu.xml
@@ -35,22 +35,22 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ge1.xml b/assets/xml/objects/object_ge1.xml
index bbb5d82a0d..0aaaf59b7b 100644
--- a/assets/xml/objects/object_ge1.xml
+++ b/assets/xml/objects/object_ge1.xml
@@ -2,24 +2,24 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_geldb.xml b/assets/xml/objects/object_geldb.xml
index f80ad410a6..1488db00b0 100644
--- a/assets/xml/objects/object_geldb.xml
+++ b/assets/xml/objects/object_geldb.xml
@@ -1,7 +1,7 @@
-
+
@@ -120,28 +120,28 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gndd.xml b/assets/xml/objects/object_gndd.xml
index d284893579..8f119f05ef 100644
--- a/assets/xml/objects/object_gndd.xml
+++ b/assets/xml/objects/object_gndd.xml
@@ -145,31 +145,31 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/assets/xml/objects/object_hata.xml b/assets/xml/objects/object_hata.xml
index 98887b030d..7a8beff3a4 100644
--- a/assets/xml/objects/object_hata.xml
+++ b/assets/xml/objects/object_hata.xml
@@ -7,29 +7,29 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_im.xml b/assets/xml/objects/object_im.xml
index c6ce6b6890..546f38a9a3 100644
--- a/assets/xml/objects/object_im.xml
+++ b/assets/xml/objects/object_im.xml
@@ -107,23 +107,23 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/code/z_camera.c b/src/code/z_camera.c
index 71f6a0b82e..0dbffa669d 100644
--- a/src/code/z_camera.c
+++ b/src/code/z_camera.c
@@ -3593,7 +3593,7 @@ s32 Camera_KeepOn3(Camera* camera) {
playerHeadPos = camPlayerPosRot->pos;
playerHeadPos.y += playerHeight;
rwData->atTarget = Camera_AddVecGeoToVec3f(&playerHeadPos, &targetToPlayerDir);
- angleCnt = ARRAY_COUNT(D_8011D3B0);
+ angleCnt = ARRAY_COUNT(sCamCheckAroundOffsetsYaw);
i = 0;
targetToPlayerDir.r = prevTargetPlayerDist;
atToEyeAdj.r = roData->minDist + (targetToPlayerDir.r * (1 - 0.5f)) - atToEyeNextDir.r + atToEyeNextDir.r;
@@ -3605,8 +3605,8 @@ s32 Camera_KeepOn3(Camera* camera) {
!Camera_BGCheck(camera, &rwData->atTarget, &lineChkPointB)) {
break;
}
- atToEyeAdj.yaw = sp80 + D_8011D3B0[i];
- atToEyeAdj.pitch = sp82 + D_8011D3CC[i];
+ atToEyeAdj.yaw = sp80 + sCamCheckAroundOffsetsYaw[i];
+ atToEyeAdj.pitch = sp82 + sCamCheckAroundOffsetsPitch[i];
lineChkPointB = Camera_AddVecGeoToVec3f(&rwData->atTarget, &atToEyeAdj);
i++;
}
@@ -3664,24 +3664,24 @@ s32 Camera_KeepOn3(Camera* camera) {
"ique-cn:128 ntsc-1.0:79 ntsc-1.1:79 ntsc-1.2:79 pal-1.0:79 pal-1.1:79"
s32 Camera_KeepOn4(Camera* camera) {
- static Vec3f D_8015BD50;
+ static Vec3f sAtTarget;
static Vec3f D_8015BD60;
- static Vec3f D_8015BD70;
+ static Vec3f sEyeCandidate;
Vec3f* eye = &camera->eye;
Vec3f* at = &camera->at;
Vec3f* eyeNext = &camera->eyeNext;
- Actor* spCC[2];
+ Actor* lineOCCheckExclusions[2];
f32 t = -0.5f;
f32 temp_f0_2;
CollisionPoly* spC0;
- VecGeo spB8;
- UNUSED VecGeo spB0;
- VecGeo spA8;
+ VecGeo vecGeo;
+ VecGeo atToEyeDir;
+ VecGeo atToEyeNextDir;
s16* itemType = &camera->data2;
- s16 spA2;
- s16 spA0;
+ s16 atToEyeBasePitch;
+ s16 atToEyeBaseYaw;
s16 sp9E;
- s16 sp9C;
+ s16 lineOCCheckNumExclusions;
PosRot* playerPosRot = &camera->playerPosRot;
KeepOn4ReadOnlyData* roData = &camera->paramData.keep4.roData;
KeepOn4ReadWriteData* rwData = &camera->paramData.keep4.rwData;
@@ -3839,87 +3839,87 @@ s32 Camera_KeepOn4(Camera* camera) {
sUpdateCameraDirection = 1;
sCameraInterfaceField = roData->interfaceField;
- spB0 = OLib_Vec3fDiffToVecGeo(at, eye);
- spA8 = OLib_Vec3fDiffToVecGeo(at, eyeNext);
- D_8015BD50 = playerPosRot->pos;
- D_8015BD50.y += playerHeight;
- temp_f0_2 = BgCheck_CameraRaycastDown2(&camera->play->colCtx, &spC0, &i, &D_8015BD50);
- if (temp_f0_2 > (roData->unk_00 + D_8015BD50.y)) {
- D_8015BD50.y = temp_f0_2 + 10.0f;
+ atToEyeDir = OLib_Vec3fDiffToVecGeo(at, eye);
+ atToEyeNextDir = OLib_Vec3fDiffToVecGeo(at, eyeNext);
+ sAtTarget = playerPosRot->pos;
+ sAtTarget.y += playerHeight;
+ temp_f0_2 = BgCheck_CameraRaycastDown2(&camera->play->colCtx, &spC0, &i, &sAtTarget);
+ if (temp_f0_2 > (roData->unk_00 + sAtTarget.y)) {
+ sAtTarget.y = temp_f0_2 + 10.0f;
} else {
- D_8015BD50.y += roData->unk_00;
+ sAtTarget.y += roData->unk_00;
}
- sp9C = 0;
+ lineOCCheckNumExclusions = 0;
switch (camera->animState) {
case 0:
case 20:
- spCC[sp9C] = &camera->player->actor;
- sp9C++;
+ lineOCCheckExclusions[lineOCCheckNumExclusions] = &camera->player->actor;
+ lineOCCheckNumExclusions++;
func_80043ABC(camera);
camera->stateFlags &= ~(CAM_STATE_CHECK_WATER | CAM_STATE_CHECK_BG);
rwData->unk_10 = roData->unk_1E;
rwData->unk_08 = playerPosRot->pos.y - camera->playerPosDelta.y;
if (roData->interfaceField & KEEPON4_FLAG_1) {
- spA2 = CAM_DEG_TO_BINANG(roData->unk_08);
- spA0 = (s16)((s16)(playerPosRot->rot.y - 0x7FFF) - spA8.yaw) > 0
- ? (s16)(playerPosRot->rot.y - 0x7FFF) + CAM_DEG_TO_BINANG(roData->unk_0C)
- : (s16)(playerPosRot->rot.y - 0x7FFF) - CAM_DEG_TO_BINANG(roData->unk_0C);
+ atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->unk_08);
+ atToEyeBaseYaw = (s16)((s16)(playerPosRot->rot.y - 0x7FFF) - atToEyeNextDir.yaw) > 0
+ ? (s16)(playerPosRot->rot.y - 0x7FFF) + CAM_DEG_TO_BINANG(roData->unk_0C)
+ : (s16)(playerPosRot->rot.y - 0x7FFF) - CAM_DEG_TO_BINANG(roData->unk_0C);
} else if (roData->interfaceField & KEEPON4_FLAG_2) {
- spA2 = CAM_DEG_TO_BINANG(roData->unk_08);
- spA0 = CAM_DEG_TO_BINANG(roData->unk_0C);
+ atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->unk_08);
+ atToEyeBaseYaw = CAM_DEG_TO_BINANG(roData->unk_0C);
} else if ((roData->interfaceField & KEEPON4_FLAG_3) && camera->target != NULL) {
PosRot sp60;
sp60 = Actor_GetWorldPosShapeRot(camera->target);
- spA2 = CAM_DEG_TO_BINANG(roData->unk_08) - sp60.rot.x;
- spA0 = (s16)((s16)(sp60.rot.y - 0x7FFF) - spA8.yaw) > 0
- ? (s16)(sp60.rot.y - 0x7FFF) + CAM_DEG_TO_BINANG(roData->unk_0C)
- : (s16)(sp60.rot.y - 0x7FFF) - CAM_DEG_TO_BINANG(roData->unk_0C);
- spCC[1] = camera->target;
- sp9C++;
+ atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->unk_08) - sp60.rot.x;
+ atToEyeBaseYaw = (s16)((s16)(sp60.rot.y - 0x7FFF) - atToEyeNextDir.yaw) > 0
+ ? (s16)(sp60.rot.y - 0x7FFF) + CAM_DEG_TO_BINANG(roData->unk_0C)
+ : (s16)(sp60.rot.y - 0x7FFF) - CAM_DEG_TO_BINANG(roData->unk_0C);
+ lineOCCheckExclusions[1] = camera->target;
+ lineOCCheckNumExclusions++;
} else if ((roData->interfaceField & KEEPON4_FLAG_7) && camera->target != NULL) {
PosRot sp4C;
sp4C = Actor_GetWorld(camera->target);
- spA2 = CAM_DEG_TO_BINANG(roData->unk_08);
+ atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->unk_08);
sp9E = Camera_XZAngle(&sp4C.pos, &playerPosRot->pos);
- spA0 = ((s16)(sp9E - spA8.yaw) > 0) ? sp9E + CAM_DEG_TO_BINANG(roData->unk_0C)
- : sp9E - CAM_DEG_TO_BINANG(roData->unk_0C);
- spCC[1] = camera->target;
- sp9C++;
+ atToEyeBaseYaw = ((s16)(sp9E - atToEyeNextDir.yaw) > 0) ? sp9E + CAM_DEG_TO_BINANG(roData->unk_0C)
+ : sp9E - CAM_DEG_TO_BINANG(roData->unk_0C);
+ lineOCCheckExclusions[1] = camera->target;
+ lineOCCheckNumExclusions++;
} else if (roData->interfaceField & KEEPON4_FLAG_6) {
- spA2 = CAM_DEG_TO_BINANG(roData->unk_08);
- spA0 = spA8.yaw;
+ atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->unk_08);
+ atToEyeBaseYaw = atToEyeNextDir.yaw;
} else {
- spA2 = spA8.pitch;
- spA0 = spA8.yaw;
+ atToEyeBasePitch = atToEyeNextDir.pitch;
+ atToEyeBaseYaw = atToEyeNextDir.yaw;
}
- spB8.pitch = spA2;
- spB8.yaw = spA0;
- spB8.r = roData->unk_04;
- D_8015BD70 = Camera_AddVecGeoToVec3f(&D_8015BD50, &spB8);
+ vecGeo.pitch = atToEyeBasePitch;
+ vecGeo.yaw = atToEyeBaseYaw;
+ vecGeo.r = roData->unk_04;
+ sEyeCandidate = Camera_AddVecGeoToVec3f(&sAtTarget, &vecGeo);
if (!(roData->interfaceField & KEEPON4_FLAG_0)) {
- angleCnt = ARRAY_COUNT(D_8011D3B0);
+ angleCnt = ARRAY_COUNT(sCamCheckAroundOffsetsYaw);
for (i = 0; i < angleCnt; i++) {
- if (!CollisionCheck_LineOCCheck(camera->play, &camera->play->colChkCtx, &D_8015BD50, &D_8015BD70,
- spCC, sp9C) &&
- !Camera_BGCheck(camera, &D_8015BD50, &D_8015BD70)) {
+ if (!CollisionCheck_LineOCCheck(camera->play, &camera->play->colChkCtx, &sAtTarget, &sEyeCandidate,
+ lineOCCheckExclusions, lineOCCheckNumExclusions) &&
+ !Camera_BGCheck(camera, &sAtTarget, &sEyeCandidate)) {
break;
}
- spB8.yaw = D_8011D3B0[i] + spA0;
- spB8.pitch = D_8011D3CC[i] + spA2;
- D_8015BD70 = Camera_AddVecGeoToVec3f(&D_8015BD50, &spB8);
+ vecGeo.yaw = sCamCheckAroundOffsetsYaw[i] + atToEyeBaseYaw;
+ vecGeo.pitch = sCamCheckAroundOffsetsPitch[i] + atToEyeBasePitch;
+ sEyeCandidate = Camera_AddVecGeoToVec3f(&sAtTarget, &vecGeo);
}
#if DEBUG_FEATURES
PRINTF("camera: item: BG&collision check %d time(s)\n", i);
#endif
}
- rwData->unk_04 = (s16)(spB8.pitch - spA8.pitch) / (f32)rwData->unk_10;
- rwData->unk_00 = (s16)(spB8.yaw - spA8.yaw) / (f32)rwData->unk_10;
- rwData->unk_0C = spA8.yaw;
- rwData->unk_0E = spA8.pitch;
+ rwData->unk_04 = (s16)(vecGeo.pitch - atToEyeNextDir.pitch) / (f32)rwData->unk_10;
+ rwData->unk_00 = (s16)(vecGeo.yaw - atToEyeNextDir.yaw) / (f32)rwData->unk_10;
+ rwData->unk_0C = atToEyeNextDir.yaw;
+ rwData->unk_0E = atToEyeNextDir.pitch;
camera->animState++;
rwData->unk_12 = 1;
break;
@@ -3931,16 +3931,16 @@ s32 Camera_KeepOn4(Camera* camera) {
camera->xzOffsetUpdateRate = 0.25f;
camera->yOffsetUpdateRate = 0.25f;
camera->atLERPStepScale = 0.75f;
- Camera_LERPCeilVec3f(&D_8015BD50, at, 0.5f, 0.5f, 0.2f);
+ Camera_LERPCeilVec3f(&sAtTarget, at, 0.5f, 0.5f, 0.2f);
if (roData->unk_10 != 0.0f) {
- spB8.r = roData->unk_10;
- spB8.pitch = 0;
- spB8.yaw = playerPosRot->rot.y;
- *at = Camera_AddVecGeoToVec3f(at, &spB8);
+ vecGeo.r = roData->unk_10;
+ vecGeo.pitch = 0;
+ vecGeo.yaw = playerPosRot->rot.y;
+ *at = Camera_AddVecGeoToVec3f(at, &vecGeo);
}
camera->atLERPStepScale = 0.0f;
camera->dist = Camera_LERPCeilF(roData->unk_04, camera->dist, 0.25f, 2.0f);
- spB8.r = camera->dist;
+ vecGeo.r = camera->dist;
if (rwData->unk_10 != 0) {
camera->stateFlags |= CAM_STATE_LOCK_MODE;
rwData->unk_0C += (s16)rwData->unk_00;
@@ -3967,9 +3967,9 @@ s32 Camera_KeepOn4(Camera* camera) {
}
}
}
- spB8.yaw = Camera_LERPCeilS(rwData->unk_0C, spA8.yaw, roData->unk_14, 4);
- spB8.pitch = Camera_LERPCeilS(rwData->unk_0E, spA8.pitch, roData->unk_14, 4);
- *eyeNext = Camera_AddVecGeoToVec3f(at, &spB8);
+ vecGeo.yaw = Camera_LERPCeilS(rwData->unk_0C, atToEyeNextDir.yaw, roData->unk_14, 4);
+ vecGeo.pitch = Camera_LERPCeilS(rwData->unk_0E, atToEyeNextDir.pitch, roData->unk_14, 4);
+ *eyeNext = Camera_AddVecGeoToVec3f(at, &vecGeo);
*eye = *eyeNext;
Camera_BGCheck(camera, at, eye);
camera->fov = Camera_LERPCeilF(roData->unk_18, camera->fov, camera->fovUpdateRate, 1.0f);
diff --git a/src/code/z_camera_data.inc.c b/src/code/z_camera_data.inc.c
index 9a9795f453..9f724ec084 100644
--- a/src/code/z_camera_data.inc.c
+++ b/src/code/z_camera_data.inc.c
@@ -2574,12 +2574,14 @@ s32 sCameraLetterboxSize = 32;
s32 D_8011D3AC = -1;
-s16 D_8011D3B0[] = {
- 0x0AAA, 0xF556, 0x1555, 0xEAAB, 0x2AAA, 0xD556, 0x3FFF, 0xC001, 0x5555, 0xAAAB, 0x6AAA, 0x9556, 0x7FFF, 0x0000,
+// Used in Camera_KeepOn3 and Camera_KeepOn4 to check around an `at` position for an `eye` position such that the
+// `at`-`eye` segment is not obstructed by collision or colliders.
+s16 sCamCheckAroundOffsetsYaw[] = {
+ 0x0AAA, -0x0AAA, 0x1555, -0x1555, 0x2AAA, -0x2AAA, 0x3FFF,
+ -0x3FFF, 0x5555, -0x5555, 0x6AAA, -0x6AAA, 0x7FFF, 0x0000,
};
-
-s16 D_8011D3CC[] = {
- 0x0000, 0x02C6, 0x058C, 0x0000, 0x0000, 0xFD3A, 0x0000, 0x0852, 0x0000, 0x0000, 0x0B18, 0x02C6, 0xFA74, 0x0000,
+s16 sCamCheckAroundOffsetsPitch[] = {
+ 0x0000, 0x02C6, 0x058C, 0x0000, 0x0000, -0x02C6, 0x0000, 0x0852, 0x0000, 0x0000, 0x0B18, 0x02C6, -0x058C, 0x0000,
};
s32 sUpdateCameraDirection = 0;
diff --git a/src/overlays/actors/ovl_Demo_Im/z_demo_im.h b/src/overlays/actors/ovl_Demo_Im/z_demo_im.h
index ac3e06250c..ddbec02833 100644
--- a/src/overlays/actors/ovl_Demo_Im/z_demo_im.h
+++ b/src/overlays/actors/ovl_Demo_Im/z_demo_im.h
@@ -4,32 +4,13 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_im/object_im.h"
+
struct DemoIm;
typedef void (*DemoImActionFunc)(struct DemoIm*, struct PlayState*);
typedef void (*DemoImDrawFunc)(struct DemoIm*, struct PlayState*);
-typedef enum ImpaLimb {
- /* 0x00 */ IMPA_LIMB_NONE,
- /* 0x01 */ IMPA_LIMB_ROOT,
- /* 0x02 */ IMPA_LIMB_TORSO,
- /* 0x03 */ IMPA_LIMB_LEFT_THIGH,
- /* 0x04 */ IMPA_LIMB_LEFT_LEG,
- /* 0x05 */ IMPA_LIMB_LEFT_FOOT,
- /* 0x06 */ IMPA_LIMB_RIGHT_THIGH,
- /* 0x07 */ IMPA_LIMB_RIGHT_LEG,
- /* 0x08 */ IMPA_LIMB_RIGHT_FOOT,
- /* 0x09 */ IMPA_LIMB_CHEST,
- /* 0x0A */ IMPA_LIMB_LEFT_SHOULDER,
- /* 0x0B */ IMPA_LIMB_LEFT_ARM,
- /* 0x0C */ IMPA_LIMB_LEFT_HAND,
- /* 0x0D */ IMPA_LIMB_RIGHT_SHOULDER,
- /* 0x0E */ IMPA_LIMB_RIGHT_ARM,
- /* 0x0F */ IMPA_LIMB_RIGHT_HAND,
- /* 0x10 */ IMPA_LIMB_HEAD,
- /* 0x11 */ IMPA_LIMB_MAX
-} ImpaLimb;
-
typedef struct DemoIm {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
diff --git a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.h b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.h
index 51b143fa1e..fd54405a29 100644
--- a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.h
+++ b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.h
@@ -4,30 +4,12 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_anubice/object_anubice.h"
+
struct EnAnubice;
typedef void (*EnAnubiceActionFunc)(struct EnAnubice*, struct PlayState*);
-typedef enum AnubiceLimbs {
- /* 0 */ ANUBICE_LIMB_NONE,
- /* 1 */ ANUBICE_LIMB_ROOT,
- /* 2 */ ANUBICE_LIMB_BODY_ROOT,
- /* 3 */ ANUBICE_LIMB_CHEST,
- /* 4 */ ANUBICE_LIMB_ABDOMEN_ROOT,
- /* 5 */ ANUBICE_LIMB_UPPER_ABDOMEN,
- /* 6 */ ANUBICE_LIMB_LOWER_ABDOMEN,
- /* 7 */ ANUBICE_LIMB_TAIL_ROOT,
- /* 8 */ ANUBICE_LIMB_TAIL_BASE,
- /* 9 */ ANUBICE_LIMB_TAIL_TIP,
- /* 10 */ ANUBICE_LIMB_JEWEL_ROOT,
- /* 11 */ ANUBICE_LIMB_JEWEL,
- /* 12 */ ANUBICE_LIMB_HEAD_ROOT,
- /* 13 */ ANUBICE_LIMB_HEAD,
- /* 14 */ ANUBICE_LIMB_JAW_ROOT,
- /* 15 */ ANUBICE_LIMB_JAW,
- /* 16 */ ANUBICE_LIMB_MAX
-} AnubiceLimbs;
-
typedef struct EnAnubice {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
diff --git a/src/overlays/actors/ovl_En_Bili/z_en_bili.c b/src/overlays/actors/ovl_En_Bili/z_en_bili.c
index 0e7c532efb..4f7ef8cde7 100644
--- a/src/overlays/actors/ovl_En_Bili/z_en_bili.c
+++ b/src/overlays/actors/ovl_En_Bili/z_en_bili.c
@@ -134,7 +134,7 @@ void EnBili_Init(Actor* thisx, PlayState* play) {
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 17.0f);
this->actor.shape.shadowAlpha = 155;
SkelAnime_Init(play, &this->skelAnime, &gBiriSkel, &gBiriDefaultAnim, this->jointTable, this->morphTable,
- EN_BILI_LIMB_MAX);
+ BIRI_LIMB_MAX);
Collider_InitCylinder(play, &this->collider);
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit);
@@ -749,11 +749,11 @@ s32 EnBili_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f*
Vec3f limbScale = { 1.0f, 1.0f, 1.0f };
f32 curFrame = this->skelAnime.curFrame;
- if (limbIndex == EN_BILI_LIMB_OUTER_HOOD) {
+ if (limbIndex == BIRI_LIMB_OUTER_HOOD) {
EnBili_PulseLimb3(this, curFrame, &limbScale);
- } else if (limbIndex == EN_BILI_LIMB_INNER_HOOD) {
+ } else if (limbIndex == BIRI_LIMB_INNER_HOOD) {
EnBili_PulseLimb2(this, curFrame, &limbScale);
- } else if (limbIndex == EN_BILI_LIMB_TENTACLES) {
+ } else if (limbIndex == BIRI_LIMB_TENTACLES) {
EnBili_PulseLimb4(this, curFrame, &limbScale);
rot->y = (Camera_GetCamDirYaw(GET_ACTIVE_CAM(play)) - this->actor.shape.rot.y) + 0x8000;
}
diff --git a/src/overlays/actors/ovl_En_Bili/z_en_bili.h b/src/overlays/actors/ovl_En_Bili/z_en_bili.h
index b0e58c4679..0675847ee2 100644
--- a/src/overlays/actors/ovl_En_Bili/z_en_bili.h
+++ b/src/overlays/actors/ovl_En_Bili/z_en_bili.h
@@ -4,19 +4,12 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_bl/object_bl.h"
+
struct EnBili;
typedef void (*EnBiliActionFunc)(struct EnBili*, struct PlayState*);
-typedef enum EnBiliLimb {
- /* 0 */ EN_BILI_LIMB_NONE,
- /* 1 */ EN_BILI_LIMB_ROOT,
- /* 2 */ EN_BILI_LIMB_INNER_HOOD,
- /* 3 */ EN_BILI_LIMB_OUTER_HOOD,
- /* 4 */ EN_BILI_LIMB_TENTACLES,
- /* 5 */ EN_BILI_LIMB_MAX
-} EnBiliLimb;
-
typedef struct EnBili {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
@@ -24,8 +17,8 @@ typedef struct EnBili {
/* 0x0194 */ u8 tentaclesTexIndex;
/* 0x0195 */ u8 playFlySfx;
/* 0x0196 */ s16 timer;
- /* 0x0198 */ Vec3s jointTable[EN_BILI_LIMB_MAX];
- /* 0x01B6 */ Vec3s morphTable[EN_BILI_LIMB_MAX];
+ /* 0x0198 */ Vec3s jointTable[BIRI_LIMB_MAX];
+ /* 0x01B6 */ Vec3s morphTable[BIRI_LIMB_MAX];
/* 0x01D4 */ ColliderCylinder collider;
} EnBili; // size = 0x0220
diff --git a/src/overlays/actors/ovl_En_Bw/z_en_bw.h b/src/overlays/actors/ovl_En_Bw/z_en_bw.h
index fe9f8ef90a..e3ae7da245 100644
--- a/src/overlays/actors/ovl_En_Bw/z_en_bw.h
+++ b/src/overlays/actors/ovl_En_Bw/z_en_bw.h
@@ -4,25 +4,11 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_bw/object_bw.h"
+
struct EnBw;
typedef void (*EnBwActionFunc)(struct EnBw*, struct PlayState*);
-typedef enum TorchSlugLimb {
- /* 0 */ TORCH_SLUG_LIMB_NONE,
- /* 1 */ TORCH_SLUG_LIMB_BODY,
- /* 2 */ TORCH_SLUG_LIMB_LEFT_EYESTALK_ROOT_ROOT,
- /* 3 */ TORCH_SLUG_LIMB_LEFT_EYESTALK_ROOT,
- /* 4 */ TORCH_SLUG_LIMB_LEFT_UPPER_EYESTALK_ROOT,
- /* 5 */ TORCH_SLUG_LIMB_LEFT_UPPER_EYESTALK,
- /* 6 */ TORCH_SLUG_LIMB_LEFT_LOWER_EYESTALK,
- /* 7 */ TORCH_SLUG_LIMB_RIGHT_EYESTALK_ROOT_ROOT,
- /* 8 */ TORCH_SLUG_LIMB_RIGHT_EYESTALK_ROOT,
- /* 9 */ TORCH_SLUG_LIMB_RIGHT_UPPER_EYESTALK_ROOT,
- /* 10 */ TORCH_SLUG_LIMB_RIGHT_UPPER_EYESTALK,
- /* 11 */ TORCH_SLUG_LIMB_RIGHT_LOWER_EYESTALK,
- /* 12 */ TORCH_SLUG_LIMB_MAX
-} TorchSlugLimb;
-
typedef struct EnBw {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.c b/src/overlays/actors/ovl_En_Fu/z_en_fu.c
index e8cfb6342f..9495395aa3 100644
--- a/src/overlays/actors/ovl_En_Fu/z_en_fu.c
+++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.c
@@ -92,7 +92,7 @@ void EnFu_Init(Actor* thisx, PlayState* play) {
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 36.0f);
SkelAnime_InitFlex(play, &this->skelanime, &gWindmillManSkel, &gWindmillManPlayStillAnim, this->jointTable,
- this->morphTable, FU_LIMB_MAX);
+ this->morphTable, WINDMILL_MAN_LIMB_MAX);
Animation_PlayLoop(&this->skelanime, &gWindmillManPlayStillAnim);
Collider_InitCylinder(play, &this->collider);
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
@@ -276,15 +276,15 @@ s32 EnFu_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
EnFu* this = (EnFu*)thisx;
s32 pad;
- if (limbIndex == FU_LIMB_UNK) {
+ if (limbIndex == WINDMILL_MAN_LIMB_UNK) {
return false;
}
switch (limbIndex) {
- case FU_LIMB_HEAD:
+ case WINDMILL_MAN_LIMB_HEAD:
rot->x += this->lookAngleOffset.y;
rot->z += this->lookAngleOffset.x;
break;
- case FU_LIMB_CHEST_MUSIC_BOX:
+ case WINDMILL_MAN_LIMB_CHEST_MUSIC_BOX:
break;
}
@@ -292,7 +292,7 @@ s32 EnFu_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
return false;
}
- if (limbIndex == FU_LIMB_CHEST_MUSIC_BOX) {
+ if (limbIndex == WINDMILL_MAN_LIMB_CHEST_MUSIC_BOX) {
rot->y += Math_SinS((play->state.frames * (limbIndex * FIDGET_FREQ_LIMB + FIDGET_FREQ_Y))) * FIDGET_AMPLITUDE;
rot->z += Math_CosS((play->state.frames * (limbIndex * FIDGET_FREQ_LIMB + FIDGET_FREQ_Z))) * FIDGET_AMPLITUDE;
}
@@ -302,7 +302,7 @@ s32 EnFu_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
void EnFu_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
EnFu* this = (EnFu*)thisx;
- if (limbIndex == FU_LIMB_HEAD) {
+ if (limbIndex == WINDMILL_MAN_LIMB_HEAD) {
Matrix_MultVec3f(&sMtxSrc, &this->actor.focus.pos);
}
}
diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.h b/src/overlays/actors/ovl_En_Fu/z_en_fu.h
index d2138f7613..bfd2842e14 100644
--- a/src/overlays/actors/ovl_En_Fu/z_en_fu.h
+++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.h
@@ -4,36 +4,18 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_fu/object_fu.h"
+
struct EnFu;
typedef void (*EnFuActionFunc)(struct EnFu*, struct PlayState*);
-typedef enum EnFuLimb {
- /* 0x00 */ FU_LIMB_ROOT,
- /* 0x01 */ FU_LIMB_TORSO,
- /* 0x02 */ FU_LIMB_LEFT_THIGH,
- /* 0x03 */ FU_LIMB_LEFT_LEG,
- /* 0x04 */ FU_LIMB_LEFT_FOOT,
- /* 0x05 */ FU_LIMB_RIGHT_THIGH,
- /* 0x06 */ FU_LIMB_RIGHT_LEG,
- /* 0x07 */ FU_LIMB_RIGHT_FOOT,
- /* 0x08 */ FU_LIMB_CHEST_MUSIC_BOX,
- /* 0x09 */ FU_LIMB_LEFT_ARM_MUSIC_BOX,
- /* 0x0A */ FU_LIMB_UNK,
- /* 0x0B */ FU_LIMB_RIGHT_SHOULDER,
- /* 0x0C */ FU_LIMB_RIGHT_ARM,
- /* 0x0D */ FU_LIMB_RIGHT_HAND_AND_CRANK,
- /* 0x0E */ FU_LIMB_HEAD,
- /* 0x0F */ FU_LIMB_HORN,
- /* 0x10 */ FU_LIMB_MAX
-} EnFuLimb;
-
typedef struct EnFu {
/* 0x0000 */ Actor actor;
/* 0x014C */ ColliderCylinder collider;
/* 0x0198 */ SkelAnime skelanime;
- /* 0x01DC */ Vec3s jointTable[FU_LIMB_MAX];
- /* 0x023C */ Vec3s morphTable[FU_LIMB_MAX];
+ /* 0x01DC */ Vec3s jointTable[WINDMILL_MAN_LIMB_MAX];
+ /* 0x023C */ Vec3s morphTable[WINDMILL_MAN_LIMB_MAX];
/* 0x029C */ Vec3s lookAngleOffset; // offset applied to neck rotation to look at link when he is close
/* 0x02A2 */ Vec3s unk_2A2;
/* 0x02A8 */ u16 behaviorFlags;
diff --git a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c
index 6d08efd921..01ebeccfc3 100644
--- a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c
+++ b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c
@@ -107,7 +107,7 @@ void EnGe1_Init(Actor* thisx, PlayState* play) {
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f);
SkelAnime_InitFlex(play, &this->skelAnime, &gGerudoWhiteSkel, &gGerudoWhiteIdleAnim, this->jointTable,
- this->morphTable, GE1_LIMB_MAX);
+ this->morphTable, GERUDO_WHITE_LIMB_MAX);
Animation_PlayOnce(&this->skelAnime, &gGerudoWhiteIdleAnim);
Collider_InitCylinder(play, &this->collider);
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
@@ -780,7 +780,7 @@ s32 EnGe1_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
s32 pad;
EnGe1* this = (EnGe1*)thisx;
- if (limbIndex == GE1_LIMB_HEAD) {
+ if (limbIndex == GERUDO_WHITE_LIMB_HEAD) {
rot->x += this->headRot.y;
rot->z += this->headRot.x;
}
@@ -792,7 +792,8 @@ s32 EnGe1_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
// The purpose of the state flag GE1_STATE_STOP_FIDGET is to skip this code, which this actor has in lieu of an idle
// animation.
- if ((limbIndex == GE1_LIMB_TORSO) || (limbIndex == GE1_LIMB_L_FOREARM) || (limbIndex == GE1_LIMB_R_FOREARM)) {
+ if ((limbIndex == GERUDO_WHITE_LIMB_TORSO) || (limbIndex == GERUDO_WHITE_LIMB_L_FOREARM) ||
+ (limbIndex == GERUDO_WHITE_LIMB_R_FOREARM)) {
rot->y += Math_SinS(play->state.frames * (limbIndex * FIDGET_FREQ_LIMB + FIDGET_FREQ_Y)) * FIDGET_AMPLITUDE;
rot->z += Math_CosS(play->state.frames * (limbIndex * FIDGET_FREQ_LIMB + FIDGET_FREQ_Z)) * FIDGET_AMPLITUDE;
}
@@ -804,7 +805,7 @@ void EnGe1_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
OPEN_DISPS(play->state.gfxCtx, "../z_en_ge1.c", 1419);
- if (limbIndex == GE1_LIMB_HEAD) {
+ if (limbIndex == GERUDO_WHITE_LIMB_HEAD) {
gSPDisplayList(POLY_OPA_DISP++, sHairstyleDLists[this->hairstyle]);
Matrix_MultVec3f(&D_80A327A8, &this->actor.focus.pos);
}
diff --git a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.h b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.h
index 077f0f9cc0..4566dacbbd 100644
--- a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.h
+++ b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.h
@@ -4,6 +4,8 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_ge1/object_ge1.h"
+
struct EnGe1;
typedef void (*EnGe1AnimFunc)(struct EnGe1*);
@@ -18,32 +20,12 @@ typedef enum EnGe1Type {
/* 0x46 */ GE1_TYPE_TRAINING_GROUNDS_GUARD
} EnGe1Type;
-typedef enum EnGe1Limb {
- /* 00 */ GE1_LIMB_NONE,
- /* 01 */ GE1_LIMB_WAIST,
- /* 02 */ GE1_LIMB_L_THIGH,
- /* 03 */ GE1_LIMB_L_LOWER_LEG,
- /* 04 */ GE1_LIMB_L_FOOT,
- /* 05 */ GE1_LIMB_R_THIGH,
- /* 06 */ GE1_LIMB_R_LOWER_LEG,
- /* 07 */ GE1_LIMB_R_FOOT,
- /* 08 */ GE1_LIMB_TORSO,
- /* 09 */ GE1_LIMB_L_UPPER_ARM,
- /* 10 */ GE1_LIMB_L_FOREARM,
- /* 11 */ GE1_LIMB_L_HAND,
- /* 12 */ GE1_LIMB_R_UPPER_ARM,
- /* 13 */ GE1_LIMB_R_FOREARM,
- /* 14 */ GE1_LIMB_R_HAND,
- /* 15 */ GE1_LIMB_HEAD,
- /* 16 */ GE1_LIMB_MAX
-} EnGe1Limb;
-
typedef struct EnGe1 {
/* 0x0000 */ Actor actor;
/* 0x014C */ ColliderCylinder collider;
/* 0x0198 */ SkelAnime skelAnime;
- /* 0x01DC */ Vec3s jointTable[GE1_LIMB_MAX];
- /* 0x023C */ Vec3s morphTable[GE1_LIMB_MAX];
+ /* 0x01DC */ Vec3s jointTable[GERUDO_WHITE_LIMB_MAX];
+ /* 0x023C */ Vec3s morphTable[GERUDO_WHITE_LIMB_MAX];
/* 0x029C */ Vec3s headRot;
/* 0x02A2 */ Vec3s unk_2A2;
/* 0x02A8 */ s16 eyeIndex;
diff --git a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c
index ad77c01118..8ac3cdcd54 100644
--- a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c
+++ b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c
@@ -81,7 +81,7 @@ void EnGe3_Init(Actor* thisx, PlayState* play2) {
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 36.0f);
SkelAnime_InitFlex(play, &this->skelAnime, &gGerudoRedSkel, NULL, this->jointTable, this->morphTable,
- GELDB_LIMB_MAX);
+ GERUDO_RED_LIMB_MAX);
Animation_PlayLoop(&this->skelAnime, &gGerudoRedStandAnim);
Collider_InitCylinder(play, &this->collider);
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
@@ -241,13 +241,13 @@ s32 EnGe3_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
switch (limbIndex) {
// Hide swords and veil from object_geldb
- case GELDB_LIMB_VEIL:
- case GELDB_LIMB_R_SWORD:
- case GELDB_LIMB_L_SWORD:
+ case GERUDO_RED_LIMB_VEIL:
+ case GERUDO_RED_LIMB_R_SWORD:
+ case GERUDO_RED_LIMB_L_SWORD:
*dList = NULL;
return false;
// Turn head
- case GELDB_LIMB_HEAD:
+ case GERUDO_RED_LIMB_HEAD:
rot->x += this->headRot.y;
#if OOT_VERSION >= PAL_1_1
FALLTHROUGH;
@@ -256,14 +256,14 @@ s32 EnGe3_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
// depending on what was drawn earlier in the frame.
OPEN_DISPS(play->state.gfxCtx, "../z_en_ge3.c", 547);
switch (limbIndex) {
- case GELDB_LIMB_NECK:
+ case GERUDO_RED_LIMB_NECK:
break;
- case GELDB_LIMB_HEAD:
+ case GERUDO_RED_LIMB_HEAD:
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 80, 60, 10, 255);
break;
- case GELDB_LIMB_R_SWORD:
- case GELDB_LIMB_L_SWORD:
+ case GERUDO_RED_LIMB_R_SWORD:
+ case GERUDO_RED_LIMB_L_SWORD:
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 140, 170, 230, 255);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255);
@@ -284,7 +284,7 @@ void EnGe3_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
EnGe3* this = (EnGe3*)thisx;
Vec3f D_80A351C8 = { 600.0f, 700.0f, 0.0f };
- if (limbIndex == GELDB_LIMB_HEAD) {
+ if (limbIndex == GERUDO_RED_LIMB_HEAD) {
Matrix_MultVec3f(&D_80A351C8, &this->actor.focus.pos);
}
}
diff --git a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.h b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.h
index 62b9882055..297129e439 100644
--- a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.h
+++ b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.h
@@ -3,7 +3,8 @@
#include "ultra64.h"
#include "actor.h"
-#include "overlays/actors/ovl_En_GeldB/z_en_geldb.h"
+
+#include "assets/objects/object_geldb/object_geldb.h"
struct EnGe3;
@@ -13,8 +14,8 @@ typedef struct EnGe3 {
/* 0x0000 */ Actor actor;
/* 0x014C */ ColliderCylinder collider;
/* 0x0198 */ SkelAnime skelAnime;
- /* 0x01DC */ Vec3s jointTable[GELDB_LIMB_MAX];
- /* 0x026C */ Vec3s morphTable[GELDB_LIMB_MAX];
+ /* 0x01DC */ Vec3s jointTable[GERUDO_RED_LIMB_MAX];
+ /* 0x026C */ Vec3s morphTable[GERUDO_RED_LIMB_MAX];
/* 0x02FC */ s16 eyeIndex;
/* 0x02FE */ s16 blinkTimer;
/* 0x0300 */ Vec3s headRot;
diff --git a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c
index 11850ccdf5..598cc7f616 100644
--- a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c
+++ b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c
@@ -251,7 +251,7 @@ void EnGeldB_Init(Actor* thisx, PlayState* play) {
this->blinkState = 0;
this->unkFloat = 10.0f;
SkelAnime_InitFlex(play, &this->skelAnime, &gGerudoRedSkel, &gGerudoRedNeutralAnim, this->jointTable,
- this->morphTable, GELDB_LIMB_MAX);
+ this->morphTable, GERUDO_RED_LIMB_MAX);
Collider_InitCylinder(play, &this->bodyCollider);
Collider_SetCylinder(play, &this->bodyCollider, thisx, &sBodyCylinderInit);
Collider_InitTris(play, &this->blockCollider);
@@ -1464,14 +1464,14 @@ s32 EnGeldB_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f*
EnGeldB* this = (EnGeldB*)thisx;
OPEN_DISPS(play->state.gfxCtx, "../z_en_geldB.c", 2507);
- if (limbIndex == GELDB_LIMB_NECK) {
+ if (limbIndex == GERUDO_RED_LIMB_NECK) {
rot->z += this->headRot.x;
rot->x += this->headRot.y;
rot->y += this->headRot.z;
- } else if (limbIndex == GELDB_LIMB_HEAD) {
+ } else if (limbIndex == GERUDO_RED_LIMB_HEAD) {
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 80, 60, 10, 255);
- } else if ((limbIndex == GELDB_LIMB_R_SWORD) || (limbIndex == GELDB_LIMB_L_SWORD)) {
+ } else if ((limbIndex == GERUDO_RED_LIMB_R_SWORD) || (limbIndex == GERUDO_RED_LIMB_L_SWORD)) {
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 140, 170, 230, 255);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255);
@@ -1497,7 +1497,7 @@ void EnGeldB_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* ro
EnGeldB* this = (EnGeldB*)thisx;
s32 bodyPart = -1;
- if (limbIndex == GELDB_LIMB_R_SWORD) {
+ if (limbIndex == GERUDO_RED_LIMB_R_SWORD) {
Matrix_MultVec3f(&swordQuadOffset1, &this->swordCollider.dim.quad[1]);
Matrix_MultVec3f(&swordQuadOffset0, &this->swordCollider.dim.quad[0]);
Matrix_MultVec3f(&swordQuadOffset3, &this->swordCollider.dim.quad[3]);
@@ -1515,42 +1515,43 @@ void EnGeldB_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* ro
EffectBlure_AddVertex(Effect_GetByIndex(this->blureIndex), &swordTip, &swordHilt);
}
} else {
- Actor_SetFeetPos(&this->actor, limbIndex, GELDB_LIMB_L_FOOT, &footOffset, GELDB_LIMB_R_FOOT, &footOffset);
+ Actor_SetFeetPos(&this->actor, limbIndex, GERUDO_RED_LIMB_L_FOOT, &footOffset, GERUDO_RED_LIMB_R_FOOT,
+ &footOffset);
}
- if (limbIndex == GELDB_LIMB_L_FOOT) {
+ if (limbIndex == GERUDO_RED_LIMB_L_FOOT) {
Matrix_MultVec3f(&footOffset, &this->leftFootPos);
- } else if (limbIndex == GELDB_LIMB_R_FOOT) {
+ } else if (limbIndex == GERUDO_RED_LIMB_R_FOOT) {
Matrix_MultVec3f(&footOffset, &this->rightFootPos);
}
if (this->iceTimer != 0) {
switch (limbIndex) {
- case GELDB_LIMB_NECK:
+ case GERUDO_RED_LIMB_NECK:
bodyPart = 0;
break;
- case GELDB_LIMB_L_SWORD:
+ case GERUDO_RED_LIMB_L_SWORD:
bodyPart = 1;
break;
- case GELDB_LIMB_R_SWORD:
+ case GERUDO_RED_LIMB_R_SWORD:
bodyPart = 2;
break;
- case GELDB_LIMB_L_UPPER_ARM:
+ case GERUDO_RED_LIMB_L_UPPER_ARM:
bodyPart = 3;
break;
- case GELDB_LIMB_R_UPPER_ARM:
+ case GERUDO_RED_LIMB_R_UPPER_ARM:
bodyPart = 4;
break;
- case GELDB_LIMB_TORSO:
+ case GERUDO_RED_LIMB_TORSO:
bodyPart = 5;
break;
- case GELDB_LIMB_WAIST:
+ case GERUDO_RED_LIMB_WAIST:
bodyPart = 6;
break;
- case GELDB_LIMB_L_FOOT:
+ case GERUDO_RED_LIMB_L_FOOT:
bodyPart = 7;
break;
- case GELDB_LIMB_R_FOOT:
+ case GERUDO_RED_LIMB_R_FOOT:
bodyPart = 8;
break;
default:
diff --git a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.h b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.h
index a5ce4286b5..003a6dc5a5 100644
--- a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.h
+++ b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.h
@@ -4,35 +4,9 @@
#include "ultra64.h"
#include "actor.h"
-struct EnGeldB;
+#include "assets/objects/object_geldb/object_geldb.h"
-typedef enum EnGeldBLimb {
- /* 0x00 */ GELDB_LIMB_NONE,
- /* 0x01 */ GELDB_LIMB_ROOT,
- /* 0x02 */ GELDB_LIMB_TORSO,
- /* 0x03 */ GELDB_LIMB_NECK,
- /* 0x04 */ GELDB_LIMB_PONYTAIL,
- /* 0x05 */ GELDB_LIMB_VEIL,
- /* 0x06 */ GELDB_LIMB_HEAD,
- /* 0x07 */ GELDB_LIMB_R_UPPER_ARM,
- /* 0x08 */ GELDB_LIMB_R_FOREARM,
- /* 0x09 */ GELDB_LIMB_R_WRIST,
- /* 0x0A */ GELDB_LIMB_R_HAND,
- /* 0x0B */ GELDB_LIMB_R_SWORD,
- /* 0x0C */ GELDB_LIMB_L_UPPER_ARM,
- /* 0x0D */ GELDB_LIMB_L_FOREARM,
- /* 0x0E */ GELDB_LIMB_L_WRIST,
- /* 0x0F */ GELDB_LIMB_L_HAND,
- /* 0x10 */ GELDB_LIMB_L_SWORD,
- /* 0x11 */ GELDB_LIMB_L_THIGH,
- /* 0x12 */ GELDB_LIMB_L_SHIN,
- /* 0x13 */ GELDB_LIMB_L_FOOT,
- /* 0x14 */ GELDB_LIMB_R_THIGH,
- /* 0x15 */ GELDB_LIMB_R_SHIN,
- /* 0x16 */ GELDB_LIMB_R_FOOT,
- /* 0x17 */ GELDB_LIMB_WAIST,
- /* 0x18 */ GELDB_LIMB_MAX
-} EnGeldBLimb;
+struct EnGeldB;
typedef void (*EnGeldBActionFunc)(struct EnGeldB*, struct PlayState*);
@@ -40,8 +14,8 @@ typedef struct EnGeldB {
/* 0x0000 */ Actor actor;
/* 0x014C */ Vec3s bodyPartsPos[10];
/* 0x0188 */ SkelAnime skelAnime;
- /* 0x01CC */ Vec3s jointTable[GELDB_LIMB_MAX];
- /* 0x025C */ Vec3s morphTable[GELDB_LIMB_MAX];
+ /* 0x01CC */ Vec3s jointTable[GERUDO_RED_LIMB_MAX];
+ /* 0x025C */ Vec3s morphTable[GERUDO_RED_LIMB_MAX];
/* 0x02EC */ s32 action;
/* 0x02F0 */ char unk_2F0[4];
/* 0x02F4 */ EnGeldBActionFunc actionFunc;
diff --git a/src/overlays/actors/ovl_En_Hata/z_en_hata.h b/src/overlays/actors/ovl_En_Hata/z_en_hata.h
index 53d31bab58..38c85e6349 100644
--- a/src/overlays/actors/ovl_En_Hata/z_en_hata.h
+++ b/src/overlays/actors/ovl_En_Hata/z_en_hata.h
@@ -4,31 +4,7 @@
#include "ultra64.h"
#include "actor.h"
-
-typedef enum EnHataLimb {
- /* 0x00 */ FLAGPOLE_LIMB_NONE,
- /* 0x01 */ FLAGPOLE_LIMB_POLE_BASE,
- /* 0x02 */ FLAGPOLE_LIMB_POLE,
- /* 0x03 */ FLAGPOLE_LIMB_FLAG_1_BASE,
- /* 0x04 */ FLAGPOLE_LIMB_FLAG_1_HOIST_END_BASE,
- /* 0x05 */ FLAGPOLE_LIMB_FLAG_1_HOIST_MID_BASE,
- /* 0x06 */ FLAGPOLE_LIMB_FLAG_1_FLY_MID_BASE,
- /* 0x07 */ FLAGPOLE_LIMB_FLAG_1_FLY_END_BASE,
- /* 0x08 */ FLAGPOLE_LIMB_FLAG_1_FLY_END,
- /* 0x09 */ FLAGPOLE_LIMB_FLAG_1_FLY_MID,
- /* 0x0A */ FLAGPOLE_LIMB_FLAG_1_HOIST_MID,
- /* 0x0B */ FLAGPOLE_LIMB_FLAG_1_HOIST_END,
- /* 0x0C */ FLAGPOLE_LIMB_FLAG_2_BASE,
- /* 0x0D */ FLAGPOLE_LIMB_FLAG_2_HOIST_END_BASE,
- /* 0x0E */ FLAGPOLE_LIMB_FLAG_2_HOIST_MID_BASE,
- /* 0x0F */ FLAGPOLE_LIMB_FLAG_2_FLY_MID_BASE,
- /* 0x10 */ FLAGPOLE_LIMB_FLAG_2_FLY_END_BASE,
- /* 0x11 */ FLAGPOLE_LIMB_FLAG_2_FLY_END,
- /* 0x12 */ FLAGPOLE_LIMB_FLAG_2_FLY_MID,
- /* 0x13 */ FLAGPOLE_LIMB_FLAG_2_HOIST_MID,
- /* 0x14 */ FLAGPOLE_LIMB_FLAG_2_HOIST_END,
- /* 0x15 */ FLAGPOLE_LIMB_MAX
-} EnHataLimb;
+#include "assets/objects/object_hata/object_hata.h"
typedef struct EnHata {
/* 0x0000 */ DynaPolyActor dyna;
diff --git a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.h b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.h
index 1bb5780203..c23a2edba4 100644
--- a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.h
+++ b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.h
@@ -59,34 +59,6 @@ typedef struct EnViewerFireEffect {
/* 0x30 */ u8 state;
} EnViewerFireEffect; // size = 0x34
-typedef enum YoungGanondorfLimb {
- /* 0 */ YOUNG_GANONDORF_LIMB_NONE,
- /* 1 */ YOUNG_GANONDORF_LIMB_ROOT,
- /* 2 */ YOUNG_GANONDORF_LIMB_TORSO,
- /* 3 */ YOUNG_GANONDORF_LIMB_LEFT_UPPER_ARM,
- /* 4 */ YOUNG_GANONDORF_LIMB_LEFT_FOREARM,
- /* 5 */ YOUNG_GANONDORF_LIMB_LEFT_HAND,
- /* 6 */ YOUNG_GANONDORF_LIMB_RIGHT_UPPER_ARM,
- /* 7 */ YOUNG_GANONDORF_LIMB_RIGHT_FOREARM,
- /* 8 */ YOUNG_GANONDORF_LIMB_RIGHT_HAND,
- /* 9 */ YOUNG_GANONDORF_LIMB_JEWEL,
- /* 10 */ YOUNG_GANONDORF_LIMB_LEFT_UPPER_LIP,
- /* 11 */ YOUNG_GANONDORF_LIMB_JAW,
- /* 12 */ YOUNG_GANONDORF_LIMB_CHIN,
- /* 13 */ YOUNG_GANONDORF_LIMB_RIGHT_UPPER_LIP,
- /* 14 */ YOUNG_GANONDORF_LIMB_TEETH,
- /* 15 */ YOUNG_GANONDORF_LIMB_HEAD,
- /* 16 */ YOUNG_GANONDORF_LIMB_PELVIS,
- /* 17 */ YOUNG_GANONDORF_LIMB_LEFT_THIGH,
- /* 18 */ YOUNG_GANONDORF_LIMB_LEFT_SHIN,
- /* 19 */ YOUNG_GANONDORF_LIMB_LEFT_FOOT,
- /* 20 */ YOUNG_GANONDORF_LIMB_KNIFE,
- /* 21 */ YOUNG_GANONDORF_LIMB_RIGHT_THIGH,
- /* 22 */ YOUNG_GANONDORF_LIMB_RIGHT_SHIN,
- /* 23 */ YOUNG_GANONDORF_LIMB_RIGHT_FOOT,
- /* 24 */ YOUNG_GANONDORF_LIMB_MAX
-} YoungGanondorfLimb;
-
typedef struct EnViewer {
/* 0x0000 */ Actor actor;
/* 0x014C */ Skin skin;