summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorParker Burnett <burnettparker@gmail.com>2021-04-30 20:31:49 -0400
committerGitHub <noreply@github.com>2021-04-30 20:31:49 -0400
commit2ee1fd4668c04899bf9f4a6b474d503d012e1f94 (patch)
tree65bcaf465bd420332a69a33e2482c1105795dbfc
parent9dbebfa38f99d50d051d862e380e25c599c5430c (diff)
finished object_skb (#790)
* finished object_skb * neglected the limbs and dlists, so I added them * adding the textures * fixing some names * ....forgot to change the c file.... * hopefully fixed formatting issue
-rw-r--r--assets/xml/objects/object_skb.xml64
-rw-r--r--spec3
-rw-r--r--src/overlays/actors/ovl_En_Skb/z_en_skb.c28
-rw-r--r--undefined_syms.txt8
4 files changed, 79 insertions, 24 deletions
diff --git a/assets/xml/objects/object_skb.xml b/assets/xml/objects/object_skb.xml
new file mode 100644
index 000000000..87d73f7da
--- /dev/null
+++ b/assets/xml/objects/object_skb.xml
@@ -0,0 +1,64 @@
+<Root>
+ <File Name="object_skb" Segment="6">
+ <!-- Stalchild skeleton -->
+ <Skeleton Name="gStalchildSkel" Type="Normal" LimbType="Standard" Offset="0x41F8"/>
+
+ <!-- Stalchild Limbs -->
+ <Limb Name="gStalchildRootLimb" Type="Standard" Offset="0x40C8"/>
+ <Limb Name="gStalchildWaistLimb" Type="Standard" Offset="0x40D4"/>
+ <Limb Name="gStalchildRoot2Limb" Type="Standard" Offset="0x40E0"/>
+ <Limb Name="gStalchildRightFemurLimb" Type="Standard" Offset="0x40EC"/>
+ <Limb Name="gStalchildRightShinLimb" Type="Standard" Offset="0x40F8"/>
+ <Limb Name="gStalchildRightFootLimb" Type="Standard" Offset="0x4104"/>
+ <Limb Name="gStalchildLeftFemurLimb" Type="Standard" Offset="0x4110"/>
+ <Limb Name="gStalchildLeftShinLimb" Type="Standard" Offset="0x411C"/>
+ <Limb Name="gStalchildLeftFootLimb" Type="Standard" Offset="0x4128"/>
+ <Limb Name="gStalchildRibCageLimb" Type="Standard" Offset="0x4134"/>
+ <Limb Name="gStalchildHeadLimb" Type="Standard" Offset="0x4140"/>
+ <Limb Name="gStalchildJawLimb" Type="Standard" Offset="0x414C"/>
+ <Limb Name="gStalchildRightHumerusLimb" Type="Standard" Offset="0x4158"/>
+ <Limb Name="gStalchildRightForearmLimb" Type="Standard" Offset="0x4164"/>
+ <Limb Name="gStalchildRightHandLimb" Type="Standard" Offset="0x4170"/>
+ <Limb Name="gStalchildLeftHumerusLimb" Type="Standard" Offset="0x417C"/>
+ <Limb Name="gStalchildLeftForearmLimb" Type="Standard" Offset="0x4188"/>
+ <Limb Name="gStalchildLeftHandLimb" Type="Standard" Offset="0x4194"/>
+ <Limb Name="gStalchildSpineLimb" Type="Standard" Offset="0x41A0"/>
+
+ <!-- Stalchild DisplayLists -->
+ <DList Name="gStalchildHeadDL" Offset="0x3230"/>
+ <DList Name="gStalchildJawDL" Offset="0x3598"/>
+ <DList Name="gStalchildRibCageDL" Offset="0x3640"/>
+ <DList Name="gStalchildSpineDL" Offset="0x3708"/>
+ <DList Name="gStalchildWaistDL" Offset="0x37A0"/>
+ <DList Name="gStalchildLeftHumerusDL" Offset="0x38A8"/>
+ <DList Name="gStalchildLeftForearmDL" Offset="0x3968"/>
+ <DList Name="gStalchildLeftHandDL" Offset="0x3A10"/>
+ <DList Name="gStalchildRightHumerusDL" Offset="0x3AD8"/>
+ <DList Name="gStalchildRightForearmDL" Offset="0x3B98"/>
+ <DList Name="gStalchildRightHandDL" Offset="0x3C40"/>
+ <DList Name="gStalchildLeftFemurDL" Offset="0x3D08"/>
+ <DList Name="gStalchildLeftShinDL" Offset="0x3DA0"/>
+ <DList Name="gStalchildLeftFootDL" Offset="0x3E48"/>
+ <DList Name="gStalchildRightFemurDL" Offset="0x3EE8"/>
+ <DList Name="gStalchildRightShinDL" Offset="0x3F80"/>
+ <DList Name="gStalchildRightFootDL" Offset="0x4028"/>
+
+ <!-- Stalchild Textures -->
+ <Texture Name="gStalchildWaistTex" OutName="stalchild_waist" Format="rgb5a1" Width="16" Height="16" Offset="0x18A0"/>
+ <Texture Name="gStalchildRibCageTex" OutName="stalchild_rib_cage" Format="rgb5a1" Width="8" Height="16" Offset="0x1AA0"/>
+ <Texture Name="gStalchildHeadTex" OutName="stalchild_head" Format="rgb5a1" Width="8" Height="8" Offset="0x1BA0"/>
+ <Texture Name="gStalchildBoneTex" OutName="stalchild_bone" Format="rgb5a1" Width="8" Height="8" Offset="0x1CA0"/>
+ <Texture Name="gStalchildNostrilTex" OutName="stalchild_nostril" Format="rgb5a1" Width="8" Height="8" Offset="0x1C20"/>
+ <Texture Name="gStalchildHandAndFeetTex" OutName="stalchild_hand_and_feet" Format="rgb5a1" Width="8" Height="16" Offset="0x1D20"/>
+ <Texture Name="gStalchildTeethTex" OutName="stalchild_teeth" Format="rgb5a1" Width="16" Height="8" Offset="0x1E20"/>
+ <Texture Name="gStalchildEyeSocketTex" OutName="stalchild_eye_socket" Format="rgb5a1" Width="16" Height="16" Offset="0x1F20"/>
+ <Texture Name="gStalchildEyeTex" OutName="stalchild_eye" Format="rgb5a1" Width="8" Height="8" Offset="0x2120"/>
+
+ <!-- Stalchild animations -->
+ <Animation Name="gStalchildUncurlingAnim" Offset="0x1854"/>
+ <Animation Name="gStalchildDyingAnim" Offset="0x9DC"/>
+ <Animation Name="gStalchildDamagedAnim" Offset="0xD98"/>
+ <Animation Name="gStalchildWalkingAnim" Offset="0x47E0"/>
+ <Animation Name="gStalchildAttackingAnim" Offset="0x460"/>
+ </File>
+</Root> \ No newline at end of file
diff --git a/spec b/spec
index efbb9d04a..80fbeeae7 100644
--- a/spec
+++ b/spec
@@ -5797,7 +5797,8 @@ endseg
beginseg
name "object_skb"
romalign 0x1000
- include "build/baserom/object_skb.o"
+ include "build/assets/objects/object_skb/object_skb.o"
+ number 6
endseg
beginseg
diff --git a/src/overlays/actors/ovl_En_Skb/z_en_skb.c b/src/overlays/actors/ovl_En_Skb/z_en_skb.c
index edaf434e9..5fd92d836 100644
--- a/src/overlays/actors/ovl_En_Skb/z_en_skb.c
+++ b/src/overlays/actors/ovl_En_Skb/z_en_skb.c
@@ -1,5 +1,6 @@
#include "z_en_skb.h"
#include "overlays/actors/ovl_En_Encount1/z_en_encount1.h"
+#include "objects/object_skb/object_skb.h"
#define FLAGS 0x00000015
@@ -28,13 +29,6 @@ void func_80AFD7B4(EnSkb* this, GlobalContext* globalCtx);
void func_80AFD880(EnSkb* this, GlobalContext* globalCtx);
void func_80AFD968(EnSkb* this, GlobalContext* globalCtx);
-extern SkeletonHeader D_060041F8;
-extern AnimationHeader D_06001854;
-extern AnimationHeader D_060009DC;
-extern AnimationHeader D_06000D98;
-extern AnimationHeader D_060047E0;
-extern AnimationHeader D_06000460;
-
static ColliderJntSphElementInit sJntSphElementsInit[2] = {
{
{
@@ -160,7 +154,8 @@ void EnSkb_Init(Actor* thisx, GlobalContext* globalCtx) {
this->actor.colChkInfo.mass = 0xFE;
this->actor.colChkInfo.health = 2;
this->actor.shape.yOffset = -8000.0f;
- SkelAnime_Init(globalCtx, &this->skelAnime, &D_060041F8, &D_06001854, this->jointTable, this->morphTable, 20);
+ SkelAnime_Init(globalCtx, &this->skelAnime, &gStalchildSkel, &gStalchildUncurlingAnim, this->jointTable,
+ this->morphTable, 20);
this->actor.naviEnemyId = 0x55;
Collider_InitJntSph(globalCtx, &this->collider);
@@ -205,7 +200,7 @@ void func_80AFCD60(EnSkb* this) {
}
void func_80AFCDF8(EnSkb* this) {
- Animation_PlayOnceSetSpeed(&this->skelAnime, &D_06001854, 1.0f);
+ Animation_PlayOnceSetSpeed(&this->skelAnime, &gStalchildUncurlingAnim, 1.0f);
this->unk_280 = 0;
this->actor.flags &= ~1;
Audio_PlayActorSound2(&this->actor, NA_SE_EN_RIVA_APPEAR);
@@ -230,7 +225,8 @@ void func_80AFCE5C(EnSkb* this, GlobalContext* globalCtx) {
}
void func_80AFCF48(EnSkb* this) {
- Animation_Change(&this->skelAnime, &D_06001854, -1.0f, Animation_GetLastFrame(&D_06001854), 0.0f, 2, -4.0f);
+ Animation_Change(&this->skelAnime, &gStalchildUncurlingAnim, -1.0f,
+ Animation_GetLastFrame(&gStalchildUncurlingAnim), 0.0f, 2, -4.0f);
this->unk_280 = 0;
this->unk_281 = 0;
this->actor.flags &= ~1;
@@ -251,7 +247,8 @@ void func_80AFCFF0(EnSkb* this, GlobalContext* globalCtx) {
}
void func_80AFD0A4(EnSkb* this) {
- Animation_Change(&this->skelAnime, &D_060047E0, 0.96000004f, 0.0f, Animation_GetLastFrame(&D_060047E0), 0, -4.0f);
+ Animation_Change(&this->skelAnime, &gStalchildWalkingAnim, 0.96000004f, 0.0f,
+ Animation_GetLastFrame(&gStalchildWalkingAnim), 0, -4.0f);
this->unk_280 = 4;
this->unk_288 = 0;
this->actor.speedXZ = this->actor.scale.y * 160.0f;
@@ -298,7 +295,8 @@ void EnSkb_Advance(EnSkb* this, GlobalContext* globalCtx) {
}
void func_80AFD33C(EnSkb* this) {
- Animation_Change(&this->skelAnime, &D_06000460, 0.6f, 0.0f, Animation_GetLastFrame(&D_06000460), 3, 4.0f);
+ Animation_Change(&this->skelAnime, &gStalchildAttackingAnim, 0.6f, 0.0f,
+ Animation_GetLastFrame(&gStalchildAttackingAnim), 3, 4.0f);
this->collider.base.atFlags &= ~4;
this->unk_280 = 3;
this->actor.speedXZ = 0.0f;
@@ -324,7 +322,7 @@ void EnSkb_SetupAttack(EnSkb* this, GlobalContext* globalCtx) {
}
void func_80AFD47C(EnSkb* this) {
- Animation_Change(&this->skelAnime, &D_06000460, -0.4f, this->skelAnime.curFrame - 1.0f, 0.0f, 3, 0.0f);
+ Animation_Change(&this->skelAnime, &gStalchildAttackingAnim, -0.4f, this->skelAnime.curFrame - 1.0f, 0.0f, 3, 0.0f);
this->collider.base.atFlags &= ~4;
this->unk_280 = 5;
this->unk_281 = 0;
@@ -366,7 +364,7 @@ void func_80AFD59C(EnSkb* this, GlobalContext* globalCtx) {
}
void func_80AFD644(EnSkb* this) {
- Animation_MorphToPlayOnce(&this->skelAnime, &D_06000D98, -4.0f);
+ Animation_MorphToPlayOnce(&this->skelAnime, &gStalchildDamagedAnim, -4.0f);
if (this->actor.bgCheckFlags & 1) {
this->actor.speedXZ = -4.0f;
}
@@ -401,7 +399,7 @@ void func_80AFD6CC(EnSkb* this, GlobalContext* globalCtx) {
}
void func_80AFD7B4(EnSkb* this, GlobalContext* globalCtx) {
- Animation_MorphToPlayOnce(&this->skelAnime, &D_060009DC, -4.0f);
+ Animation_MorphToPlayOnce(&this->skelAnime, &gStalchildDyingAnim, -4.0f);
this->actor.shape.rot.y = this->actor.yawTowardsPlayer;
this->actor.world.rot.y = this->actor.yawTowardsPlayer;
if (this->actor.bgCheckFlags & 1) {
diff --git a/undefined_syms.txt b/undefined_syms.txt
index 91b34d1c2..06fab4d5f 100644
--- a/undefined_syms.txt
+++ b/undefined_syms.txt
@@ -2206,14 +2206,6 @@ D_06003B68 = 0x06003B68;
D_060041A8 = 0x060041A8;
D_06004574 = 0x06004574;
-// z_en_skb
-D_06000460 = 0x06000460;
-D_060009DC = 0x060009DC;
-D_06000D98 = 0x06000D98;
-D_06001854 = 0x06001854;
-D_060041F8 = 0x060041F8;
-D_060047E0 = 0x060047E0;
-
// z_en_stream
D_06000950 = 0x06000950;