Merge branch 'blankart-dev' into socmenus2

This commit is contained in:
NepDisk 2025-06-23 00:07:35 -04:00
commit 3ec3320774
12 changed files with 68 additions and 10 deletions

View file

@ -85,6 +85,7 @@ CV_PossibleValue_t kartspeed_cons_t[] = {
{KARTSPEED_EASY, "Easy"},
{KARTSPEED_NORMAL, "Normal"},
{KARTSPEED_HARD, "Hard"},
{KARTSPEED_EXPERT, "Expert"},
{0, NULL}
};
@ -2227,7 +2228,7 @@ void CV_AddValue(consvar_t *var, INT32 increment)
if ((var == &cv_kartspeed || var == &cv_kartbattlespeed) && !M_SecretUnlocked(SECRET_HARDSPEED))
{
max = (M_SecretUnlocked(SECRET_HARDSPEED) ? 4 : 3);
max = (M_SecretUnlocked(SECRET_HARDSPEED) ? 5 : 3);
}
#ifdef PARANOIA
if (currentindice == -1)

View file

@ -182,7 +182,9 @@ extern CV_PossibleValue_t CV_Natural[];
#define KARTSPEED_EASY 0
#define KARTSPEED_NORMAL 1
#define KARTSPEED_HARD 2
#define KARTGP_MASTER 3 // Not a speed setting, gives the hardest speed with maxed out bots
#define KARTSPEED_EXPERT 3
#define KARTGP_MASTER 4 // Not a speed setting, gives hard speed with maxed out bots
#define KARTGP_NIGHTMARE 5 // Not a speed setting, gives expert speed with maxed out bots
extern CV_PossibleValue_t kartspeed_cons_t[];
extern consvar_t cv_execversion;

View file

@ -1669,7 +1669,7 @@ void D_SRB2Main(void)
// Start up a "minor" grand prix session
memset(&grandprixinfo, 0, sizeof(struct grandprixinfo));
grandprixinfo.gamespeed = KARTSPEED_NORMAL;
grandprixinfo.gamespeed = KARTSPEED_HARD;
grandprixinfo.encore = false;
grandprixinfo.masterbots = false;
@ -1827,11 +1827,16 @@ void D_SRB2Main(void)
const char *sskill = M_GetNextParm();
const char *masterstr = "Master";
const char *nightmarestr = "NIGHTMARE";
if (!strcasecmp(masterstr, sskill))
{
newskill = KARTGP_MASTER;
}
else if (!strcasecmp(nightmarestr, sskill))
{
newskill = KARTGP_NIGHTMARE;
}
else
{
for (j = 0; kartspeed_cons_t[j].strvalue; j++)
@ -1846,7 +1851,7 @@ void D_SRB2Main(void)
if (!kartspeed_cons_t[j].strvalue) // reached end of the list with no match
{
j = atoi(sskill); // assume they gave us a skill number, which is okay too
if (j >= KARTSPEED_EASY && j <= KARTGP_MASTER)
if (j >= KARTSPEED_EASY && j <= KARTGP_NIGHTMARE)
newskill = (INT16)j;
}
}
@ -1858,6 +1863,11 @@ void D_SRB2Main(void)
grandprixinfo.masterbots = true;
newskill = KARTSPEED_HARD;
}
else if (newskill == KARTGP_NIGHTMARE)
{
grandprixinfo.masterbots = true;
newskill = KARTSPEED_EXPERT;
}
grandprixinfo.gamespeed = newskill;
}
@ -1865,6 +1875,10 @@ void D_SRB2Main(void)
{
newskill = KARTSPEED_HARD;
}
else if (newskill == KARTGP_NIGHTMARE)
{
newskill = KARTSPEED_EXPERT;
}
if (newskill != -1)
CV_SetValue(&cv_kartspeed, newskill);

View file

