mirror of
https://github.com/zeldaret/mm.git
synced 2024-11-23 12:59:44 +00:00
Document object_zos (Evan) (#1091)
* Name all but one DList * Name keyboard textures * Finish object * Respond to Elliptic's review * Respond to Anghelo's review * Comments for animations in array * Respond to Engineer's review
This commit is contained in:
parent
aa54982318
commit
91d4e29dfa
@ -1,69 +1,84 @@
|
||||
<Root>
|
||||
<!-- Assets for Evan, the pianist of The Indigo-Go's. -->
|
||||
<File Name="object_zos" Segment="6">
|
||||
<Animation Name="object_zos_Anim_001CFC" Offset="0x1CFC" />
|
||||
<Animation Name="object_zos_Anim_0048D4" Offset="0x48D4" />
|
||||
<Animation Name="object_zos_Anim_005E04" Offset="0x5E04" />
|
||||
<Animation Name="object_zos_Anim_007334" Offset="0x7334" />
|
||||
<Animation Name="object_zos_Anim_007C40" Offset="0x7C40" />
|
||||
<Animation Name="object_zos_Anim_008630" Offset="0x8630" />
|
||||
<Animation Name="object_zos_Anim_0090CC" Offset="0x90CC" />
|
||||
<Animation Name="object_zos_Anim_009830" Offset="0x9830" />
|
||||
<Animation Name="object_zos_Anim_00A164" Offset="0xA164" />
|
||||
<DList Name="object_zos_DL_00D2B0" Offset="0xD2B0" />
|
||||
<DList Name="object_zos_DL_00D3E0" Offset="0xD3E0" />
|
||||
<DList Name="object_zos_DL_00D658" Offset="0xD658" />
|
||||
<DList Name="object_zos_DL_00D7A8" Offset="0xD7A8" />
|
||||
<DList Name="object_zos_DL_00D900" Offset="0xD900" />
|
||||
<DList Name="object_zos_DL_00DA90" Offset="0xDA90" />
|
||||
<DList Name="object_zos_DL_00DB90" Offset="0xDB90" />
|
||||
<DList Name="object_zos_DL_00DCE8" Offset="0xDCE8" />
|
||||
<DList Name="object_zos_DL_00DE78" Offset="0xDE78" />
|
||||
<DList Name="object_zos_DL_00E328" Offset="0xE328" />
|
||||
<DList Name="object_zos_DL_00E400" Offset="0xE400" />
|
||||
<DList Name="object_zos_DL_00E4C8" Offset="0xE4C8" />
|
||||
<DList Name="object_zos_DL_00E700" Offset="0xE700" />
|
||||
<DList Name="object_zos_DL_00E8A0" Offset="0xE8A0" />
|
||||
<DList Name="object_zos_DL_00EA80" Offset="0xEA80" />
|
||||
<DList Name="object_zos_DL_00EC98" Offset="0xEC98" />
|
||||
<DList Name="object_zos_DL_00EE38" Offset="0xEE38" />
|
||||
<Texture Name="object_zos_TLUT_00F018" OutName="tlut_00F018" Format="rgba16" Width="16" Height="16" Offset="0xF018" />
|
||||
<Texture Name="object_zos_Tex_00F218" OutName="tex_00F218" Format="rgba16" Width="32" Height="32" Offset="0xF218" />
|
||||
<Texture Name="object_zos_Tex_00FA18" OutName="tex_00FA18" Format="ci8" Width="16" Height="16" Offset="0xFA18" />
|
||||
<Texture Name="object_zos_Tex_00FB18" OutName="tex_00FB18" Format="rgba16" Width="8" Height="8" Offset="0xFB18" />
|
||||
<Texture Name="object_zos_Tex_00FB98" OutName="tex_00FB98" Format="rgba16" Width="8" Height="8" Offset="0xFB98" />
|
||||
<Texture Name="object_zos_Tex_00FC18" OutName="tex_00FC18" Format="rgba16" Width="8" Height="8" Offset="0xFC18" />
|
||||
<Texture Name="object_zos_Tex_00FC98" OutName="tex_00FC98" Format="rgba16" Width="32" Height="32" Offset="0xFC98" />
|
||||
<Texture Name="object_zos_Tex_010498" OutName="tex_010498" Format="rgba16" Width="16" Height="32" Offset="0x10498" />
|
||||
<Texture Name="object_zos_Tex_010898" OutName="tex_010898" Format="rgba16" Width="8" Height="8" Offset="0x10898" />
|
||||
<Texture Name="object_zos_Tex_010918" OutName="tex_010918" Format="rgba16" Width="32" Height="32" Offset="0x10918" />
|
||||
<Texture Name="object_zos_Tex_011118" OutName="tex_011118" Format="rgba16" Width="32" Height="32" Offset="0x11118" />
|
||||
<Texture Name="object_zos_Tex_011918" OutName="tex_011918" Format="rgba16" Width="32" Height="32" Offset="0x11918" />
|
||||
<!-- <Blob Name="object_zos_Blob_012118" Size="0xF70" Offset="0x12118" /> -->
|
||||
<DList Name="object_zos_DL_013088" Offset="0x13088" />
|
||||
<DList Name="object_zos_DL_0136E0" Offset="0x136E0" />
|
||||
<Texture Name="object_zos_Tex_013728" OutName="tex_013728" Format="rgba16" Width="32" Height="32" Offset="0x13728" />
|
||||
<Texture Name="object_zos_Tex_013F28" OutName="tex_013F28" Format="rgba16" Width="32" Height="32" Offset="0x13F28" />
|
||||
<Texture Name="object_zos_Tex_014728" OutName="tex_014728" Format="rgba16" Width="32" Height="32" Offset="0x14728" />
|
||||
<Texture Name="object_zos_Tex_014F28" OutName="tex_014F28" Format="rgba16" Width="16" Height="16" Offset="0x14F28" />
|
||||
<Limb Name="object_zos_Standardlimb_015128" Type="Standard" EnumName="OBJECT_ZOS_LIMB_01" Offset="0x15128" />
|
||||
<Limb Name="object_zos_Standardlimb_015134" Type="Standard" EnumName="OBJECT_ZOS_LIMB_02" Offset="0x15134" />
|
||||
<Limb Name="object_zos_Standardlimb_015140" Type="Standard" EnumName="OBJECT_ZOS_LIMB_03" Offset="0x15140" />
|
||||
<Limb Name="object_zos_Standardlimb_01514C" Type="Standard" EnumName="OBJECT_ZOS_LIMB_04" Offset="0x1514C" />
|
||||
<Limb Name="object_zos_Standardlimb_015158" Type="Standard" EnumName="OBJECT_ZOS_LIMB_05" Offset="0x15158" />
|
||||
<Limb Name="object_zos_Standardlimb_015164" Type="Standard" EnumName="OBJECT_ZOS_LIMB_06" Offset="0x15164" />
|
||||
<Limb Name="object_zos_Standardlimb_015170" Type="Standard" EnumName="OBJECT_ZOS_LIMB_07" Offset="0x15170" />
|
||||
<Limb Name="object_zos_Standardlimb_01517C" Type="Standard" EnumName="OBJECT_ZOS_LIMB_08" Offset="0x1517C" />
|
||||
<Limb Name="object_zos_Standardlimb_015188" Type="Standard" EnumName="OBJECT_ZOS_LIMB_09" Offset="0x15188" />
|
||||
<Limb Name="object_zos_Standardlimb_015194" Type="Standard" EnumName="OBJECT_ZOS_LIMB_0A" Offset="0x15194" />
|
||||
<Limb Name="object_zos_Standardlimb_0151A0" Type="Standard" EnumName="OBJECT_ZOS_LIMB_0B" Offset="0x151A0" />
|
||||
<Limb Name="object_zos_Standardlimb_0151AC" Type="Standard" EnumName="OBJECT_ZOS_LIMB_0C" Offset="0x151AC" />
|
||||
<Limb Name="object_zos_Standardlimb_0151B8" Type="Standard" EnumName="OBJECT_ZOS_LIMB_0D" Offset="0x151B8" />
|
||||
<Limb Name="object_zos_Standardlimb_0151C4" Type="Standard" EnumName="OBJECT_ZOS_LIMB_0E" Offset="0x151C4" />
|
||||
<Limb Name="object_zos_Standardlimb_0151D0" Type="Standard" EnumName="OBJECT_ZOS_LIMB_0F" Offset="0x151D0" />
|
||||
<Limb Name="object_zos_Standardlimb_0151DC" Type="Standard" EnumName="OBJECT_ZOS_LIMB_10" Offset="0x151DC" />
|
||||
<Limb Name="object_zos_Standardlimb_0151E8" Type="Standard" EnumName="OBJECT_ZOS_LIMB_11" Offset="0x151E8" />
|
||||
<Skeleton Name="object_zos_Skel_015238" Type="Flex" LimbType="Standard" LimbNone="OBJECT_ZOS_LIMB_NONE" LimbMax="OBJECT_ZOS_LIMB_MAX" EnumName="ObjectZosLimb" Offset="0x15238" />
|
||||
<Animation Name="object_zos_Anim_01621C" Offset="0x1621C" />
|
||||
<Animation Name="object_zos_Anim_016980" Offset="0x16980" />
|
||||
<!-- Evan Animations -->
|
||||
<Animation Name="gEvanSlowPlayAnim" Offset="0x1CFC" /> <!-- Original name is "ev_ensou_loop" ("musical performance") -->
|
||||
<Animation Name="gEvanInspiredAnim" Offset="0x48D4" /> <!-- Original name is "zK_furimuki" ("to turn around") -->
|
||||
<Animation Name="gEvanPlayRightAnim" Offset="0x5E04" /> <!-- Original name is "zK_play01" -->
|
||||
<Animation Name="gEvanPlayLeftAnim" Offset="0x7334" /> <!-- Original name is "zK_play02" -->
|
||||
<Animation Name="gEeanTalkFootTapAnim" Offset="0x7C40" /> <!-- Original name is "zK_talk01" -->
|
||||
<Animation Name="gEvanTalkLookDownAnim" Offset="0x8630" /> <!-- Original name is "zK_talk02" -->
|
||||
<Animation Name="gEvanTalkArmsOutAnim" Offset="0x90CC" /> <!-- Original name is "zK_talk03" -->
|
||||
<Animation Name="gEvanTalkHandsOnHipsAnim" Offset="0x9830" /> <!-- Original name is "zK_talk04" -->
|
||||
<Animation Name="gEvanLeanOnKeyboardAnim" Offset="0xA164" /> <!-- Original name is "zK_wait01" -->
|
||||
|
||||
<!-- Evan Limb DisplayLists -->
|
||||
<DList Name="gEvanPelvisDL" Offset="0xD2B0" />
|
||||
<DList Name="gEvanTorsoDL" Offset="0xD3E0" />
|
||||
<DList Name="gEvanRightUpperArmDL" Offset="0xD658" />
|
||||
<DList Name="gEvanRightForearmDL" Offset="0xD7A8" />
|
||||
<DList Name="gEvanRightHandDL" Offset="0xD900" />
|
||||
<DList Name="gEvanLeftUpperArmDL" Offset="0xDA90" />
|
||||
<DList Name="gEvanLeftForearmDL" Offset="0xDB90" />
|
||||
<DList Name="gEvanLeftHandDL" Offset="0xDCE8" />
|
||||
<DList Name="gEvanHeadDL" Offset="0xDE78" />
|
||||
<DList Name="gEvanUpperHeadFinDL" Offset="0xE328" />
|
||||
<DList Name="gEvanLowerHeadFinDL" Offset="0xE400" />
|
||||
<DList Name="gEvanRightThighDL" Offset="0xE4C8" />
|
||||
<DList Name="gEvanRightShinDL" Offset="0xE700" />
|
||||
<DList Name="gEvanRightFootDL" Offset="0xE8A0" />
|
||||
<DList Name="gEvanLeftThighDL" Offset="0xEA80" />
|
||||
<DList Name="gEvanLeftShinDL" Offset="0xEC98" />
|
||||
<DList Name="gEvanLeftFootDL" Offset="0xEE38" />
|
||||
|
||||
<!-- Evan Textures -->
|
||||
<Texture Name="gEvanFingersTLUT" OutName="evan_fingers_tlut" Format="rgba16" Width="16" Height="16" Offset="0xF018" />
|
||||
<Texture Name="gEvanSpottedSkinTex" OutName="evan_spotted_skin" Format="rgba16" Width="32" Height="32" Offset="0xF218" />
|
||||
<Texture Name="gEvanFingersTex" OutName="evan_fingers" Format="ci8" Width="16" Height="16" Offset="0xFA18" />
|
||||
<Texture Name="gEvanMouthEdgeTex" OutName="evan_mouth_edge" Format="rgba16" Width="8" Height="8" Offset="0xFB18" />
|
||||
<Texture Name="gEvanMouthAndFinsTex" OutName="evan_mouth_and_fins" Format="rgba16" Width="8" Height="8" Offset="0xFB98" />
|
||||
<Texture Name="gEvanSkinTex" OutName="evan_skin" Format="rgba16" Width="8" Height="8" Offset="0xFC18" />
|
||||
<Texture Name="gEvanHeadphoneClamTex" OutName="evan_headphone_clam" Format="rgba16" Width="32" Height="32" Offset="0xFC98" />
|
||||
<Texture Name="gEvanHeadphoneBoneTex" OutName="evan_headphone_bone" Format="rgba16" Width="16" Height="32" Offset="0x10498" />
|
||||
<Texture Name="gEvanArmbandTex" OutName="evan_armband" Format="rgba16" Width="8" Height="8" Offset="0x10898" />
|
||||
<Texture Name="gEvanEyeOpenTex" OutName="evan_eye_open" Format="rgba16" Width="32" Height="32" Offset="0x10918" />
|
||||
<Texture Name="gEvanEyeHalfTex" OutName="evan_eye_half" Format="rgba16" Width="32" Height="32" Offset="0x11118" />
|
||||
<Texture Name="gEvanEyeClosedTex" OutName="evan_eye_closed" Format="rgba16" Width="32" Height="32" Offset="0x11918" />
|
||||
|
||||
<!-- Evan's Keyboard DisplayLists -->
|
||||
<DList Name="gEvanKeyboardDL" Offset="0x13088" /> <!-- Original name is "zK_gakki_model" -->
|
||||
<DList Name="gEvanUnknownWhiteTriangleDL" Offset="0x136E0" /> <!-- The purpose of this is unknown. It cannot be seen in-game. -->
|
||||
|
||||
<!-- Evan's Keyboard Textures -->
|
||||
<Texture Name="gEvanKeyboardRibKeysTex" OutName="evan_keyboard_rib_keys" Format="rgba16" Width="32" Height="32" Offset="0x13728" />
|
||||
<Texture Name="gEvanKeyboardSkullTex" OutName="evan_keyboard_skull" Format="rgba16" Width="32" Height="32" Offset="0x13F28" />
|
||||
<Texture Name="gEvanKeyboardBoneTex" OutName="evan_keyboard_bone" Format="rgba16" Width="32" Height="32" Offset="0x14728" />
|
||||
<Texture Name="gEvanKeyboardOtherKeysTex" OutName="evan_keyboard_other_keys" Format="rgba16" Width="16" Height="16" Offset="0x14F28" />
|
||||
|
||||
<!-- Evan Limbs -->
|
||||
<Limb Name="gEvanPelvisLimb" Type="Standard" EnumName="EVAN_LIMB_PELVIS" Offset="0x15128" />
|
||||
<Limb Name="gEvanLeftThighLimb" Type="Standard" EnumName="EVAN_LIMB_LEFT_THIGH" Offset="0x15134" />
|
||||
<Limb Name="gEvanLeftShinLimb" Type="Standard" EnumName="EVAN_LIMB_LEFT_SHIN" Offset="0x15140" />
|
||||
<Limb Name="gEvanLeftFootLimb" Type="Standard" EnumName="EVAN_LIMB_LEFT_FOOT" Offset="0x1514C" />
|
||||
<Limb Name="gEvanRightThighLimb" Type="Standard" EnumName="EVAN_LIMB_RIGHT_THIGH" Offset="0x15158" />
|
||||
<Limb Name="gEvanRightShinLimb" Type="Standard" EnumName="EVAN_LIMB_RIGHT_SHIN" Offset="0x15164" />
|
||||
<Limb Name="gEvanRightFootLimb" Type="Standard" EnumName="EVAN_LIMB_RIGHT_FOOT" Offset="0x15170" />
|
||||
<Limb Name="gEvanTorsoLimb" Type="Standard" EnumName="EVAN_LIMB_TORSO" Offset="0x1517C" />
|
||||
<Limb Name="gEvanHeadLimb" Type="Standard" EnumName="EVAN_LIMB_HEAD" Offset="0x15188" />
|
||||
<Limb Name="gEvanUpperHeadFinLimb" Type="Standard" EnumName="EVAN_LIMB_UPPER_HEAD_FIN" Offset="0x15194" />
|
||||
<Limb Name="gEvanLowerHeadFinLimb" Type="Standard" EnumName="EVAN_LIMB_LOWER_HEAD_FIN" Offset="0x151A0" />
|
||||
<Limb Name="gEvanLeftUpperArmLimb" Type="Standard" EnumName="EVAN_LIMB_LEFT_UPPER_ARM" Offset="0x151AC" />
|
||||
<Limb Name="gEvanLeftForearmLimb" Type="Standard" EnumName="EVAN_LIMB_LEFT_FOREARM" Offset="0x151B8" />
|
||||
<Limb Name="gEvanLeftHandLimb" Type="Standard" EnumName="EVAN_LIMB_LEFT_HAND" Offset="0x151C4" />
|
||||
<Limb Name="gEvanRightUpperArmLimb" Type="Standard" EnumName="EVAN_LIMB_RIGHT_UPPER_ARM" Offset="0x151D0" />
|
||||
<Limb Name="gEvanRightForearmLimb" Type="Standard" EnumName="EVAN_LIMB_RIGHT_FOREARM" Offset="0x151DC" />
|
||||
<Limb Name="gEvanRightHandLimb" Type="Standard" EnumName="EVAN_LIMB_RIGHT_HAND" Offset="0x151E8" />
|
||||
|
||||
<!-- Evan Skeleton -->
|
||||
<Skeleton Name="gEvanSkel" Type="Flex" LimbType="Standard" LimbNone="EVAN_LIMB_NONE" LimbMax="EVAN_LIMB_MAX" EnumName="EvanLimb" Offset="0x15238" />
|
||||
|
||||
<!-- Evan Animations -->
|
||||
<Animation Name="gEvanLeanOnKeyboardAndSighAnim" Offset="0x1621C" /> <!-- Original name is "zK_wait02" -->
|
||||
<Animation Name="gEvanHandsOnHipsAnim" Offset="0x16980" /> <!-- Original name is "zK_wait03" -->
|
||||
</File>
|
||||
</Root>
|
||||
|
@ -5,7 +5,6 @@
|
||||
*/
|
||||
|
||||
#include "z_en_zos.h"
|
||||
#include "objects/object_zos/object_zos.h"
|
||||
|
||||
#define FLAGS (ACTOR_FLAG_1 | ACTOR_FLAG_8 | ACTOR_FLAG_2000000)
|
||||
|
||||
@ -16,7 +15,7 @@ void EnZos_Destroy(Actor* thisx, PlayState* play);
|
||||
void EnZos_Update(Actor* thisx, PlayState* play);
|
||||
void EnZos_Draw(Actor* thisx, PlayState* play);
|
||||
|
||||
void func_80BBAE84(EnZos* this, s16 arg1, u8 arg2);
|
||||
void EnZos_ChangeAnim(EnZos* this, s16 arg1, u8 arg2);
|
||||
void func_80BBB2C4(EnZos* this, PlayState* play);
|
||||
void func_80BBB354(EnZos* this, PlayState* play);
|
||||
void func_80BBB4CC(EnZos* this, PlayState* play);
|
||||
@ -34,6 +33,23 @@ void func_80BBC24C(EnZos* this, PlayState* play);
|
||||
void func_80BBC298(EnZos* this, PlayState* play);
|
||||
void func_80BBC37C(EnZos* this, PlayState* play);
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ EN_ZOS_ANIM_LEAN_ON_KEYBOARD,
|
||||
/* 1 */ EN_ZOS_ANIM_LEAN_ON_KEYBOARD_AND_SIGH,
|
||||
/* 2 */ EN_ZOS_ANIM_HANDS_ON_HIPS,
|
||||
/* 3 */ EN_ZOS_ANIM_TALK_FOOT_TAP,
|
||||
/* 4 */ EN_ZOS_ANIM_TALK_LOOK_DOWN,
|
||||
/* 5 */ EN_ZOS_ANIM_TALK_ARMS_OUT,
|
||||
/* 6 */ EN_ZOS_ANIM_TALK_HANDS_ON_HIPS,
|
||||
/* 7 */ EN_ZOS_ANIM_PLAY_RIGHT,
|
||||
/* 8 */ EN_ZOS_ANIM_PLAY_LEFT,
|
||||
/* 9 */ EN_ZOS_ANIM_INSPIRED,
|
||||
/* 10 */ EN_ZOS_ANIM_SLOW_PLAY,
|
||||
/* 11 */ EN_ZOS_ANIM_PLAY_RIGHT_SHORTENED,
|
||||
/* 12 */ EN_ZOS_ANIM_PLAY_LEFT_SHORTENED,
|
||||
/* 13 */ EN_ZOS_ANIM_MAX
|
||||
} EnZosAnimation;
|
||||
|
||||
const ActorInit En_Zos_InitVars = {
|
||||
ACTOR_EN_ZOS,
|
||||
ACTORCAT_NPC,
|
||||
@ -73,14 +89,14 @@ void EnZos_Init(Actor* thisx, PlayState* play) {
|
||||
this->actionFunc = func_80BBBDE0;
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f);
|
||||
this->actor.colChkInfo.mass = MASS_IMMOVABLE;
|
||||
SkelAnime_InitFlex(play, &this->skelAnime, &object_zos_Skel_015238, &object_zos_Anim_00A164, this->jointTable,
|
||||
this->morphTable, 18);
|
||||
Animation_PlayLoop(&this->skelAnime, &object_zos_Anim_00A164);
|
||||
SkelAnime_InitFlex(play, &this->skelAnime, &gEvanSkel, &gEvanLeanOnKeyboardAnim, this->jointTable, this->morphTable,
|
||||
EVAN_LIMB_MAX);
|
||||
Animation_PlayLoop(&this->skelAnime, &gEvanLeanOnKeyboardAnim);
|
||||
Collider_InitAndSetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
|
||||
this->unk_2B6 = 0;
|
||||
this->actor.terminalVelocity = -4.0f;
|
||||
this->actor.gravity = -4.0f;
|
||||
func_80BBAE84(this, 0, ANIMMODE_ONCE);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_LEAN_ON_KEYBOARD, ANIMMODE_ONCE);
|
||||
|
||||
switch (ENZOS_GET_F(&this->actor)) {
|
||||
case ENZOS_F_1:
|
||||
@ -93,12 +109,12 @@ void EnZos_Init(Actor* thisx, PlayState* play) {
|
||||
} else {
|
||||
this->actionFunc = func_80BBC14C;
|
||||
}
|
||||
func_80BBAE84(this, 0, ANIMMODE_ONCE);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_LEAN_ON_KEYBOARD, ANIMMODE_ONCE);
|
||||
break;
|
||||
|
||||
case ENZOS_F_2:
|
||||
this->actionFunc = func_80BBC37C;
|
||||
func_80BBAE84(this, 7, ANIMMODE_ONCE);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_PLAY_RIGHT, ANIMMODE_ONCE);
|
||||
this->unk_2BC = -1;
|
||||
this->unk_2B6 |= 0x40;
|
||||
break;
|
||||
@ -118,23 +134,34 @@ void EnZos_Destroy(Actor* thisx, PlayState* play) {
|
||||
gSaveContext.save.weekEventReg[52] &= (u8)~0x10;
|
||||
}
|
||||
|
||||
void func_80BBAE84(EnZos* this, s16 arg1, u8 arg2) {
|
||||
static AnimationHeader* sAnimations[] = {
|
||||
&object_zos_Anim_00A164, &object_zos_Anim_01621C, &object_zos_Anim_016980, &object_zos_Anim_007C40,
|
||||
&object_zos_Anim_008630, &object_zos_Anim_0090CC, &object_zos_Anim_009830, &object_zos_Anim_005E04,
|
||||
&object_zos_Anim_007334, &object_zos_Anim_0048D4, &object_zos_Anim_001CFC, &object_zos_Anim_005E04,
|
||||
&object_zos_Anim_007334,
|
||||
};
|
||||
f32 phi_f0;
|
||||
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
|
||||
&gEvanTalkLookDownAnim, // EN_ZOS_ANIM_TALK_LOOK_DOWN
|
||||
&gEvanTalkArmsOutAnim, // EN_ZOS_ANIM_TALK_ARMS_OUT
|
||||
&gEvanTalkHandsOnHipsAnim, // EN_ZOS_ANIM_TALK_HANDS_ON_HIPS
|
||||
&gEvanPlayRightAnim, // EN_ZOS_ANIM_PLAY_RIGHT
|
||||
&gEvanPlayLeftAnim, // EN_ZOS_ANIM_PLAY_LEFT
|
||||
&gEvanInspiredAnim, // EN_ZOS_ANIM_INSPIRED
|
||||
&gEvanSlowPlayAnim, // EN_ZOS_ANIM_SLOW_PLAY
|
||||
&gEvanPlayRightAnim, // EN_ZOS_ANIM_PLAY_RIGHT_SHORTENED
|
||||
&gEvanPlayLeftAnim, // EN_ZOS_ANIM_PLAY_LEFT_SHORTENED
|
||||
};
|
||||
|
||||
if ((arg1 != this->unk_2B8) && (arg1 >= 0) && (arg1 < 13)) {
|
||||
if (arg1 > 10) {
|
||||
phi_f0 = 29.0f;
|
||||
void EnZos_ChangeAnim(EnZos* this, s16 animIndex, u8 animMode) {
|
||||
f32 endFrame;
|
||||
|
||||
if ((animIndex != this->animIndex) && (animIndex >= EN_ZOS_ANIM_LEAN_ON_KEYBOARD) &&
|
||||
(animIndex < EN_ZOS_ANIM_MAX)) {
|
||||
if (animIndex > EN_ZOS_ANIM_SLOW_PLAY) {
|
||||
endFrame = 29.0f;
|
||||
} else {
|
||||
phi_f0 = Animation_GetLastFrame(sAnimations[arg1]);
|
||||
endFrame = Animation_GetLastFrame(sAnimations[animIndex]);
|
||||
}
|
||||
Animation_Change(&this->skelAnime, sAnimations[arg1], 1.0f, 0.0f, phi_f0, arg2, -5.0f);
|
||||
this->unk_2B8 = arg1;
|
||||
Animation_Change(&this->skelAnime, sAnimations[animIndex], 1.0f, 0.0f, endFrame, animMode, -5.0f);
|
||||
this->animIndex = animIndex;
|
||||
this->unk_2B6 &= ~0x80;
|
||||
}
|
||||
}
|
||||
@ -153,19 +180,19 @@ s32 func_80BBAFFC(EnZos* this, PlayState* play) {
|
||||
if (SkelAnime_Update(&this->skelAnime)) {
|
||||
switch ((s16)Rand_ZeroFloat(4.0f)) {
|
||||
case 0:
|
||||
func_80BBAE84(this, 7, ANIMMODE_ONCE);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_PLAY_RIGHT, ANIMMODE_ONCE);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
func_80BBAE84(this, 8, ANIMMODE_ONCE);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_PLAY_LEFT, ANIMMODE_ONCE);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
func_80BBAE84(this, 11, ANIMMODE_ONCE);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_PLAY_RIGHT_SHORTENED, ANIMMODE_ONCE);
|
||||
break;
|
||||
|
||||
default:
|
||||
func_80BBAE84(this, 12, ANIMMODE_ONCE);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_PLAY_LEFT_SHORTENED, ANIMMODE_ONCE);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
@ -176,9 +203,9 @@ s32 func_80BBAFFC(EnZos* this, PlayState* play) {
|
||||
void func_80BBB0D4(EnZos* this, PlayState* play) {
|
||||
if (SkelAnime_Update(&this->skelAnime)) {
|
||||
if (Rand_ZeroFloat(1.0f) < 0.9f) {
|
||||
func_80BBAE84(this, 0, ANIMMODE_ONCE);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_LEAN_ON_KEYBOARD, ANIMMODE_ONCE);
|
||||
} else {
|
||||
func_80BBAE84(this, 1, ANIMMODE_ONCE);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_LEAN_ON_KEYBOARD_AND_SIGH, ANIMMODE_ONCE);
|
||||
}
|
||||
SkelAnime_Update(&this->skelAnime);
|
||||
}
|
||||
@ -190,31 +217,31 @@ void func_80BBB15C(EnZos* this, PlayState* play) {
|
||||
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
|
||||
if (this->unk_2B6 & 8) {
|
||||
textId = 0x1235;
|
||||
func_80BBAE84(this, 6, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_HANDS_ON_HIPS, ANIMMODE_LOOP);
|
||||
this->unk_2B6 |= 2;
|
||||
} else if (this->unk_2B6 & 4) {
|
||||
textId = 0x123E;
|
||||
func_80BBAE84(this, 6, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_HANDS_ON_HIPS, ANIMMODE_LOOP);
|
||||
this->unk_2B6 |= 2;
|
||||
} else if (gSaveContext.save.weekEventReg[40] & 0x20) {
|
||||
textId = 0x1236;
|
||||
func_80BBAE84(this, 6, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_HANDS_ON_HIPS, ANIMMODE_LOOP);
|
||||
this->unk_2B6 |= 0x80;
|
||||
} else {
|
||||
textId = 0x1231;
|
||||
func_80BBAE84(this, 6, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_HANDS_ON_HIPS, ANIMMODE_LOOP);
|
||||
this->unk_2B6 |= 0x80;
|
||||
}
|
||||
} else {
|
||||
this->unk_2B6 &= ~2;
|
||||
if (gSaveContext.save.weekEventReg[39] & 0x10) {
|
||||
textId = 0x1243;
|
||||
func_80BBAE84(this, 6, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_HANDS_ON_HIPS, ANIMMODE_LOOP);
|
||||
this->unk_2B6 |= 0x80;
|
||||
} else {
|
||||
textId = 0x1244;
|
||||
gSaveContext.save.weekEventReg[39] |= 0x10;
|
||||
func_80BBAE84(this, 4, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_LOOK_DOWN, ANIMMODE_LOOP);
|
||||
this->unk_2B6 |= 0x10;
|
||||
}
|
||||
}
|
||||
@ -261,11 +288,11 @@ void func_80BBB414(EnZos* this, PlayState* play) {
|
||||
|
||||
switch (action) {
|
||||
case 1:
|
||||
func_80BBAE84(this, 1, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_LEAN_ON_KEYBOARD_AND_SIGH, ANIMMODE_LOOP);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
func_80BBAE84(this, 10, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_SLOW_PLAY, ANIMMODE_LOOP);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -304,7 +331,7 @@ void func_80BBB574(EnZos* this, PlayState* play) {
|
||||
if ((Message_GetState(&play->msgCtx) == TEXT_STATE_5) && Message_ShouldAdvance(play)) {
|
||||
switch (play->msgCtx.currentTextId) {
|
||||
case 0x124B:
|
||||
if (this->unk_2B8 == 9) {
|
||||
if (this->animIndex == EN_ZOS_ANIM_INSPIRED) {
|
||||
play->msgCtx.msgLength = 0;
|
||||
this->unk_2B6 |= 0x20;
|
||||
} else {
|
||||
@ -315,12 +342,12 @@ void func_80BBB574(EnZos* this, PlayState* play) {
|
||||
case 0x124C:
|
||||
play->msgCtx.msgLength = 0;
|
||||
this->actionFunc = func_80BBB4CC;
|
||||
func_80BBAE84(this, 10, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_SLOW_PLAY, ANIMMODE_LOOP);
|
||||
break;
|
||||
|
||||
case 0x124D:
|
||||
this->unk_2B6 &= ~0x10;
|
||||
func_80BBAE84(this, 6, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_HANDS_ON_HIPS, ANIMMODE_LOOP);
|
||||
func_80151938(play, 0x124E);
|
||||
break;
|
||||
|
||||
@ -346,7 +373,7 @@ void func_80BBB718(EnZos* this, PlayState* play) {
|
||||
|
||||
if (sp24 == 25) {
|
||||
player->actor.textId = 0x1232;
|
||||
func_80BBAE84(this, 5, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_ARMS_OUT, ANIMMODE_LOOP);
|
||||
this->unk_2B6 |= 8;
|
||||
gSaveContext.save.weekEventReg[40] |= 0x20;
|
||||
} else if (gSaveContext.save.weekEventReg[39] & 8) {
|
||||
@ -354,7 +381,7 @@ void func_80BBB718(EnZos* this, PlayState* play) {
|
||||
} else {
|
||||
player->actor.textId = 0x1237;
|
||||
gSaveContext.save.weekEventReg[39] |= 8;
|
||||
func_80BBAE84(this, 4, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_LOOK_DOWN, ANIMMODE_LOOP);
|
||||
this->unk_2B6 |= 4;
|
||||
}
|
||||
this->actionFunc = func_80BBB8AC;
|
||||
@ -364,7 +391,7 @@ void func_80BBB718(EnZos* this, PlayState* play) {
|
||||
} else {
|
||||
func_80151938(play, 0x1237);
|
||||
gSaveContext.save.weekEventReg[39] |= 8;
|
||||
func_80BBAE84(this, 4, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_LOOK_DOWN, ANIMMODE_LOOP);
|
||||
this->unk_2B6 |= 4;
|
||||
}
|
||||
this->actionFunc = func_80BBB8AC;
|
||||
@ -382,7 +409,7 @@ void func_80BBB8AC(EnZos* this, PlayState* play) {
|
||||
Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.yawTowardsPlayer, 2, 0x1000, 0x200);
|
||||
this->actor.world.rot.y = this->actor.shape.rot.y;
|
||||
if ((this->unk_2B6 & 0x80) && (this->actor.yawTowardsPlayer == this->actor.shape.rot.y)) {
|
||||
func_80BBAE84(this, 3, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_FOOT_TAP, ANIMMODE_LOOP);
|
||||
}
|
||||
}
|
||||
|
||||
@ -402,7 +429,7 @@ void func_80BBB8AC(EnZos* this, PlayState* play) {
|
||||
|
||||
case 0x1244:
|
||||
this->unk_2B6 &= ~0x10;
|
||||
func_80BBAE84(this, 6, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_HANDS_ON_HIPS, ANIMMODE_LOOP);
|
||||
func_80151938(play, play->msgCtx.currentTextId + 1);
|
||||
break;
|
||||
|
||||
@ -412,18 +439,18 @@ void func_80BBB8AC(EnZos* this, PlayState* play) {
|
||||
|
||||
case 0x1239:
|
||||
case 0x1246:
|
||||
func_80BBAE84(this, 6, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_HANDS_ON_HIPS, ANIMMODE_LOOP);
|
||||
func_80151938(play, play->msgCtx.currentTextId + 1);
|
||||
break;
|
||||
|
||||
case 0x1233:
|
||||
func_80BBAE84(this, 5, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_ARMS_OUT, ANIMMODE_LOOP);
|
||||
func_80151938(play, play->msgCtx.currentTextId + 1);
|
||||
break;
|
||||
|
||||
case 0x1245:
|
||||
case 0x1248:
|
||||
func_80BBAE84(this, 3, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_FOOT_TAP, ANIMMODE_LOOP);
|
||||
func_80151938(play, play->msgCtx.currentTextId + 1);
|
||||
break;
|
||||
|
||||
@ -434,7 +461,7 @@ void func_80BBB8AC(EnZos* this, PlayState* play) {
|
||||
|
||||
case 0x1243:
|
||||
case 0x1249:
|
||||
func_80BBAE84(this, 2, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_HANDS_ON_HIPS, ANIMMODE_LOOP);
|
||||
func_801477B4(play);
|
||||
this->actionFunc = func_80BBBDE0;
|
||||
this->unk_2B6 |= 1;
|
||||
@ -443,7 +470,7 @@ void func_80BBB8AC(EnZos* this, PlayState* play) {
|
||||
case 0x1234:
|
||||
case 0x123D:
|
||||
case 0x1242:
|
||||
func_80BBAE84(this, 2, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_HANDS_ON_HIPS, ANIMMODE_LOOP);
|
||||
Actor_ProcessTalkRequest(&this->actor, &play->state);
|
||||
func_801477B4(play);
|
||||
this->actionFunc = func_80BBBDE0;
|
||||
@ -451,7 +478,7 @@ void func_80BBB8AC(EnZos* this, PlayState* play) {
|
||||
break;
|
||||
|
||||
case 0x1236:
|
||||
func_80BBAE84(this, 2, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_HANDS_ON_HIPS, ANIMMODE_LOOP);
|
||||
func_801477B4(play);
|
||||
this->actionFunc = func_80BBBDE0;
|
||||
this->unk_2B6 |= 1;
|
||||
@ -473,17 +500,17 @@ void func_80BBBB84(EnZos* this, PlayState* play) {
|
||||
if (gSaveContext.save.playerForm == PLAYER_FORM_ZORA) {
|
||||
Message_StartTextbox(play, 0x1248, &this->actor);
|
||||
this->actionFunc = func_80BBB8AC;
|
||||
func_80BBAE84(this, 6, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_HANDS_ON_HIPS, ANIMMODE_LOOP);
|
||||
this->unk_2B6 |= 2;
|
||||
} else if (gSaveContext.save.weekEventReg[41] & 0x10) {
|
||||
Message_StartTextbox(play, 0x124A, &this->actor);
|
||||
this->actionFunc = func_80BBB8AC;
|
||||
func_80BBAE84(this, 6, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_HANDS_ON_HIPS, ANIMMODE_LOOP);
|
||||
} else {
|
||||
gSaveContext.save.weekEventReg[41] |= 0x10;
|
||||
Message_StartTextbox(play, 0x124B, &this->actor);
|
||||
this->actionFunc = func_80BBB574;
|
||||
func_80BBAE84(this, 9, ANIMMODE_ONCE);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_INSPIRED, ANIMMODE_ONCE);
|
||||
this->unk_2B6 |= 0x10;
|
||||
}
|
||||
} else {
|
||||
@ -494,7 +521,7 @@ void func_80BBBB84(EnZos* this, PlayState* play) {
|
||||
void func_80BBBCBC(EnZos* this, PlayState* play) {
|
||||
if (Actor_ProcessTalkRequest(&this->actor, &play->state)) {
|
||||
this->actor.flags &= ~ACTOR_FLAG_10000;
|
||||
func_80BBAE84(this, 5, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_ARMS_OUT, ANIMMODE_LOOP);
|
||||
Message_StartTextbox(play, 0x124D, &this->actor);
|
||||
this->actionFunc = func_80BBB574;
|
||||
} else {
|
||||
@ -519,7 +546,7 @@ void func_80BBBDE0(EnZos* this, PlayState* play) {
|
||||
Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.home.rot.y, 2, 0x1000, 0x200);
|
||||
this->actor.world.rot.y = thisx->shape.rot.y;
|
||||
if (this->actor.home.rot.y == thisx->shape.rot.y) {
|
||||
func_80BBAE84(this, 0, ANIMMODE_ONCE);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_LEAN_ON_KEYBOARD, ANIMMODE_ONCE);
|
||||
this->unk_2B6 &= ~1;
|
||||
}
|
||||
}
|
||||
@ -567,10 +594,10 @@ void func_80BBBFBC(EnZos* this, PlayState* play) {
|
||||
textId = 0x1259;
|
||||
gSaveContext.save.weekEventReg[78] |= 0x80;
|
||||
}
|
||||
func_80BBAE84(this, 5, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_ARMS_OUT, ANIMMODE_LOOP);
|
||||
} else {
|
||||
textId = 0x1258;
|
||||
func_80BBAE84(this, 6, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_TALK_HANDS_ON_HIPS, ANIMMODE_LOOP);
|
||||
}
|
||||
Message_StartTextbox(play, textId, &this->actor);
|
||||
}
|
||||
@ -583,7 +610,7 @@ void func_80BBC070(EnZos* this, PlayState* play) {
|
||||
switch (Message_GetState(&play->msgCtx)) {
|
||||
case TEXT_STATE_5:
|
||||
if (Message_ShouldAdvance(play)) {
|
||||
func_80BBAE84(this, 2, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_HANDS_ON_HIPS, ANIMMODE_LOOP);
|
||||
func_801477B4(play);
|
||||
this->actionFunc = func_80BBC14C;
|
||||
this->unk_2B6 |= 1;
|
||||
@ -591,7 +618,7 @@ void func_80BBC070(EnZos* this, PlayState* play) {
|
||||
break;
|
||||
|
||||
case TEXT_STATE_CLOSING:
|
||||
func_80BBAE84(this, 2, ANIMMODE_LOOP);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_HANDS_ON_HIPS, ANIMMODE_LOOP);
|
||||
this->actionFunc = func_80BBC14C;
|
||||
this->unk_2B6 |= 1;
|
||||
break;
|
||||
@ -605,7 +632,7 @@ void func_80BBC14C(EnZos* this, PlayState* play) {
|
||||
Math_SmoothStepToS(&this->actor.shape.rot.y, this->actor.home.rot.y, 2, 0x1000, 0x200);
|
||||
this->actor.world.rot.y = thisx->shape.rot.y;
|
||||
if (this->actor.home.rot.y == this->actor.shape.rot.y) {
|
||||
func_80BBAE84(this, 0, ANIMMODE_ONCE);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_LEAN_ON_KEYBOARD, ANIMMODE_ONCE);
|
||||
this->unk_2B6 &= ~1;
|
||||
}
|
||||
}
|
||||
@ -628,7 +655,7 @@ void func_80BBC24C(EnZos* this, PlayState* play) {
|
||||
func_80BBB0D4(this, play);
|
||||
if (gSaveContext.save.weekEventReg[79] & 1) {
|
||||
this->actionFunc = func_80BBC22C;
|
||||
func_80BBAE84(this, 7, ANIMMODE_ONCE);
|
||||
EnZos_ChangeAnim(this, EN_ZOS_ANIM_PLAY_RIGHT, ANIMMODE_ONCE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -675,13 +702,13 @@ void EnZos_Update(Actor* thisx, PlayState* play) {
|
||||
|
||||
this->actionFunc(this, play);
|
||||
|
||||
if (DECR(this->unk_2AE) == 0) {
|
||||
this->unk_2AE = Rand_S16Offset(60, 60);
|
||||
if (DECR(this->blinkTimer) == 0) {
|
||||
this->blinkTimer = Rand_S16Offset(60, 60);
|
||||
}
|
||||
|
||||
this->unk_2AC = this->unk_2AE;
|
||||
if (this->unk_2AC >= 3) {
|
||||
this->unk_2AC = 0;
|
||||
this->eyeIndex = this->blinkTimer;
|
||||
if (this->eyeIndex >= 3) {
|
||||
this->eyeIndex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -692,16 +719,16 @@ s32 func_80BBC4E4(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s
|
||||
void func_80BBC500(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
|
||||
static Vec3f D_80BBC750 = { 0.0f, 0.0f, 0.0f };
|
||||
|
||||
if (limbIndex == 9) {
|
||||
if (limbIndex == EVAN_LIMB_HEAD) {
|
||||
Matrix_MultVec3f(&D_80BBC750, &thisx->focus.pos);
|
||||
}
|
||||
}
|
||||
|
||||
void EnZos_Draw(Actor* thisx, PlayState* play) {
|
||||
static TexturePtr D_80BBC75C[] = {
|
||||
object_zos_Tex_010918,
|
||||
object_zos_Tex_011118,
|
||||
object_zos_Tex_011918,
|
||||
static TexturePtr sEyeTextures[] = {
|
||||
gEvanEyeOpenTex,
|
||||
gEvanEyeHalfTex,
|
||||
gEvanEyeClosedTex,
|
||||
};
|
||||
EnZos* this = THIS;
|
||||
Gfx* gfx;
|
||||
@ -716,15 +743,15 @@ void EnZos_Draw(Actor* thisx, PlayState* play) {
|
||||
|
||||
gfx = POLY_OPA_DISP;
|
||||
|
||||
gSPSegment(&gfx[0], 0x08, Lib_SegmentedToVirtual(D_80BBC75C[this->unk_2AC]));
|
||||
gSPSegment(&gfx[0], 0x08, Lib_SegmentedToVirtual(sEyeTextures[this->eyeIndex]));
|
||||
|
||||
Matrix_Push();
|
||||
Matrix_RotateYS(this->actor.home.rot.y - this->actor.shape.rot.y, MTXMODE_APPLY);
|
||||
Matrix_Translate(0.0f, 0.0f, -974.4f, MTXMODE_APPLY);
|
||||
|
||||
gSPMatrix(&gfx[1], Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(&gfx[2], object_zos_DL_0136E0);
|
||||
gSPDisplayList(&gfx[3], object_zos_DL_013088);
|
||||
gSPDisplayList(&gfx[2], gEvanUnknownWhiteTriangleDL);
|
||||
gSPDisplayList(&gfx[3], gEvanKeyboardDL);
|
||||
|
||||
POLY_OPA_DISP = &gfx[4];
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
#define Z_EN_ZOS_H
|
||||
|
||||
#include "global.h"
|
||||
#include "objects/object_zos/object_zos.h"
|
||||
|
||||
struct EnZos;
|
||||
|
||||
@ -16,15 +17,15 @@ enum {
|
||||
|
||||
typedef struct EnZos {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ Vec3s jointTable[18];
|
||||
/* 0x1B0 */ Vec3s morphTable[18];
|
||||
/* 0x144 */ Vec3s jointTable[EVAN_LIMB_MAX];
|
||||
/* 0x1B0 */ Vec3s morphTable[EVAN_LIMB_MAX];
|
||||
/* 0x21C */ SkelAnime skelAnime;
|
||||
/* 0x260 */ ColliderCylinder collider;
|
||||
/* 0x2AC */ s16 unk_2AC;
|
||||
/* 0x2AE */ s16 unk_2AE;
|
||||
/* 0x2AC */ s16 eyeIndex;
|
||||
/* 0x2AE */ s16 blinkTimer;
|
||||
/* 0x2B0 */ UNK_TYPE1 unk2B0[6];
|
||||
/* 0x2B6 */ u16 unk_2B6;
|
||||
/* 0x2B8 */ s16 unk_2B8;
|
||||
/* 0x2B8 */ s16 animIndex;
|
||||
/* 0x2BA */ s16 unk_2BA;
|
||||
/* 0x2BC */ s16 unk_2BC;
|
||||
/* 0x2C0 */ EnZosActionFunc actionFunc;
|
||||
|
@ -15387,7 +15387,7 @@
|
||||
0x80BBA930:("func_80BBA930",),
|
||||
0x80BBACA0:("EnZos_Init",),
|
||||
0x80BBAE60:("EnZos_Destroy",),
|
||||
0x80BBAE84:("func_80BBAE84",),
|
||||
0x80BBAE84:("EnZos_ChangeAnim",),
|
||||
0x80BBAF5C:("func_80BBAF5C",),
|
||||
0x80BBAFFC:("func_80BBAFFC",),
|
||||
0x80BBB0D4:("func_80BBB0D4",),
|
||||
|
@ -15606,7 +15606,7 @@
|
||||
0x80BBC6F0:("D_80BBC6F0","UNK_TYPE1","",0x1),
|
||||
0x80BBC71C:("D_80BBC71C","UNK_TYPE1","",0x1),
|
||||
0x80BBC750:("D_80BBC750","UNK_TYPE1","",0x1),
|
||||
0x80BBC75C:("D_80BBC75C","UNK_TYPE1","",0x1),
|
||||
0x80BBC75C:("sEyeTextures","UNK_TYPE1","",0x1),
|
||||
0x80BBC770:("D_80BBC770","f32","",0x4),
|
||||
0x80BBC774:("jtbl_80BBC774","UNK_PTR","",0x4),
|
||||
0x80BBF800:("En_S_Goro_InitVars","ActorInit","",0x20),
|
||||
|
Loading…
Reference in New Issue
Block a user