Merge remote-tracking branch 'origin/master' into frey

This commit is contained in:
AJ Martinez 2024-03-05 15:21:43 -07:00
commit 3af24b8606
10 changed files with 28 additions and 8 deletions

View file

@ -356,7 +356,7 @@ consvar_t cv_drawdist_precip = Player("drawdist_precip", "1024").values({
{0, "None"}, {0, "None"},
}); });
consvar_t cv_drawinput = Player("drawinput", "No").yes_no(); consvar_t cv_drawinput = Player("drawinput", "Off").on_off();
consvar_t cv_ffloorclip = Player("ffloorclip", "On").on_off(); consvar_t cv_ffloorclip = Player("ffloorclip", "On").on_off();
consvar_t cv_fpscap = Player("fpscap", "Match refresh rate").values({ consvar_t cv_fpscap = Player("fpscap", "Match refresh rate").values({
@ -951,6 +951,7 @@ void Dummymenuplayer_OnChange(void);
consvar_t cv_dummymenuplayer = MenuDummy("dummymenuplayer", "P1").onchange(Dummymenuplayer_OnChange).values({{0, "NOPE"}, {1, "P1"}, {2, "P2"}, {3, "P3"}, {4, "P4"}}); consvar_t cv_dummymenuplayer = MenuDummy("dummymenuplayer", "P1").onchange(Dummymenuplayer_OnChange).values({{0, "NOPE"}, {1, "P1"}, {2, "P2"}, {3, "P3"}, {4, "P4"}});
consvar_t cv_dummyprofileautoroulette = MenuDummy("dummyprofileautoroulette", "Off").on_off(); consvar_t cv_dummyprofileautoroulette = MenuDummy("dummyprofileautoroulette", "Off").on_off();
consvar_t cv_dummyprofilefov = MenuDummy("dummyprofilefov", "90").min_max(70, 110);
consvar_t cv_dummyprofilelitesteer = MenuDummy("dummyprofilelitesteer", "On").on_off(); consvar_t cv_dummyprofilelitesteer = MenuDummy("dummyprofilelitesteer", "On").on_off();
consvar_t cv_dummyprofilekickstart = MenuDummy("dummyprofilekickstart", "Off").on_off(); consvar_t cv_dummyprofilekickstart = MenuDummy("dummyprofilekickstart", "Off").on_off();
consvar_t cv_dummyprofilename = MenuDummy("dummyprofilename", ""); consvar_t cv_dummyprofilename = MenuDummy("dummyprofilename", "");

View file

@ -3591,7 +3591,7 @@ void G_AddGhost(savebuffer_t *buffer, const char *defdemoname)
// Skip unlockables // Skip unlockables
{ {
UINT32 unlockables = READUINT32(p); UINT32 unlockables = READUINT32(p);
p += std::min<UINT32>(unlockables, MAXUNLOCKABLES); p += unlockables;
} }
p++; // mapmusrng p++; // mapmusrng
@ -3814,7 +3814,7 @@ staffbrief_t *G_GetStaffGhostBrief(UINT8 *buffer)
// Skip unlockables // Skip unlockables
{ {
UINT32 unlockables = READUINT32(p); UINT32 unlockables = READUINT32(p);
p += std::min<UINT32>(unlockables, MAXUNLOCKABLES); p += unlockables;
} }
p++; // mapmusrng p++; // mapmusrng

View file

@ -8100,7 +8100,7 @@ void K_KartPlayerHUDUpdate(player_t *player)
else else
player->karthud[khud_finish] = 0; player->karthud[khud_finish] = 0;
if (demo.playback == false && P_IsLocalPlayer(player) == true) if (demo.playback == false && P_IsMachineLocalPlayer(player) == true)
{ {
if (player->tumbleBounces != 0 && gamedata->totaltumbletime != UINT32_MAX) if (player->tumbleBounces != 0 && gamedata->totaltumbletime != UINT32_MAX)
{ {

View file

@ -1047,6 +1047,7 @@ extern consvar_t cv_dummyprofilekickstart;
extern consvar_t cv_dummyprofileautoroulette; extern consvar_t cv_dummyprofileautoroulette;
extern consvar_t cv_dummyprofilelitesteer; extern consvar_t cv_dummyprofilelitesteer;
extern consvar_t cv_dummyprofilerumble; extern consvar_t cv_dummyprofilerumble;
extern consvar_t cv_dummyprofilefov;
void M_ResetOptions(void); void M_ResetOptions(void);
void M_InitOptions(INT32 choice); // necessary for multiplayer since there's some options we won't want to access void M_InitOptions(INT32 choice); // necessary for multiplayer since there's some options we won't want to access

View file

@ -28,6 +28,8 @@
#include "k_color.h" #include "k_color.h"
#include "command.h" #include "command.h"
extern "C" consvar_t cv_dummyprofilefov, cv_fov[MAXSPLITSCREENPLAYERS];
CV_PossibleValue_t lastprofile_cons_t[] = {{-1, "MIN"}, {MAXPROFILES, "MAX"}, {0, NULL}}; CV_PossibleValue_t lastprofile_cons_t[] = {{-1, "MIN"}, {MAXPROFILES, "MAX"}, {0, NULL}};
// List of all the profiles. // List of all the profiles.
@ -79,6 +81,7 @@ profile_t* PR_MakeProfile(
newprofile->autoroulette = false; newprofile->autoroulette = false;
newprofile->litesteer = true; newprofile->litesteer = true;
newprofile->rumble = true; newprofile->rumble = true;
newprofile->fov = atoi(cv_dummyprofilefov.defaultvalue);
// Copy from gamecontrol directly as we'll be setting controls up directly in the profile. // Copy from gamecontrol directly as we'll be setting controls up directly in the profile.
memcpy(newprofile->controls, controlarray, sizeof(newprofile->controls)); memcpy(newprofile->controls, controlarray, sizeof(newprofile->controls));
@ -98,6 +101,7 @@ profile_t* PR_MakeProfileFromPlayer(const char *prname, const char *pname, const
newprofile->autoroulette = cv_autoroulette[pnum].value; newprofile->autoroulette = cv_autoroulette[pnum].value;
newprofile->litesteer = cv_litesteer[pnum].value; newprofile->litesteer = cv_litesteer[pnum].value;
newprofile->rumble = cv_rumble[pnum].value; newprofile->rumble = cv_rumble[pnum].value;
newprofile->fov = cv_fov[pnum].value / FRACUNIT;
return newprofile; return newprofile;
} }
@ -292,6 +296,7 @@ void PR_SaveProfiles(void)
jsonprof.preferences.autoroulette = cprof->autoroulette; jsonprof.preferences.autoroulette = cprof->autoroulette;
jsonprof.preferences.litesteer = cprof->litesteer; jsonprof.preferences.litesteer = cprof->litesteer;
jsonprof.preferences.rumble = cprof->rumble; jsonprof.preferences.rumble = cprof->rumble;
jsonprof.preferences.fov = cprof->fov;
for (size_t j = 0; j < num_gamecontrols; j++) for (size_t j = 0; j < num_gamecontrols; j++)
{ {
@ -456,6 +461,7 @@ void PR_LoadProfiles(void)
newprof->autoroulette = jsprof.preferences.autoroulette; newprof->autoroulette = jsprof.preferences.autoroulette;
newprof->litesteer = jsprof.preferences.litesteer; newprof->litesteer = jsprof.preferences.litesteer;
newprof->rumble = jsprof.preferences.rumble; newprof->rumble = jsprof.preferences.rumble;
newprof->fov = jsprof.preferences.fov;
try try
{ {
@ -495,6 +501,7 @@ static void PR_ApplyProfile_Settings(profile_t *p, UINT8 playernum)
CV_StealthSetValue(&cv_autoroulette[playernum], p->autoroulette); CV_StealthSetValue(&cv_autoroulette[playernum], p->autoroulette);
CV_StealthSetValue(&cv_litesteer[playernum], p->litesteer); CV_StealthSetValue(&cv_litesteer[playernum], p->litesteer);
CV_StealthSetValue(&cv_rumble[playernum], p->rumble); CV_StealthSetValue(&cv_rumble[playernum], p->rumble);
CV_StealthSetValue(&cv_fov[playernum], p->fov);
// set controls... // set controls...
G_ApplyControlScheme(playernum, p->controls); G_ApplyControlScheme(playernum, p->controls);

View file

@ -47,6 +47,7 @@ struct ProfilePreferencesJson
bool autoroulette; bool autoroulette;
bool litesteer; bool litesteer;
bool rumble; bool rumble;
uint8_t fov;
tm test; tm test;
NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT( NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(
@ -54,7 +55,8 @@ struct ProfilePreferencesJson
kickstartaccel, kickstartaccel,
autoroulette, autoroulette,
litesteer, litesteer,
rumble rumble,
fov
) )
}; };
@ -153,6 +155,7 @@ struct profile_t
boolean autoroulette; // cv_autoroulette boolean autoroulette; // cv_autoroulette
boolean litesteer; // cv_litesteer boolean litesteer; // cv_litesteer
boolean rumble; // cv_rumble boolean rumble; // cv_rumble
UINT8 fov; // cv_fov
// Finally, control data itself // Finally, control data itself
INT32 controls[num_gamecontrols][MAXINPUTMAPPING]; // Lists of all the controls, defined the same way as default inputs in g_input.c INT32 controls[num_gamecontrols][MAXINPUTMAPPING]; // Lists of all the controls, defined the same way as default inputs in g_input.c

View file

@ -93,6 +93,7 @@ void M_StartEditProfile(INT32 c)
CV_StealthSetValue(&cv_dummyprofileautoroulette, optionsmenu.profile->autoroulette); CV_StealthSetValue(&cv_dummyprofileautoroulette, optionsmenu.profile->autoroulette);
CV_StealthSetValue(&cv_dummyprofilelitesteer, optionsmenu.profile->litesteer); CV_StealthSetValue(&cv_dummyprofilelitesteer, optionsmenu.profile->litesteer);
CV_StealthSetValue(&cv_dummyprofilerumble, optionsmenu.profile->rumble); CV_StealthSetValue(&cv_dummyprofilerumble, optionsmenu.profile->rumble);
CV_StealthSetValue(&cv_dummyprofilefov, optionsmenu.profile->fov);
} }
else else
{ {
@ -102,6 +103,7 @@ void M_StartEditProfile(INT32 c)
CV_StealthSetValue(&cv_dummyprofileautoroulette, 0); // off CV_StealthSetValue(&cv_dummyprofileautoroulette, 0); // off
CV_StealthSetValue(&cv_dummyprofilelitesteer, 1); // on CV_StealthSetValue(&cv_dummyprofilelitesteer, 1); // on
CV_StealthSetValue(&cv_dummyprofilerumble, 1); // on CV_StealthSetValue(&cv_dummyprofilerumble, 1); // on
CV_StealthSetValue(&cv_dummyprofilefov, 90);
} }
// Setup greyout and stuff. // Setup greyout and stuff.

View file

@ -90,15 +90,18 @@ static void M_ProfileEditApply(void)
optionsmenu.profile->autoroulette = cv_dummyprofileautoroulette.value; optionsmenu.profile->autoroulette = cv_dummyprofileautoroulette.value;
optionsmenu.profile->litesteer = cv_dummyprofilelitesteer.value; optionsmenu.profile->litesteer = cv_dummyprofilelitesteer.value;
optionsmenu.profile->rumble = cv_dummyprofilerumble.value; optionsmenu.profile->rumble = cv_dummyprofilerumble.value;
optionsmenu.profile->fov = cv_dummyprofilefov.value;
// If this profile is in-use by anyone, apply the changes immediately upon exiting. // If this profile is in-use by anyone, apply the changes immediately upon exiting.
// Don't apply the profile itself as that would lead to issues mid-game. // Don't apply the profile itself as that would lead to issues mid-game.
if (belongsto > -1 && belongsto < MAXSPLITSCREENPLAYERS) if (belongsto > -1 && belongsto < MAXSPLITSCREENPLAYERS)
{ {
extern consvar_t cv_fov[MAXSPLITSCREENPLAYERS];
CV_SetValue(&cv_kickstartaccel[belongsto], cv_dummyprofilekickstart.value); CV_SetValue(&cv_kickstartaccel[belongsto], cv_dummyprofilekickstart.value);
CV_SetValue(&cv_autoroulette[belongsto], cv_dummyprofileautoroulette.value); CV_SetValue(&cv_autoroulette[belongsto], cv_dummyprofileautoroulette.value);
CV_SetValue(&cv_litesteer[belongsto], cv_dummyprofilelitesteer.value); CV_SetValue(&cv_litesteer[belongsto], cv_dummyprofilelitesteer.value);
CV_SetValue(&cv_rumble[belongsto], cv_dummyprofilerumble.value); CV_SetValue(&cv_rumble[belongsto], cv_dummyprofilerumble.value);
CV_SetValue(&cv_fov[belongsto], cv_dummyprofilefov.value);
} }
// Reapply player 1's real profile. // Reapply player 1's real profile.

View file

@ -102,6 +102,9 @@ menuitem_t OPTIONS_ProfileAccessibility[] = {
{IT_STRING | IT_CVAR, "Lite Steer", "Hold DOWN on d-pad/keyboard for shallow turns.", {IT_STRING | IT_CVAR, "Lite Steer", "Hold DOWN on d-pad/keyboard for shallow turns.",
NULL, {.cvar = &cv_dummyprofilelitesteer}, 0, 0}, NULL, {.cvar = &cv_dummyprofilelitesteer}, 0, 0},
{IT_STRING | IT_CVAR, "Field of View", "Higher FOV lets you see more.",
NULL, {.cvar = &cv_dummyprofilefov}, 0, 0},
{IT_SPACE | IT_NOTHING, NULL, NULL, {IT_SPACE | IT_NOTHING, NULL, NULL,
NULL, {NULL}, 0, 0}, NULL, {NULL}, 0, 0},
@ -129,7 +132,7 @@ menu_t OPTIONS_ProfileAccessibilityDef = {
&OPTIONS_EditProfileDef, &OPTIONS_EditProfileDef,
0, 0,
OPTIONS_ProfileAccessibility, OPTIONS_ProfileAccessibility,
145, 52, 145, 41,
SKINCOLOR_ULTRAMARINE, 0, SKINCOLOR_ULTRAMARINE, 0,
MBF_DRAWBGWHILEPLAYING, MBF_DRAWBGWHILEPLAYING,
"FILE", "FILE",

View file

@ -1314,13 +1314,13 @@ void P_DoPlayerExit(player_t *player, pflags_t flags)
PR_SaveProfiles(); PR_SaveProfiles();
} }
if (P_IsLocalPlayer(player) && player->skin < numskins) if (P_IsMachineLocalPlayer(player) && player->skin < numskins)
{ {
skins[player->skin].records.wins++; skins[player->skin].records.wins++;
} }
} }
if (!demo.savebutton && P_IsLocalPlayer(player)) if (!demo.savebutton && P_IsMachineLocalPlayer(player))
demo.savebutton = leveltime; demo.savebutton = leveltime;
} }
} }