mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Use lookback frames for sliptides
This commit is contained in:
parent
526b3c3b57
commit
1e97e92be0
3 changed files with 16 additions and 14 deletions
|
|
@ -406,4 +406,7 @@ unset_bit_array (bitarray_t * const array, const int value)
|
||||||
typedef UINT64 precise_t;
|
typedef UINT64 precise_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define intsign(n) \
|
||||||
|
((n) < 0 ? -1 : (n) > 0 ? 1 : 0)
|
||||||
|
|
||||||
#endif //__DOOMTYPE__
|
#endif //__DOOMTYPE__
|
||||||
|
|
|
||||||
23
src/k_kart.c
23
src/k_kart.c
|
|
@ -1981,22 +1981,25 @@ void K_KartMoveAnimation(player_t *player)
|
||||||
turndir = 1;
|
turndir = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use drift frames when sliptiding
|
|
||||||
if (player->aizDriftTurn)
|
|
||||||
{
|
|
||||||
drift = (player->kartstuff[k_aizdriftstrat]);
|
|
||||||
|
|
||||||
if (drift)
|
|
||||||
turndir = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (lookback == true && drift == 0)
|
if (lookback == true && drift == 0)
|
||||||
{
|
{
|
||||||
// Prioritize looking back frames over turning
|
// Prioritize looking back frames over turning
|
||||||
turndir = 0;
|
turndir = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (turndir == 0 && drift == 0)
|
// Sliptides: drift -> lookback frames
|
||||||
|
if (abs(player->aizDriftTurn) >= ANGLE_90)
|
||||||
|
{
|
||||||
|
destGlanceDir = -(2*intsign(player->aizDriftTurn));
|
||||||
|
player->glanceDir = destGlanceDir;
|
||||||
|
drift = turndir = 0;
|
||||||
|
}
|
||||||
|
else if (player->aizDriftTurn)
|
||||||
|
{
|
||||||
|
drift = intsign(player->aizDriftTurn);
|
||||||
|
turndir = 0;
|
||||||
|
}
|
||||||
|
else if (turndir == 0 && drift == 0)
|
||||||
{
|
{
|
||||||
// Only try glancing if you're driving straight.
|
// Only try glancing if you're driving straight.
|
||||||
// This avoids all-players loops when we don't need it.
|
// This avoids all-players loops when we don't need it.
|
||||||
|
|
|
||||||
|
|
@ -936,10 +936,6 @@ void R_ApplyViewMorph(int s)
|
||||||
width*vid.bpp, height, width*vid.bpp, vid.width);
|
width*vid.bpp, height, width*vid.bpp, vid.width);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int intsign(int n) {
|
|
||||||
return n < 0 ? -1 : n > 0 ? 1 : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
angle_t R_ViewRollAngle(const player_t *player)
|
angle_t R_ViewRollAngle(const player_t *player)
|
||||||
{
|
{
|
||||||
angle_t roll = player->viewrollangle;
|
angle_t roll = player->viewrollangle;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue