mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-12-28 13:21:10 +00:00
Merge remote-tracking branch 'remotes/pub/next' into v1
This commit is contained in:
commit
096bed6a4d
10 changed files with 91 additions and 64 deletions
|
@ -50,6 +50,7 @@ static void COM_Exec_f(void);
|
||||||
static void COM_Wait_f(void);
|
static void COM_Wait_f(void);
|
||||||
static void COM_Help_f(void);
|
static void COM_Help_f(void);
|
||||||
static void COM_Toggle_f(void);
|
static void COM_Toggle_f(void);
|
||||||
|
static void COM_Add_f(void);
|
||||||
|
|
||||||
static void CV_EnforceExecVersion(void);
|
static void CV_EnforceExecVersion(void);
|
||||||
static boolean CV_FilterVarByVersion(consvar_t *v, const char *valstr);
|
static boolean CV_FilterVarByVersion(consvar_t *v, const char *valstr);
|
||||||
|
@ -291,6 +292,7 @@ void COM_Init(void)
|
||||||
COM_AddCommand("wait", COM_Wait_f);
|
COM_AddCommand("wait", COM_Wait_f);
|
||||||
COM_AddCommand("help", COM_Help_f);
|
COM_AddCommand("help", COM_Help_f);
|
||||||
COM_AddCommand("toggle", COM_Toggle_f);
|
COM_AddCommand("toggle", COM_Toggle_f);
|
||||||
|
COM_AddCommand("add", COM_Add_f);
|
||||||
RegisterNetXCmd(XD_NETVAR, Got_NetVar);
|
RegisterNetXCmd(XD_NETVAR, Got_NetVar);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -855,6 +857,27 @@ static void COM_Toggle_f(void)
|
||||||
CV_AddValue(cvar, +1);
|
CV_AddValue(cvar, +1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Command variant of CV_AddValue
|
||||||
|
*/
|
||||||
|
static void COM_Add_f(void)
|
||||||
|
{
|
||||||
|
consvar_t *cvar;
|
||||||
|
|
||||||
|
if (COM_Argc() != 3)
|
||||||
|
{
|
||||||
|
CONS_Printf(M_GetText("Add <cvar_name> <value>: Add to the value of a cvar. Negative values work too!\n"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
cvar = CV_FindVar(COM_Argv(1));
|
||||||
|
if (!cvar)
|
||||||
|
{
|
||||||
|
CONS_Alert(CONS_NOTICE, M_GetText("%s is not a cvar\n"), COM_Argv(1));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
CV_AddValue(cvar, atoi(COM_Argv(2)));
|
||||||
|
}
|
||||||
|
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
// VARIABLE SIZE BUFFERS
|
// VARIABLE SIZE BUFFERS
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
|
|
|
@ -167,7 +167,7 @@ ticcmd_t netcmds[BACKUPTICS][MAXPLAYERS];
|
||||||
static textcmdtic_t *textcmds[TEXTCMD_HASH_SIZE] = {NULL};
|
static textcmdtic_t *textcmds[TEXTCMD_HASH_SIZE] = {NULL};
|
||||||
|
|
||||||
|
|
||||||
consvar_t cv_showjoinaddress = {"showjoinaddress", "On", 0, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_showjoinaddress = {"showjoinaddress", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
static CV_PossibleValue_t playbackspeed_cons_t[] = {{1, "MIN"}, {10, "MAX"}, {0, NULL}};
|
static CV_PossibleValue_t playbackspeed_cons_t[] = {{1, "MIN"}, {10, "MAX"}, {0, NULL}};
|
||||||
consvar_t cv_playbackspeed = {"playbackspeed", "1", 0, playbackspeed_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_playbackspeed = {"playbackspeed", "1", 0, playbackspeed_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
@ -1451,33 +1451,13 @@ static void SV_SendPlayerInfo(INT32 node)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
netbuffer->u.playerinfo[i].node = (UINT8)playernode[i];
|
netbuffer->u.playerinfo[i].node = i;
|
||||||
strncpy(netbuffer->u.playerinfo[i].name, (const char *)&player_names[i], MAXPLAYERNAME+1);
|
strncpy(netbuffer->u.playerinfo[i].name, (const char *)&player_names[i], MAXPLAYERNAME+1);
|
||||||
netbuffer->u.playerinfo[i].name[MAXPLAYERNAME] = '\0';
|
netbuffer->u.playerinfo[i].name[MAXPLAYERNAME] = '\0';
|
||||||
|
|
||||||
//fetch IP address
|
//fetch IP address
|
||||||
{
|
//No, don't do that, you fuckface.
|
||||||
const char *claddress;
|
|
||||||
UINT32 numericaddress[4];
|
|
||||||
|
|
||||||
memset(netbuffer->u.playerinfo[i].address, 0, 4);
|
memset(netbuffer->u.playerinfo[i].address, 0, 4);
|
||||||
if (playernode[i] == 0)
|
|
||||||
{
|
|
||||||
//127.0.0.1
|
|
||||||
netbuffer->u.playerinfo[i].address[0] = 127;
|
|
||||||
netbuffer->u.playerinfo[i].address[3] = 1;
|
|
||||||
}
|
|
||||||
else if (playernode[i] > 0 && I_GetNodeAddress && (claddress = I_GetNodeAddress(playernode[i])) != NULL)
|
|
||||||
{
|
|
||||||
if (sscanf(claddress, "%d.%d.%d.%d", &numericaddress[0], &numericaddress[1], &numericaddress[2], &numericaddress[3]) < 4)
|
|
||||||
goto badaddress;
|
|
||||||
netbuffer->u.playerinfo[i].address[0] = (UINT8)numericaddress[0];
|
|
||||||
netbuffer->u.playerinfo[i].address[1] = (UINT8)numericaddress[1];
|
|
||||||
netbuffer->u.playerinfo[i].address[2] = (UINT8)numericaddress[2];
|
|
||||||
netbuffer->u.playerinfo[i].address[3] = (UINT8)numericaddress[3];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
badaddress:
|
|
||||||
|
|
||||||
if (G_GametypeHasTeams())
|
if (G_GametypeHasTeams())
|
||||||
{
|
{
|
||||||
|
|
11
src/d_main.c
11
src/d_main.c
|
@ -1390,6 +1390,16 @@ void D_SRB2Main(void)
|
||||||
midi_disabled = true;
|
midi_disabled = true;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
if (M_CheckParm("-noaudio")) // combines -nosound and -nomusic
|
||||||
|
{
|
||||||
|
sound_disabled = true;
|
||||||
|
digital_disabled = true;
|
||||||
|
#ifndef NO_MIDI
|
||||||
|
midi_disabled = true;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
if (M_CheckParm("-nosound"))
|
if (M_CheckParm("-nosound"))
|
||||||
sound_disabled = true;
|
sound_disabled = true;
|
||||||
if (M_CheckParm("-nomusic")) // combines -nomidimusic and -nodigmusic
|
if (M_CheckParm("-nomusic")) // combines -nomidimusic and -nodigmusic
|
||||||
|
@ -1408,6 +1418,7 @@ void D_SRB2Main(void)
|
||||||
if (M_CheckParm("-nodigmusic"))
|
if (M_CheckParm("-nodigmusic"))
|
||||||
digital_disabled = true; // WARNING: DOS version initmusic in I_StartupSound
|
digital_disabled = true; // WARNING: DOS version initmusic in I_StartupSound
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (!( sound_disabled && digital_disabled
|
if (!( sound_disabled && digital_disabled
|
||||||
#ifndef NO_MIDI
|
#ifndef NO_MIDI
|
||||||
&& midi_disabled
|
&& midi_disabled
|
||||||
|
|
|
@ -423,7 +423,7 @@ consvar_t cv_numlaps = {"numlaps", "3", CV_NETVAR|CV_CALL|CV_NOINIT, numlaps_con
|
||||||
static CV_PossibleValue_t basenumlaps_cons_t[] = {{1, "MIN"}, {50, "MAX"}, {0, "Map default"}, {0, NULL}};
|
static CV_PossibleValue_t basenumlaps_cons_t[] = {{1, "MIN"}, {50, "MAX"}, {0, "Map default"}, {0, NULL}};
|
||||||
consvar_t cv_basenumlaps = {"basenumlaps", "Map default", CV_NETVAR|CV_CALL|CV_CHEAT, basenumlaps_cons_t, BaseNumLaps_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_basenumlaps = {"basenumlaps", "Map default", CV_NETVAR|CV_CALL|CV_CHEAT, basenumlaps_cons_t, BaseNumLaps_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
consvar_t cv_forceskin = {"forceskin", "-1", CV_NETVAR|CV_CALL|CV_CHEAT, NULL, ForceSkin_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_forceskin = {"forceskin", "Off", CV_NETVAR|CV_CALL|CV_CHEAT, Forceskin_cons_t, ForceSkin_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_downloading = {"downloading", "On", 0, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_downloading = {"downloading", "On", 0, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_allowexitlevel = {"allowexitlevel", "No", CV_NETVAR, CV_YesNo, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_allowexitlevel = {"allowexitlevel", "No", CV_NETVAR, CV_YesNo, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
|
@ -514,6 +514,17 @@ const char *netxcmdnames[MAXNETXCMD - 1] =
|
||||||
*/
|
*/
|
||||||
void D_RegisterServerCommands(void)
|
void D_RegisterServerCommands(void)
|
||||||
{
|
{
|
||||||
|
int i;
|
||||||
|
Forceskin_cons_t[0].value = -1;
|
||||||
|
Forceskin_cons_t[0].strvalue = "Off";
|
||||||
|
|
||||||
|
// Set the values to 0/NULl, it will be overwritten later when a skin is assigned to the slot.
|
||||||
|
for (i = 1; i < MAXSKINS; i++)
|
||||||
|
{
|
||||||
|
Forceskin_cons_t[i].value = 0;
|
||||||
|
Forceskin_cons_t[i].strvalue = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
RegisterNetXCmd(XD_NAMEANDCOLOR, Got_NameAndColor);
|
RegisterNetXCmd(XD_NAMEANDCOLOR, Got_NameAndColor);
|
||||||
RegisterNetXCmd(XD_WEAPONPREF, Got_WeaponPref);
|
RegisterNetXCmd(XD_WEAPONPREF, Got_WeaponPref);
|
||||||
RegisterNetXCmd(XD_MAP, Got_Mapcmd);
|
RegisterNetXCmd(XD_MAP, Got_Mapcmd);
|
||||||
|
@ -5152,27 +5163,11 @@ static void Command_Archivetest_f(void)
|
||||||
|
|
||||||
/** Makes a change to ::cv_forceskin take effect immediately.
|
/** Makes a change to ::cv_forceskin take effect immediately.
|
||||||
*
|
*
|
||||||
* \todo Move the enforcement code out of SendNameAndColor() so this hack
|
|
||||||
* isn't needed.
|
|
||||||
* \sa Command_SetForcedSkin_f, cv_forceskin, forcedskin
|
* \sa Command_SetForcedSkin_f, cv_forceskin, forcedskin
|
||||||
* \author Graue <graue@oceanbase.org>
|
* \author Graue <graue@oceanbase.org>
|
||||||
*/
|
*/
|
||||||
static void ForceSkin_OnChange(void)
|
static void ForceSkin_OnChange(void)
|
||||||
{
|
{
|
||||||
if ((server || IsPlayerAdmin(consoleplayer)) && (cv_forceskin.value < -1 || cv_forceskin.value >= numskins))
|
|
||||||
{
|
|
||||||
if (cv_forceskin.value == -2)
|
|
||||||
CV_SetValue(&cv_forceskin, numskins-1);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// hack because I can't restrict this and still allow added skins to be used with forceskin.
|
|
||||||
if (!menuactive)
|
|
||||||
CONS_Printf(M_GetText("Valid skin numbers are 0 to %d (-1 disables)\n"), numskins - 1);
|
|
||||||
CV_SetValue(&cv_forceskin, -1);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// NOT in SP, silly!
|
// NOT in SP, silly!
|
||||||
if (!(netgame || multiplayer))
|
if (!(netgame || multiplayer))
|
||||||
return;
|
return;
|
||||||
|
@ -5181,7 +5176,7 @@ static void ForceSkin_OnChange(void)
|
||||||
CONS_Printf("The server has lifted the forced skin restrictions.\n");
|
CONS_Printf("The server has lifted the forced skin restrictions.\n");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
CONS_Printf("The server is restricting all players to skin \"%s\".\n",skins[cv_forceskin.value].name);
|
CONS_Printf("The server is restricting all players to skin \"%s\".\n",cv_forceskin.string);
|
||||||
ForceAllSkins(cv_forceskin.value);
|
ForceAllSkins(cv_forceskin.value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1239,6 +1239,8 @@ void G_ClearAllControlKeys(void)
|
||||||
{
|
{
|
||||||
G_ClearControlKeys(gamecontrol, i);
|
G_ClearControlKeys(gamecontrol, i);
|
||||||
G_ClearControlKeys(gamecontrolbis, i);
|
G_ClearControlKeys(gamecontrolbis, i);
|
||||||
|
G_ClearControlKeys(gamecontrol3, i);
|
||||||
|
G_ClearControlKeys(gamecontrol4, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
11
src/m_menu.c
11
src/m_menu.c
|
@ -7456,6 +7456,9 @@ static void M_ConnectMenu(INT32 choice)
|
||||||
|
|
||||||
// first page of servers
|
// first page of servers
|
||||||
serverlistpage = 0;
|
serverlistpage = 0;
|
||||||
|
if (ms_RoomId < 0)
|
||||||
|
M_RoomMenu(0); // Select a room instead of staring at an empty list
|
||||||
|
else
|
||||||
M_SetupNextMenu(&MP_ConnectDef);
|
M_SetupNextMenu(&MP_ConnectDef);
|
||||||
itemOn = 0;
|
itemOn = 0;
|
||||||
M_Refresh(0);
|
M_Refresh(0);
|
||||||
|
@ -7529,6 +7532,14 @@ static void M_ChooseRoom(INT32 choice)
|
||||||
}
|
}
|
||||||
|
|
||||||
serverlistpage = 0;
|
serverlistpage = 0;
|
||||||
|
/*
|
||||||
|
We were on the Multiplayer menu? That means that we must have been trying to
|
||||||
|
view the server browser, but we hadn't selected a room yet. So we need to go
|
||||||
|
to the browser next, not back there.
|
||||||
|
*/
|
||||||
|
if (currentMenu->prevMenu == &MP_MainDef)
|
||||||
|
M_SetupNextMenu(&MP_ConnectDef);
|
||||||
|
else
|
||||||
M_SetupNextMenu(currentMenu->prevMenu);
|
M_SetupNextMenu(currentMenu->prevMenu);
|
||||||
if (currentMenu == &MP_ConnectDef)
|
if (currentMenu == &MP_ConnectDef)
|
||||||
M_Refresh(0);
|
M_Refresh(0);
|
||||||
|
|
|
@ -40,6 +40,8 @@ int snprintf(char *str, size_t n, const char *fmt, ...);
|
||||||
//int vsnprintf(char *str, size_t n, const char *fmt, va_list ap);
|
//int vsnprintf(char *str, size_t n, const char *fmt, va_list ap);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
CV_PossibleValue_t Forceskin_cons_t[MAXSKINS+2];
|
||||||
|
|
||||||
static void R_InitSkins(void);
|
static void R_InitSkins(void);
|
||||||
|
|
||||||
#define MINZ (FRACUNIT*4)
|
#define MINZ (FRACUNIT*4)
|
||||||
|
@ -1796,7 +1798,7 @@ void R_AddSprites(sector_t *sec, INT32 lightlevel, UINT8 viewnumber)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Someone seriously wants infinite draw distance for precipitation?
|
// no, no infinite draw distance for precipitation. this option at zero is supposed to turn it off
|
||||||
if ((limit_dist = (fixed_t)cv_drawdist_precip.value << FRACBITS))
|
if ((limit_dist = (fixed_t)cv_drawdist_precip.value << FRACBITS))
|
||||||
{
|
{
|
||||||
for (precipthing = sec->preciplist; precipthing; precipthing = precipthing->snext)
|
for (precipthing = sec->preciplist; precipthing; precipthing = precipthing->snext)
|
||||||
|
@ -1812,13 +1814,6 @@ void R_AddSprites(sector_t *sec, INT32 lightlevel, UINT8 viewnumber)
|
||||||
R_ProjectPrecipitationSprite(precipthing);
|
R_ProjectPrecipitationSprite(precipthing);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
// Draw everything in sector, no checks
|
|
||||||
for (precipthing = sec->preciplist; precipthing; precipthing = precipthing->snext)
|
|
||||||
if (!(precipthing->precipflags & PCF_INVISIBLE))
|
|
||||||
R_ProjectPrecipitationSprite(precipthing);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -2588,6 +2583,10 @@ void R_InitSkins(void)
|
||||||
skin->spritedef.spriteframes = sprites[SPR_PLAY].spriteframes;
|
skin->spritedef.spriteframes = sprites[SPR_PLAY].spriteframes;
|
||||||
ST_LoadFaceGraphics(skin->facerank, skin->facewant, skin->facemmap, 0);
|
ST_LoadFaceGraphics(skin->facerank, skin->facewant, skin->facemmap, 0);
|
||||||
|
|
||||||
|
// Set values for Sonic skin
|
||||||
|
Forceskin_cons_t[1].value = 0;
|
||||||
|
Forceskin_cons_t[1].strvalue = skin->name;
|
||||||
|
|
||||||
//MD2 for sonic doesn't want to load in Linux.
|
//MD2 for sonic doesn't want to load in Linux.
|
||||||
#ifdef HWRENDER
|
#ifdef HWRENDER
|
||||||
if (rendermode == render_opengl)
|
if (rendermode == render_opengl)
|
||||||
|
@ -2971,6 +2970,10 @@ next_token:
|
||||||
skin_cons_t[numskins].strvalue = skin->name;
|
skin_cons_t[numskins].strvalue = skin->name;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Update the forceskin possiblevalues
|
||||||
|
Forceskin_cons_t[numskins+1].value = numskins;
|
||||||
|
Forceskin_cons_t[numskins+1].strvalue = skins[numskins].name;
|
||||||
|
|
||||||
// add face graphics
|
// add face graphics
|
||||||
ST_LoadFaceGraphics(skin->facerank, skin->facewant, skin->facemmap, numskins);
|
ST_LoadFaceGraphics(skin->facerank, skin->facewant, skin->facemmap, numskins);
|
||||||
|
|
||||||
|
|
|
@ -97,6 +97,8 @@ typedef struct
|
||||||
sfxenum_t soundsid[NUMSKINSOUNDS]; // sound # in S_sfx table
|
sfxenum_t soundsid[NUMSKINSOUNDS]; // sound # in S_sfx table
|
||||||
} skin_t;
|
} skin_t;
|
||||||
|
|
||||||
|
extern CV_PossibleValue_t Forceskin_cons_t[];
|
||||||
|
|
||||||
// -----------
|
// -----------
|
||||||
// NOT SKINS STUFF !
|
// NOT SKINS STUFF !
|
||||||
// -----------
|
// -----------
|
||||||
|
|
|
@ -2182,7 +2182,7 @@ static void Command_RestartAudio_f(void)
|
||||||
|
|
||||||
void GameSounds_OnChange(void)
|
void GameSounds_OnChange(void)
|
||||||
{
|
{
|
||||||
if (M_CheckParm("-nosound"))
|
if (M_CheckParm("-nosound") || M_CheckParm("-noaudio"))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (sound_disabled)
|
if (sound_disabled)
|
||||||
|
@ -2196,7 +2196,7 @@ void GameSounds_OnChange(void)
|
||||||
|
|
||||||
void GameDigiMusic_OnChange(void)
|
void GameDigiMusic_OnChange(void)
|
||||||
{
|
{
|
||||||
if (M_CheckParm("-nomusic"))
|
if (M_CheckParm("-nomusic") || M_CheckParm("-noaudio"))
|
||||||
return;
|
return;
|
||||||
else if (M_CheckParm("-nodigmusic"))
|
else if (M_CheckParm("-nodigmusic"))
|
||||||
return;
|
return;
|
||||||
|
@ -2239,7 +2239,7 @@ void GameDigiMusic_OnChange(void)
|
||||||
#ifndef NO_MIDI
|
#ifndef NO_MIDI
|
||||||
void GameMIDIMusic_OnChange(void)
|
void GameMIDIMusic_OnChange(void)
|
||||||
{
|
{
|
||||||
if (M_CheckParm("-nomusic"))
|
if (M_CheckParm("-nomusic") || M_CheckParm("-noaudio"))
|
||||||
return;
|
return;
|
||||||
else if (M_CheckParm("-nomidimusic"))
|
else if (M_CheckParm("-nomidimusic"))
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -1505,11 +1505,11 @@ void Y_EndVote(void)
|
||||||
//
|
//
|
||||||
static void Y_UnloadVoteData(void)
|
static void Y_UnloadVoteData(void)
|
||||||
{
|
{
|
||||||
|
voteclient.loaded = false;
|
||||||
|
|
||||||
if (rendermode != render_soft)
|
if (rendermode != render_soft)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
voteclient.loaded = false;
|
|
||||||
|
|
||||||
UNLOAD(widebgpatch);
|
UNLOAD(widebgpatch);
|
||||||
UNLOAD(bgpatch);
|
UNLOAD(bgpatch);
|
||||||
UNLOAD(cursor);
|
UNLOAD(cursor);
|
||||||
|
|
Loading…
Reference in a new issue