mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 20:41:46 +00:00
Switch red & blue sparks, add yellow sparks, add big spark sprites
This commit is contained in:
parent
b3a1bb6064
commit
c6f3ac651e
5 changed files with 144 additions and 60 deletions
|
|
@ -6347,6 +6347,8 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
||||||
"S_DRIFTSPARK_B1",
|
"S_DRIFTSPARK_B1",
|
||||||
"S_DRIFTSPARK_C1",
|
"S_DRIFTSPARK_C1",
|
||||||
"S_DRIFTSPARK_C2",
|
"S_DRIFTSPARK_C2",
|
||||||
|
"S_DRIFTSPARK_D1",
|
||||||
|
"S_DRIFTSPARK_D2",
|
||||||
|
|
||||||
// Brake drift sparks
|
// Brake drift sparks
|
||||||
"S_BRAKEDRIFT",
|
"S_BRAKEDRIFT",
|
||||||
|
|
|
||||||
|
|
@ -2587,6 +2587,9 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_DRIF, FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_DRIFTSPARK_C2}, // S_DRIFTSPARK_C1
|
{SPR_DRIF, FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_DRIFTSPARK_C2}, // S_DRIFTSPARK_C1
|
||||||
{SPR_DRIF, FF_FULLBRIGHT|FF_TRANS20, 1, {NULL}, 0, 0, S_DRIFTSPARK_A3}, // S_DRIFTSPARK_C2 (Loop back to A3)
|
{SPR_DRIF, FF_FULLBRIGHT|FF_TRANS20, 1, {NULL}, 0, 0, S_DRIFTSPARK_A3}, // S_DRIFTSPARK_C2 (Loop back to A3)
|
||||||
|
|
||||||
|
{SPR_DRIF, FF_FULLBRIGHT|3, 2, {NULL}, 0, 0, S_DRIFTSPARK_D2}, // S_DRIFTSPARK_D1
|
||||||
|
{SPR_DRIF, FF_FULLBRIGHT|2, 1, {NULL}, 0, 0, S_DRIFTSPARK_A2}, // S_DRIFTSPARK_D2 (Loop back to A2)
|
||||||
|
|
||||||
{SPR_BDRF, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_ANIMATE, -1, {NULL}, 5, 2, S_BRAKEDRIFT}, // S_BRAKEDRIFT
|
{SPR_BDRF, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_ANIMATE, -1, {NULL}, 5, 2, S_BRAKEDRIFT}, // S_BRAKEDRIFT
|
||||||
|
|
||||||
{SPR_DUST, 0, 3, {NULL}, 0, 0, S_DRIFTDUST2}, // S_DRIFTDUST1
|
{SPR_DUST, 0, 3, {NULL}, 0, 0, S_DRIFTDUST2}, // S_DRIFTDUST1
|
||||||
|
|
|
||||||
|
|
@ -3236,6 +3236,8 @@ typedef enum state
|
||||||
S_DRIFTSPARK_B1,
|
S_DRIFTSPARK_B1,
|
||||||
S_DRIFTSPARK_C1,
|
S_DRIFTSPARK_C1,
|
||||||
S_DRIFTSPARK_C2,
|
S_DRIFTSPARK_C2,
|
||||||
|
S_DRIFTSPARK_D1,
|
||||||
|
S_DRIFTSPARK_D2,
|
||||||
|
|
||||||
// Brake drift sparks
|
// Brake drift sparks
|
||||||
S_BRAKEDRIFT,
|
S_BRAKEDRIFT,
|
||||||
|
|
|
||||||
191
src/k_kart.c
191
src/k_kart.c
|
|
@ -3151,13 +3151,17 @@ static void K_SpawnDriftSparks(player_t *player)
|
||||||
if (!P_IsObjectOnGround(player->mo))
|
if (!P_IsObjectOnGround(player->mo))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!player->kartstuff[k_drift] || player->kartstuff[k_driftcharge] < K_GetKartDriftSparkValue(player))
|
if (!player->kartstuff[k_drift]
|
||||||
|
|| (player->kartstuff[k_driftcharge] < K_GetKartDriftSparkValue(player) && !(player->kartstuff[k_driftcharge] < 0)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
travelangle = player->mo->angle-(ANGLE_45/5)*player->kartstuff[k_drift];
|
travelangle = player->mo->angle-(ANGLE_45/5)*player->kartstuff[k_drift];
|
||||||
|
|
||||||
for (i = 0; i < 2; i++)
|
for (i = 0; i < 2; i++)
|
||||||
{
|
{
|
||||||
|
SINT8 size = 1;
|
||||||
|
UINT8 trail = 0;
|
||||||
|
|
||||||
newx = player->mo->x + P_ReturnThrustX(player->mo, travelangle + ((i&1) ? -1 : 1)*ANGLE_135, FixedMul(32*FRACUNIT, player->mo->scale));
|
newx = player->mo->x + P_ReturnThrustX(player->mo, travelangle + ((i&1) ? -1 : 1)*ANGLE_135, FixedMul(32*FRACUNIT, player->mo->scale));
|
||||||
newy = player->mo->y + P_ReturnThrustY(player->mo, travelangle + ((i&1) ? -1 : 1)*ANGLE_135, FixedMul(32*FRACUNIT, player->mo->scale));
|
newy = player->mo->y + P_ReturnThrustY(player->mo, travelangle + ((i&1) ? -1 : 1)*ANGLE_135, FixedMul(32*FRACUNIT, player->mo->scale));
|
||||||
spark = P_SpawnMobj(newx, newy, player->mo->z, MT_DRIFTSPARK);
|
spark = P_SpawnMobj(newx, newy, player->mo->z, MT_DRIFTSPARK);
|
||||||
|
|
@ -3171,20 +3175,62 @@ static void K_SpawnDriftSparks(player_t *player)
|
||||||
spark->momy = player->mo->momy/2;
|
spark->momy = player->mo->momy/2;
|
||||||
//spark->momz = player->mo->momz/2;
|
//spark->momz = player->mo->momz/2;
|
||||||
|
|
||||||
if (player->kartstuff[k_driftcharge] >= K_GetKartDriftSparkValue(player)*4)
|
if (player->kartstuff[k_driftcharge] < 0)
|
||||||
{
|
{
|
||||||
spark->color = (UINT8)(1 + (leveltime % (MAXSKINCOLORS-1)));
|
// Stage 0: Yellow
|
||||||
|
spark->color = SKINCOLOR_GOLD;
|
||||||
|
size = 0;
|
||||||
|
}
|
||||||
|
else if (player->kartstuff[k_driftcharge] >= K_GetKartDriftSparkValue(player)*4)
|
||||||
|
{
|
||||||
|
// Stage 3: Rainbow
|
||||||
|
size = 2;
|
||||||
|
|
||||||
|
if (player->kartstuff[k_driftcharge] <= (K_GetKartDriftSparkValue(player)*4)+(32*3))
|
||||||
|
{
|
||||||
|
// transition
|
||||||
|
spark->color = SKINCOLOR_SILVER;
|
||||||
|
P_SetScale(spark, (spark->destscale = spark->scale*3/2));
|
||||||
|
trail = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
spark->color = (UINT8)(1 + (leveltime % (MAXSKINCOLORS-1)));
|
||||||
|
spark->colorized = true;
|
||||||
|
trail = 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (player->kartstuff[k_driftcharge] >= K_GetKartDriftSparkValue(player)*2)
|
else if (player->kartstuff[k_driftcharge] >= K_GetKartDriftSparkValue(player)*2)
|
||||||
{
|
{
|
||||||
if (player->kartstuff[k_driftcharge] <= (K_GetKartDriftSparkValue(player)*2)+(24*3))
|
// Stage 2: Blue
|
||||||
spark->color = SKINCOLOR_RASPBERRY; // transition
|
size = 2;
|
||||||
|
|
||||||
|
if (player->kartstuff[k_driftcharge] <= (K_GetKartDriftSparkValue(player)*2)+(32*3))
|
||||||
|
{
|
||||||
|
// transition
|
||||||
|
spark->color = SKINCOLOR_PURPLE;
|
||||||
|
P_SetScale(spark, (spark->destscale = spark->scale*3/2));
|
||||||
|
}
|
||||||
else
|
else
|
||||||
spark->color = SKINCOLOR_KETCHUP;
|
{
|
||||||
|
spark->color = SKINCOLOR_SAPPHIRE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
spark->color = SKINCOLOR_SAPPHIRE;
|
// Stage 1: Red
|
||||||
|
size = 1;
|
||||||
|
|
||||||
|
if (player->kartstuff[k_driftcharge] <= (K_GetKartDriftSparkValue(player))+(32*3))
|
||||||
|
{
|
||||||
|
// transition
|
||||||
|
spark->color = SKINCOLOR_RASPBERRY;
|
||||||
|
P_SetScale(spark, (spark->destscale = spark->scale*2));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
spark->color = SKINCOLOR_KETCHUP;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((player->kartstuff[k_drift] > 0 && player->cmd.driftturn > 0) // Inward drifts
|
if ((player->kartstuff[k_drift] > 0 && player->cmd.driftturn > 0) // Inward drifts
|
||||||
|
|
@ -3192,22 +3238,40 @@ static void K_SpawnDriftSparks(player_t *player)
|
||||||
{
|
{
|
||||||
if ((player->kartstuff[k_drift] < 0 && (i & 1))
|
if ((player->kartstuff[k_drift] < 0 && (i & 1))
|
||||||
|| (player->kartstuff[k_drift] > 0 && !(i & 1)))
|
|| (player->kartstuff[k_drift] > 0 && !(i & 1)))
|
||||||
P_SetMobjState(spark, S_DRIFTSPARK_A1);
|
{
|
||||||
|
size++;
|
||||||
|
}
|
||||||
else if ((player->kartstuff[k_drift] < 0 && !(i & 1))
|
else if ((player->kartstuff[k_drift] < 0 && !(i & 1))
|
||||||
|| (player->kartstuff[k_drift] > 0 && (i & 1)))
|
|| (player->kartstuff[k_drift] > 0 && (i & 1)))
|
||||||
P_SetMobjState(spark, S_DRIFTSPARK_C1);
|
{
|
||||||
|
size--;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if ((player->kartstuff[k_drift] > 0 && player->cmd.driftturn < 0) // Outward drifts
|
else if ((player->kartstuff[k_drift] > 0 && player->cmd.driftturn < 0) // Outward drifts
|
||||||
|| (player->kartstuff[k_drift] < 0 && player->cmd.driftturn > 0))
|
|| (player->kartstuff[k_drift] < 0 && player->cmd.driftturn > 0))
|
||||||
{
|
{
|
||||||
if ((player->kartstuff[k_drift] < 0 && (i & 1))
|
if ((player->kartstuff[k_drift] < 0 && (i & 1))
|
||||||
|| (player->kartstuff[k_drift] > 0 && !(i & 1)))
|
|| (player->kartstuff[k_drift] > 0 && !(i & 1)))
|
||||||
P_SetMobjState(spark, S_DRIFTSPARK_C1);
|
{
|
||||||
|
size--;
|
||||||
|
}
|
||||||
else if ((player->kartstuff[k_drift] < 0 && !(i & 1))
|
else if ((player->kartstuff[k_drift] < 0 && !(i & 1))
|
||||||
|| (player->kartstuff[k_drift] > 0 && (i & 1)))
|
|| (player->kartstuff[k_drift] > 0 && (i & 1)))
|
||||||
P_SetMobjState(spark, S_DRIFTSPARK_A1);
|
{
|
||||||
|
size++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (size == 2)
|
||||||
|
P_SetMobjState(spark, S_DRIFTSPARK_A1);
|
||||||
|
else if (size < 1)
|
||||||
|
P_SetMobjState(spark, S_DRIFTSPARK_C1);
|
||||||
|
else if (size > 2)
|
||||||
|
P_SetMobjState(spark, S_DRIFTSPARK_D1);
|
||||||
|
|
||||||
|
if (trail > 0)
|
||||||
|
spark->tics += trail;
|
||||||
|
|
||||||
K_MatchGenericExtraFlags(spark, player->mo);
|
K_MatchGenericExtraFlags(spark, player->mo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -5721,42 +5785,40 @@ static void K_KartDrift(player_t *player, boolean onground)
|
||||||
// Drift Release (Moved here so you can't "chain" drifts)
|
// Drift Release (Moved here so you can't "chain" drifts)
|
||||||
if ((player->kartstuff[k_drift] != -5 && player->kartstuff[k_drift] != 5)
|
if ((player->kartstuff[k_drift] != -5 && player->kartstuff[k_drift] != 5)
|
||||||
// || (player->kartstuff[k_drift] >= 1 && player->kartstuff[k_turndir] != 1) || (player->kartstuff[k_drift] <= -1 && player->kartstuff[k_turndir] != -1))
|
// || (player->kartstuff[k_drift] >= 1 && player->kartstuff[k_turndir] != 1) || (player->kartstuff[k_drift] <= -1 && player->kartstuff[k_turndir] != -1))
|
||||||
&& player->kartstuff[k_driftcharge] < dsone
|
|
||||||
&& onground)
|
&& onground)
|
||||||
{
|
{
|
||||||
player->kartstuff[k_driftcharge] = 0;
|
if (player->kartstuff[k_driftcharge] < 0 || player->kartstuff[k_driftcharge] >= dsone)
|
||||||
}
|
{
|
||||||
else if ((player->kartstuff[k_drift] != -5 && player->kartstuff[k_drift] != 5)
|
S_StartSound(player->mo, sfx_s23c);
|
||||||
// || (player->kartstuff[k_drift] >= 1 && player->kartstuff[k_turndir] != 1) || (player->kartstuff[k_drift] <= -1 && player->kartstuff[k_turndir] != -1))
|
//K_SpawnDashDustRelease(player);
|
||||||
&& (player->kartstuff[k_driftcharge] >= dsone && player->kartstuff[k_driftcharge] < dstwo)
|
|
||||||
&& onground)
|
if (player->kartstuff[k_driftcharge] < 0)
|
||||||
{
|
{
|
||||||
if (player->kartstuff[k_driftboost] < 20)
|
// Stage 0: Yellow sparks
|
||||||
player->kartstuff[k_driftboost] = 20;
|
if (player->kartstuff[k_driftboost] < 15)
|
||||||
S_StartSound(player->mo, sfx_s23c);
|
player->kartstuff[k_driftboost] = 15;
|
||||||
//K_SpawnDashDustRelease(player);
|
}
|
||||||
player->kartstuff[k_driftcharge] = 0;
|
else if (player->kartstuff[k_driftcharge] >= dsone && player->kartstuff[k_driftcharge] < dstwo)
|
||||||
}
|
{
|
||||||
else if ((player->kartstuff[k_drift] != -5 && player->kartstuff[k_drift] != 5)
|
// Stage 1: Red sparks
|
||||||
// || (player->kartstuff[k_drift] >= 1 && player->kartstuff[k_turndir] != 1) || (player->kartstuff[k_drift] <= -1 && player->kartstuff[k_turndir] != -1))
|
if (player->kartstuff[k_driftboost] < 20)
|
||||||
&& player->kartstuff[k_driftcharge] < dsthree
|
player->kartstuff[k_driftboost] = 20;
|
||||||
&& onground)
|
}
|
||||||
{
|
else if (player->kartstuff[k_driftcharge] < dsthree)
|
||||||
if (player->kartstuff[k_driftboost] < 50)
|
{
|
||||||
player->kartstuff[k_driftboost] = 50;
|
// Stage 2: Blue sparks
|
||||||
S_StartSound(player->mo, sfx_s23c);
|
if (player->kartstuff[k_driftboost] < 50)
|
||||||
//K_SpawnDashDustRelease(player);
|
player->kartstuff[k_driftboost] = 50;
|
||||||
player->kartstuff[k_driftcharge] = 0;
|
}
|
||||||
}
|
else if (player->kartstuff[k_driftcharge] >= dsthree)
|
||||||
else if ((player->kartstuff[k_drift] != -5 && player->kartstuff[k_drift] != 5)
|
{
|
||||||
// || (player->kartstuff[k_drift] >= 1 && player->kartstuff[k_turndir] != 1) || (player->kartstuff[k_drift] <= -1 && player->kartstuff[k_turndir] != -1))
|
// Stage 3: Rainbow sparks
|
||||||
&& player->kartstuff[k_driftcharge] >= dsthree
|
if (player->kartstuff[k_driftboost] < 125)
|
||||||
&& onground)
|
player->kartstuff[k_driftboost] = 125;
|
||||||
{
|
}
|
||||||
if (player->kartstuff[k_driftboost] < 125)
|
}
|
||||||
player->kartstuff[k_driftboost] = 125;
|
|
||||||
S_StartSound(player->mo, sfx_s23c);
|
// Remove charge
|
||||||
//K_SpawnDashDustRelease(player);
|
|
||||||
player->kartstuff[k_driftcharge] = 0;
|
player->kartstuff[k_driftcharge] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -5792,10 +5854,16 @@ static void K_KartDrift(player_t *player, boolean onground)
|
||||||
player->kartstuff[k_driftend] = 0;
|
player->kartstuff[k_driftend] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (player->kartstuff[k_spinouttimer] > 0)
|
||||||
// Incease/decrease the drift value to continue drifting in that direction
|
|
||||||
if (player->kartstuff[k_spinouttimer] == 0 && player->kartstuff[k_jmp] == 1 && onground && player->kartstuff[k_drift] != 0)
|
|
||||||
{
|
{
|
||||||
|
// Stop drifting
|
||||||
|
player->kartstuff[k_drift] = player->kartstuff[k_driftcharge] = 0;
|
||||||
|
player->kartstuff[k_aizdriftstrat] = player->kartstuff[k_brakedrift] = 0;
|
||||||
|
player->kartstuff[k_getsparks] = 0;
|
||||||
|
}
|
||||||
|
else if (player->kartstuff[k_jmp] == 1 && onground && player->kartstuff[k_drift] != 0)
|
||||||
|
{
|
||||||
|
// Incease/decrease the drift value to continue drifting in that direction
|
||||||
fixed_t driftadditive = 24;
|
fixed_t driftadditive = 24;
|
||||||
|
|
||||||
if (player->kartstuff[k_drift] >= 1) // Drifting to the left
|
if (player->kartstuff[k_drift] >= 1) // Drifting to the left
|
||||||
|
|
@ -5828,11 +5896,26 @@ static void K_KartDrift(player_t *player, boolean onground)
|
||||||
&& !player->kartstuff[k_hyudorotimer]
|
&& !player->kartstuff[k_hyudorotimer]
|
||||||
&& !EITHERSNEAKER(player)))
|
&& !EITHERSNEAKER(player)))
|
||||||
driftadditive = 0;
|
driftadditive = 0;
|
||||||
if (player->speed > minspeed*2)
|
|
||||||
|
if (player->speed >= minspeed*2)
|
||||||
|
{
|
||||||
player->kartstuff[k_getsparks] = 1;
|
player->kartstuff[k_getsparks] = 1;
|
||||||
|
|
||||||
|
if (player->kartstuff[k_driftcharge] <= -1)
|
||||||
|
player->kartstuff[k_driftcharge] = dsone;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player->kartstuff[k_getsparks] = 0;
|
||||||
|
driftadditive = 0;
|
||||||
|
|
||||||
|
if (player->kartstuff[k_driftcharge] >= dsone)
|
||||||
|
player->kartstuff[k_driftcharge] = -1;
|
||||||
|
}
|
||||||
|
|
||||||
// This spawns the drift sparks
|
// This spawns the drift sparks
|
||||||
if (player->kartstuff[k_driftcharge] + driftadditive >= dsone)
|
if ((player->kartstuff[k_driftcharge] + driftadditive >= dsone)
|
||||||
|
|| (player->kartstuff[k_driftcharge] < 0))
|
||||||
K_SpawnDriftSparks(player);
|
K_SpawnDriftSparks(player);
|
||||||
|
|
||||||
// Sound whenever you get a different tier of sparks
|
// Sound whenever you get a different tier of sparks
|
||||||
|
|
@ -5849,14 +5932,6 @@ static void K_KartDrift(player_t *player, boolean onground)
|
||||||
player->kartstuff[k_driftend] = 0;
|
player->kartstuff[k_driftend] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stop drifting
|
|
||||||
if (player->kartstuff[k_spinouttimer] > 0 || player->speed < minspeed)
|
|
||||||
{
|
|
||||||
player->kartstuff[k_drift] = player->kartstuff[k_driftcharge] = 0;
|
|
||||||
player->kartstuff[k_aizdriftstrat] = player->kartstuff[k_brakedrift] = 0;
|
|
||||||
player->kartstuff[k_getsparks] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((!EITHERSNEAKER(player))
|
if ((!EITHERSNEAKER(player))
|
||||||
|| (!player->cmd.driftturn)
|
|| (!player->cmd.driftturn)
|
||||||
|| (!player->kartstuff[k_aizdriftstrat])
|
|| (!player->kartstuff[k_aizdriftstrat])
|
||||||
|
|
|
||||||
|
|
@ -8378,9 +8378,11 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
if (mobj->target->player->kartstuff[k_driftcharge] >= K_GetKartDriftSparkValue(mobj->target->player)*4)
|
if (mobj->target->player->kartstuff[k_driftcharge] >= K_GetKartDriftSparkValue(mobj->target->player)*4)
|
||||||
mobj->color = (UINT8)(1 + (leveltime % (MAXSKINCOLORS-1)));
|
mobj->color = (UINT8)(1 + (leveltime % (MAXSKINCOLORS-1)));
|
||||||
else if (mobj->target->player->kartstuff[k_driftcharge] >= K_GetKartDriftSparkValue(mobj->target->player)*2)
|
else if (mobj->target->player->kartstuff[k_driftcharge] >= K_GetKartDriftSparkValue(mobj->target->player)*2)
|
||||||
mobj->color = SKINCOLOR_KETCHUP;
|
|
||||||
else if (mobj->target->player->kartstuff[k_driftcharge] >= K_GetKartDriftSparkValue(mobj->target->player))
|
|
||||||
mobj->color = SKINCOLOR_SAPPHIRE;
|
mobj->color = SKINCOLOR_SAPPHIRE;
|
||||||
|
else if (mobj->target->player->kartstuff[k_driftcharge] >= K_GetKartDriftSparkValue(mobj->target->player))
|
||||||
|
mobj->color = SKINCOLOR_KETCHUP;
|
||||||
|
else if (mobj->target->player->kartstuff[k_driftcharge] < 0)
|
||||||
|
mobj->color = SKINCOLOR_GOLD;
|
||||||
else
|
else
|
||||||
mobj->color = SKINCOLOR_SILVER;
|
mobj->color = SKINCOLOR_SILVER;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue