X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=host.c;h=0bafb91ad6076e4d898bd50d1966b92d399afdd5;hb=f7c3669f2d20d7d0951803f40343d75c3f36bc18;hp=6fd81f1fe8bf54e65348b01859a5b206d290a135;hpb=cb435e4ef6e11254410c775b8a362966a2c34d36;p=xonotic%2Fdarkplaces.git diff --git a/host.c b/host.c index 6fd81f1f..0bafb91a 100644 --- a/host.c +++ b/host.c @@ -60,13 +60,17 @@ cvar_t host_framerate = {0, "host_framerate","0", "locks frame timing to this va // shows time used by certain subsystems cvar_t host_speeds = {0, "host_speeds","0", "reports how much time is used in server/graphics/sound"}; cvar_t cl_minfps = {CVAR_SAVE, "cl_minfps", "40", "minimum fps target - while the rendering performance is below this, it will drift toward lower quality"}; -cvar_t cl_minfps_logbase = {CVAR_SAVE, "cl_minfps_logbase", "1.2", "base for log() function in calculating quality reduction, should be in the range 1.1 to 2.0"}; -cvar_t cl_minfps_fade = {CVAR_SAVE, "cl_minfps_fade", "0.2", "how fast the quality reduction adapts to varying framerate"}; -cvar_t cl_minfps_maxqualityreduction = {CVAR_SAVE, "cl_minfps_maxqualityreduction", "2", "how much particle quality can be reduced (as a power of 2) when framerate is staying below cl_minfps, 0 = no reduction, 1 = 50% quality, 2 = 25% quality, 3 = 12.5% quality, ..."}; +cvar_t cl_minfps_fade = {CVAR_SAVE, "cl_minfps_fade", "0.2", "how fast the quality adapts to varying framerate"}; +cvar_t cl_minfps_qualitymax = {CVAR_SAVE, "cl_minfps_qualitymax", "1", "highest allowed drawdistance multiplier"}; +cvar_t cl_minfps_qualitymin = {CVAR_SAVE, "cl_minfps_qualitymin", "0.25", "lowest allowed drawdistance multiplier"}; +cvar_t cl_minfps_qualitypower = {CVAR_SAVE, "cl_minfps_qualitypower", "4", "raises quality value to a power of itself, higher values make quality drop more sharply in relation to framerate"}; +cvar_t cl_minfps_qualityscale = {CVAR_SAVE, "cl_minfps_qualityscale", "0.5", "multiplier for quality"}; cvar_t cl_maxfps = {CVAR_SAVE, "cl_maxfps", "1000000", "maximum fps cap, if game is running faster than this it will wait before running another frame (useful to make cpu time available to other programs)"}; cvar_t cl_maxidlefps = {CVAR_SAVE, "cl_maxidlefps", "20", "maximum fps cap when the game is not the active window (makes cpu time available to other programs"}; cvar_t developer = {0, "developer","0", "prints additional debugging messages and information (recommended for modders and level designers)"}; +cvar_t developer_loadfile = {0, "developer_loadfile","0", "prints name and size of every file loaded via the FS_LoadFile function (which is almost everything)"}; +cvar_t developer_loading = {0, "developer_loading","0", "prints information about files as they are loaded or unloaded successfully"}; cvar_t developer_entityparsing = {0, "developer_entityparsing", "0", "prints detailed network entities information each time a packet is received"}; cvar_t timestamps = {CVAR_SAVE, "timestamps", "0", "prints timestamps on console messages"}; @@ -206,13 +210,17 @@ static void Host_InitLocal (void) Cvar_RegisterVariable (&host_framerate); Cvar_RegisterVariable (&host_speeds); Cvar_RegisterVariable (&cl_minfps); - Cvar_RegisterVariable (&cl_minfps_logbase); Cvar_RegisterVariable (&cl_minfps_fade); - Cvar_RegisterVariable (&cl_minfps_maxqualityreduction); + Cvar_RegisterVariable (&cl_minfps_qualitymax); + Cvar_RegisterVariable (&cl_minfps_qualitymin); + Cvar_RegisterVariable (&cl_minfps_qualitypower); + Cvar_RegisterVariable (&cl_minfps_qualityscale); Cvar_RegisterVariable (&cl_maxfps); Cvar_RegisterVariable (&cl_maxidlefps); Cvar_RegisterVariable (&developer); + Cvar_RegisterVariable (&developer_loadfile); + Cvar_RegisterVariable (&developer_loading); Cvar_RegisterVariable (&developer_entityparsing); Cvar_RegisterVariable (×tamps); @@ -520,9 +528,6 @@ void Host_ShutdownServer(void) // make sure all the clients know we're disconnecting SV_VM_Begin(); - for (i = 0, host_client = svs.clients;i < svs.maxclients;i++, host_client++) - if (host_client->active) - SV_DropClient(false); // server shutdown if(prog->loaded) if(prog->funcoffsets.SV_Shutdown) { @@ -530,6 +535,9 @@ void Host_ShutdownServer(void) prog->funcoffsets.SV_Shutdown = 0; // prevent it from getting called again PRVM_ExecuteProgram(s,"SV_Shutdown() required"); } + for (i = 0, host_client = svs.clients;i < svs.maxclients;i++, host_client++) + if (host_client->active) + SV_DropClient(false); // server shutdown SV_VM_End(); NetConn_CloseServerPorts(); @@ -687,22 +695,15 @@ void Host_Main(void) wait = cl_timer * -1000000.0; else wait = max(cl_timer, sv_timer) * -1000000.0; - if (wait > 100000) - wait = 100000; + wait = bound(0, wait, 100000); - if (!cls.timedemo && wait > 0) + if (!cls.timedemo && wait >= 1) { double time0 = Sys_DoubleTime(); if (sv_checkforpacketsduringsleep.integer) - { - if (wait >= 1) - NetConn_SleepMicroseconds((int)wait); - } + NetConn_SleepMicroseconds((int)wait); else - { - if (wait >= 1000) - Sys_Sleep((int)wait / 1000); - } + Sys_Sleep((int)wait); svs.perf_acc_sleeptime += Sys_DoubleTime() - time0; continue; } @@ -962,8 +963,8 @@ static void Host_Init (void) // COMMANDLINEOPTION: Console: -developer enables warnings and other notices (RECOMMENDED for mod developers) if (COM_CheckParm("-developer")) { - developer.value = developer.integer = 100; - developer.string = "100"; + developer.value = developer.integer = 1; + developer.string = "1"; } if (COM_CheckParm("-developer2")) @@ -1030,7 +1031,7 @@ static void Host_Init (void) if (cls.state != ca_dedicated) { - Con_Printf("Initializing client\n"); + Con_DPrintf("Initializing client\n"); R_Modules_Init(); Palette_Init();