From 02a06848e4789cb6eea347e2a34a1cc8652bc018 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Fri, 13 Feb 2026 15:17:45 -0500 Subject: [PATCH 1/9] re-tune when low and high mode recovery dash start --- src/d_netcmd.c | 2 +- src/k_kart.c | 6 +++--- src/k_kart.h | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index c6ece0ae0..14f6188f8 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -562,7 +562,7 @@ consvar_t cv_kartstacking_ssmt_accelboost = CVAR_INIT ("vanillaboost_ssmt_accelb consvar_t cv_kartstacking_ssmt_handleboost = CVAR_INIT ("vanillaboost_ssmt_handleboost", "0.01", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL); consvar_t cv_kartstacking_recspin_speedboost_lo = CVAR_INIT ("vanillaboost_recspin_speedboost_lo", "0", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL); -consvar_t cv_kartstacking_recspin_accelboost_lo = CVAR_INIT ("vanillaboost_recspin_accelboost_lo", "2.0", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL); +consvar_t cv_kartstacking_recspin_accelboost_lo = CVAR_INIT ("vanillaboost_recspin_accelboost_lo", "0.5", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL); consvar_t cv_kartstacking_recspin_handleboost_lo = CVAR_INIT ("vanillaboost_recspin_handleboost_lo", "0.25", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL); consvar_t cv_kartstacking_recspin_speedboost_hi = CVAR_INIT ("vanillaboost_recspin_speedboost_hi", "0", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL); diff --git a/src/k_kart.c b/src/k_kart.c index 3966f237c..f1527e7f1 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -2941,13 +2941,13 @@ static void K_GetKartBoostPower(player_t *player) } else if (player->pflags & PF_RECOVERYSPIN) { - if (player->flashing || player->recoverydashcharge >= TICRATE) + if (player->flashing || player->recoverydashcharge >= RECOVERYDASHCHARGETIME) { - K_DoBoost(player, RECSPINSPEEDBOOSTHI, RECSPINACCELBOOSTHI, RECSPINHANDLEBOOSTHI, false, false); // + 500% acceleration, + 25% handling + K_DoBoost(player, RECSPINSPEEDBOOSTHI, RECSPINACCELBOOSTHI, RECSPINHANDLEBOOSTHI, false, false); } else { - K_DoBoost(player, RECSPINSPEEDBOOSTLO, RECSPINACCELBOOSTLO, RECSPINHANDLEBOOSTLO, false, false);// + 200% acceleration, + 25% handling + K_DoBoost(player, RECSPINSPEEDBOOSTLO, RECSPINACCELBOOSTLO, RECSPINHANDLEBOOSTLO, false, false); } } diff --git a/src/k_kart.h b/src/k_kart.h index 66b825993..5a37105d2 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -413,11 +413,11 @@ typedef enum boolean K_NullDriftTiltEnalbed(); -#define RECOVERYDASHADD (TICRATE/3) +#define RECOVERYDASHADD (TICRATE/2) //og val 2*TICRATE -#define RECOVERYDASHCHARGETIME (TICRATE+RECOVERYDASHADD) +#define RECOVERYDASHCHARGETIME (2*TICRATE+RECOVERYDASHADD) //og val 3*TICRATE/2 -#define RECOVERYDASHWIPETIME ((2*TICRATE/2)+RECOVERYDASHADD) +#define RECOVERYDASHWIPETIME ((3*TICRATE/2)+RECOVERYDASHADD) #ifdef __cplusplus } // extern "C" From 010b3d83c676c807a26dbcd84af7088036388461 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Fri, 13 Feb 2026 15:26:41 -0500 Subject: [PATCH 2/9] build faster in hi mode and kill existing boosts when starting --- src/k_kart.c | 8 +++++++- src/k_kart.h | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index f1527e7f1..7b9fa7e24 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -9907,6 +9907,11 @@ static void K_RecoveryDash(player_t *player) player->pflags |= PF_RECOVERYSPIN; player->forcedtopspeed = cv_kartrecoverydash_spinspeed.value + 8; S_StartSound(player->mo, sfx_cdfm20); + + player->driftboost = 0; + player->sneakertimer = 0; + player->ringboost = 0; + player->startboost = 0; } if (player->pflags & PF_RECOVERYSPIN) @@ -9930,7 +9935,8 @@ static void K_RecoveryDash(player_t *player) player->forcedtopspeed = cv_kartrecoverydash_spinspeed.value + 8; if (P_IsObjectOnGround(player->mo)) { - player->recoverydashcharge += 1; + player->recoverydashcharge += player->flashing ? 2 : 1; + K_SpawnWipeoutTrail(player->mo, (player->recoverydashcharge < RECOVERYDASHWIPETIME)); if (leveltime % 6 == 0) diff --git a/src/k_kart.h b/src/k_kart.h index 5a37105d2..a67958c9a 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -415,9 +415,9 @@ boolean K_NullDriftTiltEnalbed(); #define RECOVERYDASHADD (TICRATE/2) //og val 2*TICRATE -#define RECOVERYDASHCHARGETIME (2*TICRATE+RECOVERYDASHADD) +#define RECOVERYDASHCHARGETIME (3*TICRATE/2) //og val 3*TICRATE/2 -#define RECOVERYDASHWIPETIME ((3*TICRATE/2)+RECOVERYDASHADD) +#define RECOVERYDASHWIPETIME (RECOVERYDASHCHARGETIME - RECOVERYDASHADD) #ifdef __cplusplus } // extern "C" From 1324e59203043ef9180b6aac4181ce653a0c4c35 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Fri, 13 Feb 2026 15:28:59 -0500 Subject: [PATCH 3/9] only play charged sound when grounded --- src/k_kart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index 7b9fa7e24..136a439b6 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -9987,7 +9987,7 @@ static void K_RecoveryDash(player_t *player) if (player->recoverydashcharge >= RECOVERYDASHCHARGETIME) { - if (player->recoverydashcharge == RECOVERYDASHCHARGETIME) + if (player->recoverydashcharge == RECOVERYDASHCHARGETIME && P_IsObjectOnGround(player->mo)) S_StartSound(player->mo, sfx_s3ka2); if (leveltime & 1) From f2bb0bdfef4589e90ca97612da89ad764e09b245 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Fri, 13 Feb 2026 15:31:04 -0500 Subject: [PATCH 4/9] bring this back --- src/k_kart.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index 136a439b6..dc3e78e32 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -9919,7 +9919,6 @@ static void K_RecoveryDash(player_t *player) if (!((player->cmd.buttons & BT_ACCELERATE) && (player->cmd.buttons & BT_BRAKE))) { player->pflags &= ~PF_RECOVERYSPIN; - player->forcedtopspeed = 0; if (player->recoverydashcharge >= RECOVERYDASHCHARGETIME && (player->cmd.buttons & BT_ACCELERATE)) { player->outrun = TICRATE/4; @@ -9928,7 +9927,9 @@ static void K_RecoveryDash(player_t *player) S_StartSound(player->mo, sfx_s23c); K_SpawnDashDustRelease(player, true); } + player->tiregrease = 2*TICRATE; player->recoverydashcharge = 0; + player->forcedtopspeed = 0; return; } From 04601f0004c7ca62348803eea813b786deede112 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Fri, 13 Feb 2026 15:33:32 -0500 Subject: [PATCH 5/9] this doesn't stack so don't lie --- src/k_kart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index dc3e78e32..644826fe5 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -2937,7 +2937,7 @@ static void K_GetKartBoostPower(player_t *player) if (player->recoverydash) // SSMT Boost { - K_DoBoost(player, SSMTSPEEDBOOST, SSMTACCELBOOST, SSMTHANDLEBOOST, false, true); // + 10% top speed, + ?% acceleration + K_DoBoost(player, SSMTSPEEDBOOST, SSMTACCELBOOST, SSMTHANDLEBOOST, false, false); // + 10% top speed, + ?% acceleration } else if (player->pflags & PF_RECOVERYSPIN) { From 7c1104d7d62387f6bf9b38c4a117d5f70b514b99 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Fri, 13 Feb 2026 15:37:12 -0500 Subject: [PATCH 6/9] this is supposed to be 0 --- src/d_netcmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index 14f6188f8..fcd86e778 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -557,7 +557,7 @@ consvar_t cv_kartstacking_heavydrop_handleboost = CVAR_INIT ("vanillaboost_heavy consvar_t cv_kartstacking_heavydrop_stackable = CVAR_INIT ("vanillaboost_heavydrop_stackable", "On", CV_NETVAR|CV_CHEAT|CV_GUARD, CV_OnOff, NULL); consvar_t cv_kartstacking_heavydrop_uniform = CVAR_INIT ("vanillaboost_heavydrop_uniform", "No", CV_NETVAR|CV_CHEAT|CV_GUARD, CV_YesNo, NULL); -consvar_t cv_kartstacking_ssmt_speedboost = CVAR_INIT ("vanillaboost_ssmt_speedboost", "0.125", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL); +consvar_t cv_kartstacking_ssmt_speedboost = CVAR_INIT ("vanillaboost_ssmt_speedboost", "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.01", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL); From 4fd9e1e1557c23154a5ea8d6ab8e4e9b6d01782e Mon Sep 17 00:00:00 2001 From: minenice55 Date: Fri, 13 Feb 2026 15:38:55 -0500 Subject: [PATCH 7/9] say no to variable charge caps --- src/k_kart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index 644826fe5..fa5dc0ef2 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -9936,7 +9936,7 @@ static void K_RecoveryDash(player_t *player) player->forcedtopspeed = cv_kartrecoverydash_spinspeed.value + 8; if (P_IsObjectOnGround(player->mo)) { - player->recoverydashcharge += player->flashing ? 2 : 1; + player->recoverydashcharge += player->flashing ? ((leveltime & 1) + 1) : 1; K_SpawnWipeoutTrail(player->mo, (player->recoverydashcharge < RECOVERYDASHWIPETIME)); From 2449164f790eab0395072dfe9cfe57d0c190608b Mon Sep 17 00:00:00 2001 From: NepDisk Date: Fri, 13 Feb 2026 15:58:16 -0500 Subject: [PATCH 8/9] Use a different file for blan savefiles --- src/g_game.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/g_game.c b/src/g_game.c index fab75b08e..32fb70615 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -84,8 +84,8 @@ UINT8 ultimatemode = false; JoyType_t Joystick[MAXSPLITSCREENPLAYERS]; // SRB2kart -char gamedatafilename[64] = "kartdata.dat"; -char timeattackfolder[64] = "kart"; +char gamedatafilename[64] = "blandata.dat"; +char timeattackfolder[64] = "blan"; char customversionstring[32] = "\0"; static void G_DoCompleted(void); @@ -942,7 +942,7 @@ static void G_SetSaveGameModified(void) savemoddata = true; - strlcpy(gamedatafilename, "modkartdata.dat", sizeof (gamedatafilename)); + strlcpy(gamedatafilename, "modblandata.dat", sizeof (gamedatafilename)); strlwr(gamedatafilename); // Also save a time attack folder From d989cfa37061c269342da5e3a6ca8fcbb45e8a96 Mon Sep 17 00:00:00 2001 From: NepDisk Date: Fri, 13 Feb 2026 20:22:16 -0500 Subject: [PATCH 9/9] rename the rest of the kart files --- src/d_main.cpp | 4 ++-- src/m_misc.cpp | 2 +- src/m_misc.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/d_main.cpp b/src/d_main.cpp index 6de83d927..f37657523 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -2008,9 +2008,9 @@ void D_SRB2Main(void) // user settings come before "+" parameters. if (dedicated) - COM_ImmedExecute(va("exec \"%s" PATHSEP "kartserv.cfg\"\n", srb2home)); + COM_ImmedExecute(va("exec \"%s" PATHSEP "blanserv.cfg\"\n", srb2home)); else - COM_ImmedExecute(va("exec \"%s" PATHSEP "kartexec.cfg\" -noerror\n", srb2home)); + COM_ImmedExecute(va("exec \"%s" PATHSEP "blanexec.cfg\" -noerror\n", srb2home)); if (!autostart) M_PushSpecialParameters(); // push all "+" parameters at the command buffer diff --git a/src/m_misc.cpp b/src/m_misc.cpp index a9f0ca390..cb1789e19 100644 --- a/src/m_misc.cpp +++ b/src/m_misc.cpp @@ -707,7 +707,7 @@ static void M_CreateScreenShotPalette(void) #if NUMSCREENS > 2 static const char *Newsnapshotfile(const char *pathname, const char *ext) { - static char freename[13] = "kartXXXX.ext"; + static char freename[13] = "blanXXXX.ext"; int i = 5000; // start in the middle: num screenshots divided by 2 int add = i; // how much to add or subtract if wrong; gets divided by 2 each time int result; // -1 = guess too high, 0 = correct, 1 = guess too low diff --git a/src/m_misc.h b/src/m_misc.h index 90ea40a2a..10c1eeed3 100644 --- a/src/m_misc.h +++ b/src/m_misc.h @@ -44,7 +44,7 @@ void M_SaveFrame(void); void M_StopMovie(void); // the file where game vars and settings are saved -#define CONFIGFILENAME "kartconfig.cfg" +#define CONFIGFILENAME "blanconfig.cfg" boolean FIL_WriteFile(char const *name, const void *source, size_t length); size_t FIL_ReadFileTag(char const *name, UINT8 **buffer, INT32 tag);