mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-26 12:01:47 +00:00
Merge branch 'momentum-angle-consistency' into 'master'
Raise threshold for K_MomentumAngle to fall back on facing angle Closes #483 See merge request KartKrew/Kart!1081
This commit is contained in:
commit
205de5503f
2 changed files with 9 additions and 3 deletions
11
src/k_kart.c
11
src/k_kart.c
|
|
@ -3485,9 +3485,14 @@ fixed_t K_3dKartMovement(player_t *player)
|
||||||
return finalspeed;
|
return finalspeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fixed_t K_MomentumThreshold(const mobj_t *mo)
|
||||||
|
{
|
||||||
|
return 6 * mo->scale;
|
||||||
|
}
|
||||||
|
|
||||||
angle_t K_MomentumAngle(mobj_t *mo)
|
angle_t K_MomentumAngle(mobj_t *mo)
|
||||||
{
|
{
|
||||||
if (FixedHypot(mo->momx, mo->momy) >= mo->scale)
|
if (FixedHypot(mo->momx, mo->momy) > K_MomentumThreshold(mo))
|
||||||
{
|
{
|
||||||
return R_PointToAngle2(0, 0, mo->momx, mo->momy);
|
return R_PointToAngle2(0, 0, mo->momx, mo->momy);
|
||||||
}
|
}
|
||||||
|
|
@ -4086,7 +4091,7 @@ void K_UpdateSliptideZipIndicator(player_t *player)
|
||||||
}
|
}
|
||||||
|
|
||||||
mobj = player->sliptideZipIndicator;
|
mobj = player->sliptideZipIndicator;
|
||||||
angle_t momentumAngle = R_PointToAngle2(0, 0, player->mo->momx, player->mo->momy);
|
angle_t momentumAngle = K_MomentumAngle(player->mo);
|
||||||
|
|
||||||
P_MoveOrigin(mobj, player->mo->x - FixedMul(40*mapobjectscale, FINECOSINE(momentumAngle >> ANGLETOFINESHIFT)),
|
P_MoveOrigin(mobj, player->mo->x - FixedMul(40*mapobjectscale, FINECOSINE(momentumAngle >> ANGLETOFINESHIFT)),
|
||||||
player->mo->y - FixedMul(40*mapobjectscale, FINESINE(momentumAngle >> ANGLETOFINESHIFT)),
|
player->mo->y - FixedMul(40*mapobjectscale, FINESINE(momentumAngle >> ANGLETOFINESHIFT)),
|
||||||
|
|
@ -10091,7 +10096,7 @@ boolean K_FastFallBounce(player_t *player)
|
||||||
|
|
||||||
static void K_AirFailsafe(player_t *player)
|
static void K_AirFailsafe(player_t *player)
|
||||||
{
|
{
|
||||||
const fixed_t maxSpeed = 6*player->mo->scale;
|
const fixed_t maxSpeed = K_MomentumThreshold(player->mo);
|
||||||
const fixed_t thrustSpeed = 6*player->mo->scale; // 10*player->mo->scale
|
const fixed_t thrustSpeed = 6*player->mo->scale; // 10*player->mo->scale
|
||||||
|
|
||||||
if (player->speed > maxSpeed // Above the max speed that you're allowed to use this technique.
|
if (player->speed > maxSpeed // Above the max speed that you're allowed to use this technique.
|
||||||
|
|
|
||||||
|
|
@ -83,6 +83,7 @@ void K_KartPlayerHUDUpdate(player_t *player);
|
||||||
void K_KartResetPlayerColor(player_t *player);
|
void K_KartResetPlayerColor(player_t *player);
|
||||||
void K_KartPlayerThink(player_t *player, ticcmd_t *cmd);
|
void K_KartPlayerThink(player_t *player, ticcmd_t *cmd);
|
||||||
void K_KartPlayerAfterThink(player_t *player);
|
void K_KartPlayerAfterThink(player_t *player);
|
||||||
|
fixed_t K_MomentumThreshold(const mobj_t *mo);
|
||||||
angle_t K_MomentumAngle(mobj_t *mo);
|
angle_t K_MomentumAngle(mobj_t *mo);
|
||||||
void K_AddHitLag(mobj_t *mo, INT32 tics, boolean fromDamage);
|
void K_AddHitLag(mobj_t *mo, INT32 tics, boolean fromDamage);
|
||||||
void K_SetHitLagForObjects(mobj_t *mo1, mobj_t *mo2, INT32 tics, boolean fromDamage);
|
void K_SetHitLagForObjects(mobj_t *mo1, mobj_t *mo2, INT32 tics, boolean fromDamage);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue