]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - host.c
Gecko: load OffscreenGecko dynamically
[xonotic/darkplaces.git] / host.c
diff --git a/host.c b/host.c
index 36fa7ac59e621588c30878e616c7afa415107c3e..62192c141a30de3868e29ca405fa15c75af1fe94 100644 (file)
--- a/host.c
+++ b/host.c
@@ -19,10 +19,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */
 // host.c -- coordinates spawning and killing of local servers
 
-#include <time.h>
 #include "quakedef.h"
+
+#include <time.h>
 #include "libcurl.h"
 #include "cdaudio.h"
+#include "cl_gecko.h"
 #include "cl_video.h"
 #include "progsvm.h"
 #include "csprogs.h"
@@ -58,7 +60,7 @@ 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"};
 // LordHavoc: framerate upper cap
-cvar_t cl_maxfps = {CVAR_SAVE, "cl_maxfps", "1000", "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_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)"};
@@ -195,7 +197,7 @@ void Host_SaveConfig_f(void);
 void Host_LoadConfig_f(void);
 static void Host_InitLocal (void)
 {
-       Cmd_AddCommand("saveconfig", Host_SaveConfig_f, "save settings to config.cfg immediately (also automatic when quitting)");
+       Cmd_AddCommand("saveconfig", Host_SaveConfig_f, "save settings to config.cfg (or a specified filename) immediately (also automatic when quitting)");
        Cmd_AddCommand("loadconfig", Host_LoadConfig_f, "reset everything and reload configs");
 
        Cvar_RegisterVariable (&host_framerate);
@@ -218,7 +220,7 @@ Host_SaveConfig_f
 Writes key bindings and archived cvars to config.cfg
 ===============
 */
-void Host_SaveConfig_f(void)
+void Host_SaveConfig_to(const char *file)
 {
        qfile_t *f;
 
@@ -227,10 +229,10 @@ void Host_SaveConfig_f(void)
        // LordHavoc: don't save a config if it crashed in startup
        if (host_framecount >= 3 && cls.state != ca_dedicated && !COM_CheckParm("-benchmark") && !COM_CheckParm("-capturedemo"))
        {
-               f = FS_Open ("config.cfg", "wb", false, false);
+               f = FS_Open (file, "wb", false, false);
                if (!f)
                {
-                       Con_Print("Couldn't write config.cfg.\n");
+                       Con_Printf("Couldn't write %s.\n", file);
                        return;
                }
 
@@ -240,7 +242,21 @@ void Host_SaveConfig_f(void)
                FS_Close (f);
        }
 }
+void Host_SaveConfig(void)
+{
+       Host_SaveConfig_to("config.cfg");
+}
+void Host_SaveConfig_f(void)
+{
+       const char *file = "config.cfg";
+
+       if(Cmd_Argc() >= 2) {
+               file = Cmd_Argv(1);
+               Con_Printf("Saving to %s\n", file);
+       }
 
+       Host_SaveConfig_to(file);
+}
 
 /*
 ===============
@@ -840,7 +856,8 @@ void Host_Main(void)
 
                        //ui_update();
 
-                       CL_VideoFrame();
+                       CL_Video_Frame();
+                       CL_Gecko_Frame();
 
                        CL_UpdateScreen();
 
@@ -854,7 +871,7 @@ void Host_Main(void)
                                cl.csqc_usecsqclistener = false;
                        }
                        else
-                               S_Update(&r_view.matrix);
+                               S_Update(&r_refdef.view.matrix);
 
                        CDAudio_Update();
 
@@ -1103,10 +1120,7 @@ static void Host_Init (void)
 
        if (!sv.active && !cls.demoplayback && !cls.connect_trying)
        {
-               if (gamemode == GAME_NEXUIZ)
-                       Cbuf_AddText("togglemenu\nplayvideo logo\ncd loop 1\n");
-               else
-                       Cbuf_AddText("togglemenu\n");
+               Cbuf_AddText("togglemenu\n");
                Cbuf_Execute();
        }
 
@@ -1156,9 +1170,10 @@ void Host_Shutdown(void)
        // AK shutdown PRVM
        // AK hmm, no PRVM_Shutdown(); yet
 
+       CL_Gecko_Shutdown();
        CL_Video_Shutdown();
 
-       Host_SaveConfig_f();
+       Host_SaveConfig();
 
        CDAudio_Shutdown ();
        S_Terminate ();