mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-29 03:34:07 +00:00
Responding to PR comments
This commit is contained in:
parent
86c4472662
commit
d41ef6599d
2 changed files with 51 additions and 92 deletions
|
@ -18,9 +18,9 @@ typedef struct
|
||||||
s32 EnTk_CheckNextSpot(EnTk *this, GlobalContext *ctxt);
|
s32 EnTk_CheckNextSpot(EnTk *this, GlobalContext *ctxt);
|
||||||
void EnTk_Init(Actor *this, GlobalContext *ctxt);
|
void EnTk_Init(Actor *this, GlobalContext *ctxt);
|
||||||
void EnTk_Destroy(Actor *this, GlobalContext *ctxt);
|
void EnTk_Destroy(Actor *this, GlobalContext *ctxt);
|
||||||
void EnTk_Stop_Update(EnTk *this, GlobalContext *ctxt);
|
void EnTk_Rest(EnTk *this, GlobalContext *ctxt);
|
||||||
void EnTk_Walk_Update(EnTk *this, GlobalContext *ctxt);
|
void EnTk_Walk(EnTk *this, GlobalContext *ctxt);
|
||||||
void EnTk_Dig_Update(EnTk *this, GlobalContext *ctxt);
|
void EnTk_Dig(EnTk *this, GlobalContext *ctxt);
|
||||||
void EnTk_Update(Actor *this, GlobalContext *ctxt);
|
void EnTk_Update(Actor *this, GlobalContext *ctxt);
|
||||||
void EnTk_Draw(Actor *this, GlobalContext *ctxt);
|
void EnTk_Draw(Actor *this, GlobalContext *ctxt);
|
||||||
|
|
||||||
|
@ -57,8 +57,8 @@ const ActorInit En_Tk_InitVars =
|
||||||
EnTk_Draw,
|
EnTk_Draw,
|
||||||
};
|
};
|
||||||
|
|
||||||
void EnTk_Eff_Create(EnTk *this, Vec3f *pos, Vec3f *speed, Vec3f *accel,
|
void EnTkEff_Create(EnTk *this, Vec3f *pos, Vec3f *speed, Vec3f *accel,
|
||||||
u8 duration, f32 size, f32 growth)
|
u8 duration, f32 size, f32 growth)
|
||||||
{
|
{
|
||||||
s16 i;
|
s16 i;
|
||||||
EnTkEff *eff = this->eff;
|
EnTkEff *eff = this->eff;
|
||||||
|
@ -80,7 +80,7 @@ void EnTk_Eff_Create(EnTk *this, Vec3f *pos, Vec3f *speed, Vec3f *accel,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnTk_Eff_Update(EnTk *this)
|
void EnTkEff_Update(EnTk *this)
|
||||||
{
|
{
|
||||||
s16 i;
|
s16 i;
|
||||||
EnTkEff *eff;
|
EnTkEff *eff;
|
||||||
|
@ -105,7 +105,7 @@ void EnTk_Eff_Update(EnTk *this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnTk_Eff_Draw(EnTk *this, GlobalContext *ctxt)
|
void EnTkEff_Draw(EnTk *this, GlobalContext *ctxt)
|
||||||
{
|
{
|
||||||
static u32 images[] =
|
static u32 images[] =
|
||||||
{
|
{
|
||||||
|
@ -180,15 +180,15 @@ void EnTk_Eff_Draw(EnTk *this, GlobalContext *ctxt)
|
||||||
func_800C6B54(pgdl, ctxt->state.gfxCtx, "../z_en_tk_eff.c", 154);
|
func_800C6B54(pgdl, ctxt->state.gfxCtx, "../z_en_tk_eff.c", 154);
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 EnTk_Eff_CreateDflt(EnTk *this, Vec3f *pos, u8 duration, f32 size,
|
s32 EnTkEff_CreateDflt(EnTk *this, Vec3f *pos, u8 duration, f32 size,
|
||||||
f32 growth, f32 y_accel_max)
|
f32 growth, f32 y_accel_max)
|
||||||
{
|
{
|
||||||
Vec3f speed = {0.f, 0.f, 0.f};
|
Vec3f speed = {0.f, 0.f, 0.f};
|
||||||
Vec3f accel = {0.f, 0.3f, 0.f};
|
Vec3f accel = {0.f, 0.3f, 0.f};
|
||||||
|
|
||||||
accel.y += Math_Rand_ZeroOne() * y_accel_max;
|
accel.y += Math_Rand_ZeroOne() * y_accel_max;
|
||||||
|
|
||||||
EnTk_Eff_Create(this, pos, &speed, &accel, duration, size, growth);
|
EnTkEff_Create(this, pos, &speed, &accel, duration, size, growth);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -197,54 +197,15 @@ s32 EnTk_Eff_CreateDflt(EnTk *this, Vec3f *pos, u8 duration, f32 size,
|
||||||
|
|
||||||
static ColliderCylinderInit D_80B1D508 =
|
static ColliderCylinderInit D_80B1D508 =
|
||||||
{
|
{
|
||||||
{
|
0x0A, 0x00, 0x00, 0x39,
|
||||||
0x0A,
|
0x20, 0x01, 0x00, 0x00,
|
||||||
0x00,
|
0x00, 0x00, 0x00, 0x00,
|
||||||
0x00,
|
0x00000000, 0x00, 0x00,
|
||||||
0x39,
|
0x00, 0x00, 0x00000000,
|
||||||
0x20,
|
0x00, 0x00, 0x00, 0x00,
|
||||||
0x01,
|
0x00, 0x00, 0x01, 0x00,
|
||||||
{
|
0x001E, 0x0034, 0x0000,
|
||||||
0x00,
|
0x0000, 0x0000, 0x0000,
|
||||||
0x00,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
0x00,
|
|
||||||
{
|
|
||||||
0x00,
|
|
||||||
0x00,
|
|
||||||
0x00,
|
|
||||||
},
|
|
||||||
0x00000000,
|
|
||||||
0x00,
|
|
||||||
0x00,
|
|
||||||
{
|
|
||||||
0x00,
|
|
||||||
0x00,
|
|
||||||
},
|
|
||||||
0x00000000,
|
|
||||||
{
|
|
||||||
0x00,
|
|
||||||
0x00,
|
|
||||||
0x00,
|
|
||||||
0x00,
|
|
||||||
},
|
|
||||||
0x00,
|
|
||||||
0x00,
|
|
||||||
0x01,
|
|
||||||
0x00,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
0x001E,
|
|
||||||
0x0034,
|
|
||||||
0x0000,
|
|
||||||
{
|
|
||||||
0x0000,
|
|
||||||
0x0000,
|
|
||||||
0x0000,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static EnTk_SubActorStruct98Init D_80B1D534 =
|
static EnTk_SubActorStruct98Init D_80B1D534 =
|
||||||
|
@ -256,7 +217,7 @@ static EnTk_SubActorStruct98Init D_80B1D534 =
|
||||||
0xFF,
|
0xFF,
|
||||||
};
|
};
|
||||||
|
|
||||||
void EnTk_Stop(EnTk *this, GlobalContext *ctxt)
|
void EnTk_RestAnim(EnTk *this, GlobalContext *ctxt)
|
||||||
{
|
{
|
||||||
UNK_PTR anim = &D_06002F84;
|
UNK_PTR anim = &D_06002F84;
|
||||||
|
|
||||||
|
@ -268,7 +229,7 @@ void EnTk_Stop(EnTk *this, GlobalContext *ctxt)
|
||||||
this->actor.speedXZ = 0.f;
|
this->actor.speedXZ = 0.f;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnTk_Walk(EnTk *this, GlobalContext *ctxt)
|
void EnTk_WalkAnim(EnTk *this, GlobalContext *ctxt)
|
||||||
{
|
{
|
||||||
UNK_PTR anim = &D_06001FA8;
|
UNK_PTR anim = &D_06001FA8;
|
||||||
|
|
||||||
|
@ -279,7 +240,7 @@ void EnTk_Walk(EnTk *this, GlobalContext *ctxt)
|
||||||
this->action_countdown = Math_Rand_S16Offset(240, 240);
|
this->action_countdown = Math_Rand_S16Offset(240, 240);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnTk_Dig(EnTk *this, GlobalContext *ctxt)
|
void EnTk_DigAnim(EnTk *this, GlobalContext *ctxt)
|
||||||
{
|
{
|
||||||
UNK_PTR anim = &D_06001144;
|
UNK_PTR anim = &D_06001144;
|
||||||
|
|
||||||
|
@ -402,8 +363,7 @@ f32 EnTk_Step(EnTk *this, GlobalContext *ctxt)
|
||||||
if (this->skel_anim.animCurrentFrame == 0.f ||
|
if (this->skel_anim.animCurrentFrame == 0.f ||
|
||||||
this->skel_anim.animCurrentFrame == 25.f)
|
this->skel_anim.animCurrentFrame == 25.f)
|
||||||
{
|
{
|
||||||
/* NA_SE_EN_MORIBLIN_WALK */
|
Audio_PlayActorSound2(&this->actor, NA_SE_EN_MORIBLIN_WALK);
|
||||||
Audio_PlayActorSound2(&this->actor, 0x38B8);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->skel_anim.animCurrent != (u32)&D_06001FA8)
|
if (this->skel_anim.animCurrent != (u32)&D_06001FA8)
|
||||||
|
@ -674,7 +634,7 @@ s32 EnTk_ChooseReward(EnTk *this)
|
||||||
return reward;
|
return reward;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnTk_Dig_Eff(EnTk *this)
|
void EnTk_DigEff(EnTk *this)
|
||||||
{
|
{
|
||||||
Vec3f pos = {0.f, 0.f, 0.f};
|
Vec3f pos = {0.f, 0.f, 0.f};
|
||||||
Vec3f speed = {0.f, 0.f, 0.f};
|
Vec3f speed = {0.f, 0.f, 0.f};
|
||||||
|
@ -686,7 +646,7 @@ void EnTk_Dig_Eff(EnTk *this)
|
||||||
pos.x = (Math_Rand_ZeroOne() - 0.5f) * 12.f + this->v3f_304.x;
|
pos.x = (Math_Rand_ZeroOne() - 0.5f) * 12.f + this->v3f_304.x;
|
||||||
pos.y = (Math_Rand_ZeroOne() - 0.5f) * 8.f + this->v3f_304.y;
|
pos.y = (Math_Rand_ZeroOne() - 0.5f) * 8.f + this->v3f_304.y;
|
||||||
pos.z = (Math_Rand_ZeroOne() - 0.5f) * 12.f + this->v3f_304.z;
|
pos.z = (Math_Rand_ZeroOne() - 0.5f) * 12.f + this->v3f_304.z;
|
||||||
EnTk_Eff_CreateDflt(this, &pos, 12, 0.2f, 0.1f, 0.f);
|
EnTkEff_CreateDflt(this, &pos, 12, 0.2f, 0.1f, 0.f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -723,7 +683,7 @@ void EnTk_Init(Actor *this, GlobalContext *ctxt)
|
||||||
tk->actor.gravity = -0.1f;
|
tk->actor.gravity = -0.1f;
|
||||||
tk->current_reward = -1;
|
tk->current_reward = -1;
|
||||||
tk->current_spot = NULL;
|
tk->current_spot = NULL;
|
||||||
tk->action_func = EnTk_Stop_Update;
|
tk->action_func = EnTk_Rest;
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnTk_Destroy(Actor *this, GlobalContext *ctxt)
|
void EnTk_Destroy(Actor *this, GlobalContext *ctxt)
|
||||||
|
@ -732,7 +692,7 @@ void EnTk_Destroy(Actor *this, GlobalContext *ctxt)
|
||||||
ActorCollider_FreeCylinder(ctxt, &tk->collider);
|
ActorCollider_FreeCylinder(ctxt, &tk->collider);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnTk_Stop_Update(EnTk *this, GlobalContext *ctxt)
|
void EnTk_Rest(EnTk *this, GlobalContext *ctxt)
|
||||||
{
|
{
|
||||||
s16 v1;
|
s16 v1;
|
||||||
s16 a1_;
|
s16 a1_;
|
||||||
|
@ -745,9 +705,9 @@ void EnTk_Stop_Update(EnTk *this, GlobalContext *ctxt)
|
||||||
|
|
||||||
if (this->h_1E0 == 2)
|
if (this->h_1E0 == 2)
|
||||||
{
|
{
|
||||||
EnTk_Dig(this, ctxt);
|
EnTk_DigAnim(this, ctxt);
|
||||||
this->h_1E0 = 0;
|
this->h_1E0 = 0;
|
||||||
this->action_func = EnTk_Dig_Update;
|
this->action_func = EnTk_Dig;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -777,8 +737,8 @@ void EnTk_Stop_Update(EnTk *this, GlobalContext *ctxt)
|
||||||
}
|
}
|
||||||
else if (DECR(this->action_countdown) == 0)
|
else if (DECR(this->action_countdown) == 0)
|
||||||
{
|
{
|
||||||
EnTk_Walk(this, ctxt);
|
EnTk_WalkAnim(this, ctxt);
|
||||||
this->action_func = EnTk_Walk_Update;
|
this->action_func = EnTk_Walk;
|
||||||
|
|
||||||
/*! @bug v1 is uninitialized past this branch */
|
/*! @bug v1 is uninitialized past this branch */
|
||||||
}
|
}
|
||||||
|
@ -791,13 +751,13 @@ void EnTk_Stop_Update(EnTk *this, GlobalContext *ctxt)
|
||||||
Math_SmoothScaleMaxMinS(&this->head_rot, a1_, 6, 1000, 1);
|
Math_SmoothScaleMaxMinS(&this->head_rot, a1_, 6, 1000, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnTk_Walk_Update(EnTk *this, GlobalContext *ctxt)
|
void EnTk_Walk(EnTk *this, GlobalContext *ctxt)
|
||||||
{
|
{
|
||||||
if (this->h_1E0 == 2)
|
if (this->h_1E0 == 2)
|
||||||
{
|
{
|
||||||
EnTk_Dig(this, ctxt);
|
EnTk_DigAnim(this, ctxt);
|
||||||
this->h_1E0 = 0;
|
this->h_1E0 = 0;
|
||||||
this->action_func = EnTk_Dig_Update;
|
this->action_func = EnTk_Dig;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -809,13 +769,13 @@ void EnTk_Walk_Update(EnTk *this, GlobalContext *ctxt)
|
||||||
DECR(this->action_countdown);
|
DECR(this->action_countdown);
|
||||||
if (EnTk_CheckFacingPlayer(this) != 0 || this->action_countdown == 0)
|
if (EnTk_CheckFacingPlayer(this) != 0 || this->action_countdown == 0)
|
||||||
{
|
{
|
||||||
EnTk_Stop(this, ctxt);
|
EnTk_RestAnim(this, ctxt);
|
||||||
this->action_func = EnTk_Stop_Update;
|
this->action_func = EnTk_Rest;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnTk_Dig_Update(EnTk *this, GlobalContext *ctxt)
|
void EnTk_Dig(EnTk *this, GlobalContext *ctxt)
|
||||||
{
|
{
|
||||||
Vec3f reward_origin;
|
Vec3f reward_origin;
|
||||||
Vec3f reward_pos;
|
Vec3f reward_pos;
|
||||||
|
@ -828,12 +788,12 @@ void EnTk_Dig_Update(EnTk *this, GlobalContext *ctxt)
|
||||||
0x0006, /* Heart piece */
|
0x0006, /* Heart piece */
|
||||||
};
|
};
|
||||||
|
|
||||||
EnTk_Dig_Eff(this);
|
EnTk_DigEff(this);
|
||||||
|
|
||||||
if (this->skel_anim.animCurrentFrame == 32.f)
|
if (this->skel_anim.animCurrentFrame == 32.f)
|
||||||
{
|
{
|
||||||
/* NA_SE_EV_DIG_UP - What's gonna come out? */
|
/* What's gonna come out? */
|
||||||
Audio_PlayActorSound2(&this->actor, 0x28C8);
|
Audio_PlayActorSound2(&this->actor, NA_SE_EV_DIG_UP);
|
||||||
|
|
||||||
this->reward_timer = 0;
|
this->reward_timer = 0;
|
||||||
|
|
||||||
|
@ -872,19 +832,19 @@ void EnTk_Dig_Update(EnTk *this, GlobalContext *ctxt)
|
||||||
/* Play a reward sound shortly after digging */
|
/* Play a reward sound shortly after digging */
|
||||||
if (this->valid_dig_here == 0)
|
if (this->valid_dig_here == 0)
|
||||||
{
|
{
|
||||||
/* NA_SE_SY_ERROR - Bad dig spot */
|
/* Bad dig spot */
|
||||||
Audio_PlayActorSound2(&this->actor, 0x4806);
|
Audio_PlayActorSound2(&this->actor, NA_SE_SY_ERROR);
|
||||||
}
|
}
|
||||||
else if (this->current_reward == 4)
|
else if (this->current_reward == 4)
|
||||||
{
|
{
|
||||||
/* NA_SE_SY_CORRECT_CHIME - Heart piece */
|
/* Heart piece */
|
||||||
Audio_PlaySoundGeneral(0x4802, &D_801333D4, 4, &D_801333E0,
|
Audio_PlaySoundGeneral(NA_SE_SY_CORRECT_CHIME, &D_801333D4, 4,
|
||||||
&D_801333E0, &D_801333E8);
|
&D_801333E0, &D_801333E0, &D_801333E8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* NA_SE_SY_TRE_BOX_APPEAR - Rupee */
|
/* Rupee */
|
||||||
Audio_PlayActorSound2(&this->actor, 0x4807);
|
Audio_PlayActorSound2(&this->actor, NA_SE_SY_TRE_BOX_APPEAR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this->reward_timer++;
|
this->reward_timer++;
|
||||||
|
@ -901,11 +861,11 @@ void EnTk_Dig_Update(EnTk *this, GlobalContext *ctxt)
|
||||||
func_80106CCC(ctxt);
|
func_80106CCC(ctxt);
|
||||||
}
|
}
|
||||||
|
|
||||||
EnTk_Stop(this, ctxt);
|
EnTk_RestAnim(this, ctxt);
|
||||||
|
|
||||||
this->current_reward = -1;
|
this->current_reward = -1;
|
||||||
this->valid_dig_here = 0;
|
this->valid_dig_here = 0;
|
||||||
this->action_func = EnTk_Stop_Update;
|
this->action_func = EnTk_Rest;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -925,7 +885,7 @@ void EnTk_Update(Actor *this, GlobalContext *ctxt)
|
||||||
|
|
||||||
tk->action_func(tk, ctxt);
|
tk->action_func(tk, ctxt);
|
||||||
|
|
||||||
EnTk_Eff_Update(tk);
|
EnTkEff_Update(tk);
|
||||||
|
|
||||||
EnTk_UpdateEyes(tk);
|
EnTk_UpdateEyes(tk);
|
||||||
}
|
}
|
||||||
|
@ -1003,7 +963,7 @@ void EnTk_Draw(Actor *this, GlobalContext *ctxt)
|
||||||
Gfx *pgdl[4];
|
Gfx *pgdl[4];
|
||||||
|
|
||||||
Matrix_Push();
|
Matrix_Push();
|
||||||
EnTk_Eff_Draw(tk, ctxt);
|
EnTkEff_Draw(tk, ctxt);
|
||||||
Matrix_Pull();
|
Matrix_Pull();
|
||||||
|
|
||||||
gfx = ctxt->state.gfxCtx;
|
gfx = ctxt->state.gfxCtx;
|
||||||
|
|
|
@ -27,7 +27,6 @@ struct EnTk
|
||||||
{
|
{
|
||||||
/* 0x0000 */ Actor actor;
|
/* 0x0000 */ Actor actor;
|
||||||
/* 0x014C */ SkelAnime skel_anim;
|
/* 0x014C */ SkelAnime skel_anim;
|
||||||
/* 0x018C */ char unk_18C[0x4];
|
|
||||||
/* 0x0190 */ EnTkFunc *action_func;
|
/* 0x0190 */ EnTkFunc *action_func;
|
||||||
/* 0x0194 */ ColliderCylinderMain
|
/* 0x0194 */ ColliderCylinderMain
|
||||||
collider;
|
collider;
|
||||||
|
|
Loading…
Reference in a new issue