mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Give podium bots more traction
This commit is contained in:
parent
4a8dd02320
commit
e47f46d3bc
3 changed files with 33 additions and 3 deletions
|
|
@ -2559,6 +2559,10 @@ void readmaincfg(MYFILE *f, boolean mainfile)
|
||||||
INT32 value;
|
INT32 value;
|
||||||
boolean doClearLevels = false;
|
boolean doClearLevels = false;
|
||||||
|
|
||||||
|
#ifdef DEVELOP
|
||||||
|
(void)mainfile;
|
||||||
|
#endif
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (myfgets(s, MAXLINELEN, f))
|
if (myfgets(s, MAXLINELEN, f))
|
||||||
|
|
@ -2630,10 +2634,12 @@ void readmaincfg(MYFILE *f, boolean mainfile)
|
||||||
//clear_levels();
|
//clear_levels();
|
||||||
doClearLevels = true;
|
doClearLevels = true;
|
||||||
}
|
}
|
||||||
|
#ifndef DEVELOP
|
||||||
else if (!mainfile && !gamedataadded)
|
else if (!mainfile && !gamedataadded)
|
||||||
{
|
{
|
||||||
deh_warning("You must define a custom gamedata to use \"%s\"", word);
|
deh_warning("You must define a custom gamedata to use \"%s\"", word);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
else if (fastcmp(word, "CLEARLEVELS"))
|
else if (fastcmp(word, "CLEARLEVELS"))
|
||||||
{
|
{
|
||||||
doClearLevels = (UINT8)(value == 0 || word2[0] == 'F' || word2[0] == 'N');
|
doClearLevels = (UINT8)(value == 0 || word2[0] == 'F' || word2[0] == 'N');
|
||||||
|
|
|
||||||
29
src/k_kart.c
29
src/k_kart.c
|
|
@ -53,9 +53,15 @@
|
||||||
|
|
||||||
boolean K_PodiumSequence(void)
|
boolean K_PodiumSequence(void)
|
||||||
{
|
{
|
||||||
// FIXME: Cache so we don't have to iterate all map headers every time
|
|
||||||
INT32 podiumMapNum = nummapheaders;
|
INT32 podiumMapNum = nummapheaders;
|
||||||
|
|
||||||
|
if (grandprixinfo.gp == false)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// FIXME: This function is used a lot during gameplay.
|
||||||
|
// Cache so we don't have to iterate all map headers every time.
|
||||||
if (podiummap && ((podiumMapNum = G_MapNumber(podiummap)) < nummapheaders))
|
if (podiummap && ((podiumMapNum = G_MapNumber(podiummap)) < nummapheaders))
|
||||||
{
|
{
|
||||||
return (gamemap == podiumMapNum+1);
|
return (gamemap == podiumMapNum+1);
|
||||||
|
|
@ -3422,7 +3428,7 @@ fixed_t K_GetNewSpeed(player_t *player)
|
||||||
// Don't calculate the acceleration as ever being above top speed
|
// Don't calculate the acceleration as ever being above top speed
|
||||||
if (oldspeed > p_speed)
|
if (oldspeed > p_speed)
|
||||||
oldspeed = p_speed;
|
oldspeed = p_speed;
|
||||||
newspeed = FixedDiv(FixedDiv(FixedMul(oldspeed, accelmax - p_accel) + FixedMul(p_speed, p_accel), accelmax), ORIG_FRICTION);
|
newspeed = FixedDiv(FixedDiv(FixedMul(oldspeed, accelmax - p_accel) + FixedMul(p_speed, p_accel), accelmax), K_PlayerBaseFriction(ORIG_FRICTION));
|
||||||
|
|
||||||
finalspeed = newspeed - oldspeed;
|
finalspeed = newspeed - oldspeed;
|
||||||
|
|
||||||
|
|
@ -10007,18 +10013,35 @@ static void K_AirFailsafe(player_t *player)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// K_PlayerBaseFriction
|
||||||
|
//
|
||||||
|
fixed_t K_PlayerBaseFriction(fixed_t original)
|
||||||
|
{
|
||||||
|
fixed_t frict = original;
|
||||||
|
|
||||||
|
if (K_PodiumSequence() == true)
|
||||||
|
{
|
||||||
|
frict -= 4096;
|
||||||
|
}
|
||||||
|
|
||||||
|
return frict;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// K_AdjustPlayerFriction
|
// K_AdjustPlayerFriction
|
||||||
//
|
//
|
||||||
void K_AdjustPlayerFriction(player_t *player)
|
void K_AdjustPlayerFriction(player_t *player)
|
||||||
{
|
{
|
||||||
fixed_t prevfriction = player->mo->friction;
|
const fixed_t prevfriction = K_PlayerBaseFriction(player->mo->friction);
|
||||||
|
|
||||||
if (P_IsObjectOnGround(player->mo) == false)
|
if (P_IsObjectOnGround(player->mo) == false)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
player->mo->friction = prevfriction;
|
||||||
|
|
||||||
// Reduce friction after hitting a spring
|
// Reduce friction after hitting a spring
|
||||||
if (player->tiregrease)
|
if (player->tiregrease)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -178,6 +178,7 @@ fixed_t K_3dKartMovement(player_t *player);
|
||||||
boolean K_PlayerEBrake(player_t *player);
|
boolean K_PlayerEBrake(player_t *player);
|
||||||
SINT8 K_Sliptiding(player_t *player);
|
SINT8 K_Sliptiding(player_t *player);
|
||||||
boolean K_FastFallBounce(player_t *player);
|
boolean K_FastFallBounce(player_t *player);
|
||||||
|
fixed_t K_PlayerBaseFriction(fixed_t original);
|
||||||
void K_AdjustPlayerFriction(player_t *player);
|
void K_AdjustPlayerFriction(player_t *player);
|
||||||
void K_MoveKartPlayer(player_t *player, boolean onground);
|
void K_MoveKartPlayer(player_t *player, boolean onground);
|
||||||
void K_CheckSpectateStatus(void);
|
void K_CheckSpectateStatus(void);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue