mirror of https://github.com/zeldaret/mm.git
document object_fr (#1339)
* initial commit of object_fr documentation * fixed unused texture height * format and slight limb name changes * froglimb * removed object .h from actor .c #includes * change eye textur * sIsInitialized * named anim enum values
This commit is contained in:
parent
d107b6c2a9
commit
b65577de4e
|
@ -1,67 +1,68 @@
|
|||
<Root>
|
||||
<!-- Object for the choir frogs and unused hostile(?) frog -->
|
||||
<File Name="object_fr" Segment="6">
|
||||
<Animation Name="object_fr_Anim_0007BC" Offset="0x7BC" /> <!-- Original name is "Jump" -->
|
||||
<Animation Name="object_fr_Anim_0011C0" Offset="0x11C0" /> <!-- Original name is "swing" -->
|
||||
<Animation Name="object_fr_Anim_001534" Offset="0x1534" /> <!-- Original name is "wait" -->
|
||||
<Texture Name="object_fr_Tex_001550" OutName="tex_001550" Format="rgba16" Width="32" Height="32" Offset="0x1550" />
|
||||
<!-- <Blob Name="object_fr_Blob_001D50" Size="0x1D50" Offset="0x1D50" /> -->
|
||||
<Texture Name="object_fr_Tex_003AA0" OutName="tex_003AA0" Format="i8" Width="16" Height="16" Offset="0x3AA0" />
|
||||
<Texture Name="object_fr_Tex_003BA0" OutName="tex_003BA0" Format="rgba16" Width="32" Height="32" Offset="0x3BA0" />
|
||||
<Texture Name="object_fr_Tex_0043A0" OutName="tex_0043A0" Format="rgba16" Width="32" Height="32" Offset="0x43A0" />
|
||||
<Texture Name="object_fr_Tex_004BA0" OutName="tex_004BA0" Format="rgba16" Width="16" Height="16" Offset="0x4BA0" />
|
||||
<Texture Name="object_fr_Tex_004DA0" OutName="tex_004DA0" Format="rgba16" Width="32" Height="32" Offset="0x4DA0" />
|
||||
<Texture Name="object_fr_Tex_0055A0" OutName="tex_0055A0" Format="i8" Width="32" Height="32" Offset="0x55A0" />
|
||||
<Texture Name="object_fr_Tex_0059A0" OutName="tex_0059A0" Format="rgba16" Width="16" Height="16" Offset="0x59A0" />
|
||||
<Texture Name="object_fr_Tex_005BA0" OutName="tex_005BA0" Format="rgba16" Width="16" Height="16" Offset="0x5BA0" />
|
||||
<Texture Name="object_fr_Tex_005DA0" OutName="tex_005DA0" Format="ia16" Width="32" Height="32" Offset="0x5DA0" />
|
||||
<Texture Name="object_fr_Tex_0065A0" OutName="tex_0065A0" Format="ia16" Width="32" Height="32" Offset="0x65A0" />
|
||||
<DList Name="object_fr_DL_008EC0" Offset="0x8EC0" />
|
||||
<DList Name="object_fr_DL_008F60" Offset="0x8F60" />
|
||||
<DList Name="object_fr_DL_009000" Offset="0x9000" />
|
||||
<DList Name="object_fr_DL_009328" Offset="0x9328" />
|
||||
<DList Name="object_fr_DL_0093C8" Offset="0x93C8" />
|
||||
<DList Name="object_fr_DL_009468" Offset="0x9468" />
|
||||
<DList Name="object_fr_DL_0095A0" Offset="0x95A0" />
|
||||
<DList Name="object_fr_DL_0098B8" Offset="0x98B8" />
|
||||
<DList Name="object_fr_DL_009AE0" Offset="0x9AE0" />
|
||||
<DList Name="object_fr_DL_009B80" Offset="0x9B80" />
|
||||
<DList Name="object_fr_DL_009D88" Offset="0x9D88" />
|
||||
<DList Name="object_fr_DL_009FB0" Offset="0x9FB0" />
|
||||
<DList Name="object_fr_DL_00A050" Offset="0xA050" />
|
||||
<DList Name="object_fr_DL_00A258" Offset="0xA258" />
|
||||
<DList Name="object_fr_DL_00A428" Offset="0xA428" />
|
||||
<DList Name="object_fr_DL_00A6B8" Offset="0xA6B8" />
|
||||
<DList Name="object_fr_DL_00A758" Offset="0xA758" />
|
||||
<DList Name="object_fr_DL_00A978" Offset="0xA978" />
|
||||
<DList Name="object_fr_DL_00ABA8" Offset="0xABA8" />
|
||||
<DList Name="object_fr_DL_00AE38" Offset="0xAE38" />
|
||||
<DList Name="object_fr_DL_00AED8" Offset="0xAED8" />
|
||||
<DList Name="object_fr_DL_00B0F8" Offset="0xB0F8" />
|
||||
<DList Name="object_fr_DL_00B328" Offset="0xB328" />
|
||||
<DList Name="object_fr_DL_00B338" Offset="0xB338" />
|
||||
<Limb Name="object_fr_Standardlimb_00B3C8" Type="Standard" EnumName="OBJECT_FR_LIMB_01" Offset="0xB3C8" />
|
||||
<Limb Name="object_fr_Standardlimb_00B3D4" Type="Standard" EnumName="OBJECT_FR_LIMB_02" Offset="0xB3D4" />
|
||||
<Limb Name="object_fr_Standardlimb_00B3E0" Type="Standard" EnumName="OBJECT_FR_LIMB_03" Offset="0xB3E0" />
|
||||
<Limb Name="object_fr_Standardlimb_00B3EC" Type="Standard" EnumName="OBJECT_FR_LIMB_04" Offset="0xB3EC" />
|
||||
<Limb Name="object_fr_Standardlimb_00B3F8" Type="Standard" EnumName="OBJECT_FR_LIMB_05" Offset="0xB3F8" />
|
||||
<Limb Name="object_fr_Standardlimb_00B404" Type="Standard" EnumName="OBJECT_FR_LIMB_06" Offset="0xB404" />
|
||||
<Limb Name="object_fr_Standardlimb_00B410" Type="Standard" EnumName="OBJECT_FR_LIMB_07" Offset="0xB410" />
|
||||
<Limb Name="object_fr_Standardlimb_00B41C" Type="Standard" EnumName="OBJECT_FR_LIMB_08" Offset="0xB41C" />
|
||||
<Limb Name="object_fr_Standardlimb_00B428" Type="Standard" EnumName="OBJECT_FR_LIMB_09" Offset="0xB428" />
|
||||
<Limb Name="object_fr_Standardlimb_00B434" Type="Standard" EnumName="OBJECT_FR_LIMB_0A" Offset="0xB434" />
|
||||
<Limb Name="object_fr_Standardlimb_00B440" Type="Standard" EnumName="OBJECT_FR_LIMB_0B" Offset="0xB440" />
|
||||
<Limb Name="object_fr_Standardlimb_00B44C" Type="Standard" EnumName="OBJECT_FR_LIMB_0C" Offset="0xB44C" />
|
||||
<Limb Name="object_fr_Standardlimb_00B458" Type="Standard" EnumName="OBJECT_FR_LIMB_0D" Offset="0xB458" />
|
||||
<Limb Name="object_fr_Standardlimb_00B464" Type="Standard" EnumName="OBJECT_FR_LIMB_0E" Offset="0xB464" />
|
||||
<Limb Name="object_fr_Standardlimb_00B470" Type="Standard" EnumName="OBJECT_FR_LIMB_0F" Offset="0xB470" />
|
||||
<Limb Name="object_fr_Standardlimb_00B47C" Type="Standard" EnumName="OBJECT_FR_LIMB_10" Offset="0xB47C" />
|
||||
<Limb Name="object_fr_Standardlimb_00B488" Type="Standard" EnumName="OBJECT_FR_LIMB_11" Offset="0xB488" />
|
||||
<Limb Name="object_fr_Standardlimb_00B494" Type="Standard" EnumName="OBJECT_FR_LIMB_12" Offset="0xB494" />
|
||||
<Limb Name="object_fr_Standardlimb_00B4A0" Type="Standard" EnumName="OBJECT_FR_LIMB_13" Offset="0xB4A0" />
|
||||
<Limb Name="object_fr_Standardlimb_00B4AC" Type="Standard" EnumName="OBJECT_FR_LIMB_14" Offset="0xB4AC" />
|
||||
<Limb Name="object_fr_Standardlimb_00B4B8" Type="Standard" EnumName="OBJECT_FR_LIMB_15" Offset="0xB4B8" />
|
||||
<Limb Name="object_fr_Standardlimb_00B4C4" Type="Standard" EnumName="OBJECT_FR_LIMB_16" Offset="0xB4C4" />
|
||||
<Limb Name="object_fr_Standardlimb_00B4D0" Type="Standard" EnumName="OBJECT_FR_LIMB_17" Offset="0xB4D0" />
|
||||
<Skeleton Name="object_fr_Skel_00B538" Type="Flex" LimbType="Standard" LimbNone="OBJECT_FR_LIMB_NONE" LimbMax="OBJECT_FR_LIMB_MAX" EnumName="ObjectFrLimb" Offset="0xB538" />
|
||||
<Animation Name="gFrogJumpAnim" Offset="0x7BC" /> <!-- Original name is "Jump" -->
|
||||
<Animation Name="gFrogDanceAnim" Offset="0x11C0" /> <!-- Original name is "swing" -->
|
||||
<Animation Name="gFrogIdleAnim" Offset="0x1534" /> <!-- Original name is "wait" -->
|
||||
<Texture Name="gFrogLimbPatternTex" OutName="frog_limb_pattern" Format="rgba16" Width="32" Height="32" Offset="0x1550" />
|
||||
<Texture Name="gFrogQuestionMarkTex" OutName="frog_question_mark" Format="rgba16" Width="50" Height="74" Offset="0x1D50" />
|
||||
<Texture Name="gFrogNostrilTex" OutName="frog_nostril" Format="i8" Width="16" Height="16" Offset="0x3AA0" />
|
||||
<Texture Name="gFrogLowerInnerMouthTex" OutName="frog_lower_inner_mouth" Format="rgba16" Width="32" Height="32" Offset="0x3BA0" />
|
||||
<Texture Name="gFrogUpperInnerMouthTex" OutName="frog_upper_inner_mouth" Format="rgba16" Width="32" Height="32" Offset="0x43A0" />
|
||||
<Texture Name="gFrogSkinTex" OutName="frog_skin" Format="rgba16" Width="16" Height="16" Offset="0x4BA0" />
|
||||
<Texture Name="gFrogUpperBodyPatternTex" OutName="frog_upper_body_pattern" Format="rgba16" Width="32" Height="32" Offset="0x4DA0" />
|
||||
<Texture Name="gFrogLowerBodyPatternTex" OutName="frog_lower_body_pattern" Format="i8" Width="32" Height="32" Offset="0x55A0" />
|
||||
<Texture Name="gFrogIrisOpenTex" OutName="frog_iris_open" Format="rgba16" Width="16" Height="16" Offset="0x59A0" />
|
||||
<Texture Name="gFrogIrisClosedTex" OutName="frog_iris_closed" Format="rgba16" Width="16" Height="16" Offset="0x5BA0" />
|
||||
<Texture Name="gFrogEyeTex" OutName="frog_eye" Format="ia16" Width="32" Height="32" Offset="0x5DA0" />
|
||||
<Texture Name="gFrogHandAndToeTex" OutName="frog_hand_and_toe" Format="ia16" Width="32" Height="32" Offset="0x65A0" />
|
||||
<DList Name="gFrogRightEyeDL" Offset="0x8EC0" />
|
||||
<DList Name="gFrogLeftEyeDL" Offset="0x8F60" />
|
||||
<DList Name="gFrogHeadDL" Offset="0x9000" />
|
||||
<DList Name="gFrogRightIrisDL" Offset="0x9328" />
|
||||
<DList Name="gFrogLeftIrisDL" Offset="0x93C8" />
|
||||
<DList Name="gFrogJawDL" Offset="0x9468" />
|
||||
<DList Name="gFrogUpperBodyDL" Offset="0x95A0" />
|
||||
<DList Name="gFrogLeftForearmDL" Offset="0x98B8" />
|
||||
<DList Name="gFrogLeftHandDL" Offset="0x9AE0" />
|
||||
<DList Name="gFrogLeftUpperArmDL" Offset="0x9B80" />
|
||||
<DList Name="gFrogRightForearmDL" Offset="0x9D88" />
|
||||
<DList Name="gFrogRightHandDL" Offset="0x9FB0" />
|
||||
<DList Name="gFrogRightUpperArmDL" Offset="0xA050" />
|
||||
<DList Name="gFrogLowerBodyDL" Offset="0xA258" />
|
||||
<DList Name="gFrogRightHeelDL" Offset="0xA428" />
|
||||
<DList Name="gFrogRightToeDL" Offset="0xA6B8" />
|
||||
<DList Name="gFrogRightShinDL" Offset="0xA758" />
|
||||
<DList Name="gFrogRightThighDL" Offset="0xA978" />
|
||||
<DList Name="gFrogLeftHeelDL" Offset="0xABA8" />
|
||||
<DList Name="gFrogLeftToeDL" Offset="0xAE38" />
|
||||
<DList Name="gFrogLeftShinDL" Offset="0xAED8" />
|
||||
<DList Name="gFrogLeftThighDL" Offset="0xB0F8" />
|
||||
<DList Name="gFrogDustMaterialDL" Offset="0xB328" />
|
||||
<DList Name="gFrogDustModelDL" Offset="0xB338" />
|
||||
<Limb Name="gFrogLowerBodyLimb" Type="Standard" EnumName="FROG_LIMB_LOWER_BODY" Offset="0xB3C8" />
|
||||
<Limb Name="gFrogUpperBodyLimb" Type="Standard" EnumName="FROG_LIMB_UPPER_BODY" Offset="0xB3D4" />
|
||||
<Limb Name="gFrogHeadRootLimb" Type="Standard" EnumName="FROG_LIMB_HEAD_ROOT" Offset="0xB3E0" />
|
||||
<Limb Name="gFrogHeadLimb" Type="Standard" EnumName="FROG_LIMB_HEAD" Offset="0xB3EC" />
|
||||
<Limb Name="gFrogRightIrisLimb" Type="Standard" EnumName="FROG_LIMB_RIGHT_IRIS" Offset="0xB3F8" />
|
||||
<Limb Name="gFrogJawLimb" Type="Standard" EnumName="FROG_LIMB_JAW" Offset="0xB404" />
|
||||
<Limb Name="gFrogRightEyeLimb" Type="Standard" EnumName="FROG_LIMB_RIGHT_EYE" Offset="0xB410" />
|
||||
<Limb Name="gFrogLeftEyeLimb" Type="Standard" EnumName="FROG_LIMB_LEFT_EYE" Offset="0xB41C" />
|
||||
<Limb Name="gFrogLeftIrisLimb" Type="Standard" EnumName="FROG_LIMB_LEFT_IRIS" Offset="0xB428" />
|
||||
<Limb Name="gFrogLeftUpperArmLimb" Type="Standard" EnumName="FROG_LIMB_LEFT_UPPER_ARM" Offset="0xB434" />
|
||||
<Limb Name="gFrogLeftForearmLimb" Type="Standard" EnumName="FROG_LIMB_LEFT_FOREARM" Offset="0xB440" />
|
||||
<Limb Name="gFrogLeftHandLimb" Type="Standard" EnumName="FROG_LIMB_LEFT_HAND" Offset="0xB44C" />
|
||||
<Limb Name="gFrogRightUpperArmLimb" Type="Standard" EnumName="FROG_LIMB_RIGHT_UPPER_ARM" Offset="0xB458" />
|
||||
<Limb Name="gFrogRightForearmLimb" Type="Standard" EnumName="FROG_LIMB_RIGHT_FOREARM" Offset="0xB464" />
|
||||
<Limb Name="gFrogRightHandLimb" Type="Standard" EnumName="FROG_LIMB_RIGHT_HAND" Offset="0xB470" />
|
||||
<Limb Name="gFrogRightThighLimb" Type="Standard" EnumName="FROG_LIMB_RIGHT_THIGH" Offset="0xB47C" />
|
||||
<Limb Name="gFrogRightShinLimb" Type="Standard" EnumName="FROG_LIMB_RIGHT_SHIN" Offset="0xB488" />
|
||||
<Limb Name="gFrogRightHeelLimb" Type="Standard" EnumName="FROG_LIMB_RIGHT_HEEL" Offset="0xB494" />
|
||||
<Limb Name="gFrogRightToesLimb" Type="Standard" EnumName="FROG_LIMB_RIGHT_TOES" Offset="0xB4A0" />
|
||||
<Limb Name="gFrogLeftThighLimb" Type="Standard" EnumName="FROG_LIMB_LEFT_THIGH" Offset="0xB4AC" />
|
||||
<Limb Name="gFrogLeftShinLimb" Type="Standard" EnumName="FROG_LIMB_LEFT_SHIN" Offset="0xB4B8" />
|
||||
<Limb Name="gFrogLeftHeelLimb" Type="Standard" EnumName="FROG_LIMB_LEFT_HEEL" Offset="0xB4C4" />
|
||||
<Limb Name="gFrogLeftToesLimb" Type="Standard" EnumName="FROG_LIMB_LEFT_TOES" Offset="0xB4D0" />
|
||||
<Skeleton Name="gFrogSkel" Type="Flex" LimbType="Standard" LimbNone="FROG_LIMB_NONE" LimbMax="FROG_LIMB_MAX" EnumName="FrogLimb" Offset="0xB538" />
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -105,18 +105,18 @@ static DamageTable sDamageTable = {
|
|||
|
||||
typedef enum {
|
||||
/* -1 */ BETAFROG_ANIM_NONE = -1,
|
||||
/* 0 */ BETAFROG_ANIM_0,
|
||||
/* 1 */ BETAFROG_ANIM_1,
|
||||
/* 2 */ BETAFROG_ANIM_2,
|
||||
/* 3 */ BETAFROG_ANIM_3,
|
||||
/* 0 */ BETAFROG_ANIM_IDLE,
|
||||
/* 1 */ BETAFROG_ANIM_IDLE_MORPH,
|
||||
/* 2 */ BETAFROG_ANIM_DANCE,
|
||||
/* 3 */ BETAFROG_ANIM_JUMP,
|
||||
/* 4 */ BETAFROG_ANIM_MAX
|
||||
} BetaFrogAnimation;
|
||||
|
||||
static AnimationInfoS sAnimationInfo[BETAFROG_ANIM_MAX] = {
|
||||
{ &object_fr_Anim_001534, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // BETAFROG_ANIM_0
|
||||
{ &object_fr_Anim_001534, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, // BETAFROG_ANIM_1
|
||||
{ &object_fr_Anim_0011C0, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, // BETAFROG_ANIM_2
|
||||
{ &object_fr_Anim_0007BC, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, // BETAFROG_ANIM_3
|
||||
{ &gFrogIdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // BETAFROG_ANIM_IDLE
|
||||
{ &gFrogIdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, // BETAFROG_ANIM_IDLE_MORPH
|
||||
{ &gFrogDanceAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, // BETAFROG_ANIM_DANCE
|
||||
{ &gFrogJumpAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -4 }, // BETAFROG_ANIM_JUMP
|
||||
};
|
||||
|
||||
s32 EnFg_ChangeAnim(SkelAnime* skelAnime, s16 animIndex) {
|
||||
|
@ -244,7 +244,7 @@ void EnFg_Idle(EnFg* this, PlayState* play) {
|
|||
default:
|
||||
if (DECR(this->timer) == 0) {
|
||||
Actor_PlaySfx(&this->actor, NA_SE_EV_FROG_JUMP);
|
||||
EnFg_ChangeAnim(&this->skelAnime, BETAFROG_ANIM_3);
|
||||
EnFg_ChangeAnim(&this->skelAnime, BETAFROG_ANIM_JUMP);
|
||||
this->actor.velocity.y = 10.0f;
|
||||
this->timer = Rand_S16Offset(30, 30);
|
||||
this->actionFunc = EnFg_Jump;
|
||||
|
@ -281,7 +281,7 @@ void EnFg_Jump(EnFg* this, PlayState* play) {
|
|||
case BETAFROG_DMGEFFECT_EXPLOSION:
|
||||
this->actor.flags &= ~ACTOR_FLAG_1;
|
||||
Actor_PlaySfx(&this->actor, NA_SE_EV_FROG_CRY_0);
|
||||
EnFg_ChangeAnim(&this->skelAnime, BETAFROG_ANIM_0);
|
||||
EnFg_ChangeAnim(&this->skelAnime, BETAFROG_ANIM_IDLE);
|
||||
this->actor.params = BETAFROG_BLACK;
|
||||
this->skelAnime.playSpeed = 0.0f;
|
||||
ac = this->collider.base.ac;
|
||||
|
@ -302,7 +302,7 @@ void EnFg_Jump(EnFg* this, PlayState* play) {
|
|||
}
|
||||
|
||||
if ((this->actor.velocity.y <= 0.0f) && (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) {
|
||||
EnFg_ChangeAnim(&this->skelAnime, BETAFROG_ANIM_0);
|
||||
EnFg_ChangeAnim(&this->skelAnime, BETAFROG_ANIM_IDLE);
|
||||
this->actionFunc = EnFg_Idle;
|
||||
this->actor.velocity.y = 0.0f;
|
||||
} else {
|
||||
|
@ -341,9 +341,8 @@ void EnFg_Init(Actor* thisx, PlayState* play) {
|
|||
EnFg* this = THIS;
|
||||
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 10.0f);
|
||||
SkelAnime_InitFlex(play, &this->skelAnime, &object_fr_Skel_00B538, NULL, this->jointTable, this->morphTable,
|
||||
OBJECT_FR_LIMB_MAX);
|
||||
EnFg_ChangeAnim(&this->skelAnime, BETAFROG_ANIM_0);
|
||||
SkelAnime_InitFlex(play, &this->skelAnime, &gFrogSkel, NULL, this->jointTable, this->morphTable, FROG_LIMB_MAX);
|
||||
EnFg_ChangeAnim(&this->skelAnime, BETAFROG_ANIM_IDLE);
|
||||
Collider_InitCylinder(play, &this->collider);
|
||||
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
|
||||
CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit2);
|
||||
|
@ -385,12 +384,12 @@ void EnFg_Update(Actor* thisx, PlayState* play) {
|
|||
s32 EnFg_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
|
||||
EnFg* this = THIS;
|
||||
|
||||
if ((limbIndex == OBJECT_FR_LIMB_07) || (limbIndex == OBJECT_FR_LIMB_08)) {
|
||||
if ((limbIndex == FROG_LIMB_RIGHT_EYE) || (limbIndex == FROG_LIMB_LEFT_EYE)) {
|
||||
*dList = NULL;
|
||||
}
|
||||
|
||||
if (this->actor.colChkInfo.health == 0) {
|
||||
if ((limbIndex == OBJECT_FR_LIMB_05) || (limbIndex == OBJECT_FR_LIMB_09)) {
|
||||
if ((limbIndex == FROG_LIMB_RIGHT_IRIS) || (limbIndex == FROG_LIMB_LEFT_IRIS)) {
|
||||
*dList = NULL;
|
||||
}
|
||||
}
|
||||
|
@ -402,7 +401,7 @@ void EnFg_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
|
|||
s16 pad;
|
||||
Vec3f zeroVec = { 0.0f, 0.0f, 0.0f };
|
||||
|
||||
if ((limbIndex == OBJECT_FR_LIMB_07) || (limbIndex == OBJECT_FR_LIMB_08)) {
|
||||
if ((limbIndex == FROG_LIMB_RIGHT_EYE) || (limbIndex == FROG_LIMB_LEFT_EYE)) {
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
|
||||
Matrix_Push();
|
||||
|
@ -414,7 +413,7 @@ void EnFg_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
|
|||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
|
||||
if (limbIndex == OBJECT_FR_LIMB_04) {
|
||||
if (limbIndex == FROG_LIMB_HEAD) {
|
||||
Matrix_MultVec3f(&zeroVec, &this->actor.focus.pos);
|
||||
}
|
||||
}
|
||||
|
@ -441,8 +440,8 @@ void EnFg_Draw(Actor* thisx, PlayState* play) {
|
|||
gDPPipeSync(POLY_OPA_DISP++);
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, envColor[this->actor.params].r, envColor[this->actor.params].g,
|
||||
envColor[this->actor.params].b, envColor[this->actor.params].a);
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(object_fr_Tex_0059A0));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(object_fr_Tex_0059A0));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(gFrogIrisOpenTex));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(gFrogIrisOpenTex));
|
||||
SkelAnime_DrawFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount,
|
||||
EnFg_OverrideLimbDraw, EnFg_PostLimbDraw, &this->actor);
|
||||
|
||||
|
@ -501,7 +500,7 @@ void EnFg_DrawDust(PlayState* play, BetaFrogEffectDust* dustEffect) {
|
|||
|
||||
if (!firstDone) {
|
||||
POLY_XLU_DISP = Gfx_SetupDL(POLY_XLU_DISP, SETUPDL_0);
|
||||
gSPDisplayList(POLY_XLU_DISP++, object_fr_DL_00B328);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gFrogDustMaterialDL);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, 0, 0, 0, 0);
|
||||
firstDone = true;
|
||||
}
|
||||
|
@ -515,7 +514,7 @@ void EnFg_DrawDust(PlayState* play, BetaFrogEffectDust* dustEffect) {
|
|||
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
index = 0.5f * dustEffect->timer;
|
||||
gSPSegment(POLY_XLU_DISP++, 0x08, Lib_SegmentedToVirtual(sDustTextures[index]));
|
||||
gSPDisplayList(POLY_XLU_DISP++, object_fr_DL_00B338);
|
||||
gSPDisplayList(POLY_XLU_DISP++, gFrogDustModelDL);
|
||||
}
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
|
|
|
@ -34,8 +34,8 @@ typedef struct EnFg {
|
|||
/* 0x144 */ EnFgActionFunc actionFunc;
|
||||
/* 0x148 */ SkelAnime skelAnime;
|
||||
/* 0x18C */ ColliderCylinder collider;
|
||||
/* 0x1D8 */ Vec3s jointTable[OBJECT_FR_LIMB_MAX];
|
||||
/* 0x268 */ Vec3s morphTable[OBJECT_FR_LIMB_MAX];
|
||||
/* 0x1D8 */ Vec3s jointTable[FROG_LIMB_MAX];
|
||||
/* 0x268 */ Vec3s morphTable[FROG_LIMB_MAX];
|
||||
/* 0x2F8 */ s16 timer;
|
||||
/* 0x2FA */ s16 bounceCounter;
|
||||
/* 0x2FC */ BetaFrogEffectDust dustEffect[10];
|
||||
|
|
|
@ -59,10 +59,9 @@ static ColliderCylinderInit sCylinderInit = {
|
|||
|
||||
static CollisionCheckInfoInit sColChkInfoInit = { 1, 12, 14, MASS_IMMOVABLE };
|
||||
|
||||
// sEyeTextures???
|
||||
static TexturePtr D_808A4D74[] = {
|
||||
object_fr_Tex_0059A0,
|
||||
object_fr_Tex_005BA0,
|
||||
static TexturePtr sEyeTextures[] = {
|
||||
gFrogIrisOpenTex,
|
||||
gFrogIrisClosedTex,
|
||||
};
|
||||
|
||||
static u16 sIsFrogReturnedFlags[] = {
|
||||
|
@ -85,14 +84,14 @@ void EnMinifrog_Init(Actor* thisx, PlayState* play) {
|
|||
|
||||
Actor_ProcessInitChain(&this->actor, sInitChain);
|
||||
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 15.0f);
|
||||
SkelAnime_InitFlex(play, &this->skelAnime, &object_fr_Skel_00B538, &object_fr_Anim_001534, this->jointTable,
|
||||
this->morphTable, OBJECT_FR_LIMB_MAX);
|
||||
SkelAnime_InitFlex(play, &this->skelAnime, &gFrogSkel, &gFrogIdleAnim, this->jointTable, this->morphTable,
|
||||
FROG_LIMB_MAX);
|
||||
CollisionCheck_SetInfo(&this->actor.colChkInfo, NULL, &sColChkInfoInit);
|
||||
Collider_InitAndSetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
|
||||
|
||||
if (!sIsInitialized) {
|
||||
for (i = 0; i < ARRAY_COUNT(D_808A4D74); i++) {
|
||||
D_808A4D74[i] = Lib_SegmentedToVirtual(D_808A4D74[i]);
|
||||
for (i = 0; i < ARRAY_COUNT(sEyeTextures); i++) {
|
||||
sEyeTextures[i] = Lib_SegmentedToVirtual(sEyeTextures[i]);
|
||||
}
|
||||
sIsInitialized = true;
|
||||
}
|
||||
|
@ -172,7 +171,7 @@ EnMinifrog* EnMinifrog_GetFrog(PlayState* play) {
|
|||
void EnMinifrog_SetJumpState(EnMinifrog* this) {
|
||||
if (this->jumpState == FROG_STATE_GROUND) {
|
||||
this->jumpState = FROG_STATE_JUMP;
|
||||
Animation_Change(&this->skelAnime, &object_fr_Anim_0007BC, 1.0f, 0.0f, 7.0f, ANIMMODE_ONCE, -5.0f);
|
||||
Animation_Change(&this->skelAnime, &gFrogJumpAnim, 1.0f, 0.0f, 7.0f, ANIMMODE_ONCE, -5.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -200,7 +199,7 @@ void EnMinifrog_Jump(EnMinifrog* this) {
|
|||
case FROG_STATE_AIR:
|
||||
if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) {
|
||||
this->jumpState = FROG_STATE_GROUND;
|
||||
Animation_MorphToLoop(&this->skelAnime, &object_fr_Anim_001534, -2.5f);
|
||||
Animation_MorphToLoop(&this->skelAnime, &gFrogIdleAnim, -2.5f);
|
||||
SkelAnime_Update(&this->skelAnime);
|
||||
}
|
||||
break;
|
||||
|
@ -616,11 +615,11 @@ void EnMinifrog_UpdateMissingFrog(Actor* thisx, PlayState* play) {
|
|||
}
|
||||
|
||||
s32 EnMinifrog_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* thisx) {
|
||||
if (limbIndex == OBJECT_FR_LIMB_01) {
|
||||
if (limbIndex == FROG_LIMB_LOWER_BODY) {
|
||||
pos->z -= 500.0f;
|
||||
}
|
||||
|
||||
if ((limbIndex == OBJECT_FR_LIMB_07) || (limbIndex == OBJECT_FR_LIMB_08)) {
|
||||
if ((limbIndex == FROG_LIMB_RIGHT_EYE) || (limbIndex == FROG_LIMB_LEFT_EYE)) {
|
||||
*dList = NULL;
|
||||
}
|
||||
|
||||
|
@ -630,7 +629,7 @@ s32 EnMinifrog_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec
|
|||
void EnMinifrog_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) {
|
||||
EnMinifrog* this = THIS;
|
||||
|
||||
if ((limbIndex == OBJECT_FR_LIMB_07) || (limbIndex == OBJECT_FR_LIMB_08)) {
|
||||
if ((limbIndex == FROG_LIMB_RIGHT_EYE) || (limbIndex == FROG_LIMB_LEFT_EYE)) {
|
||||
OPEN_DISPS(play->state.gfxCtx);
|
||||
|
||||
Matrix_ReplaceRotation(&play->billboardMtxF);
|
||||
|
@ -640,7 +639,7 @@ void EnMinifrog_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s*
|
|||
CLOSE_DISPS(play->state.gfxCtx);
|
||||
}
|
||||
|
||||
if (limbIndex == OBJECT_FR_LIMB_04) {
|
||||
if (limbIndex == FROG_LIMB_HEAD) {
|
||||
Matrix_MultZero(&this->actor.focus.pos);
|
||||
}
|
||||
}
|
||||
|
@ -661,8 +660,8 @@ void EnMinifrog_Draw(Actor* thisx, PlayState* play) {
|
|||
|
||||
Gfx_SetupDL25_Opa(play->state.gfxCtx);
|
||||
envColor = &sFrogEnvColors[this->frogIndex];
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, D_808A4D74[0]);
|
||||
gSPSegment(POLY_OPA_DISP++, 0x09, D_808A4D74[0]);
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, sEyeTextures[0]);
|
||||
gSPSegment(POLY_OPA_DISP++, 0x09, sEyeTextures[0]);
|
||||
gDPSetEnvColor(POLY_OPA_DISP++, envColor->r, envColor->g, envColor->b, envColor->a);
|
||||
SkelAnime_DrawFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount,
|
||||
EnMinifrog_OverrideLimbDraw, EnMinifrog_PostLimbDraw, &this->actor);
|
||||
|
|
|
@ -28,8 +28,8 @@ typedef enum {
|
|||
typedef struct EnMinifrog {
|
||||
/* 0x000 */ Actor actor;
|
||||
/* 0x144 */ SkelAnime skelAnime;
|
||||
/* 0x188 */ Vec3s jointTable[OBJECT_FR_LIMB_MAX];
|
||||
/* 0x218 */ Vec3s morphTable[OBJECT_FR_LIMB_MAX];
|
||||
/* 0x188 */ Vec3s jointTable[FROG_LIMB_MAX];
|
||||
/* 0x218 */ Vec3s morphTable[FROG_LIMB_MAX];
|
||||
/* 0x2A8 */ EnMinifrogActionFunc actionFunc;
|
||||
/* 0x2AC */ struct EnMinifrog* frog;
|
||||
/* 0x2B0 */ s16 frogIndex;
|
||||
|
|
Loading…
Reference in New Issue