mirror of https://github.com/zeldaret/mm.git
Document object_dog (#720)
This commit is contained in:
parent
ad9e6e2ae5
commit
863d6b9378
|
@ -1,53 +1,65 @@
|
|||
<Root>
|
||||
<!-- Assets for dogs and the arrow that appears over your selected dog in the Doggy Racetrack -->
|
||||
<File Name="object_dog" Segment="6">
|
||||
<Mtx Name="object_dog_Mtx_000130" Offset="0x130" />
|
||||
<DList Name="object_dog_DL_000170" Offset="0x170" />
|
||||
<DList Name="object_dog_DL_000250" Offset="0x250" />
|
||||
<Texture Name="object_dog_Tex_000258" OutName="tex_000258" Format="i8" Width="8" Height="32" Offset="0x258" />
|
||||
<TextureAnimation Name="object_dog_Matanimheader_0003C4" Offset="0x3C4" />
|
||||
<Mtx Name="object_dog_Mtx_000510" Offset="0x510" />
|
||||
<DList Name="object_dog_DL_000550" Offset="0x550" />
|
||||
<DList Name="object_dog_DL_000618" Offset="0x618" />
|
||||
<Texture Name="object_dog_Tex_000620" OutName="tex_000620" Format="i4" Width="16" Height="32" Offset="0x620" />
|
||||
<Animation Name="object_dog_Anim_000998" Offset="0x998" />
|
||||
<Animation Name="object_dog_Anim_001048" Offset="0x1048" />
|
||||
<Animation Name="object_dog_Anim_001348" Offset="0x1348" />
|
||||
<Animation Name="object_dog_Anim_001560" Offset="0x1560" />
|
||||
<Animation Name="object_dog_Anim_0017C0" Offset="0x17C0" />
|
||||
<Animation Name="object_dog_Anim_001A84" Offset="0x1A84" />
|
||||
<Animation Name="object_dog_Anim_001BD8" Offset="0x1BD8" />
|
||||
<Animation Name="object_dog_Anim_001FB0" Offset="0x1FB0" />
|
||||
<Animation Name="object_dog_Anim_0021C8" Offset="0x21C8" />
|
||||
<Texture Name="object_dog_Tex_0021E0" OutName="tex_0021E0" Format="rgba16" Width="32" Height="32" Offset="0x21E0" />
|
||||
<Texture Name="object_dog_Tex_0029E0" OutName="tex_0029E0" Format="rgba16" Width="32" Height="32" Offset="0x29E0" />
|
||||
<Texture Name="object_dog_Tex_0031E0" OutName="tex_0031E0" Format="rgba16" Width="32" Height="32" Offset="0x31E0" />
|
||||
<Texture Name="object_dog_Tex_0039E0" OutName="tex_0039E0" Format="rgba16" Width="32" Height="32" Offset="0x39E0" />
|
||||
<Texture Name="object_dog_Tex_0041E0" OutName="tex_0041E0" Format="rgba16" Width="32" Height="32" Offset="0x41E0" />
|
||||
<Texture Name="object_dog_Tex_0049E0" OutName="tex_0049E0" Format="rgba16" Width="32" Height="32" Offset="0x49E0" />
|
||||
<Texture Name="object_dog_Tex_0051E0" OutName="tex_0051E0" Format="rgba16" Width="16" Height="16" Offset="0x51E0" />
|
||||
<Texture Name="object_dog_Tex_0053E0" OutName="tex_0053E0" Format="rgba16" Width="32" Height="32" Offset="0x53E0" />
|
||||
<DList Name="object_dog_DL_006F40" Offset="0x6F40" />
|
||||
<DList Name="object_dog_DL_0072A8" Offset="0x72A8" />
|
||||
<DList Name="object_dog_DL_007348" Offset="0x7348" />
|
||||
<DList Name="object_dog_DL_0073E8" Offset="0x73E8" />
|
||||
<DList Name="object_dog_DL_007600" Offset="0x7600" />
|
||||
<DList Name="object_dog_DL_0077B0" Offset="0x77B0" />
|
||||
<DList Name="object_dog_DL_007960" Offset="0x7960" />
|
||||
<DList Name="object_dog_DL_007B00" Offset="0x7B00" />
|
||||
<DList Name="object_dog_DL_007CB0" Offset="0x7CB0" />
|
||||
<DList Name="object_dog_DL_007E60" Offset="0x7E60" />
|
||||
<Limb Name="object_dog_Standardlimb_008030" Type="Standard" EnumName="OBJECT_DOG_LIMB_01" Offset="0x8030" />
|
||||
<Limb Name="object_dog_Standardlimb_00803C" Type="Standard" EnumName="OBJECT_DOG_LIMB_02" Offset="0x803C" />
|
||||
<Limb Name="object_dog_Standardlimb_008048" Type="Standard" EnumName="OBJECT_DOG_LIMB_03" Offset="0x8048" />
|
||||
<Limb Name="object_dog_Standardlimb_008054" Type="Standard" EnumName="OBJECT_DOG_LIMB_04" Offset="0x8054" />
|
||||
<Limb Name="object_dog_Standardlimb_008060" Type="Standard" EnumName="OBJECT_DOG_LIMB_05" Offset="0x8060" />
|
||||
<Limb Name="object_dog_Standardlimb_00806C" Type="Standard" EnumName="OBJECT_DOG_LIMB_06" Offset="0x806C" />
|
||||
<Limb Name="object_dog_Standardlimb_008078" Type="Standard" EnumName="OBJECT_DOG_LIMB_07" Offset="0x8078" />
|
||||
<Limb Name="object_dog_Standardlimb_008084" Type="Standard" EnumName="OBJECT_DOG_LIMB_08" Offset="0x8084" />
|
||||
<Limb Name="object_dog_Standardlimb_008090" Type="Standard" EnumName="OBJECT_DOG_LIMB_09" Offset="0x8090" />
|
||||
<Limb Name="object_dog_Standardlimb_00809C" Type="Standard" EnumName="OBJECT_DOG_LIMB_0A" Offset="0x809C" />
|
||||
<Limb Name="object_dog_Standardlimb_0080A8" Type="Standard" EnumName="OBJECT_DOG_LIMB_0B" Offset="0x80A8" />
|
||||
<Limb Name="object_dog_Standardlimb_0080B4" Type="Standard" EnumName="OBJECT_DOG_LIMB_0C" Offset="0x80B4" />
|
||||
<Skeleton Name="object_dog_Skel_0080F0" Type="Flex" LimbType="Standard" LimbNone="OBJECT_DOG_LIMB_NONE" LimbMax="OBJECT_DOG_LIMB_MAX" EnumName="object_dog_Limbs" Offset="0x80F0" />
|
||||
<!-- Unused Selection Arrow with a Texture Animation -->
|
||||
<DList Name="gDogSelectionArrowAnimatedDL" Offset="0x170" /> <!-- Original name is "cursor_00_anim_model" -->
|
||||
<DList Name="gDogSelectionArrowAnimatedEmptyDL" Offset="0x250" /> <!-- Original name is "cursor_00_anim_modelT". Probably meant "transparent" at one point -->
|
||||
<Texture Name="gDogSelectionArrowAnimatedTex" OutName="dog_selection_arrow_animated" Format="i8" Width="8" Height="32" Offset="0x258" />
|
||||
<TextureAnimation Name="gDogSelectionArrowTexAnim" Offset="0x3C4" />
|
||||
|
||||
<!-- Selection Arrow DisplayLists and Texture -->
|
||||
<DList Name="gDogSelectionArrowDL" Offset="0x550" /> <!-- Original name is "cursor_00_none_model" -->
|
||||
<DList Name="gDogSelectionArrowEmptyDL" Offset="0x618" /> <!-- Original name is "cursor_00_none_modelT". Probably meant "transparent" at one point-->
|
||||
<Texture Name="gDogSelectionArrowTex" OutName="dog_selection_arrow" Format="i4" Width="16" Height="32" Offset="0x620" />
|
||||
|
||||
<!-- Dog Animations -->
|
||||
<Animation Name="gDogBarkAnim" Offset="0x998" /> <!-- Original name is "dog_bark" -->
|
||||
<Animation Name="gDogLyingDownAnim" Offset="0x1048" /> <!-- Original name is "dog_fuse" ("lying on the ground") -->
|
||||
<Animation Name="gDogLyingDownLoopAnim" Offset="0x1348" /> <!-- Original name is "dog_fusetamama" ("lying on the ground continues") -->
|
||||
<Animation Name="gDogJumpAnim" Offset="0x1560" /> <!-- Original name is "dog_jump" -->
|
||||
<Animation Name="gDogJump2Anim" Offset="0x17C0" /> <!-- Original name is "dog_jump2" -->
|
||||
<Animation Name="gDogLongJumpAnim" Offset="0x1A84" /> <!-- Original name is "dog_longjump" -->
|
||||
<Animation Name="gDogRunAnim" Offset="0x1BD8" /> <!-- Original name is "dog_run" -->
|
||||
<Animation Name="gDogSitAnim" Offset="0x1FB0" /> <!-- Original name is "dog_sit" -->
|
||||
<Animation Name="gDogWalkAnim" Offset="0x21C8" /> <!-- Original name is "dog_walk" -->
|
||||
|
||||
<!-- Dog Textures -->
|
||||
<Texture Name="gDogFur1Tex" OutName="dog_fur_1" Format="rgba16" Width="32" Height="32" Offset="0x21E0" /> <!-- Lower body, legs, and tail -->
|
||||
<Texture Name="gDogFur2Tex" OutName="dog_fur_2" Format="rgba16" Width="32" Height="32" Offset="0x29E0" /> <!-- Front of ears, back of the tail, and around the feet-->
|
||||
<Texture Name="gDogFur3Tex" OutName="dog_fur_3" Format="rgba16" Width="32" Height="32" Offset="0x31E0" /> <!-- Upper body, top of head-->
|
||||
<Texture Name="gDogFaceAndEyeTex" OutName="dog_face_and_eye" Format="rgba16" Width="32" Height="32" Offset="0x39E0" />
|
||||
<Texture Name="gDogFaceAndNoseTex" OutName="dog_face_and_nose" Format="rgba16" Width="32" Height="32" Offset="0x41E0" />
|
||||
<Texture Name="gDogFur4Tex" OutName="dog_fur_4" Format="rgba16" Width="32" Height="32" Offset="0x49E0" /> <!-- Back of ears, side of head, and part of front body-->
|
||||
<Texture Name="gDogPawTex" OutName="dog_paw" Format="rgba16" Width="16" Height="16" Offset="0x51E0" />
|
||||
<Texture Name="gDogFaceHairTex" OutName="dog_face_hair" Format="rgba16" Width="32" Height="32" Offset="0x53E0" />
|
||||
|
||||
<!-- Dog Limb DisplayLists -->
|
||||
<DList Name="gDogHeadDL" Offset="0x6F40" />
|
||||
<DList Name="gDogRightFaceHairDL" Offset="0x72A8" />
|
||||
<DList Name="gDogLeftFaceHairDL" Offset="0x7348" />
|
||||
<DList Name="gDogBodyFrontDL" Offset="0x73E8" />
|
||||
<DList Name="gDogFrontRightLegDL" Offset="0x7600" />
|
||||
<DList Name="gDogFrontLeftLegDL" Offset="0x77B0" />
|
||||
<DList Name="gDogBodyBackDL" Offset="0x7960" />
|
||||
<DList Name="gDogBackRightLegDL" Offset="0x7B00" />
|
||||
<DList Name="gDogBackLeftLegDL" Offset="0x7CB0" />
|
||||
<DList Name="gDogTailDL" Offset="0x7E60" />
|
||||
|
||||
<!-- Dog Limbs -->
|
||||
<Limb Name="gDogRootLimb" Type="Standard" EnumName="DOG_LIMB_ROOT" Offset="0x8030" />
|
||||
<Limb Name="gDogBodyBackLimb" Type="Standard" EnumName="DOG_LIMB_BODY_BACK" Offset="0x803C" />
|
||||
<Limb Name="gDogBodyFrontLimb" Type="Standard" EnumName="DOG_LIMB_BODY_FRONT" Offset="0x8048" />
|
||||
<Limb Name="gDogHeadRootLimb" Type="Standard" EnumName="DOG_LIMB_HEAD_ROOT" Offset="0x8054" />
|
||||
<Limb Name="gDogHeadLimb" Type="Standard" EnumName="DOG_LIMB_HEAD" Offset="0x8060" />
|
||||
<Limb Name="gDogRightFaceHairLimb" Type="Standard" EnumName="DOG_LIMB_RIGHT_FACE_HAIR" Offset="0x806C" />
|
||||
<Limb Name="gDogLeftFaceHairLimb" Type="Standard" EnumName="DOG_LIMB_LEFT_FACE_HAIR" Offset="0x8078" />
|
||||
<Limb Name="gDogFrontRightLegLimb" Type="Standard" EnumName="DOG_LIMB_FRONT_RIGHT_LEG" Offset="0x8084" />
|
||||
<Limb Name="gDogFrontLeftLegLimb" Type="Standard" EnumName="DOG_LIMB_FRONT_LEFT_LEG" Offset="0x8090" />
|
||||
<Limb Name="gDogBackRightLegLimb" Type="Standard" EnumName="DOG_LIMB_BACK_RIGHT_LEG" Offset="0x809C" />
|
||||
<Limb Name="gDogBackLeftLegLimb" Type="Standard" EnumName="DOG_LIMB_BACK_LEFT_LEG" Offset="0x80A8" />
|
||||
<Limb Name="gDogTailLimb" Type="Standard" EnumName="DOG_LIMB_TAIL" Offset="0x80B4" />
|
||||
|
||||
<!-- Dog Skeleton -->
|
||||
<Skeleton Name="gDogSkel" Type="Flex" LimbType="Standard" LimbNone="DOG_LIMB_NONE" LimbMax="DOG_LIMB_MAX" EnumName="DogLimbs" Offset="0x80F0" />
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
*/
|
||||
|
||||
#include "z_en_dg.h"
|
||||
#include "objects/object_dog/object_dog.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_8 | ACTOR_FLAG_10 | ACTOR_FLAG_800000)
|
||||
|
||||
|
@ -130,22 +129,14 @@ static DamageTable sDamageTable = {
|
|||
};
|
||||
|
||||
static AnimationInfoS sAnimations[] = {
|
||||
{ &object_dog_Anim_0021C8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &object_dog_Anim_0021C8, 1.0f, 0, -1, ANIMMODE_LOOP, -6 },
|
||||
{ &object_dog_Anim_001BD8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &object_dog_Anim_000998, 1.0f, 0, -1, ANIMMODE_LOOP, -6 },
|
||||
{ &object_dog_Anim_001FB0, 1.0f, 0, -1, ANIMMODE_ONCE, -6 },
|
||||
{ &object_dog_Anim_001FB0, 1.0f, 0, -1, ANIMMODE_LOOP_PARTIAL, -6 },
|
||||
{ &object_dog_Anim_001048, 1.0f, 0, -1, ANIMMODE_ONCE, -6 },
|
||||
{ &object_dog_Anim_001348, 1.0f, 0, -1, ANIMMODE_LOOP, -6 },
|
||||
{ &object_dog_Anim_001048, 1.0f, 0, 27, ANIMMODE_ONCE, -6 },
|
||||
{ &object_dog_Anim_001048, 1.0f, 28, -1, ANIMMODE_ONCE, -6 },
|
||||
{ &object_dog_Anim_001048, 1.0f, 54, 54, ANIMMODE_ONCE, -6 },
|
||||
{ &object_dog_Anim_0021C8, -1.5f, -1, 0, ANIMMODE_LOOP, -6 },
|
||||
{ &object_dog_Anim_001560, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
|
||||
{ &object_dog_Anim_001A84, 1.2f, 0, -1, ANIMMODE_ONCE, 0 },
|
||||
{ &object_dog_Anim_0017C0, 1.2f, 0, -1, ANIMMODE_ONCE, 0 },
|
||||
{ &object_dog_Anim_0021C8, 0.5f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gDogWalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gDogWalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 },
|
||||
{ &gDogRunAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gDogBarkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 },
|
||||
{ &gDogSitAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -6 }, { &gDogSitAnim, 1.0f, 0, -1, ANIMMODE_LOOP_PARTIAL, -6 },
|
||||
{ &gDogLyingDownAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -6 }, { &gDogLyingDownLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 },
|
||||
{ &gDogLyingDownAnim, 1.0f, 0, 27, ANIMMODE_ONCE, -6 }, { &gDogLyingDownAnim, 1.0f, 28, -1, ANIMMODE_ONCE, -6 },
|
||||
{ &gDogLyingDownAnim, 1.0f, 54, 54, ANIMMODE_ONCE, -6 }, { &gDogWalkAnim, -1.5f, -1, 0, ANIMMODE_LOOP, -6 },
|
||||
{ &gDogJumpAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gDogLongJumpAnim, 1.2f, 0, -1, ANIMMODE_ONCE, 0 },
|
||||
{ &gDogJump2Anim, 1.2f, 0, -1, ANIMMODE_ONCE, 0 }, { &gDogWalkAnim, 0.5f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
|
@ -1117,8 +1108,7 @@ void EnDg_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
s32 pad;
|
||||
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 24.0f);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &object_dog_Skel_0080F0, NULL, this->jointTable, this->morphTable,
|
||||
13);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gDogSkel, NULL, this->jointTable, this->morphTable, DOG_LIMB_MAX);
|
||||
Collider_InitCylinder(globalCtx, &this->collider);
|
||||
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
|
||||
CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit);
|
||||
|
@ -1184,7 +1174,7 @@ void EnDg_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec
|
|||
EnDg* this = THIS;
|
||||
Vec3f sp20 = { 0.0f, 20.0f, 0.0f };
|
||||
|
||||
if (limbIndex == 5) {
|
||||
if (limbIndex == DOG_LIMB_HEAD) {
|
||||
if (this->actionFunc == func_8098BBEC) {
|
||||
sp20.x = 5000.0f;
|
||||
Matrix_MultiplyVector3fByState(&sp20, &this->actor.focus.pos);
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#define Z_EN_DG_H
|
||||
|
||||
#include "global.h"
|
||||
#include "objects/object_dog/object_dog.h"
|
||||
|
||||
struct EnDg;
|
||||
|
||||
|
@ -18,8 +19,8 @@ typedef struct EnDg {
|
|||
/* 0x190 */ ColliderCylinder collider;
|
||||
/* 0x1DC */ Path* unk_1DC;
|
||||
/* 0x1E0 */ s32 unk_1E0;
|
||||
/* 0x1E4 */ Vec3s jointTable[13];
|
||||
/* 0x232 */ Vec3s morphTable[13];
|
||||
/* 0x1E4 */ Vec3s jointTable[DOG_LIMB_MAX];
|
||||
/* 0x232 */ Vec3s morphTable[DOG_LIMB_MAX];
|
||||
/* 0x280 */ u16 unk_280;
|
||||
/* 0x282 */ s16 unk_282;
|
||||
/* 0x284 */ s16 unk_284;
|
||||
|
|
|
@ -3533,7 +3533,7 @@ void func_80B4B3DC(EnInvadepoh* this) {
|
|||
}
|
||||
|
||||
void func_80B4B430(EnInvadepoh* this) {
|
||||
Animation_MorphToLoop(&this->skelAnime, &object_dog_Anim_0021C8, -6.0f);
|
||||
Animation_MorphToLoop(&this->skelAnime, &gDogWalkAnim, -6.0f);
|
||||
this->actionTimer = Rand_S16Offset(50, 80);
|
||||
this->actionFunc = func_80B4B484;
|
||||
}
|
||||
|
@ -3556,7 +3556,7 @@ void func_80B4B484(EnInvadepoh* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void func_80B4B510(EnInvadepoh* this) {
|
||||
Animation_MorphToLoop(&this->skelAnime, &object_dog_Anim_001BD8, -6.0f);
|
||||
Animation_MorphToLoop(&this->skelAnime, &gDogRunAnim, -6.0f);
|
||||
this->actionTimer = Rand_S16Offset(50, 200);
|
||||
this->actionFunc = func_80B4B564;
|
||||
}
|
||||
|
@ -3600,7 +3600,7 @@ void func_80B4B564(EnInvadepoh* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void func_80B4B724(EnInvadepoh* this) {
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &object_dog_Anim_000998, -6.0f);
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &gDogBarkAnim, -6.0f);
|
||||
this->actionFunc = func_80B4B768;
|
||||
}
|
||||
|
||||
|
@ -3620,7 +3620,7 @@ void func_80B4B768(EnInvadepoh* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void func_80B4B820(EnInvadepoh* this) {
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &object_dog_Anim_001560, -6.0f);
|
||||
Animation_MorphToPlayOnce(&this->skelAnime, &gDogJumpAnim, -6.0f);
|
||||
this->actionFunc = func_80B4B864;
|
||||
}
|
||||
|
||||
|
@ -3639,8 +3639,8 @@ void func_80B4B8BC(Actor* thisx, GlobalContext* globalCtx) {
|
|||
if (Object_IsLoaded(&globalCtx->objectCtx, this->bankIndex)) {
|
||||
this->actor.objBankIndex = this->bankIndex;
|
||||
Actor_SetObjectDependency(globalCtx, &this->actor);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &object_dog_Skel_0080F0, &object_dog_Anim_0021C8,
|
||||
this->jointTable, this->morphTable, 13);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gDogSkel, &gDogWalkAnim, this->jointTable, this->morphTable,
|
||||
DOG_LIMB_MAX);
|
||||
func_80B45C04(&this->behaviorInfo, 0, 0, 0, 0, &gZeroVec3s, 3000, 0.1f, 0.0f, 0.0f);
|
||||
func_80B44664(this, globalCtx);
|
||||
EnInvadepoh_SetPathPointToWorldPos(this, 0);
|
||||
|
@ -4552,7 +4552,8 @@ void func_80B4E3F0(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
s32 func_80B4E5B0(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
|
||||
if ((limbIndex == 5) || (limbIndex == 6) || (limbIndex == 7)) {
|
||||
if ((limbIndex == DOG_LIMB_HEAD) || (limbIndex == DOG_LIMB_RIGHT_FACE_HAIR) ||
|
||||
(limbIndex == DOG_LIMB_LEFT_FACE_HAIR)) {
|
||||
EnInvadepoh* this = THIS;
|
||||
|
||||
rot->x += this->behaviorInfo.unk20.x;
|
||||
|
@ -4566,7 +4567,7 @@ s32 func_80B4E5B0(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* p
|
|||
void func_80B4E61C(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
|
||||
EnInvadepoh* this = THIS;
|
||||
|
||||
if (limbIndex == 5) {
|
||||
if (limbIndex == DOG_LIMB_HEAD) {
|
||||
Matrix_GetStateTranslationAndScaledY(20.0f, &this->actor.focus.pos);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
*/
|
||||
|
||||
#include "z_en_racedog.h"
|
||||
#include "objects/object_dog/object_dog.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_10 | ACTOR_FLAG_80000000)
|
||||
|
||||
|
@ -142,22 +141,14 @@ static DamageTable sDamageTable = {
|
|||
};
|
||||
|
||||
static AnimationInfoS D_80B25EF0[] = {
|
||||
{ &object_dog_Anim_0021C8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &object_dog_Anim_0021C8, 1.0f, 0, -1, ANIMMODE_LOOP, -6 },
|
||||
{ &object_dog_Anim_001BD8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &object_dog_Anim_000998, 1.0f, 0, -1, ANIMMODE_LOOP, -6 },
|
||||
{ &object_dog_Anim_001FB0, 1.0f, 0, -1, ANIMMODE_ONCE, -6 },
|
||||
{ &object_dog_Anim_001FB0, 1.0f, 0, -1, ANIMMODE_LOOP_PARTIAL, -6 },
|
||||
{ &object_dog_Anim_001048, 1.0f, 0, -1, ANIMMODE_ONCE, -6 },
|
||||
{ &object_dog_Anim_001348, 1.0f, 0, -1, ANIMMODE_LOOP, -6 },
|
||||
{ &object_dog_Anim_001048, 1.0f, 0, 27, ANIMMODE_ONCE, -6 },
|
||||
{ &object_dog_Anim_001048, 1.0f, 28, -1, ANIMMODE_ONCE, -6 },
|
||||
{ &object_dog_Anim_001048, 1.0f, 54, 54, ANIMMODE_ONCE, -6 },
|
||||
{ &object_dog_Anim_0021C8, -1.5f, -1, 0, ANIMMODE_LOOP, -6 },
|
||||
{ &object_dog_Anim_001560, 1.0f, 0, -1, ANIMMODE_ONCE, 0 },
|
||||
{ &object_dog_Anim_001A84, 1.2f, 0, -1, ANIMMODE_ONCE, 0 },
|
||||
{ &object_dog_Anim_0017C0, 1.2f, 0, -1, ANIMMODE_ONCE, 0 },
|
||||
{ &object_dog_Anim_0021C8, 0.5f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
{ &gDogWalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gDogWalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 },
|
||||
{ &gDogRunAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, { &gDogBarkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 },
|
||||
{ &gDogSitAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -6 }, { &gDogSitAnim, 1.0f, 0, -1, ANIMMODE_LOOP_PARTIAL, -6 },
|
||||
{ &gDogLyingDownAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -6 }, { &gDogLyingDownLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 },
|
||||
{ &gDogLyingDownAnim, 1.0f, 0, 27, ANIMMODE_ONCE, -6 }, { &gDogLyingDownAnim, 1.0f, 28, -1, ANIMMODE_ONCE, -6 },
|
||||
{ &gDogLyingDownAnim, 1.0f, 54, 54, ANIMMODE_ONCE, -6 }, { &gDogWalkAnim, -1.5f, -1, 0, ANIMMODE_LOOP, -6 },
|
||||
{ &gDogJumpAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, { &gDogLongJumpAnim, 1.2f, 0, -1, ANIMMODE_ONCE, 0 },
|
||||
{ &gDogJump2Anim, 1.2f, 0, -1, ANIMMODE_ONCE, 0 }, { &gDogWalkAnim, 0.5f, 0, -1, ANIMMODE_LOOP, 0 },
|
||||
};
|
||||
|
||||
static InitChainEntry sInitChain[] = {
|
||||
|
@ -228,8 +219,7 @@ void EnRacedog_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
ColliderCylinder* collider = &this->collider;
|
||||
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 24.0f);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &object_dog_Skel_0080F0, NULL, this->jointTable, this->morphTable,
|
||||
13);
|
||||
SkelAnime_InitFlex(globalCtx, &this->skelAnime, &gDogSkel, NULL, this->jointTable, this->morphTable, DOG_LIMB_MAX);
|
||||
Collider_InitCylinder(globalCtx, collider);
|
||||
Collider_SetCylinder(globalCtx, collider, &this->actor, &sCylinderInit);
|
||||
CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit);
|
||||
|
@ -601,8 +591,8 @@ void func_80B258D8(EnRacedog* this, GlobalContext* globalCtx) {
|
|||
gDPSetEnvColor(POLY_OPA_DISP++, 255, this->unk_2C0, 0, 255);
|
||||
Matrix_Scale(this->unk_2C4 * 2.0f, this->unk_2C4 * 2.0f, this->unk_2C4 * 2.0f, 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_dog_DL_000618);
|
||||
gSPDisplayList(POLY_OPA_DISP++, object_dog_DL_000550);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gDogSelectionArrowEmptyDL);
|
||||
gSPDisplayList(POLY_OPA_DISP++, gDogSelectionArrowDL);
|
||||
|
||||
CLOSE_DISPS(globalCtx->state.gfxCtx);
|
||||
}
|
||||
|
@ -618,11 +608,11 @@ void EnRacedog_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList
|
|||
EnRacedog* this = THIS;
|
||||
Vec3f sp1C = { 0.0f, 20.0f, 0.0f };
|
||||
|
||||
if (limbIndex == 5) {
|
||||
if (limbIndex == DOG_LIMB_HEAD) {
|
||||
Matrix_MultiplyVector3fByState(&sp1C, &this->actor.focus.pos);
|
||||
}
|
||||
|
||||
if (limbIndex == 12) {
|
||||
if (limbIndex == DOG_LIMB_TAIL) {
|
||||
func_80B258D8(this, globalCtx);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#define Z_EN_RACEDOG_H
|
||||
|
||||
#include "global.h"
|
||||
#include "objects/object_dog/object_dog.h"
|
||||
|
||||
#define ENRACEDOG_GET_3E0(thisx) (((thisx)->params & 0x3E0) >> 5)
|
||||
#define ENRACEDOG_GET_PATH(thisx) (((thisx)->params & 0xFC00) >> 10)
|
||||
|
@ -20,8 +21,8 @@ typedef struct EnRacedog {
|
|||
/* 0x1E0 */ Path* unk_1E0;
|
||||
/* 0x1E4 */ UNK_TYPE1 unk_1E4[0x4];
|
||||
/* 0x1E8 */ s32 unk_1E8;
|
||||
/* 0x1EC */ Vec3s jointTable[13];
|
||||
/* 0x23A */ Vec3s morphTable[13];
|
||||
/* 0x1EC */ Vec3s jointTable[DOG_LIMB_MAX];
|
||||
/* 0x23A */ Vec3s morphTable[DOG_LIMB_MAX];
|
||||
/* 0x288 */ s16 unk_288;
|
||||
/* 0x28A */ s16 unk_28A;
|
||||
/* 0x28C */ s16 unk_28C;
|
||||
|
|
Loading…
Reference in New Issue