static void SV_SaveEntFile_f(void);
static void SV_StartDownload_f(void);
static void SV_Download_f(void);
-static void SV_VM_Setup();
+static void SV_VM_Setup(void);
extern cvar_t net_connecttimeout;
void VM_CustomStats_Clear (void);
Cvar_SetValueQuick (&sv_gameplayfix_blowupfallenzombies, 0);
// hipnotic mission pack has issues with bobbing water entities 'jittering' between different heights on alternate frames at the default 0.0138889 ticrate, 0.02 avoids this issue
Cvar_SetValueQuick (&sys_ticrate, 0.02);
+ // hipnotic mission pack has issues in their proximity mine sticking code, which causes them to bounce off.
+ Cvar_SetValueQuick (&sv_gameplayfix_slidemoveprojectiles, 0);
}
if (gamemode == GAME_ROGUE)
{
int i, numsendstates;
entity_state_t *s;
prvm_edict_t *camera;
+ qboolean success;
// if there isn't enough space to accomplish anything, skip it
if (msg->cursize + 25 > maxsize)
else
EntityFrameCSQC_WriteFrame(msg, maxsize, numsendstates, sv.writeentitiestoclient_sendstates, 0);
+ if(client->num_skippedentityframes >= 10)
+ need_empty = true; // force every 10th frame to be not empty (or cl_movement replay takes too long)
+
if (client->entitydatabase5)
- EntityFrame5_WriteFrame(msg, maxsize, client->entitydatabase5, numsendstates, sv.writeentitiestoclient_sendstates, client - svs.clients + 1, client->movesequence, need_empty);
+ success = EntityFrame5_WriteFrame(msg, maxsize, client->entitydatabase5, numsendstates, sv.writeentitiestoclient_sendstates, client - svs.clients + 1, client->movesequence, need_empty);
else if (client->entitydatabase4)
{
- EntityFrame4_WriteFrame(msg, maxsize, client->entitydatabase4, numsendstates, sv.writeentitiestoclient_sendstates);
+ success = EntityFrame4_WriteFrame(msg, maxsize, client->entitydatabase4, numsendstates, sv.writeentitiestoclient_sendstates);
Protocol_WriteStatsReliable();
}
else if (client->entitydatabase)
{
- EntityFrame_WriteFrame(msg, maxsize, client->entitydatabase, numsendstates, sv.writeentitiestoclient_sendstates, client - svs.clients + 1);
+ success = EntityFrame_WriteFrame(msg, maxsize, client->entitydatabase, numsendstates, sv.writeentitiestoclient_sendstates, client - svs.clients + 1);
Protocol_WriteStatsReliable();
}
else
{
- EntityFrameQuake_WriteFrame(msg, maxsize, numsendstates, sv.writeentitiestoclient_sendstates);
+ success = EntityFrameQuake_WriteFrame(msg, maxsize, numsendstates, sv.writeentitiestoclient_sendstates);
Protocol_WriteStatsReliable();
}
+
+ if(success)
+ client->num_skippedentityframes = 0;
+ else
+ ++client->num_skippedentityframes;
}
/*
dpsnprintf(sv.model_precache[i+1], sizeof(sv.model_precache[i+1]), "*%i", i);
sv.models[i+1] = Mod_ForName (sv.model_precache[i+1], false, false, sv.modelname);
}
+ if(i < sv.worldmodel->brush.numsubmodels)
+ Con_Printf("Too many submodels (MAX_MODELS is %i)\n", MAX_MODELS);
//
// load the rest of the entities