mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Tweak camera tilting
- Grow divisor with delta. Reduce divisor base from 32 to 17. This makes small changes in tilt snappier, while larger ones ease in. - Added tilting during quakes is subtler.
This commit is contained in:
parent
1eca138b21
commit
c74e02d9dc
1 changed files with 14 additions and 3 deletions
17
src/p_user.c
17
src/p_user.c
|
|
@ -4251,7 +4251,7 @@ Quaketilt (player_t *player)
|
||||||
INT32 delta = (INT32)( player->mo->angle - moma );
|
INT32 delta = (INT32)( player->mo->angle - moma );
|
||||||
fixed_t speed;
|
fixed_t speed;
|
||||||
|
|
||||||
boolean sliptiding =
|
boolean sliptiding = K_Sliptiding(player);
|
||||||
(
|
(
|
||||||
player->kartstuff[k_aizdriftstrat] != 0 &&
|
player->kartstuff[k_aizdriftstrat] != 0 &&
|
||||||
player->kartstuff[k_drift] == 0
|
player->kartstuff[k_drift] == 0
|
||||||
|
|
@ -4293,12 +4293,18 @@ Quaketilt (player_t *player)
|
||||||
return moma;
|
return moma;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int intsign(int n) {
|
||||||
|
return n < 0 ? -1 : n > 0 ? 1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
DoABarrelRoll (player_t *player)
|
DoABarrelRoll (player_t *player)
|
||||||
{
|
{
|
||||||
angle_t slope;
|
angle_t slope;
|
||||||
angle_t delta;
|
angle_t delta;
|
||||||
|
|
||||||
|
fixed_t smoothing;
|
||||||
|
|
||||||
if (player->exiting)
|
if (player->exiting)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
@ -4325,7 +4331,9 @@ DoABarrelRoll (player_t *player)
|
||||||
|
|
||||||
slope -= Quaketilt(player);
|
slope -= Quaketilt(player);
|
||||||
|
|
||||||
delta = (INT32)( slope - player->tilt )/ 32;
|
delta = slope - player->tilt;
|
||||||
|
smoothing = FixedDiv(abs((INT32)delta), ANG15);
|
||||||
|
delta = FixedDiv(delta, 17 * (FRACUNIT + smoothing));
|
||||||
|
|
||||||
if (delta)
|
if (delta)
|
||||||
player->tilt += delta;
|
player->tilt += delta;
|
||||||
|
|
@ -4338,7 +4346,10 @@ DoABarrelRoll (player_t *player)
|
||||||
|
|
||||||
if (cv_actionmovie.value)
|
if (cv_actionmovie.value)
|
||||||
{
|
{
|
||||||
player->viewrollangle += quake.roll;
|
int xs = intsign(quake.x),
|
||||||
|
ys = intsign(quake.y),
|
||||||
|
zs = intsign(quake.z);
|
||||||
|
player->viewrollangle += (xs ^ ys ^ zs) * ANG1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue