]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - host.c
Hopefully finished the core of the new ui.
[xonotic/darkplaces.git] / host.c
diff --git a/host.c b/host.c
index ef1e0c3740ce633c7b02959d42d72ec1ea2de768..89e5dab93e4f1ba2296262eb3a8d4b68850623e0 100644 (file)
--- a/host.c
+++ b/host.c
@@ -136,8 +136,6 @@ void PRVM_ProcessError(void);
 static char hosterrorstring1[4096];
 static char hosterrorstring2[4096];
 static qboolean hosterror = false;
-extern char sv_spawnmap[MAX_QPATH];
-extern char sv_loadgame[MAX_OSPATH];
 void Host_Error (const char *error, ...)
 {
        va_list argptr;
@@ -159,10 +157,6 @@ void Host_Error (const char *error, ...)
 
        strcpy(hosterrorstring2, hosterrorstring1);
 
-       // make sure we don't get in a loading loop
-       sv_loadgame[0] = 0;
-       sv_spawnmap[0] = 0;
-
        CL_Parse_DumpPacket();
 
        PR_Crash();
@@ -259,9 +253,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);
@@ -299,12 +296,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;
 
@@ -569,7 +566,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;
@@ -713,9 +710,6 @@ void _Host_Frame (float time)
        // process console commands
        Cbuf_Execute();
 
-       // LordHavoc: map and load are delayed until video is initialized
-       Host_PerformSpawnServerAndLoadGame();
-
        // if running the server locally, make intentions now
        if (cls.state == ca_connected && sv.active)
                CL_SendCmd(&cmd);
@@ -752,7 +746,7 @@ void _Host_Frame (float time)
                CL_ReadFromServer();
        }
 
-       ui_update();
+       //ui_update();
 
        CL_VideoFrame();
 
@@ -832,7 +826,6 @@ void Host_Frame (float time)
 //============================================================================
 
 void Render_Init(void);
-void M_Scipt_Init ();
 
 /*
 ====================
@@ -881,10 +874,8 @@ void Host_Init (void)
                CL_Init();
        }
 
-       Cbuf_InsertText ("exec quake.rc\n");
-       Cbuf_Execute();
-       Cbuf_Execute();
-       Cbuf_Execute();
+       // only cvars are executed when host_initialized == false
+       Cbuf_InsertText("exec quake.rc\n");
        Cbuf_Execute();
 
        host_initialized = true;
@@ -895,9 +886,13 @@ void Host_Init (void)
        {
                VID_Open();
                SCR_BeginLoadingPlaque();
+               MR_Init();
        }
 
-       MR_Init();
+       // stuff it again so the first host frame will execute it again, this time
+       // in its entirety
+       Cbuf_InsertText("exec quake.rc\n");
+       Cbuf_Execute();
 }
 
 
@@ -928,7 +923,7 @@ void Host_Shutdown(void)
        // AK hmm, no PRVM_Shutdown(); yet
 
 
-       Host_WriteConfiguration ();
+       Host_SaveConfig_f();
 
        CDAudio_Shutdown ();
        NetConn_Shutdown ();