X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=sv_main.c;h=6def900a2e31a7b7ba9d43a475865c8b48fc2dad;hb=264219ad2591d111f528c48faf9be563690bb15f;hp=497e68073b9b49bd4a584bc34ea391eccdd96956;hpb=48984a5fb6aa8d7f60b0ad66c551fba35481115a;p=xonotic%2Fdarkplaces.git diff --git a/sv_main.c b/sv_main.c index 497e6807..6def900a 100644 --- a/sv_main.c +++ b/sv_main.c @@ -823,7 +823,7 @@ void SV_SendServerinfo (client_t *client) 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 @@ -938,6 +938,8 @@ void SV_SendServerinfo (client_t *client) // 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; @@ -1354,7 +1356,7 @@ qboolean SV_CanSeeBox(int numtraces, vec_t enlarge, vec3_t eye, vec3_t entboxmin matrix4x4_t matrix, imatrix; dp_model_t *model; prvm_edict_t *touch; - prvm_edict_t *touchedicts[MAX_EDICTS]; + static prvm_edict_t *touchedicts[MAX_EDICTS]; vec3_t boxmins, boxmaxs; vec3_t clipboxmins, clipboxmaxs; vec3_t endpoints[MAX_LINEOFSIGHTTRACES]; @@ -2440,8 +2442,8 @@ static void SV_Download_f(void) 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) { @@ -2695,19 +2697,29 @@ SV_ParticleEffectIndex 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; @@ -2748,7 +2760,7 @@ int SV_ParticleEffectIndex(const char *name) // 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; } } @@ -2883,31 +2895,29 @@ void SV_Prepare_CSQC(void) 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"); } }