X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=host.c;h=69e980f1217a76fc0ae0aa36596bebff53c1a7d4;hb=8359cedd5064758e23498462a0a09288384bb25f;hp=90778069bff07192b652a736f9b787807ecb3631;hpb=9cf15e33af666492957a5c59998d44366e2bfec5;p=xonotic%2Fdarkplaces.git diff --git a/host.c b/host.c index 90778069..69e980f1 100644 --- a/host.c +++ b/host.c @@ -132,6 +132,7 @@ Host_Error This shuts down both the client and server ================ */ +void PRVM_ProcessError(void); static char hosterrorstring1[4096]; static char hosterrorstring2[4096]; static qboolean hosterror = false; @@ -171,6 +172,8 @@ void Host_Error (const char *error, ...) // crash all prvm progs PRVM_CrashAll(); + PRVM_ProcessError(); + if (sv.active) Host_ShutdownServer (false); @@ -256,9 +259,12 @@ void Host_ServerOptions (void) Host_InitLocal ====================== */ +void Host_SaveConfig_f(void); void Host_InitLocal (void) { Host_InitCommands (); + + Cmd_AddCommand("saveconfig", Host_SaveConfig_f); Cvar_RegisterVariable (&host_framerate); Cvar_RegisterVariable (&host_speeds); @@ -296,12 +302,12 @@ void Host_InitLocal (void) /* =============== -Host_WriteConfiguration +Host_SaveConfig_f Writes key bindings and archived cvars to config.cfg =============== */ -void Host_WriteConfiguration (void) +void Host_SaveConfig_f(void) { qfile_t *f; @@ -566,7 +572,7 @@ qboolean Host_FilterTime (double time) timecap = sys_ticrate.value; if (cl_avidemo.value >= 0.1f) timecap = 1.0 / (double)cl_avidemo.value; - else if (vid_activewindow && !scr_con_current) + else if (vid_activewindow) timecap = 1.0 / host_maxfps.value; timeleft = oldrealtime + timecap - realtime; @@ -684,6 +690,7 @@ void _Host_Frame (float time) static double time2 = 0; static double time3 = 0; int pass1, pass2, pass3; + usercmd_t cmd; // Used for receiving input if (setjmp(host_abortserver)) return; // something bad happened, or the server disconnected @@ -703,6 +710,9 @@ void _Host_Frame (float time) // allow mice or other external controllers to add commands IN_Commands(); + // Collect input into cmd + IN_ProcessMove(&cmd); + // process console commands Cbuf_Execute(); @@ -711,7 +721,7 @@ void _Host_Frame (float time) // if running the server locally, make intentions now if (cls.state == ca_connected && sv.active) - CL_SendCmd(); + CL_SendCmd(&cmd); //------------------- // @@ -741,11 +751,11 @@ void _Host_Frame (float time) // if running the server remotely, send intentions now after // the incoming messages have been read if (!sv.active) - CL_SendCmd(); + CL_SendCmd(&cmd); CL_ReadFromServer(); } - ui_update(); + //ui_update(); CL_VideoFrame(); @@ -759,12 +769,12 @@ void _Host_Frame (float time) time2 = Sys_DoubleTime(); // update audio - if (cls.signon == SIGNONS) + if (cls.signon == SIGNONS && cl.viewentity >= 0 && cl.viewentity < MAX_EDICTS && cl_entities[cl.viewentity].state_current.active) { // LordHavoc: this used to use renderer variables (eww) - vec3_t forward, right, up; - AngleVectors(cl.viewangles, forward, right, up); - S_Update(cl_entities[cl.viewentity].render.origin, forward, right, up); + vec3_t forward, left, up, origin; + Matrix4x4_ToVectors(&cl_entities[cl.viewentity].render.matrix, forward, left, up, origin); + S_Update(origin, forward, left, up); } else S_Update(vec3_origin, vec3_origin, vec3_origin, vec3_origin); @@ -783,6 +793,7 @@ void _Host_Frame (float time) host_framecount++; host_loopactive = true; + } void Host_Frame (float time) @@ -824,7 +835,6 @@ void Host_Frame (float time) //============================================================================ void Render_Init(void); -void M_Scipt_Init (); /* ==================== @@ -853,10 +863,8 @@ void Host_Init (void) Host_InitLocal(); Key_Init(); Con_Init(); - Chase_Init(); PR_Init(); PRVM_Init(); - MR_Init(); Mod_Init(); NetConn_Init(); SV_Init(); @@ -889,6 +897,7 @@ void Host_Init (void) { VID_Open(); SCR_BeginLoadingPlaque(); + MR_Init(); } } @@ -913,17 +922,17 @@ void Host_Shutdown(void) isdown = true; // Shutdown menu - MR_Shutdown(); + if(MR_Shutdown) + MR_Shutdown(); // AK shutdown PRVM // AK hmm, no PRVM_Shutdown(); yet - - Host_WriteConfiguration (); + + Host_SaveConfig_f(); CDAudio_Shutdown (); NetConn_Shutdown (); - S_Shutdown(); if (cls.state != ca_dedicated) {