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:
MegaIDK 2023-08-09 23:33:08 -03:00 committed by GitHub
parent d107b6c2a9
commit b65577de4e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 104 additions and 105 deletions

View File

@ -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>

View File

@ -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);

View File

@ -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];

View File

@ -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);

View File

@ -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;