Cleanup code and reverse gravity

This commit is contained in:
James R 2020-07-19 22:18:56 -07:00
parent 37aedad288
commit 5efc34e43b

View file

@ -1657,20 +1657,21 @@ void K_SpawnDriftBoostClip(player_t *player)
{ {
mobj_t *clip; mobj_t *clip;
fixed_t scale = 115*FRACUNIT/100; fixed_t scale = 115*FRACUNIT/100;
fixed_t z;
clip = P_SpawnMobj( if (( player->mo->eflags & MFE_VERTICALFLIP ))
player->mo->x, z = player->mo->z;
player->mo->y, else
player->mo->z + player->mo->height, z = player->mo->z + player->mo->height;
MT_DRIFTCLIP
); clip = P_SpawnMobj(player->mo->x, player->mo->y, z, MT_DRIFTCLIP);
P_SetTarget(&clip->target, player->mo); P_SetTarget(&clip->target, player->mo);
P_SetScale(clip, ( clip->destscale = FixedMul(scale, player->mo->scale) )); P_SetScale(clip, ( clip->destscale = FixedMul(scale, player->mo->scale) ));
K_MatchGenericExtraFlags(clip, player->mo); K_MatchGenericExtraFlags(clip, player->mo);
clip->fuse = 105; clip->fuse = 105;
clip->momz = 7 * clip->scale; clip->momz = 7 * P_MobjFlip(clip) * clip->scale;
P_InstaThrust(clip, player->mo->angle + P_InstaThrust(clip, player->mo->angle +
K_RandomFlip(P_RandomRange(FRACUNIT/2, FRACUNIT)), K_RandomFlip(P_RandomRange(FRACUNIT/2, FRACUNIT)),
@ -6373,6 +6374,43 @@ INT32 K_GetKartDriftSparkValue(player_t *player)
return (26*4 + kartspeed*2 + (9 - player->kartweight))*8; return (26*4 + kartspeed*2 + (9 - player->kartweight))*8;
} }
/*
Stage 1: red sparks
Stage 2: blue sparks
Stage 3: big large rainbow sparks
*/
static void K_SpawnDriftBoostExplosion(player_t *player, int stage)
{
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);
switch (stage)
{
case 1:
overlay->color = SKINCOLOR_KETCHUP;
overlay->fuse = 16;
break;
case 2:
overlay->color = SKINCOLOR_SAPPHIRE;
overlay->fuse = 32;
S_StartSound(player->mo, sfx_kc5b);
break;
case 3:
overlay->color = SKINCOLOR_SILVER;
overlay->fuse = 120;
S_StartSound(player->mo, sfx_kc5b);
S_StartSound(player->mo, sfx_s3kc4l);
break;
}
}
static void K_KartDrift(player_t *player, boolean onground) static void K_KartDrift(player_t *player, boolean onground)
{ {
fixed_t minspeed = (10 * player->mo->scale); fixed_t minspeed = (10 * player->mo->scale);
@ -6389,10 +6427,6 @@ static void K_KartDrift(player_t *player, boolean onground)
if (player->kartstuff[k_driftcharge] < 0 || player->kartstuff[k_driftcharge] >= dsone) if (player->kartstuff[k_driftcharge] < 0 || player->kartstuff[k_driftcharge] >= dsone)
{ {
angle_t pushdir = R_PointToAngle2(0, 0, player->mo->momx, player->mo->momy); 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);
S_StartSound(player->mo, sfx_s23c); S_StartSound(player->mo, sfx_s23c);
//K_SpawnDashDustRelease(player); //K_SpawnDashDustRelease(player);
@ -6405,9 +6439,6 @@ static void K_KartDrift(player_t *player, boolean onground)
if (player->kartstuff[k_driftboost] < 15) if (player->kartstuff[k_driftboost] < 15)
player->kartstuff[k_driftboost] = 15; player->kartstuff[k_driftboost] = 15;
overlay->color = SKINCOLOR_GOLD;
overlay->fuse = 10;
} }
else if (player->kartstuff[k_driftcharge] >= dsone && player->kartstuff[k_driftcharge] < dstwo) else if (player->kartstuff[k_driftcharge] >= dsone && player->kartstuff[k_driftcharge] < dstwo)
{ {
@ -6418,8 +6449,7 @@ static void K_KartDrift(player_t *player, boolean onground)
if (player->kartstuff[k_driftboost] < 20) if (player->kartstuff[k_driftboost] < 20)
player->kartstuff[k_driftboost] = 20; player->kartstuff[k_driftboost] = 20;
overlay->color = SKINCOLOR_KETCHUP; K_SpawnDriftBoostExplosion(player, 1);
overlay->fuse = 16;
} }
else if (player->kartstuff[k_driftcharge] < dsthree) else if (player->kartstuff[k_driftcharge] < dsthree)
{ {
@ -6430,10 +6460,7 @@ static void K_KartDrift(player_t *player, boolean onground)
if (player->kartstuff[k_driftboost] < 50) if (player->kartstuff[k_driftboost] < 50)
player->kartstuff[k_driftboost] = 50; player->kartstuff[k_driftboost] = 50;
overlay->color = SKINCOLOR_SAPPHIRE; K_SpawnDriftBoostExplosion(player, 2);
overlay->fuse = 32;
S_StartSound(player->mo, sfx_kc5b);
} }
else if (player->kartstuff[k_driftcharge] >= dsthree) else if (player->kartstuff[k_driftcharge] >= dsthree)
{ {
@ -6444,8 +6471,7 @@ static void K_KartDrift(player_t *player, boolean onground)
if (player->kartstuff[k_driftboost] < 125) if (player->kartstuff[k_driftboost] < 125)
player->kartstuff[k_driftboost] = 125; player->kartstuff[k_driftboost] = 125;
overlay->color = SKINCOLOR_SILVER; K_SpawnDriftBoostExplosion(player, 3);
overlay->fuse = 120;
} }
} }