diff --git a/src/hu_stuff.c b/src/hu_stuff.c index bb2b837fcb299e8b0003eaa24764302d2e5bf7ee..4b199f6b3a669b51acdf7f7a45197abd465e78cd 100644 --- a/src/hu_stuff.c +++ b/src/hu_stuff.c @@ -620,7 +620,7 @@ static void Command_CSay_f(void) DoSayCommand(0, 1, HU_CSAY); } -static tic_t spam_tokens[MAXPLAYERS]; +static tic_t spam_tokens[MAXPLAYERS] = { 1 }; // fill the buffer with 1 so the motd can be sent. static tic_t spam_tics[MAXPLAYERS]; /** Receives a message, processing an ::XD_SAY command. diff --git a/src/netcode/d_netcmd.c b/src/netcode/d_netcmd.c index fa9793573472a49704da8c9aafea363235c78593..bceb0155991a075693f897b588443bb0ef006793 100644 --- a/src/netcode/d_netcmd.c +++ b/src/netcode/d_netcmd.c @@ -394,7 +394,7 @@ consvar_t cv_ps_descriptor = CVAR_INIT ("ps_descriptor", "Average", 0, ps_descri consvar_t cv_freedemocamera = CVAR_INIT("freedemocamera", "Off", CV_SAVE, CV_OnOff, NULL); // NOTE: this should be in hw_main.c, but we can't put it there as it breaks dedicated build -consvar_t cv_glallowshaders = CVAR_INIT ("gr_allowclientshaders", "On", CV_NETVAR, CV_OnOff, NULL); +consvar_t cv_glallowshaders = CVAR_INIT ("gr_allowcustomshaders", "On", CV_NETVAR, CV_OnOff, NULL); char timedemo_name[256]; boolean timedemo_csv; @@ -4661,15 +4661,28 @@ static void Command_Cheats_f(void) CV_ResetCheatNetVars(); return; } + else if (COM_CheckParm("on")) + { + if (!(server || (IsPlayerAdmin(consoleplayer)))) + CONS_Printf(M_GetText("Only the server or a remote admin can use this.\n")); + else + G_SetUsedCheats(false); + return; + } + + if (usedCheats) + CONS_Printf(M_GetText("Cheats are enabled, the game cannot be saved.\n")); + else + CONS_Printf(M_GetText("Cheats are disabled, the game can be saved.\n")); if (CV_CheatsEnabled()) { - CONS_Printf(M_GetText("At least one CHEAT-marked variable has been changed -- Cheats are enabled.\n")); + CONS_Printf(M_GetText("At least one CHEAT-marked variable has been changed.\n")); if (server || (IsPlayerAdmin(consoleplayer))) CONS_Printf(M_GetText("Type CHEATS OFF to reset all cheat variables to default.\n")); } else - CONS_Printf(M_GetText("No CHEAT-marked variables are changed -- Cheats are disabled.\n")); + CONS_Printf(M_GetText("No CHEAT-marked variables are changed.\n")); } #ifdef _DEBUG diff --git a/src/netcode/i_tcp.c b/src/netcode/i_tcp.c index 6d9a2725a3c65fb93e3f1f3b89e47dcf0464ad05..96342d5c6c55b901e2ce568aa9a62bfe330b4b3a 100644 --- a/src/netcode/i_tcp.c +++ b/src/netcode/i_tcp.c @@ -300,6 +300,10 @@ init_upnpc_once(struct upnpdata *upnpuserdata) int upnp_error = -2; int scope_id = 0; int status_code = 0; + + memset(&urls, 0, sizeof(struct UPNPUrls)); + memset(&data, 0, sizeof(struct IGDdatas)); + CONS_Printf(M_GetText("Looking for UPnP Internet Gateway Device\n")); devlist = upnpDiscoverDevices(deviceTypes, 500, NULL, NULL, 0, false, 2, &upnp_error, 0); if (devlist) @@ -327,8 +331,6 @@ init_upnpc_once(struct upnpdata *upnpuserdata) parserootdesc(descXML, descXMLsize, &data); free(descXML); descXML = NULL; - memset(&urls, 0, sizeof(struct UPNPUrls)); - memset(&data, 0, sizeof(struct IGDdatas)); GetUPNPUrls(&urls, &data, dev->descURL, status_code); I_AddExitFunc(I_ShutdownUPnP); } diff --git a/src/p_mobj.c b/src/p_mobj.c index 1dd766fc38222b90c4eb0c7ffffbf7458b3ff229..acee8733f46e1a9169dbdba703ae9ccb45e73656 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -10869,9 +10869,6 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type, ...) ))) mobj->flags2 |= MF2_DONTRESPAWN; - if (!(mobj->flags & MF_NOTHINK)) - P_AddThinker(THINK_MOBJ, &mobj->thinker); - if (type == MT_PLAYER) { // when spawning MT_PLAYER, set mobj->player before calling MobjSpawn hook to prevent P_RemoveMobj from succeeding on player mobj. @@ -10881,6 +10878,9 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type, ...) va_end(args); } + if (!(mobj->flags & MF_NOTHINK) || (titlemapinaction && mobj->type == MT_ALTVIEWMAN)) + P_AddThinker(THINK_MOBJ, &mobj->thinker); + // increment mobj reference, so we don't get a dangling reference in case MobjSpawn calls P_RemoveMobj mobj->thinker.references++; diff --git a/src/r_segs.c b/src/r_segs.c index 267c1d47d63ff32a56d6e6b0330783397dacfee3..453debeb6ef69840329270624f70dddae4603f49 100644 --- a/src/r_segs.c +++ b/src/r_segs.c @@ -441,7 +441,7 @@ static void R_DrawRepeatMaskedColumn(column_t *col, unsigned lengthcol) { while (sprtopscreen < sprbotscreen) { R_DrawMaskedColumn(col, lengthcol); - if ((INT64)sprtopscreen + dc_texheight*spryscale > (INT64)INT32_MAX) // prevent overflow + if ((INT64)sprtopscreen + (INT64)dc_texheight*spryscale > (INT64)INT32_MAX) // prevent overflow sprtopscreen = INT32_MAX; else sprtopscreen += dc_texheight*spryscale;