mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 04:21:47 +00:00
Milky Way terrain
`OutRun 48.0` on Terrain block will make that texture add 48 units to driving top speed.
This commit is contained in:
parent
5eeb29d552
commit
d936c7aed9
5 changed files with 35 additions and 10 deletions
|
|
@ -752,6 +752,8 @@ struct player_t
|
||||||
|
|
||||||
boolean markedfordeath;
|
boolean markedfordeath;
|
||||||
|
|
||||||
|
fixed_t outrun; // Milky Way road effect
|
||||||
|
|
||||||
uint8_t public_key[PUBKEYLENGTH];
|
uint8_t public_key[PUBKEYLENGTH];
|
||||||
|
|
||||||
#ifdef HWRENDER
|
#ifdef HWRENDER
|
||||||
|
|
|
||||||
30
src/k_kart.c
30
src/k_kart.c
|
|
@ -3337,6 +3337,11 @@ fixed_t K_GetKartSpeed(player_t *player, boolean doboostpower, boolean dorubberb
|
||||||
|
|
||||||
finalspeed = FixedMul(finalspeed, mapobjectscale);
|
finalspeed = FixedMul(finalspeed, mapobjectscale);
|
||||||
|
|
||||||
|
if (dorubberband == true && K_PlayerUsesBotMovement(player) == true)
|
||||||
|
{
|
||||||
|
finalspeed = FixedMul(finalspeed, player->botvars.rubberband);
|
||||||
|
}
|
||||||
|
|
||||||
if (doboostpower == true)
|
if (doboostpower == true)
|
||||||
{
|
{
|
||||||
if (mobjValid == true)
|
if (mobjValid == true)
|
||||||
|
|
@ -3346,11 +3351,12 @@ fixed_t K_GetKartSpeed(player_t *player, boolean doboostpower, boolean dorubberb
|
||||||
}
|
}
|
||||||
|
|
||||||
finalspeed = FixedMul(finalspeed, player->boostpower + player->speedboost);
|
finalspeed = FixedMul(finalspeed, player->boostpower + player->speedboost);
|
||||||
}
|
|
||||||
|
|
||||||
if (dorubberband == true && K_PlayerUsesBotMovement(player) == true)
|
if (mobjValid == true && player->outrun != 0)
|
||||||
{
|
{
|
||||||
finalspeed = FixedMul(finalspeed, player->botvars.rubberband);
|
// Milky Way's roads
|
||||||
|
finalspeed += FixedMul(player->outrun, K_GrowShrinkSpeedMul(player));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return finalspeed;
|
return finalspeed;
|
||||||
|
|
@ -3369,18 +3375,22 @@ fixed_t K_GetKartAccel(player_t *player)
|
||||||
|
|
||||||
k_accel += 17 * stat; // 121 - 257
|
k_accel += 17 * stat; // 121 - 257
|
||||||
|
|
||||||
if (K_PodiumSequence() == true)
|
|
||||||
{
|
|
||||||
return FixedMul(k_accel, FRACUNIT / 4);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Marble Garden Top gets 1200% accel
|
// Marble Garden Top gets 1200% accel
|
||||||
if (player->curshield == KSHIELD_TOP)
|
if (player->curshield == KSHIELD_TOP)
|
||||||
{
|
{
|
||||||
k_accel *= 12;
|
k_accel *= 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
return FixedMul(k_accel, (FRACUNIT + player->accelboost) / 4);
|
if (K_PodiumSequence() == true)
|
||||||
|
{
|
||||||
|
k_accel = FixedMul(k_accel, FRACUNIT / 4);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
k_accel = FixedMul(k_accel, (FRACUNIT + player->accelboost) / 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
return k_accel;
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT16 K_GetKartFlashing(player_t *player)
|
UINT16 K_GetKartFlashing(player_t *player)
|
||||||
|
|
|
||||||
|
|
@ -455,6 +455,9 @@ void K_ProcessTerrainEffect(mobj_t *mo)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Milky Way road effect
|
||||||
|
player->outrun = terrain->outrun + (48*FRACUNIT);
|
||||||
|
|
||||||
// Damage effects
|
// Damage effects
|
||||||
if (terrain->damageType > 0)
|
if (terrain->damageType > 0)
|
||||||
{
|
{
|
||||||
|
|
@ -1688,6 +1691,10 @@ static void K_ParseTerrainParameter(size_t i, char *param, char *val)
|
||||||
{
|
{
|
||||||
terrain->springStarColor = get_number(val);
|
terrain->springStarColor = get_number(val);
|
||||||
}
|
}
|
||||||
|
else if (stricmp(param, "outrun") == 0 || stricmp(param, "speedIncrease") == 0)
|
||||||
|
{
|
||||||
|
terrain->outrun = FLOAT_TO_FIXED(atof(val));
|
||||||
|
}
|
||||||
else if (stricmp(param, "floorClip") == 0)
|
else if (stricmp(param, "floorClip") == 0)
|
||||||
{
|
{
|
||||||
terrain->floorClip = FLOAT_TO_FIXED(atof(val));
|
terrain->floorClip = FLOAT_TO_FIXED(atof(val));
|
||||||
|
|
|
||||||
|
|
@ -122,6 +122,7 @@ struct terrain_t
|
||||||
angle_t speedPadAngle; // Speed pad angle
|
angle_t speedPadAngle; // Speed pad angle
|
||||||
fixed_t springStrength; // Spring strength
|
fixed_t springStrength; // Spring strength
|
||||||
UINT16 springStarColor; // Spring star color
|
UINT16 springStarColor; // Spring star color
|
||||||
|
fixed_t outrun; // Raise top speed by this amount, for super fast road.
|
||||||
fixed_t floorClip; // Offset for sprites on this ground
|
fixed_t floorClip; // Offset for sprites on this ground
|
||||||
UINT32 flags; // Flag values (see: terrain_flags_t)
|
UINT32 flags; // Flag values (see: terrain_flags_t)
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -4609,6 +4609,11 @@ void P_PlayerAfterThink(player_t *player)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (P_IsObjectOnGround(player->mo) == true)
|
||||||
|
{
|
||||||
|
player->outrun = 0;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef SECTORSPECIALSAFTERTHINK
|
#ifdef SECTORSPECIALSAFTERTHINK
|
||||||
if (player->onconveyor != 1 || !P_IsObjectOnGround(player->mo))
|
if (player->onconveyor != 1 || !P_IsObjectOnGround(player->mo))
|
||||||
player->onconveyor = 0;
|
player->onconveyor = 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue