diff --git a/src/objects/instawhip.c b/src/objects/instawhip.c index c5b6683fae26c6bceda56af2ba7adcb7b328be5b..859eeac5729f89b3b8aed39ab62ef78829d2db77 100644 --- a/src/objects/instawhip.c +++ b/src/objects/instawhip.c @@ -59,14 +59,11 @@ void Obj_InstaWhipThink (mobj_t *whip) void Obj_SpawnInstaWhipRecharge(player_t *player, angle_t angleOffset) { - mobj_t *x = P_SpawnMobjFromMobj(player->mo, 0, 0, 0, MT_INSTAWHIP_RECHARGE); - - // This was previously used to delay the visual, back when this was VFX for a cooldown - // instead of VFX for a charge. We want to instantly bail out of that state now. - x->tics = 1; + mobj_t *x = P_SpawnMobjFromMobj(player->mo, 0, 0, player->mo->height / 2, MT_INSTAWHIP_RECHARGE); x->renderflags |= RF_SLOPESPLAT | RF_NOSPLATBILLBOARD; P_SetTarget(&recharge_target(x), player->mo); + P_InstaScale(x, x->target->scale * 2); recharge_offset(x) = angleOffset; } @@ -81,7 +78,8 @@ void Obj_InstaWhipRechargeThink(mobj_t *x) } P_MoveOrigin(x, target->x, target->y, target->z + (target->height / 2)); - P_InstaScale(x, 2 * target->scale); + if (x->scale != target->scale * 2) + P_InstaScale(x, target->scale * 2); x->angle = target->angle + recharge_offset(x); // Flickers every other frame