Update K_KartMoveAnimation to use new spr2 states

This commit is contained in:
Sally Coolatta 2020-08-14 21:42:06 -04:00
parent c665393bd0
commit 9c51086348

View file

@ -1752,44 +1752,46 @@ void K_KartMoveAnimation(player_t *player)
turndir = 1; turndir = 1;
} }
#define SetState(sn) \
if (player->mo->state != &states[sn]) \
P_SetPlayerMobjState(player->mo, sn)
if (!onground) if (!onground)
{ {
// Only use certain frames in the air, to make it look like your tires are spinning fruitlessly! // Only use certain frames in the air, to make it look like your tires are spinning fruitlessly!
if (player->kartstuff[k_drift] > 0) if (player->kartstuff[k_drift] > 0)
{
if (!spinningwheels || !(player->mo->state >= &states[S_KART_DRIFT1_L] && player->mo->state <= &states[S_KART_DRIFT2_L]))
{ {
// Neutral drift // Neutral drift
P_SetPlayerMobjState(player->mo, S_KART_DRIFT1_L); SetState(S_KART_DRIFT_L);
}
} }
else if (player->kartstuff[k_drift] > 0) else if (player->kartstuff[k_drift] > 0)
{
if (!spinningwheels || !(player->mo->state >= &states[S_KART_DRIFT1_R] && player->mo->state <= &states[S_KART_DRIFT2_R]))
{ {
// Neutral drift // Neutral drift
P_SetPlayerMobjState(player->mo, S_KART_DRIFT1_R); SetState(S_KART_DRIFT_R);
}
} }
else else
{ {
if ((turndir == -1) if (turndir == -1)
&& (!spinningwheels || !(player->mo->state >= &states[S_KART_FAST1_R] && player->mo->state <= &states[S_KART_FAST2_R])))
{ {
P_SetPlayerMobjState(player->mo, S_KART_FAST2_R); SetState(S_KART_FAST_R);
} }
else if ((turndir == 1) else if (turndir == 1)
&& (!spinningwheels || !(player->mo->state >= &states[S_KART_FAST1_L] && player->mo->state <= &states[S_KART_FAST2_L])))
{ {
P_SetPlayerMobjState(player->mo, S_KART_FAST2_L); SetState(S_KART_FAST_L);
} }
else if ((turndir == 0) else if (turndir == 0)
&& (!spinningwheels || !(player->mo->state >= &states[S_KART_FAST1] && player->mo->state <= &states[S_KART_FAST2])))
{ {
P_SetPlayerMobjState(player->mo, S_KART_FAST2); SetState(S_KART_FAST);
} }
} }
if (!spinningwheels)
{
// TODO: These should prooobably be different SPR2s
// Just a quick hack to prevent needing to do this :V
player->mo->frame = (player->mo->frames & ~FF_FRAMEMASK);
}
} }
else else
{ {
@ -1797,46 +1799,40 @@ void K_KartMoveAnimation(player_t *player)
{ {
// Drifting LEFT! // Drifting LEFT!
if ((turndir == -1) if (turndir == -1)
&& !(player->mo->state >= &states[S_KART_DRIFT1_L_OUT] && player->mo->state <= &states[S_KART_DRIFT2_L_OUT]))
{ {
// Right -- outwards drift // Right -- outwards drift
P_SetPlayerMobjState(player->mo, S_KART_DRIFT1_L_OUT); SetState(S_KART_DRIFT_L_OUT);
} }
else if ((turndir == 1) else if (turndir == 1)
&& !(player->mo->state >= &states[S_KART_DRIFT1_L_IN] && player->mo->state <= &states[S_KART_DRIFT4_L_IN]))
{ {
// Left -- inwards drift // Left -- inwards drift
P_SetPlayerMobjState(player->mo, S_KART_DRIFT1_L_IN); SetState(S_KART_DRIFT_L_IN);
} }
else if ((turndir == 0) else
&& !(player->mo->state >= &states[S_KART_DRIFT1_L] && player->mo->state <= &states[S_KART_DRIFT2_L]))
{ {
// Neutral drift // Neutral drift
P_SetPlayerMobjState(player->mo, S_KART_DRIFT1_L); SetState(S_KART_DRIFT_L);
} }
} }
else if (player->kartstuff[k_drift] < 0) else if (player->kartstuff[k_drift] < 0)
{ {
// Drifting RIGHT! // Drifting RIGHT!
if ((turndir == -1) if (turndir == -1)
&& !(player->mo->state >= &states[S_KART_DRIFT1_R_IN] && player->mo->state <= &states[S_KART_DRIFT4_R_IN]))
{ {
// Right -- inwards drift // Right -- inwards drift
P_SetPlayerMobjState(player->mo, S_KART_DRIFT1_R_IN); SetState(S_KART_DRIFT_R_IN);
} }
else if ((turndir == 1) else if (turndir == 1)
&& !(player->mo->state >= &states[S_KART_DRIFT1_R_OUT] && player->mo->state <= &states[S_KART_DRIFT2_R_OUT]))
{ {
// Left -- outwards drift // Left -- outwards drift
P_SetPlayerMobjState(player->mo, S_KART_DRIFT1_R_OUT); SetState(S_KART_DRIFT_R_OUT);
} }
else if ((turndir == 0) else
&& !(player->mo->state >= &states[S_KART_DRIFT1_R] && player->mo->state <= &states[S_KART_DRIFT2_R]))
{ {
// Neutral drift // Neutral drift
P_SetPlayerMobjState(player->mo, S_KART_DRIFT1_R); SetState(S_KART_DRIFT_R);
} }
} }
else else
@ -1845,20 +1841,17 @@ void K_KartMoveAnimation(player_t *player)
{ {
// Going REAL fast! // Going REAL fast!
if ((turndir == -1) if (turndir == -1)
&& !(player->mo->state >= &states[S_KART_FAST1_R] && player->mo->state <= &states[S_KART_FAST2_R]))
{ {
P_SetPlayerMobjState(player->mo, S_KART_FAST1_R); SetState(S_KART_FAST_R);
} }
else if ((turndir == 1) else if (turndir == 1)
&& !(player->mo->state >= &states[S_KART_FAST1_L] && player->mo->state <= &states[S_KART_FAST2_L]))
{ {
P_SetPlayerMobjState(player->mo, S_KART_FAST1_L); SetState(S_KART_FAST_L);
} }
else if ((turndir == 0) else
&& !(player->mo->state >= &states[S_KART_FAST1] && player->mo->state <= &states[S_KART_FAST2]))
{ {
P_SetPlayerMobjState(player->mo, S_KART_FAST1); SetState(S_KART_FAST);
} }
} }
else else
@ -1867,46 +1860,42 @@ void K_KartMoveAnimation(player_t *player)
{ {
// Drivin' slow. // Drivin' slow.
if ((turndir == -1) if (turndir == -1)
&& !(player->mo->state >= &states[S_KART_SLOW1_R] && player->mo->state <= &states[S_KART_SLOW2_R]))
{ {
P_SetPlayerMobjState(player->mo, S_KART_SLOW1_R); SetState(S_KART_SLOW_R);
} }
else if ((turndir == 1) else if (turndir == 1)
&& !(player->mo->state >= &states[S_KART_SLOW1_L] && player->mo->state <= &states[S_KART_SLOW2_L]))
{ {
P_SetPlayerMobjState(player->mo, S_KART_SLOW1_L); SetState(S_KART_SLOW_L);
} }
else if ((turndir == 0) else
&& !(player->mo->state >= &states[S_KART_SLOW1] && player->mo->state <= &states[S_KART_SLOW2]))
{ {
P_SetPlayerMobjState(player->mo, S_KART_SLOW1); SetState(S_KART_SLOW);
} }
} }
else else
{ {
// Completely still. // Completely still.
if ((turndir == -1) if (turndir == -1)
&& !(player->mo->state >= &states[S_KART_STILL1_R] && player->mo->state <= &states[S_KART_STILL2_R]))
{ {
P_SetPlayerMobjState(player->mo, S_KART_STILL1_R); SetState(S_KART_STILL_R);
} }
else if ((turndir == 1) else if (turndir == 1)
&& !(player->mo->state >= &states[S_KART_STILL1_L] && player->mo->state <= &states[S_KART_STILL2_L]))
{ {
P_SetPlayerMobjState(player->mo, S_KART_STILL1_L); SetState(S_KART_STILL_L);
} }
else if ((turndir == 0) else
&& !(player->mo->state >= &states[S_KART_STILL1] && player->mo->state <= &states[S_KART_STILL2]))
{ {
P_SetPlayerMobjState(player->mo, S_KART_STILL1); SetState(S_KART_STILL);
} }
} }
} }
} }
} }
#undef SetState
// Update lastspeed value -- we use to display slow driving frames instead of fast driving when slowing down. // Update lastspeed value -- we use to display slow driving frames instead of fast driving when slowing down.
player->lastspeed = player->speed; player->lastspeed = player->speed;
} }