diff --git a/src/d_netcmd.c b/src/d_netcmd.c index ea3f00b28..2ec00e0cb 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -550,8 +550,8 @@ consvar_t cv_kartstacking_ring_handleboost = CVAR_INIT ("vanillaboost_ring_handl consvar_t cv_kartstacking_ring_stackable = CVAR_INIT ("vanillaboost_ring_stackable", "On", CV_NETVAR|CV_CHEAT|CV_GUARD, CV_OnOff, NULL); consvar_t cv_kartstacking_ssmt_speedboost = CVAR_INIT ("vanillaboost_ssmt_speedboost", "0.1", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL); -consvar_t cv_kartstacking_ssmt_accelboost = CVAR_INIT ("vanillaboost_ssmt_accelboost", "65535.0", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL); -consvar_t cv_kartstacking_ssmt_handleboost = CVAR_INIT ("vanillaboost_ssmt_handleboost", "0", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL); +consvar_t cv_kartstacking_ssmt_accelboost = CVAR_INIT ("vanillaboost_ssmt_accelboost", "10.0", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL); +consvar_t cv_kartstacking_ssmt_handleboost = CVAR_INIT ("vanillaboost_ssmt_handleboost", "0.25", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL); consvar_t cv_kartstacking_slope_decay = CVAR_INIT ("vanillaboost_slope_decay", "0.004", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL); consvar_t cv_kartstacking_slope_brakemod = CVAR_INIT ("vanillaboost_slope_brakemod", "0.01", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL); diff --git a/src/g_game.c b/src/g_game.c index 4e5bc2cc1..853357cbb 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -1540,14 +1540,17 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer) forward += (value * MAXPLMOVE) / JOYAXISRANGE; } - if (player->sneakertimer) + if (player->sneakertimer || player->ssmtboost) forward = MAXPLMOVE; // 50 value = G_PlayerInputAnalog(forplayer, gc_brake, false, DEADZONE_BUTTON); if (value != 0) { cmd->buttons |= BT_BRAKE; - forward -= (value * 25) / JOYAXISRANGE; + if (!(player->pflags & PF_CHARGINGSSMT)) + { + forward -= (value * 25) / JOYAXISRANGE; + } } // But forward/backward IS used for aiming. diff --git a/src/k_kart.c b/src/k_kart.c index 96e9201f2..f8b75534f 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -357,6 +357,10 @@ void K_RegisterKartStuff(void) CV_RegisterVar(&cv_kartstacking_ring_handleboost); CV_RegisterVar(&cv_kartstacking_ring_stackable); + CV_RegisterVar(&cv_kartstacking_ssmt_speedboost); + CV_RegisterVar(&cv_kartstacking_ssmt_accelboost); + CV_RegisterVar(&cv_kartstacking_ssmt_handleboost); + CV_RegisterVar(&cv_kartstacking_slope_decay); CV_RegisterVar(&cv_kartstacking_slope_brakemod); CV_RegisterVar(&cv_kartstacking_slope_speedboost_max); @@ -1050,11 +1054,6 @@ static void K_UpdateOffroad(player_t *player) offroadstrength *= 2; } } - else if (player->pflags & PF_CHARGINGSSMT) - { - offroad = offroad/2; - offroadstrength = offroadstrength/2; - } player->offroad += offroad; } @@ -2174,7 +2173,7 @@ boolean K_ApplyOffroad(const player_t *player) if (player->hyudorotimer || sneakertimer || (cv_kartbubble_boost_offroadignore.value && player->bubbleboost) || - player->ssmtboost) + player->ssmtboost || (player->pflags & PF_CHARGINGSSMT)) return false; return true; } @@ -3108,7 +3107,7 @@ SINT8 K_GetForwardMove(const player_t *player) player->flipovertimer) // pw_introcam? { forwardmove = 0; - if (player->sneakertimer || player->ssmtboost) + if (player->sneakertimer) forwardmove = MAXPLMOVE; } @@ -9632,14 +9631,18 @@ static void K_KartSlipdash(player_t *player, boolean onground) static void K_StandStillMiniTurbo(player_t *player, boolean onground) { - if (player->speed <= 8*player->mo->scale && onground) + if (player->speed <= 12*player->mo->scale && onground && leveltime > starttime) { - if (player->cmd.buttons & BT_ACCELERATE|BT_BRAKE) + if ((player->cmd.buttons & BT_ACCELERATE) && (player->cmd.buttons & BT_BRAKE)) { player->pflags |= PF_CHARGINGSSMT; - player->forcedtopspeed = 8*FRACUNIT; + player->forcedtopspeed = 12*FRACUNIT; player->ssmtcharge += 1; - K_SpawnDashDustRelease(player, true); + if (leveltime % 8 == 0) + { + K_SpawnDashDustRelease(player, true); + S_StartSound(player->mo, sfx_s224); + } if (player->ssmtcharge >= 3*TICRATE/2) { K_SpawnBoostTrail(player); @@ -9653,7 +9656,10 @@ static void K_StandStillMiniTurbo(player_t *player, boolean onground) player->forcedtopspeed = 0; if (player->ssmtcharge >= 3*TICRATE/2) { - player->ssmtboost = TICRATE; + player->outruntime = TICRATE/4; + player->ssmtboost = TICRATE/2; + player->tiregrease = TICRATE; + S_StartSound(player->mo, sfx_s23c); } player->ssmtcharge = 0; @@ -11117,7 +11123,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground) // Quick Turning // You can't turn your kart when you're not moving. // So now it's time to burn some rubber! - if (player->speed < 2 && leveltime > starttime && (player->cmd.buttons & BT_ACCELERATE|BT_BRAKE) && player->cmd.turning != 0) + if (player->speed < 2 && leveltime > starttime && (player->cmd.buttons & BT_ACCELERATE) && (player->cmd.buttons & BT_BRAKE) && player->cmd.turning != 0) { if (leveltime % 8 == 0) S_StartSound(player->mo, sfx_s224);