SZ_Clear (&client->netconnection->message);
MSG_WriteByte (&client->netconnection->message, svc_print);
- dpsnprintf (message, sizeof (message), "\nServer: %s build %s (progs %i crc)", gamename, buildstring, prog->filecrc);
+ dpsnprintf (message, sizeof (message), "\nServer: %s build %s (progs %i crc)\n", gamename, buildstring, prog->filecrc);
MSG_WriteString (&client->netconnection->message,message);
SV_StopDemoRecording(client); // to split up demos into different files
// clear movement info until client enters the new level properly
memset(&client->cmd, 0, sizeof(client->cmd));
client->movesequence = 0;
+ client->movement_highestsequence_seen = 0;
+ memset(&client->movement_count, 0, sizeof(client->movement_count));
#ifdef NUM_PING_TIMES
for (i = 0;i < NUM_PING_TIMES;i++)
client->ping_times[i] = 0;
extension = FS_FileExtension(host_client->download_name);
// host_client is asking to download a specified file
- if (developer.integer >= 100)
- Con_Printf("Download request for %s by %s\n", host_client->download_name, host_client->name);
+ if (developer_extra.integer)
+ Con_DPrintf("Download request for %s by %s\n", host_client->download_name, host_client->name);
if(is_csqc)
{
int SV_ParticleEffectIndex(const char *name)
{
int i, argc, linenumber, effectnameindex;
+ int filepass;
fs_offset_t filesize;
unsigned char *filedata;
const char *text, *textstart, *textend;
char argv[16][1024];
+ char filename[MAX_QPATH];
if (!sv.particleeffectnamesloaded)
{
sv.particleeffectnamesloaded = true;
memset(sv.particleeffectname, 0, sizeof(sv.particleeffectname));
for (i = 0;i < EFFECT_TOTAL;i++)
strlcpy(sv.particleeffectname[i], standardeffectnames[i], sizeof(sv.particleeffectname[i]));
- filedata = FS_LoadFile("effectinfo.txt", tempmempool, true, &filesize);
- if (filedata)
+ for (filepass = 0;;filepass++)
{
+ if (filepass == 0)
+ dpsnprintf(filename, sizeof(filename), "effectinfo.txt");
+ else if (filepass == 1)
+ dpsnprintf(filename, sizeof(filename), "maps/%s_effectinfo.txt", sv.name);
+ else
+ break;
+ filedata = FS_LoadFile(filename, tempmempool, true, &filesize);
+ if (!filedata)
+ continue;
textstart = (const char *)filedata;
textend = (const char *)filedata + filesize;
text = textstart;
// if we run out of names, abort
if (effectnameindex == SV_MAX_PARTICLEEFFECTNAME)
{
- Con_Printf("effectinfo.txt:%i: too many effects!\n", linenumber);
+ Con_Printf("%s:%i: too many effects!\n", filename, linenumber);
break;
}
}
svs.csqc_progdata = NULL;
svs.csqc_progdata_deflated = NULL;
- Con_Print("Loading csprogs.dat\n");
-
sv.csqc_progname[0] = 0;
svs.csqc_progdata = FS_LoadFile(csqc_progname.string, sv_mempool, false, &progsize);
if(progsize > 0)
{
size_t deflated_size;
-
+
sv.csqc_progsize = (int)progsize;
sv.csqc_progcrc = CRC_Block(svs.csqc_progdata, progsize);
strlcpy(sv.csqc_progname, csqc_progname.string, sizeof(sv.csqc_progname));
- Con_Printf("server detected csqc progs file \"%s\" with size %i and crc %i\n", sv.csqc_progname, sv.csqc_progsize, sv.csqc_progcrc);
+ Con_DPrintf("server detected csqc progs file \"%s\" with size %i and crc %i\n", sv.csqc_progname, sv.csqc_progsize, sv.csqc_progcrc);
- Con_Print("Compressing csprogs.dat\n");
+ Con_DPrint("Compressing csprogs.dat\n");
//unsigned char *FS_Deflate(const unsigned char *data, size_t size, size_t *deflated_size, int level, mempool_t *mempool);
svs.csqc_progdata_deflated = FS_Deflate(svs.csqc_progdata, progsize, &deflated_size, -1, sv_mempool);
svs.csqc_progsize_deflated = (int)deflated_size;
if(svs.csqc_progdata_deflated)
{
- Con_Printf("Deflated: %g%%\n", 100.0 - 100.0 * (deflated_size / (float)progsize));
+ Con_DPrintf("Deflated: %g%%\n", 100.0 - 100.0 * (deflated_size / (float)progsize));
Con_DPrintf("Uncompressed: %u\nCompressed: %u\n", (unsigned)sv.csqc_progsize, (unsigned)svs.csqc_progsize_deflated);
}
else
- Con_Printf("Cannot compress - need zlib for this. Using uncompressed progs only.\n");
+ Con_DPrintf("Cannot compress - need zlib for this. Using uncompressed progs only.\n");
}
}