diff --git a/assets/xml/objects/object_zos.xml b/assets/xml/objects/object_zos.xml index a1364a8429..5b3b12345e 100644 --- a/assets/xml/objects/object_zos.xml +++ b/assets/xml/objects/object_zos.xml @@ -6,7 +6,7 @@ - + diff --git a/assets/xml/objects/object_zov.xml b/assets/xml/objects/object_zov.xml index 440782f102..31b9bcd7be 100644 --- a/assets/xml/objects/object_zov.xml +++ b/assets/xml/objects/object_zov.xml @@ -1,81 +1,90 @@  + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/overlays/actors/ovl_En_Zos/z_en_zos.c b/src/overlays/actors/ovl_En_Zos/z_en_zos.c index 4be070d254..0e3262869e 100644 --- a/src/overlays/actors/ovl_En_Zos/z_en_zos.c +++ b/src/overlays/actors/ovl_En_Zos/z_en_zos.c @@ -138,7 +138,7 @@ static AnimationHeader* sAnimations[] = { &gEvanLeanOnKeyboardAnim, // EN_ZOS_ANIM_LEAN_ON_KEYBOARD &gEvanLeanOnKeyboardAndSighAnim, // EN_ZOS_ANIM_LEAN_ON_KEYBOARD_AND_SIGH &gEvanHandsOnHipsAnim, // EN_ZOS_ANIM_HANDS_ON_HIPS - &gEeanTalkFootTapAnim, // EN_ZOS_ANIM_TALK_FOOT_TAP + &gEvanTalkFootTapAnim, // EN_ZOS_ANIM_TALK_FOOT_TAP &gEvanTalkLookDownAnim, // EN_ZOS_ANIM_TALK_LOOK_DOWN &gEvanTalkArmsOutAnim, // EN_ZOS_ANIM_TALK_ARMS_OUT &gEvanTalkHandsOnHipsAnim, // EN_ZOS_ANIM_TALK_HANDS_ON_HIPS diff --git a/src/overlays/actors/ovl_En_Zov/z_en_zov.c b/src/overlays/actors/ovl_En_Zov/z_en_zov.c index 6342c38d39..8e85f46759 100644 --- a/src/overlays/actors/ovl_En_Zov/z_en_zov.c +++ b/src/overlays/actors/ovl_En_Zov/z_en_zov.c @@ -5,7 +5,6 @@ */ #include "z_en_zov.h" -#include "objects/object_zov/object_zov.h" #include "overlays/actors/ovl_En_Elf/z_en_elf.h" #define FLAGS (ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_FRIENDLY) @@ -60,20 +59,20 @@ static ColliderCylinderInit sCylinderInit = { { 20, 40, 0, { 0, 0, 0 } }, }; -static AnimationHeader* D_80BD270C[] = { - &object_zov_Anim_00D3EC, &object_zov_Anim_008120, &object_zov_Anim_00B4CC, &object_zov_Anim_00A888, - &object_zov_Anim_00C510, &object_zov_Anim_00CAA8, &object_zov_Anim_008120, &object_zov_Anim_00A888, - &object_zov_Anim_002B5C, &object_zov_Anim_00418C, &object_zov_Anim_005A6C, &object_zov_Anim_0066A4, - &object_zov_Anim_0017D4, &object_zov_Anim_0023F4, +static AnimationHeader* sAnimations[] = { + &gLuluLookDownAnim, &gLuluPutHandsDownAnim, &gLuluLookForwardAndDownAnim, &gLuluLookAroundAnim, + &gLuluAngleHeadAnim, &gLuluNodAnim, &gLuluPutHandsDownAnim, &gLuluLookAroundAnim, + &gLuluSingStartAnim, &gLuluSingLoopAnim, &gLuluLookForwardAndLeftAnim, &gLuluLookLeftLoopAnim, + &gLuluTurnAndWalkAnim, &gLuluWalkLoopAnim, }; static Vec3f D_80BD2744 = { 400.0f, 600.0f, 0.0f }; static Vec3f D_80BD2750 = { 400.0f, 600.0f, 0.0f }; -static TexturePtr D_80BD275C[] = { object_zov_Tex_013C38, object_zov_Tex_015138, object_zov_Tex_014138 }; +static TexturePtr sEyeTextures[] = { gLuluEyeOpenTex, gLuluEyeHalfTex, gLuluEyeClosedTex }; -static TexturePtr D_80BD2768[] = { object_zov_Tex_0135F8, object_zov_Tex_014538 }; +static TexturePtr sMouthTextures[] = { gLuluMouthClosedTex, gLuluMouthOpenTex }; static s8 D_80BD2770[] = { 1, 2, 1, 0, 0, 1, 2, 1, @@ -86,9 +85,9 @@ void EnZov_Init(Actor* thisx, PlayState* play) { this->picto.actor.colChkInfo.mass = MASS_IMMOVABLE; Actor_SetScale(&this->picto.actor, 0.01f); Collider_InitAndSetCylinder(play, &this->collider, &this->picto.actor, &sCylinderInit); - SkelAnime_InitFlex(play, &this->skelAnime, &object_zov_Skel_016258, &object_zov_Anim_00D3EC, this->jontTable, - this->morphTable, 23); - Animation_PlayLoop(&this->skelAnime, &object_zov_Anim_00D3EC); + SkelAnime_InitFlex(play, &this->skelAnime, &gLuluSkel, &gLuluLookDownAnim, this->jointTable, this->morphTable, + LULU_LIMB_MAX); + Animation_PlayLoop(&this->skelAnime, &gLuluLookDownAnim); this->unk_320 = 0; this->csIdIndex = -1; @@ -147,10 +146,10 @@ void func_80BD1440(EnZov* this, s16 arg1) { this->csIdIndex = arg1; } -void func_80BD1470(EnZov* this, s16 index, u8 mode, f32 transitionRate) { +void func_80BD1470(EnZov* this, s16 index, u8 mode, f32 morphFrames) { f32 frame; - if (((index != this->unk_322) || (mode != ANIMMODE_LOOP)) && (index >= 0) && (index < ARRAY_COUNT(D_80BD270C))) { + if (((index != this->unk_322) || (mode != ANIMMODE_LOOP)) && (index >= 0) && (index < ARRAY_COUNT(sAnimations))) { switch (index) { case 6: frame = 30.0f; @@ -164,8 +163,8 @@ void func_80BD1470(EnZov* this, s16 index, u8 mode, f32 transitionRate) { frame = 0.0f; break; } - Animation_Change(&this->skelAnime, D_80BD270C[index], 1.0f, frame, Animation_GetLastFrame(D_80BD270C[index]), - mode, transitionRate); + Animation_Change(&this->skelAnime, sAnimations[index], 1.0f, frame, Animation_GetLastFrame(sAnimations[index]), + mode, morphFrames); this->unk_322 = index; } } @@ -521,14 +520,14 @@ void EnZov_Update(Actor* thisx, PlayState* play) { s32 EnZov_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) { EnZov* this = THIS; - if (limbIndex == 12) { + if (limbIndex == LULU_LIMB_HEAD) { rot->x += this->unk_2F0.y; if ((this->unk_320 & 0x10) && (this->unk_322 == 0)) { rot->z += this->unk_2F0.x; } } - if (limbIndex == 11) { + if (limbIndex == LULU_LIMB_TORSO) { rot->x += this->unk_2F6.y; } return false; @@ -537,17 +536,17 @@ s32 EnZov_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p void EnZov_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { EnZov* this = THIS; - if (limbIndex == 12) { + if (limbIndex == LULU_LIMB_HEAD) { Matrix_MultVec3f(&D_80BD2744, &this->picto.actor.focus.pos); Math_Vec3f_Copy(&this->unk_2FC, &this->picto.actor.focus.pos); this->unk_2FC.y += 10.0f; } - if (limbIndex == 18) { + if (limbIndex == LULU_LIMB_RIGHT_UPPER_ARM) { Matrix_MultVec3f(&D_80BD2750, &this->unk_308); } - if (limbIndex == 13) { + if (limbIndex == LULU_LIMB_LEFT_UPPER_ARM) { Matrix_MultVec3f(&D_80BD2750, &this->unk_314); } } @@ -625,8 +624,8 @@ void EnZov_Draw(Actor* thisx, PlayState* play) { } gfx = POLY_OPA_DISP; - gSPSegment(&gfx[0], 0x09, Lib_SegmentedToVirtual(D_80BD275C[phi_v1])); - gSPSegment(&gfx[1], 0x08, Lib_SegmentedToVirtual(D_80BD2768[phi_a1])); + gSPSegment(&gfx[0], 0x09, Lib_SegmentedToVirtual(sEyeTextures[phi_v1])); + gSPSegment(&gfx[1], 0x08, Lib_SegmentedToVirtual(sMouthTextures[phi_a1])); POLY_OPA_DISP = &gfx[2]; CLOSE_DISPS(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_En_Zov/z_en_zov.h b/src/overlays/actors/ovl_En_Zov/z_en_zov.h index 7e12041009..7637bb53e5 100644 --- a/src/overlays/actors/ovl_En_Zov/z_en_zov.h +++ b/src/overlays/actors/ovl_En_Zov/z_en_zov.h @@ -3,6 +3,7 @@ #include "global.h" #include "z64snap.h" +#include "objects/object_zov/object_zov.h" struct EnZov; @@ -16,8 +17,8 @@ typedef void (*EnZovActionFunc)(struct EnZov*, PlayState*); typedef struct EnZov { /* 0x000 */ PictoActor picto; - /* 0x148 */ Vec3s jontTable[23]; - /* 0x1D2 */ Vec3s morphTable[23]; + /* 0x148 */ Vec3s jointTable[LULU_LIMB_MAX]; + /* 0x1D2 */ Vec3s morphTable[LULU_LIMB_MAX]; /* 0x25C */ SkelAnime skelAnime; /* 0x2A0 */ ColliderCylinder collider; /* 0x2EC */ s16 unk_2EC;