mirror of
https://github.com/HarbourMasters/2ship2harkinian.git
synced 2024-11-23 22:19:53 +00:00
Document object_dekunuts (and minor cleanup of object_dnk) (#803)
* Name all animations * Skeleton, limbs, and limb display lists * Remaning dlists * Limb enum * Name all textures * Minor cleanup on object_dnk * hair -> headdress
This commit is contained in:
parent
232b901ccf
commit
25f00ef995
@ -1,42 +1,55 @@
|
||||
<Root>
|
||||
<!-- Assets for Deku Scrubs and their flowers -->
|
||||
<File Name="object_dekunuts" Segment="6">
|
||||
<Animation Name="object_dekunuts_Anim_000168" Offset="0x168" />
|
||||
<DList Name="object_dekunuts_DL_000A00" Offset="0xA00" />
|
||||
<DList Name="object_dekunuts_DL_000AA8" Offset="0xAA8" />
|
||||
<DList Name="object_dekunuts_DL_000B40" Offset="0xB40" />
|
||||
<DList Name="object_dekunuts_DL_000BE8" Offset="0xBE8" />
|
||||
<DList Name="object_dekunuts_DL_000C80" Offset="0xC80" />
|
||||
<DList Name="object_dekunuts_DL_000D90" Offset="0xD90" />
|
||||
<DList Name="object_dekunuts_DL_000E30" Offset="0xE30" />
|
||||
<DList Name="object_dekunuts_DL_000F20" Offset="0xF20" />
|
||||
<DList Name="object_dekunuts_DL_001050" Offset="0x1050" />
|
||||
<Texture Name="object_dekunuts_Tex_0010F0" OutName="tex_0010F0" Format="rgba16" Width="8" Height="8" Offset="0x10F0" />
|
||||
<Texture Name="object_dekunuts_Tex_001170" OutName="tex_001170" Format="rgba16" Width="8" Height="8" Offset="0x1170" />
|
||||
<Texture Name="object_dekunuts_Tex_0011F0" OutName="tex_0011F0" Format="rgba16" Width="32" Height="32" Offset="0x11F0" />
|
||||
<Texture Name="object_dekunuts_Tex_0019F0" OutName="tex_0019F0" Format="rgba16" Width="8" Height="8" Offset="0x19F0" />
|
||||
<Texture Name="object_dekunuts_Tex_001A70" OutName="tex_001A70" Format="rgba16" Width="16" Height="16" Offset="0x1A70" />
|
||||
<DList Name="object_dekunuts_DL_001E50" Offset="0x1E50" />
|
||||
<DList Name="object_dekunuts_DL_001F50" Offset="0x1F50" />
|
||||
<Texture Name="object_dekunuts_Tex_001FD8" OutName="tex_001FD8" Format="rgba16" Width="16" Height="32" Offset="0x1FD8" />
|
||||
<Limb Name="object_dekunuts_Standardlimb_0023D8" Type="Standard" EnumName="OBJECT_DEKUNUTS_LIMB_01" Offset="0x23D8" />
|
||||
<Limb Name="object_dekunuts_Standardlimb_0023E4" Type="Standard" EnumName="OBJECT_DEKUNUTS_LIMB_02" Offset="0x23E4" />
|
||||
<Limb Name="object_dekunuts_Standardlimb_0023F0" Type="Standard" EnumName="OBJECT_DEKUNUTS_LIMB_03" Offset="0x23F0" />
|
||||
<Limb Name="object_dekunuts_Standardlimb_0023FC" Type="Standard" EnumName="OBJECT_DEKUNUTS_LIMB_04" Offset="0x23FC" />
|
||||
<Limb Name="object_dekunuts_Standardlimb_002408" Type="Standard" EnumName="OBJECT_DEKUNUTS_LIMB_05" Offset="0x2408" />
|
||||
<Limb Name="object_dekunuts_Standardlimb_002414" Type="Standard" EnumName="OBJECT_DEKUNUTS_LIMB_06" Offset="0x2414" />
|
||||
<Limb Name="object_dekunuts_Standardlimb_002420" Type="Standard" EnumName="OBJECT_DEKUNUTS_LIMB_07" Offset="0x2420" />
|
||||
<Limb Name="object_dekunuts_Standardlimb_00242C" Type="Standard" EnumName="OBJECT_DEKUNUTS_LIMB_08" Offset="0x242C" />
|
||||
<Limb Name="object_dekunuts_Standardlimb_002438" Type="Standard" EnumName="OBJECT_DEKUNUTS_LIMB_09" Offset="0x2438" />
|
||||
<Skeleton Name="object_dekunuts_Skel_002468" Type="Normal" LimbType="Standard" LimbNone="OBJECT_DEKUNUTS_LIMB_NONE" LimbMax="OBJECT_DEKUNUTS_LIMB_MAX" EnumName="object_dekunuts_Limbs" Offset="0x2468" />
|
||||
<Animation Name="object_dekunuts_Anim_00259C" Offset="0x259C" />
|
||||
<Animation Name="object_dekunuts_Anim_002950" Offset="0x2950" />
|
||||
<Animation Name="object_dekunuts_Anim_002A5C" Offset="0x2A5C" />
|
||||
<Animation Name="object_dekunuts_Anim_002BD4" Offset="0x2BD4" />
|
||||
<Animation Name="object_dekunuts_Anim_002DD4" Offset="0x2DD4" />
|
||||
<Animation Name="object_dekunuts_Anim_002FA4" Offset="0x2FA4" />
|
||||
<Animation Name="object_dekunuts_Anim_003180" Offset="0x3180" />
|
||||
<Animation Name="object_dekunuts_Anim_00326C" Offset="0x326C" />
|
||||
<Animation Name="object_dekunuts_Anim_0033E4" Offset="0x33E4" />
|
||||
<Animation Name="object_dekunuts_Anim_003780" Offset="0x3780" />
|
||||
<Animation Name="gDekuScrubSpitAnim" Offset="0x168" /> <!-- Original name is "dn_atack" -->
|
||||
|
||||
<!-- Deku Scrub Limb DisplayLists -->
|
||||
<DList Name="gDekuScrubRightFootDL" Offset="0xA00" />
|
||||
<DList Name="gDekuScrubRightLegDL" Offset="0xAA8" />
|
||||
<DList Name="gDekuScrubLeftFootDL" Offset="0xB40" />
|
||||
<DList Name="gDekuScrubLeftLegDL" Offset="0xBE8" />
|
||||
<DList Name="gDekuScrubSnoutDL" Offset="0xC80" />
|
||||
<DList Name="gDekuScrubCrestDL" Offset="0xD90" />
|
||||
<DList Name="gDekuScrubHeaddressDL" Offset="0xE30" />
|
||||
<DList Name="gDekuScrubHeadDL" Offset="0xF20" />
|
||||
<DList Name="gDekuScrubBodyDL" Offset="0x1050" />
|
||||
|
||||
<!-- Deku Scrub Textures -->
|
||||
<Texture Name="gDekuScrubSnoutTex" OutName="deku_scrub_snout" Format="rgba16" Width="8" Height="8" Offset="0x10F0" />
|
||||
<Texture Name="gDekuScrubMouthTex" OutName="deku_scrub_mouth" Format="rgba16" Width="8" Height="8" Offset="0x1170" />
|
||||
<Texture Name="gDekuScrubLeafTex" OutName="deku_scrub_leaf" Format="rgba16" Width="32" Height="32" Offset="0x11F0" />
|
||||
<Texture Name="gDekuScrubEyeTex" OutName="deku_scrub_eye" Format="rgba16" Width="8" Height="8" Offset="0x19F0" />
|
||||
<Texture Name="gDekuScrubSkinTex" OutName="deku_scrub_skin" Format="rgba16" Width="16" Height="16" Offset="0x1A70" />
|
||||
|
||||
<!-- Deku Scrub Flower and Flower Fragment DisplayLists and Textures -->
|
||||
<DList Name="gDekuScrubFlowerDL" Offset="0x1E50" />
|
||||
<DList Name="gDekuScrubFlowerFragmentDL" Offset="0x1F50" />
|
||||
<Texture Name="gDekuScrubFlowerFragmentTex" OutName="deku_scrub_flower_fragment" Format="rgba16" Width="16" Height="32" Offset="0x1FD8" />
|
||||
|
||||
<!-- Deku Scrub Limbs -->
|
||||
<Limb Name="gDekuScrubBodyLimb" Type="Standard" EnumName="DEKU_SCRUB_LIMB_BODY" Offset="0x23D8" />
|
||||
<Limb Name="gDekuScrubHeadLimb" Type="Standard" EnumName="DEKU_SCRUB_LIMB_HEAD" Offset="0x23E4" />
|
||||
<Limb Name="gDekuScrubHeaddressLimb" Type="Standard" EnumName="DEKU_SCRUB_LIMB_HEADDRESS" Offset="0x23F0" />
|
||||
<Limb Name="gDekuScrubCrestLimb" Type="Standard" EnumName="DEKU_SCRUB_LIMB_CREST" Offset="0x23FC" />
|
||||
<Limb Name="gDekuScrubSnoutLimb" Type="Standard" EnumName="DEKU_SCRUB_LIMB_SNOUT" Offset="0x2408" />
|
||||
<Limb Name="gDekuScrubLeftLegLimb" Type="Standard" EnumName="DEKU_SCRUB_LIMB_LEFT_LEG" Offset="0x2414" />
|
||||
<Limb Name="gDekuScrubLeftFootLimb" Type="Standard" EnumName="DEKU_SCRUB_LIMB_LEFT_FOOT" Offset="0x2420" />
|
||||
<Limb Name="gDekuScrubRightLegLimb" Type="Standard" EnumName="DEKU_SCRUB_LIMB_RIGHT_LEG" Offset="0x242C" />
|
||||
<Limb Name="gDekuScrubRightFootLimb" Type="Standard" EnumName="DEKU_SCRUB_LIMB_RIGHT_FOOT" Offset="0x2438" />
|
||||
|
||||
<!-- Deku Scrub Skeleton -->
|
||||
<Skeleton Name="gDekuScrubSkel" Type="Normal" LimbType="Standard" LimbNone="DEKU_SCRUB_LIMB_NONE" LimbMax="DEKU_SCRUB_LIMB_MAX" EnumName="DekuScrubLimbs" Offset="0x2468" />
|
||||
|
||||
<!-- Deku Scrub Animations -->
|
||||
<Animation Name="gDekuScrubDamageAnim" Offset="0x259C" /> <!-- Original name is "dn_damage" -->
|
||||
<Animation Name="gDekuScrubStandingIdleAnim" Offset="0x2950" /> <!-- Original name is "dn_demowait" -->
|
||||
<Animation Name="gDekuScrubBurrowAnim" Offset="0x2A5C" /> <!-- Original name is "dn_dig" -->
|
||||
<Animation Name="gDekuScrubDieAnim" Offset="0x2BD4" /> <!-- Original name is "dn_down" -->
|
||||
<Animation Name="gDekuScrubUnburrowAnim" Offset="0x2DD4" /> <!-- Original name is "dn_jump" -->
|
||||
<Animation Name="gDekuScrubLookAroundAnim" Offset="0x2FA4" /> <!-- Original name is "dn_lookaround" -->
|
||||
<Animation Name="gDekuScrubUpAnim" Offset="0x3180" /> <!-- Original name is "dn_start" -->
|
||||
<Animation Name="gDekuScrubIdleAnim" Offset="0x326C" /> <!-- Original name is "dn_wait" -->
|
||||
<Animation Name="gDekuScrubPantingAnim" Offset="0x33E4" /> <!-- Original name is "dn_wait02" -->
|
||||
<Animation Name="gDekuScrubRunAnim" Offset="0x3780" /> <!-- Original name is "dn_walk" -->
|
||||
</File>
|
||||
</Root>
|
||||
|
@ -1,4 +1,5 @@
|
||||
<Root>
|
||||
<!-- Assets for Deku Palace Guards -->
|
||||
<File Name="object_dnk" Segment="6">
|
||||
<Animation Name="gDekuPalaceGuardAttackAnim" Offset="0x31C" /> <!-- Original named: dnk_attack -->
|
||||
<Animation Name="gDekuPalaceGuardDigAnim" Offset="0x430" /> <!-- Original named: dnk_dig -->
|
||||
@ -33,17 +34,17 @@
|
||||
<DList Name="gDekuPalaceGuardSnoutDL" Offset="0x2410" />
|
||||
<DList Name="gDekuPalaceGuardSnout2DL" Offset="0x2510" />
|
||||
<DList Name="gDekuPalaceGuardFlower" Offset="0x2700" />
|
||||
<Limb Name="gDekuPalaceGuardTorsoLimb" Type="Standard" EnumName="OBJECT_DNK_LIMB_TORSO" Offset="0x27A8" />
|
||||
<Limb Name="gDekuPalaceGuardHeadLimb" Type="Standard" EnumName="OBJECT_DNK_LIMB_HEAD" Offset="0x27B4" />
|
||||
<Limb Name="gDekuPalaceGuardLeftLeafLimb" Type="Standard" EnumName="OBJECT_DNK_LIMB_LEFT_LEAF" Offset="0x27C0" />
|
||||
<Limb Name="gDekuPalaceGuardRightLeafLimb" Type="Standard" EnumName="OBJECT_DNK_LIMB_RIGHT_LEAF" Offset="0x27CC" />
|
||||
<Limb Name="gDekuPalaceGuardCenterLeafLimb" Type="Standard" EnumName="OBJECT_DNK_LIMB_CENTER_LEAF" Offset="0x27D8" />
|
||||
<Limb Name="gDekuPalaceGuardRearLeafLimb" Type="Standard" EnumName="OBJECT_DNK_LIMB_REAR_LEAF" Offset="0x27E4" />
|
||||
<Limb Name="gDekuPalaceGuardSnoutLimb" Type="Standard" EnumName="OBJECT_DNK_LIMB_SNOUT" Offset="0x27F0" />
|
||||
<Limb Name="gDekuPalaceGuardEyesLimb" Type="Standard" EnumName="OBJECT_DNK_LIMB_EYES" Offset="0x27FC" />
|
||||
<Limb Name="gDekuPalaceGuardLeftFootLimb" Type="Standard" EnumName="OBJECT_DNK_LIMB_LEFT_FOOT" Offset="0x2808" />
|
||||
<Limb Name="gDekuPalaceGuardRightFootLimb" Type="Standard" EnumName="OBJECT_DNK_LIMB_RIGHT_FOOT" Offset="0x2814" />
|
||||
<Skeleton Name="gDekuPalaceGuardSkel" Type="Normal" LimbType="Standard" LimbNone="OBJECT_DNK_LIMB_NONE" LimbMax="OBJECT_DNK_LIMB_MAX" EnumName="ObjectDnkLimbs" Offset="0x2848" />
|
||||
<Limb Name="gDekuPalaceGuardTorsoLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_TORSO" Offset="0x27A8" />
|
||||
<Limb Name="gDekuPalaceGuardHeadLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_HEAD" Offset="0x27B4" />
|
||||
<Limb Name="gDekuPalaceGuardLeftLeafLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_LEFT_LEAF" Offset="0x27C0" />
|
||||
<Limb Name="gDekuPalaceGuardRightLeafLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_RIGHT_LEAF" Offset="0x27CC" />
|
||||
<Limb Name="gDekuPalaceGuardCenterLeafLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_CENTER_LEAF" Offset="0x27D8" />
|
||||
<Limb Name="gDekuPalaceGuardRearLeafLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_REAR_LEAF" Offset="0x27E4" />
|
||||
<Limb Name="gDekuPalaceGuardSnoutLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_SNOUT" Offset="0x27F0" />
|
||||
<Limb Name="gDekuPalaceGuardEyesLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_EYES" Offset="0x27FC" />
|
||||
<Limb Name="gDekuPalaceGuardLeftFootLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_LEFT_FOOT" Offset="0x2808" />
|
||||
<Limb Name="gDekuPalaceGuardRightFootLimb" Type="Standard" EnumName="DEKU_PALACE_GUARD_LIMB_RIGHT_FOOT" Offset="0x2814" />
|
||||
<Skeleton Name="gDekuPalaceGuardSkel" Type="Normal" LimbType="Standard" LimbNone="DEKU_PALACE_GUARD_LIMB_NONE" LimbMax="DEKU_PALACE_GUARD_LIMB_MAX" EnumName="DekuPalaceGuardLimbs" Offset="0x2848" />
|
||||
<Animation Name="gDekuPalaceGuardWaitAnim" Offset="0x2A08" /> <!-- Original named: dnk_wait -->
|
||||
<Animation Name="gDekuPalaceGuardWalkAnim" Offset="0x2B6C" /> <!-- Original named: dnk_walk -->
|
||||
</File>
|
||||
|
@ -6,7 +6,6 @@
|
||||
|
||||
#include "z_en_dekunuts.h"
|
||||
#include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h"
|
||||
#include "objects/object_dekunuts/object_dekunuts.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_4)
|
||||
|
||||
@ -119,8 +118,8 @@ void EnDekunuts_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
|
||||
Actor_ProcessInitChain(&this->actor, sInitChain);
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 35.0f);
|
||||
SkelAnime_Init(globalCtx, &this->skelAnime, &object_dekunuts_Skel_002468, &object_dekunuts_Anim_00326C,
|
||||
this->jointTable, this->morphTable, 10);
|
||||
SkelAnime_Init(globalCtx, &this->skelAnime, &gDekuScrubSkel, &gDekuScrubIdleAnim, this->jointTable,
|
||||
this->morphTable, DEKU_SCRUB_LIMB_MAX);
|
||||
Collider_InitAndSetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
|
||||
CollisionCheck_SetInfo(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit);
|
||||
this->unk_194 = ENDEKUNUTS_GET_FF00(&this->actor);
|
||||
@ -166,7 +165,7 @@ void func_808BD3B4(EnDekunuts* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void func_808BD428(EnDekunuts* this) {
|
||||
Animation_PlayOnceSetSpeed(&this->skelAnime, &object_dekunuts_Anim_003180, 0.0f);
|
||||
Animation_PlayOnceSetSpeed(&this->skelAnime, &gDekuScrubUpAnim, 0.0f);
|
||||
this->unk_190 = Rand_S16Offset(100, 50);
|
||||
this->collider.dim.height = 5;
|
||||
Math_Vec3f_Copy(&this->actor.world.pos, &this->actor.home.pos);
|
||||
@ -221,7 +220,7 @@ void func_808BD49C(EnDekunuts* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void func_808BD78C(EnDekunuts* this) {
|
||||
Animation_PlayLoop(&this->skelAnime, &object_dekunuts_Anim_002FA4);
|
||||
Animation_PlayLoop(&this->skelAnime, &gDekuScrubLookAroundAnim);
|
||||
this->unk_190 = 2;
|
||||
this->actionFunc = func_808BD7D4;
|
||||
}
|
||||
@ -241,7 +240,7 @@ void func_808BD7D4(EnDekunuts* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void func_808BD870(EnDekunuts* this) {
|
||||
Animation_MorphToLoop(&this->skelAnime, &object_dekunuts_Anim_00326C, -3.0f);
|
||||
Animation_MorphToLoop(&this->skelAnime, &gDekuScrubIdleAnim, -3.0f);
|
||||
if (this->actionFunc == func_808BDA4C) {
|
||||
this->unk_190 = 4098;
|
||||
} else {
|
||||
@ -280,7 +279,7 @@ void func_808BD8D8(EnDekunuts* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void func_808BDA08(EnDekunuts* this) {
|
||||
Animation_PlayOnce(&this->skelAnime, &object_dekunuts_Anim_000168);
|
||||
Animation_PlayOnce(&this->skelAnime, &gDekuScrubSpitAnim);
|
||||
this->unk_190 = this->unk_194;
|
||||
this->actionFunc = func_808BDA4C;
|
||||
}
|
||||
@ -324,7 +323,7 @@ void func_808BDA4C(EnDekunuts* this, GlobalContext* globalCtx) {
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_NUTS_THROW);
|
||||
}
|
||||
} else if ((this->unk_190 >= 2) && Animation_OnFrame(&this->skelAnime, 12.0f)) {
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &object_dekunuts_Anim_000168, -3.0f);
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &gDekuScrubSpitAnim, -3.0f);
|
||||
if (this->unk_190 != 0) {
|
||||
this->unk_190--;
|
||||
}
|
||||
@ -332,14 +331,14 @@ void func_808BDA4C(EnDekunuts* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void func_808BDC9C(EnDekunuts* this) {
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &object_dekunuts_Anim_002A5C, -5.0f);
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &gDekuScrubBurrowAnim, -5.0f);
|
||||
this->unk_190 = 0;
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_NUTS_DOWN);
|
||||
this->actionFunc = func_808BDD54;
|
||||
}
|
||||
|
||||
void func_808BDCF0(EnDekunuts* this) {
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &object_dekunuts_Anim_002A5C, -5.0f);
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &gDekuScrubBurrowAnim, -5.0f);
|
||||
this->collider.base.acFlags &= ~AC_ON;
|
||||
this->unk_190 = 80;
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_NUTS_DOWN);
|
||||
@ -367,7 +366,7 @@ void func_808BDD54(EnDekunuts* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void func_808BDE7C(EnDekunuts* this) {
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &object_dekunuts_Anim_002DD4, -3.0f);
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &gDekuScrubUnburrowAnim, -3.0f);
|
||||
this->collider.dim.height = 37;
|
||||
this->actor.colChkInfo.mass = 50;
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_NUTS_DAMAGE);
|
||||
@ -387,7 +386,7 @@ void func_808BDEF8(EnDekunuts* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void func_808BDF60(EnDekunuts* this) {
|
||||
Animation_PlayLoop(&this->skelAnime, &object_dekunuts_Anim_003780);
|
||||
Animation_PlayLoop(&this->skelAnime, &gDekuScrubRunAnim);
|
||||
this->unk_190 = 2;
|
||||
this->unk_18C = 0;
|
||||
this->collider.base.acFlags |= AC_ON;
|
||||
@ -444,7 +443,7 @@ void func_808BDFB8(EnDekunuts* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void func_808BE1CC(EnDekunuts* this) {
|
||||
Animation_PlayLoop(&this->skelAnime, &object_dekunuts_Anim_0033E4);
|
||||
Animation_PlayLoop(&this->skelAnime, &gDekuScrubPantingAnim);
|
||||
this->unk_190 = 3;
|
||||
this->actor.speedXZ = 0.0f;
|
||||
if (this->unk_18D != 0) {
|
||||
@ -467,7 +466,7 @@ void func_808BE22C(EnDekunuts* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void func_808BE294(EnDekunuts* this, s32 arg1) {
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &object_dekunuts_Anim_00259C, -3.0f);
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &gDekuScrubDamageAnim, -3.0f);
|
||||
if (this->actor.params == ENDEKUNUTS_GET_FF00_0) {
|
||||
this->actor.speedXZ = 10.0f;
|
||||
if (arg1 != 0) {
|
||||
@ -480,7 +479,7 @@ void func_808BE294(EnDekunuts* this, s32 arg1) {
|
||||
this->actionFunc = func_808BE358;
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_NUTS_DAMAGE);
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_CUTBODY);
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 255, 0, Animation_GetLastFrame(&object_dekunuts_Anim_00259C));
|
||||
Actor_SetColorFilter(&this->actor, 0x4000, 255, 0, Animation_GetLastFrame(&gDekuScrubDamageAnim));
|
||||
}
|
||||
|
||||
void func_808BE358(EnDekunuts* this, GlobalContext* globalCtx) {
|
||||
@ -519,7 +518,7 @@ void func_808BE3FC(EnDekunuts* this, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void func_808BE484(EnDekunuts* this) {
|
||||
Animation_PlayOnce(&this->skelAnime, &object_dekunuts_Anim_002BD4);
|
||||
Animation_PlayOnce(&this->skelAnime, &gDekuScrubDieAnim);
|
||||
this->actionFunc = func_808BE4D4;
|
||||
this->actor.speedXZ = 0.0f;
|
||||
Actor_PlaySfxAtPos(&this->actor, NA_SE_EN_NUTS_DEAD);
|
||||
@ -543,13 +542,13 @@ void func_808BE4D4(EnDekunuts* this, GlobalContext* globalCtx) {
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_OBJ_ETCETERA, this->actor.home.pos.x, this->actor.home.pos.y,
|
||||
this->actor.home.pos.z, 0, this->actor.home.rot.y, 0, 0x80);
|
||||
EffectSsHahen_SpawnBurst(globalCtx, &this->actor.home.pos, 6.0f, 0, 6, 2, 15, 64, 10,
|
||||
object_dekunuts_DL_001F50);
|
||||
gDekuScrubFlowerFragmentDL);
|
||||
Actor_MarkForDeath(&this->actor);
|
||||
}
|
||||
}
|
||||
|
||||
void func_808BE680(EnDekunuts* this) {
|
||||
Animation_MorphToLoop(&this->skelAnime, &object_dekunuts_Anim_00326C, -3.0f);
|
||||
Animation_MorphToLoop(&this->skelAnime, &gDekuScrubIdleAnim, -3.0f);
|
||||
this->actionFunc = func_808BE6C4;
|
||||
}
|
||||
|
||||
@ -669,7 +668,7 @@ s32 EnDekunuts_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** d
|
||||
f32 currentFrame;
|
||||
|
||||
if (this->actionFunc == func_808BDA4C) {
|
||||
if (limbIndex == 5) {
|
||||
if (limbIndex == DEKU_SCRUB_LIMB_SNOUT) {
|
||||
currentFrame = this->skelAnime.curFrame;
|
||||
if (currentFrame <= 6.0f) {
|
||||
arg2 = 1.0f - (currentFrame * 0.0833f);
|
||||
@ -688,7 +687,7 @@ s32 EnDekunuts_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** d
|
||||
return 0;
|
||||
}
|
||||
Matrix_Scale(arg1, arg2, arg3, MTXMODE_APPLY);
|
||||
} else if ((limbIndex == 2) && (this->actor.params == ENDEKUNUTS_GET_FF00_2)) {
|
||||
} else if ((limbIndex == DEKU_SCRUB_LIMB_HEAD) && (this->actor.params == ENDEKUNUTS_GET_FF00_2)) {
|
||||
rot->z = this->actor.world.rot.x;
|
||||
}
|
||||
}
|
||||
@ -723,7 +722,7 @@ void EnDekunuts_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dLis
|
||||
}
|
||||
}
|
||||
|
||||
if (limbIndex == 2) {
|
||||
if (limbIndex == DEKU_SCRUB_LIMB_HEAD) {
|
||||
Matrix_GetStateTranslation(&this->actor.focus.pos);
|
||||
}
|
||||
}
|
||||
@ -739,7 +738,7 @@ void EnDekunuts_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
if (this->actor.colorFilterTimer != 0) {
|
||||
func_800AE5A0(globalCtx);
|
||||
}
|
||||
Gfx_DrawDListOpa(globalCtx, object_dekunuts_DL_001E50);
|
||||
Gfx_DrawDListOpa(globalCtx, gDekuScrubFlowerDL);
|
||||
Actor_DrawDamageEffects(globalCtx, &this->actor, this->limbPos, ARRAY_COUNT(this->limbPos), this->drawDmgEffScale,
|
||||
this->drawDmgEffFrozenSteamScale, this->drawDmgEffAlpha, this->drawDmgEffType);
|
||||
}
|
||||
|
@ -2,6 +2,7 @@
|
||||
#define Z_EN_DEKUNUTS_H
|
||||
|
||||
#include "global.h"
|
||||
#include "objects/object_dekunuts/object_dekunuts.h"
|
||||
|
||||
struct EnDekunuts;
|
||||
|
||||
@ -26,8 +27,8 @@ typedef struct EnDekunuts {
|
||||
/* 0x190 */ s16 unk_190;
|
||||
/* 0x192 */ s16 unk_192;
|
||||
/* 0x194 */ s16 unk_194;
|
||||
/* 0x196 */ Vec3s jointTable[10];
|
||||
/* 0x1D2 */ Vec3s morphTable[10];
|
||||
/* 0x196 */ Vec3s jointTable[DEKU_SCRUB_LIMB_MAX];
|
||||
/* 0x1D2 */ Vec3s morphTable[DEKU_SCRUB_LIMB_MAX];
|
||||
/* 0x210 */ f32 drawDmgEffAlpha;
|
||||
/* 0x214 */ f32 drawDmgEffScale;
|
||||
/* 0x218 */ f32 drawDmgEffFrozenSteamScale;
|
||||
|
@ -116,20 +116,20 @@ static AnimationInfoS sAnimations[] = {
|
||||
{ &object_hintnuts_Anim_003128, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &object_hintnuts_Anim_0029BC, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &object_hintnuts_Anim_002E84, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &object_dekunuts_Anim_000168, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &object_dekunuts_Anim_00259C, 1.0f, 0, -1, ANIMMODE_ONCE, -4 },
|
||||
{ &object_dekunuts_Anim_002A5C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
|
||||
{ &object_dekunuts_Anim_002A5C, 1.0f, 0, -1, ANIMMODE_ONCE, -4 },
|
||||
{ &object_dekunuts_Anim_002BD4, 1.0f, 0, -1, ANIMMODE_ONCE, -4 },
|
||||
{ &object_dekunuts_Anim_002DD4, 1.0f, 0, -1, ANIMMODE_ONCE, -4 },
|
||||
{ &object_dekunuts_Anim_002FA4, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &object_dekunuts_Anim_003180, 1.0f, 0, -1, ANIMMODE_ONCE, -4 },
|
||||
{ &object_dekunuts_Anim_00326C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &object_dekunuts_Anim_00326C, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &object_dekunuts_Anim_0033E4, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &object_dekunuts_Anim_003780, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &object_dekunuts_Anim_003780, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &object_dekunuts_Anim_002950, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gDekuScrubSpitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &gDekuScrubDamageAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -4 },
|
||||
{ &gDekuScrubBurrowAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
|
||||
{ &gDekuScrubBurrowAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -4 },
|
||||
{ &gDekuScrubDieAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -4 },
|
||||
{ &gDekuScrubUnburrowAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -4 },
|
||||
{ &gDekuScrubLookAroundAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &gDekuScrubUpAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -4 },
|
||||
{ &gDekuScrubIdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gDekuScrubIdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &gDekuScrubPantingAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &gDekuScrubRunAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gDekuScrubRunAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 },
|
||||
{ &gDekuScrubStandingIdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
};
|
||||
|
||||
s32 func_80A514F0(SkelAnime* skelAnime, s16 animIndex) {
|
||||
@ -179,7 +179,7 @@ void func_80A51648(EnDnk* this, GlobalContext* globalCtx) {
|
||||
switch (ENDNK_GET_3(&this->actor)) {
|
||||
case ENDNK_GET_3_0:
|
||||
SkelAnime_Init(globalCtx, &this->skelAnime, &gDekuPalaceGuardSkel, NULL, this->jointTable,
|
||||
this->morphTable, 11);
|
||||
this->morphTable, DEKU_PALACE_GUARD_LIMB_MAX);
|
||||
func_80A514F0(&this->skelAnime, 7);
|
||||
break;
|
||||
|
||||
@ -190,8 +190,8 @@ void func_80A51648(EnDnk* this, GlobalContext* globalCtx) {
|
||||
break;
|
||||
|
||||
case ENDNK_GET_3_2:
|
||||
SkelAnime_Init(globalCtx, &this->skelAnime, &object_dekunuts_Skel_002468, NULL, this->jointTable,
|
||||
this->morphTable, 10);
|
||||
SkelAnime_Init(globalCtx, &this->skelAnime, &gDekuScrubSkel, NULL, this->jointTable, this->morphTable,
|
||||
DEKU_SCRUB_LIMB_MAX);
|
||||
func_80A514F0(&this->skelAnime, 35);
|
||||
break;
|
||||
}
|
||||
|
@ -98,7 +98,7 @@ void EnGuardNuts_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 20.0f);
|
||||
SkelAnime_Init(globalCtx, &this->skelAnime, &gDekuPalaceGuardSkel, &gDekuPalaceGuardWaitAnim, this->jointTable,
|
||||
this->morphTable, OBJECT_DNK_LIMB_MAX);
|
||||
this->morphTable, DEKU_PALACE_GUARD_LIMB_MAX);
|
||||
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
|
||||
this->actor.targetMode = 1;
|
||||
Collider_InitAndSetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
|
||||
@ -355,7 +355,7 @@ s32 EnGuardNuts_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx**
|
||||
Actor* thisx) {
|
||||
EnGuardNuts* this = THIS;
|
||||
|
||||
if (limbIndex == OBJECT_DNK_LIMB_HEAD) {
|
||||
if (limbIndex == DEKU_PALACE_GUARD_LIMB_HEAD) {
|
||||
rot->x += this->headRot.x;
|
||||
rot->y += this->headRot.y;
|
||||
rot->z += this->headRot.z;
|
||||
|
@ -11,8 +11,8 @@ typedef void (*EnGuardNutsActionFunc)(struct EnGuardNuts*, GlobalContext*);
|
||||
typedef struct EnGuardNuts {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ SkelAnime skelAnime;
|
||||
/* 0x188 */ Vec3s jointTable[OBJECT_DNK_LIMB_MAX];
|
||||
/* 0x1CA */ Vec3s morphTable[OBJECT_DNK_LIMB_MAX];
|
||||
/* 0x188 */ Vec3s jointTable[DEKU_PALACE_GUARD_LIMB_MAX];
|
||||
/* 0x1CA */ Vec3s morphTable[DEKU_PALACE_GUARD_LIMB_MAX];
|
||||
/* 0x20C */ EnGuardNutsActionFunc actionFunc;
|
||||
/* 0x210 */ s16 eyeState;
|
||||
/* 0x212 */ s16 blinkTimer;
|
||||
|
@ -104,7 +104,7 @@ void EnLookNuts_Init(Actor* thisx, GlobalContext* globalCtx) {
|
||||
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 20.0f);
|
||||
SkelAnime_Init(globalCtx, &this->skelAnime, &gDekuPalaceGuardSkel, &gDekuPalaceGuardDigAnim, this->jointTable,
|
||||
this->morphTable, OBJECT_DNK_LIMB_MAX);
|
||||
this->morphTable, DEKU_PALACE_GUARD_LIMB_MAX);
|
||||
Actor_SetScale(&this->actor, 0.01f);
|
||||
this->actor.colChkInfo.damageTable = &sDamageTable;
|
||||
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
|
||||
|
@ -15,8 +15,8 @@ typedef void (*EnLookNutsActionFunc)(struct EnLookNuts*, GlobalContext*);
|
||||
typedef struct EnLookNuts {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x0144 */ SkelAnime skelAnime;
|
||||
/* 0x0188 */ Vec3s jointTable[OBJECT_DNK_LIMB_MAX];
|
||||
/* 0x01CA */ Vec3s morphTable[OBJECT_DNK_LIMB_MAX];
|
||||
/* 0x0188 */ Vec3s jointTable[DEKU_PALACE_GUARD_LIMB_MAX];
|
||||
/* 0x01CA */ Vec3s morphTable[DEKU_PALACE_GUARD_LIMB_MAX];
|
||||
/* 0x020C */ EnLookNutsActionFunc actionFunc;
|
||||
/* 0x0210 */ Path *path;
|
||||
/* 0x0214 */ s16 currentPathIndex; // Index for the point where the deku guard is in its path
|
||||
|
@ -7,7 +7,6 @@
|
||||
#include "z_en_syateki_dekunuts.h"
|
||||
#include "overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.h"
|
||||
#include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h"
|
||||
#include "objects/object_dekunuts/object_dekunuts.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_20 | ACTOR_FLAG_8000000)
|
||||
|
||||
@ -70,13 +69,13 @@ static ColliderCylinderInit sCylinderInit = {
|
||||
static Cylinder16 D_80A2CADC[] = { { 24, 40, 0, { 0, 0, 0 } } };
|
||||
|
||||
static AnimationInfo sAnimations[] = {
|
||||
{ &object_dekunuts_Anim_003180, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f },
|
||||
{ &object_dekunuts_Anim_002A5C, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f },
|
||||
{ &object_dekunuts_Anim_00326C, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -1.0f },
|
||||
{ &object_dekunuts_Anim_002FA4, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -1.0f },
|
||||
{ &object_dekunuts_Anim_00259C, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f },
|
||||
{ &object_dekunuts_Anim_002BD4, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f },
|
||||
{ &object_dekunuts_Anim_002DD4, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f },
|
||||
{ &gDekuScrubUpAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f },
|
||||
{ &gDekuScrubBurrowAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f },
|
||||
{ &gDekuScrubIdleAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -1.0f },
|
||||
{ &gDekuScrubLookAroundAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, -1.0f },
|
||||
{ &gDekuScrubDamageAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f },
|
||||
{ &gDekuScrubDieAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f },
|
||||
{ &gDekuScrubUnburrowAnim, 1.0f, 0.0f, 0.0f, ANIMMODE_ONCE, -1.0f },
|
||||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
@ -124,8 +123,8 @@ void EnSyatekiDekunuts_Init(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
|
||||
Actor_ProcessInitChain(&this->actor, sInitChain);
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 35.0f);
|
||||
SkelAnime_Init(globalCtx, &this->skelAnime, &object_dekunuts_Skel_002468, &object_dekunuts_Anim_002A5C,
|
||||
this->jointTable, this->morphTable, 10);
|
||||
SkelAnime_Init(globalCtx, &this->skelAnime, &gDekuScrubSkel, &gDekuScrubBurrowAnim, this->jointTable,
|
||||
this->morphTable, DEKU_SCRUB_LIMB_MAX);
|
||||
if (path == NULL) {
|
||||
Actor_MarkForDeath(&this->actor);
|
||||
return;
|
||||
@ -147,7 +146,7 @@ void EnSyatekiDekunuts_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
||||
}
|
||||
|
||||
void func_80A2BE54(EnSyatekiDekunuts* this) {
|
||||
Animation_PlayOnceSetSpeed(&this->skelAnime, &object_dekunuts_Anim_003180, 0.0f);
|
||||
Animation_PlayOnceSetSpeed(&this->skelAnime, &gDekuScrubUpAnim, 0.0f);
|
||||
|
||||
this->actor.speedXZ = 0.0f;
|
||||
this->actor.world = this->actor.home;
|
||||
@ -398,7 +397,7 @@ s32 EnSyatekiDekunuts_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex,
|
||||
Actor* thisx) {
|
||||
EnSyatekiDekunuts* this = THIS;
|
||||
|
||||
if ((limbIndex == OBJECT_DEKUNUTS_LIMB_03) && (this->unk_1F0 == 1)) {
|
||||
if ((limbIndex == DEKU_SCRUB_LIMB_HEADDRESS) && (this->unk_1F0 == 1)) {
|
||||
rot->z += this->unk_1F2;
|
||||
}
|
||||
|
||||
@ -428,7 +427,7 @@ void EnSyatekiDekunuts_Draw(Actor* thisx, GlobalContext* globalCtx) {
|
||||
Matrix_Scale(0.02f, 0.02f, 0.02f, MTXMODE_APPLY);
|
||||
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_OPA_DISP++, &object_dekunuts_DL_001E50);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gDekuScrubFlowerDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx);
|
||||
}
|
||||
|
@ -2,6 +2,7 @@
|
||||
#define Z_EN_SYATEKI_DEKUNUTS_H
|
||||
|
||||
#include "global.h"
|
||||
#include "objects/object_dekunuts/object_dekunuts.h"
|
||||
|
||||
#define EN_SYATEKI_DEKUNUTS_GET_PARAM_F(thisx) ((thisx)->params & 0xF)
|
||||
#define EN_SYATEKI_DEKUNUTS_GET_PARAM_F0(thisx) (((thisx)->params & 0xF0) >> 4)
|
||||
@ -28,8 +29,8 @@ typedef struct EnSyatekiDekunuts {
|
||||
/* 0x1EE */ s16 unk_1EE;
|
||||
/* 0x1F0 */ s16 unk_1F0;
|
||||
/* 0x1F2 */ s16 unk_1F2;
|
||||
/* 0x1F4 */ Vec3s jointTable[10];
|
||||
/* 0x230 */ Vec3s morphTable[10];
|
||||
/* 0x1F4 */ Vec3s jointTable[DEKU_SCRUB_LIMB_MAX];
|
||||
/* 0x230 */ Vec3s morphTable[DEKU_SCRUB_LIMB_MAX];
|
||||
/* 0x26C */ UNK_TYPE1 unk_26C[0x4];
|
||||
} EnSyatekiDekunuts; // size = 0x270
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user