@ -457,6 +457,7 @@ consvar_t cv_kartstacking_accelstack = CVAR_INIT ("kartstacking_accelstack", "Of
consvar_t cv_kartstacking_sneaker_easyspeedboost = CVAR_INIT ("vanillaboost_sneaker_easyspeedboost", "0.8317", CV_NETVAR|CV_CHEAT|CV_FLOAT, CV_Unsigned, NULL);
consvar_t cv_kartstacking_sneaker_normalspeedboost = CVAR_INIT ("vanillaboost_sneaker_normalspeedboost", "0.5", CV_NETVAR|CV_CHEAT|CV_FLOAT, CV_Unsigned, NULL);
consvar_t cv_kartstacking_sneaker_hardspeedboost = CVAR_INIT ("vanillaboost_sneaker_hardspeedboost", "0.2756", CV_NETVAR|CV_CHEAT|CV_FLOAT, CV_Unsigned, NULL);
consvar_t cv_kartstacking_sneaker_expertspeedboost = CVAR_INIT ("vanillaboost_sneaker_expertspeedboost", "0.25", CV_NETVAR|CV_CHEAT|CV_FLOAT, CV_Unsigned, NULL);
consvar_t cv_kartstacking_sneaker_accelboost = CVAR_INIT ("vanillaboost_sneaker_accelboost", "8.0", CV_NETVAR|CV_CHEAT|CV_FLOAT, CV_Unsigned, NULL);
consvar_t cv_kartstacking_sneaker_maxgrade = CVAR_INIT ("vanillaboost_sneaker_maxgrade", "3", CV_NETVAR|CV_CHEAT, CV_Natural, NULL);
consvar_t cv_kartstacking_sneaker_stackable = CVAR_INIT ("vanillaboost_sneaker_stackable", "On", CV_NETVAR, CV_OnOff, NULL);
@ -3138,6 +3139,7 @@ static void Command_Map_f(void)
if (option_skill)
{
const char *masterstr = "Master";
const char *nightmarestr = "NIGHTMARE";
const char *skillname = COM_Argv(option_skill + 1);
INT32 newskill = -1;
INT32 j;
@ -3146,6 +3148,10 @@ static void Command_Map_f(void)
{
newskill = KARTGP_MASTER;
}
else if (!strcasecmp(nightmarestr, skillname))
{
newskill = KARTGP_NIGHTMARE;
}
else
{
for (j = 0; kartspeed_cons_t[j].strvalue; j++)
@ -3160,7 +3166,7 @@ static void Command_Map_f(void)
if (!kartspeed_cons_t[j].strvalue) // reached end of the list with no match
{
INT32 num = atoi(COM_Argv(option_skill + 1)); // assume they gave us a skill number, which is okay too
if (num >= KARTSPEED_EASY && num <= KARTGP_MASTER)
if (num >= KARTSPEED_EASY && num <= KARTGP_NIGHTMARE)
newskill = (INT16)num;
}
}
@ -3172,6 +3178,11 @@ static void Command_Map_f(void)
grandprixinfo.gamespeed = KARTSPEED_HARD;
grandprixinfo.masterbots = true;
}
else if (newskill == KARTGP_NIGHTMARE)
{
grandprixinfo.gamespeed = KARTSPEED_EXPERT;
grandprixinfo.masterbots = true;
}
else
{
grandprixinfo.gamespeed = newskill;
@ -7042,7 +7053,7 @@ static void KartFrantic_OnChange(void)
static void KartSpeed_OnChange(void)
{
if (!M_SecretUnlocked(SECRET_HARDSPEED) && cv_kartspeed.value == KARTSPEED_HARD)
if (!M_SecretUnlocked(SECRET_HARDSPEED) && (cv_kartspeed.value == KARTSPEED_HARD || cv_kartspeed.value == KARTSPEED_EXPERT))
{
CONS_Printf(M_GetText("You haven't earned this yet.\n"));
CV_StealthSet(&cv_kartspeed, cv_kartspeed.defaultvalue);
@ -7067,7 +7078,7 @@ static void KartSpeed_OnChange(void)
static void KartBattleSpeed_OnChange(void)
{
if (!M_SecretUnlocked(SECRET_HARDSPEED) && cv_kartbattlespeed.value == KARTSPEED_HARD)
if (!M_SecretUnlocked(SECRET_HARDSPEED) && ((cv_kartbattlespeed.value == KARTSPEED_HARD) || (cv_kartbattlespeed.value == KARTSPEED_EXPERT)))
{
CONS_Printf(M_GetText("You haven't earned this yet.\n"));
CV_StealthSet(&cv_kartspeed, cv_kartspeed.defaultvalue);

View file

@ -133,6 +133,7 @@ extern consvar_t cv_kartstacking_accelstack;
extern consvar_t cv_kartstacking_sneaker_easyspeedboost;
extern consvar_t cv_kartstacking_sneaker_normalspeedboost;
extern consvar_t cv_kartstacking_sneaker_hardspeedboost;
extern consvar_t cv_kartstacking_sneaker_expertspeedboost;
extern consvar_t cv_kartstacking_sneaker_accelboost;
extern consvar_t cv_kartstacking_sneaker_maxgrade;
extern consvar_t cv_kartstacking_sneaker_stackable;

View file

@ -1522,6 +1522,7 @@ struct int_const_s const INT_CONST[] = {
{"KARTSPEED_EASY", KARTSPEED_EASY},
{"KARTSPEED_NORMAL", KARTSPEED_NORMAL},
{"KARTSPEED_HARD", KARTSPEED_HARD},
{"KARTSPEED_EXPERT", KARTSPEED_EXPERT},
// Custom client features exposed to lua
{"FEATURE_INTERMISSIONHUD",1}, // This is to trick kart luas that look for this since its already here.

View file

@ -297,6 +297,7 @@ void K_RegisterKartStuff(void)
CV_RegisterVar(&cv_kartstacking_sneaker_easyspeedboost);
CV_RegisterVar(&cv_kartstacking_sneaker_normalspeedboost);
CV_RegisterVar(&cv_kartstacking_sneaker_hardspeedboost);
CV_RegisterVar(&cv_kartstacking_sneaker_expertspeedboost);
CV_RegisterVar(&cv_kartstacking_sneaker_accelboost);
CV_RegisterVar(&cv_kartstacking_sneaker_maxgrade);
CV_RegisterVar(&cv_kartstacking_sneaker_stackable);
@ -3495,6 +3496,9 @@ static inline fixed_t K_GetProjectileSpeed(void)
case KARTSPEED_HARD:
return 96*mapobjectscale; // Avg Speed is 48
break;
case KARTSPEED_EXPERT:
return 110*mapobjectscale; // Avg Speed is 62
break;
default:
return 82*mapobjectscale; // Avg Speed is 41
break;
@ -3511,6 +3515,9 @@ static inline fixed_t K_GetSneakerBoostSpeed(void)
case KARTSPEED_HARD:
return HARDSNEAKERSPEEDBOOST;
break;
case KARTSPEED_EXPERT:
return EXPERTSNEAKERSPEEDBOOST;
break;
default:
return NORMALSNEAKERSPEEDBOOST;
break;
@ -5040,6 +5047,8 @@ mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t mapthing,
PROJSPEED = FixedMul(PROJSPEED, FRACUNIT-FRACUNIT/4);
else if (gamespeed == KARTSPEED_HARD)
PROJSPEED = FixedMul(PROJSPEED, FRACUNIT+FRACUNIT/4);
else if (gamespeed == KARTSPEED_EXPERT)
PROJSPEED = FixedMul(PROJSPEED, FRACUNIT+FRACUNIT/2);
PROJSPEED = FixedMul(PROJSPEED, mapobjectscale);
}
else

View file

@ -49,6 +49,7 @@ Make sure this matches the actual number of states
#define EASYSNEAKERSPEEDBOOST K_RAGuard(cv_kartstacking_sneaker_easyspeedboost)
#define NORMALSNEAKERSPEEDBOOST K_RAGuard(cv_kartstacking_sneaker_normalspeedboost)
#define HARDSNEAKERSPEEDBOOST K_RAGuard(cv_kartstacking_sneaker_hardspeedboost)
#define EXPERTSNEAKERSPEEDBOOST K_RAGuard(cv_kartstacking_sneaker_expertspeedboost)
#define SNEAKERACCELBOOST K_RAGuard(cv_kartstacking_sneaker_accelboost)
#define MAXSNEAKERSTACK K_RAGuard(cv_kartstacking_sneaker_maxgrade)
#define SNEAKERSTACKABLE K_RAGuard(cv_kartstacking_sneaker_stackable)

View file

@ -473,7 +473,14 @@ void K_SetPowerLevelScrambles(SINT8 powertype)
return;
}
if (min >= 7800)
if (min >= 8200)
{
if (avg >= 8500)
t = 6;
else
t = 5;
}
else if (min >= 7800)
{
if (avg >= 8200)
t = 5;
@ -520,6 +527,10 @@ void K_SetPowerLevelScrambles(SINT8 powertype)
switch (t)
{
case 6:
speed = KARTSPEED_EXPERT;
encore = P_RandomChance(FRACUNIT>>1);
break;
case 5:
speed = KARTSPEED_HARD;
encore = P_RandomChance(FRACUNIT>>1);

View file

@ -382,7 +382,7 @@ consvar_t cv_dummyattackingchaining = CVAR_INIT ("dummyattackingchaining", "Off"
consvar_t cv_dummyattackingslipdash = CVAR_INIT ("dummyattackingslipdash", "Off", CV_HIDEN|CV_CALL|CV_NOINIT, CV_OnOff, Nextmap_OnChange);
consvar_t cv_dummyattackingpurpledrift = CVAR_INIT ("dummyattackingpurpledrift", "Off", CV_HIDEN|CV_CALL|CV_NOINIT, CV_OnOff, Nextmap_OnChange);
static CV_PossibleValue_t dummygpdifficulty_cons_t[] = {{0, "Easy"}, {1, "Normal"}, {2, "Hard"}, {3, "Master"}, {0, NULL}};
static CV_PossibleValue_t dummygpdifficulty_cons_t[] = {{KARTSPEED_EASY, "Easy"}, {KARTSPEED_NORMAL, "Normal"}, {KARTSPEED_HARD, "Hard"}, {KARTSPEED_EXPERT, "Expert"}, {KARTGP_MASTER, "Master"}, {KARTGP_NIGHTMARE, "Nightmare"}, {0, NULL}};
static CV_PossibleValue_t dummygpcup_cons_t[50] = {{1, "TEMP"}}; // A REALLY BIG NUMBER, SINCE THIS IS TEMP UNTIL NEW MENUS
consvar_t cv_dummygpdifficulty = CVAR_INIT ("dummygpdifficulty", "Normal", CV_HIDEN, dummygpdifficulty_cons_t, NULL);
@ -5486,12 +5486,17 @@ INT32 MR_StartGrandPrix(INT32 choice)
case KARTSPEED_EASY:
case KARTSPEED_NORMAL:
case KARTSPEED_HARD:
case KARTSPEED_EXPERT:
grandprixinfo.gamespeed = cv_dummygpdifficulty.value;
break;
case KARTGP_MASTER:
grandprixinfo.gamespeed = KARTSPEED_HARD;
grandprixinfo.masterbots = true;
break;
case KARTGP_NIGHTMARE:
grandprixinfo.gamespeed = KARTSPEED_EXPERT;
grandprixinfo.masterbots = true;
break;
default:
CONS_Alert(CONS_WARNING, "Invalid GP difficulty\n");
grandprixinfo.gamespeed = KARTSPEED_NORMAL;

View file

@ -8354,6 +8354,8 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
distbarrier = FixedMul(distbarrier, FRACUNIT-FRACUNIT/4);
else if (gamespeed == KARTSPEED_HARD)
distbarrier = FixedMul(distbarrier, FRACUNIT+FRACUNIT/4);
else if (gamespeed == KARTSPEED_EXPERT)
distbarrier = FixedMul(distbarrier, FRACUNIT+FRACUNIT/2);
if ((gametyperules & GTR_CIRCUIT) && mobj->tracer)
{

View file

@ -8498,7 +8498,7 @@ boolean P_LoadLevel(boolean fromnetsave, boolean reloadinggamestate)
I_FinishUpdate(); // page flip or blit buffer
// Reset the palette
if (rendermode != render_none)
if (rendermode != render_none && !reloadinggamestate)
V_SetPaletteLump("PLAYPAL");
// Initialize sector node list.