WIP "Drift explosion"

This commit is contained in:
James R 2020-07-08 21:30:34 -07:00
parent 47a7c285de
commit e250796886
2 changed files with 25 additions and 16 deletions

View file

@ -6323,10 +6323,10 @@ static void K_KartDrift(player_t *player, boolean onground)
if (player->kartstuff[k_driftcharge] < 0 || player->kartstuff[k_driftcharge] >= dsone)
{
angle_t pushdir = R_PointToAngle2(0, 0, player->mo->momx, player->mo->momy);
//mobj_t *overlay = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_DRIFTEXPLODE);
//P_SetTarget(&overlay->target, player->mo);
//P_SetScale(overlay, (overlay->destscale = player->mo->scale));
//K_FlipFromObject(overlay, player->mo);
mobj_t *overlay = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_DRIFTEXPLODE);
P_SetTarget(&overlay->target, player->mo);
P_SetScale(overlay, (overlay->destscale = FixedMul(3*FRACUNIT/2, player->mo->scale)));
K_FlipFromObject(overlay, player->mo);
S_StartSound(player->mo, sfx_s23c);
//K_SpawnDashDustRelease(player);
@ -6340,8 +6340,8 @@ static void K_KartDrift(player_t *player, boolean onground)
if (player->kartstuff[k_driftboost] < 15)
player->kartstuff[k_driftboost] = 15;
//overlay->color = SKINCOLOR_GOLD;
//overlay->fuse = 8;
overlay->color = SKINCOLOR_GOLD;
overlay->fuse = 8;
}
else if (player->kartstuff[k_driftcharge] >= dsone && player->kartstuff[k_driftcharge] < dstwo)
{
@ -6352,8 +6352,8 @@ static void K_KartDrift(player_t *player, boolean onground)
if (player->kartstuff[k_driftboost] < 20)
player->kartstuff[k_driftboost] = 20;
//overlay->color = SKINCOLOR_KETCHUP;
//overlay->fuse = 16;
overlay->color = SKINCOLOR_KETCHUP;
overlay->fuse = 8;
}
else if (player->kartstuff[k_driftcharge] < dsthree)
{
@ -6364,8 +6364,8 @@ static void K_KartDrift(player_t *player, boolean onground)
if (player->kartstuff[k_driftboost] < 50)
player->kartstuff[k_driftboost] = 50;
//overlay->color = SKINCOLOR_SAPPHIRE;
//overlay->fuse = 32;
overlay->color = SKINCOLOR_SAPPHIRE;
overlay->fuse = 16;
}
else if (player->kartstuff[k_driftcharge] >= dsthree)
{
@ -6376,8 +6376,8 @@ static void K_KartDrift(player_t *player, boolean onground)
if (player->kartstuff[k_driftboost] < 125)
player->kartstuff[k_driftboost] = 125;
//overlay->color = SKINCOLOR_SILVER;
//overlay->fuse = 120;
overlay->color = SKINCOLOR_SILVER;
overlay->fuse = 24;
}
}

View file

@ -8297,15 +8297,24 @@ void P_MobjThinker(mobj_t *mobj)
return;
}
mobj->angle = mobj->target->angle;
P_TeleportMove(mobj, mobj->target->x + P_ReturnThrustX(mobj, mobj->angle+ANGLE_180, mobj->target->radius),
mobj->target->y + P_ReturnThrustY(mobj, mobj->angle+ANGLE_180, mobj->target->radius), mobj->target->z);
P_SetScale(mobj, mobj->target->scale);
//mobj->angle = mobj->target->angle;
{
angle_t angle = R_PointToAngle2(0, 0, mobj->target->momx, mobj->target->momy);
mobj->angle = angle;
P_TeleportMove(mobj, mobj->target->x + P_ReturnThrustX(mobj, angle+ANGLE_180, 4*mobj->target->radius),
mobj->target->y + P_ReturnThrustY(mobj, angle+ANGLE_180, 4*mobj->target->radius), mobj->target->z);
}
P_SetScale(mobj, FixedMul(3*FRACUNIT/2, mobj->target->scale));
mobj->flags2 ^= MF2_DONTDRAW;
#ifdef HWRENDER
mobj->modeltilt = mobj->target->modeltilt;
#endif
if (mobj->fuse <= 8)
mobj->color = SKINCOLOR_KETCHUP;
else if (mobj->fuse <= 16)
mobj->color = SKINCOLOR_SAPPHIRE;
{
player_t *p = NULL;
if (mobj->target->target && mobj->target->target->player)