]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - sys_win.c
varray_* rewritten to remove padding (varray_vertex3f, varray_texcoord2f, varray_texc...
[xonotic/darkplaces.git] / sys_win.c
index 5bd55f902cf5babb09e16b5d8c93caa14ade9318..e5655b653768b125371f396bd8e60ec9b8c82fb5 100644 (file)
--- a/sys_win.c
+++ b/sys_win.c
@@ -45,6 +45,31 @@ static HANDLE        hFile;
 static HANDLE  heventParent;
 static HANDLE  heventChild;
 
+
+/*
+===============================================================================
+
+DLL MANAGEMENT
+
+===============================================================================
+*/
+
+dllhandle_t Sys_LoadLibrary (const char* name)
+{
+       return LoadLibrary (name);
+}
+
+void Sys_UnloadLibrary (dllhandle_t handle)
+{
+       FreeLibrary (handle);
+}
+
+void* Sys_GetProcAddress (dllhandle_t handle, const char* name)
+{
+       return (void *)GetProcAddress (handle, name);
+}
+
+
 /*
 ===============================================================================
 
@@ -103,7 +128,7 @@ void Sys_Error (const char *error, ...)
                if (!in_sys_error0)
                {
                        in_sys_error0 = 1;
-                       VID_SetDefaultMode ();
+                       VID_Shutdown();
                        MessageBox(NULL, text, "Quake Error", MB_OK | MB_SETFOREGROUND | MB_ICONSTOP);
                }
                else
@@ -346,15 +371,14 @@ WinMain
 */
 HINSTANCE      global_hInstance;
 int                    global_nCmdShow;
-char           *argv[MAX_NUM_ARGVS];
-static char    *empty_string = "";
+const char     *argv[MAX_NUM_ARGVS];
+char           program_name[MAX_OSPATH];
 
 int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
 {
-       double                  frameoldtime, framenewtime;
-       MEMORYSTATUS    lpBuffer;
-       static  char    cwd[1024];
-       int                             t;
+       double frameoldtime, framenewtime;
+       MEMORYSTATUS lpBuffer;
+       int t;
 
        /* previous instances do not exist in Win32 */
        if (hPrevInstance)
@@ -366,28 +390,20 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin
        lpBuffer.dwLength = sizeof(MEMORYSTATUS);
        GlobalMemoryStatus (&lpBuffer);
 
-       if (!GetCurrentDirectory (sizeof(cwd), cwd))
-               Sys_Error ("Couldn't determine current directory");
-
-       if (cwd[strlen(cwd)-1] == '/')
-               cwd[strlen(cwd)-1] = 0;
-
-       memset(&host_parms, 0, sizeof(host_parms));
-
-       host_parms.basedir = cwd;
-
-       host_parms.argc = 1;
-       argv[0] = empty_string;
+       com_argc = 1;
+       program_name[sizeof(program_name)-1] = 0;
+       GetModuleFileNameA(NULL, program_name, sizeof(program_name) - 1);
+       argv[0] = program_name;
 
-       while (*lpCmdLine && (host_parms.argc < MAX_NUM_ARGVS))
+       while (*lpCmdLine && (com_argc < MAX_NUM_ARGVS))
        {
                while (*lpCmdLine && ((*lpCmdLine <= 32) || (*lpCmdLine > 126)))
                        lpCmdLine++;
 
                if (*lpCmdLine)
                {
-                       argv[host_parms.argc] = lpCmdLine;
-                       host_parms.argc++;
+                       argv[com_argc] = lpCmdLine;
+                       com_argc++;
 
                        while (*lpCmdLine && ((*lpCmdLine > 32) && (*lpCmdLine <= 126)))
                                lpCmdLine++;
@@ -399,7 +415,7 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin
                        }
                }
        }
-       host_parms.argv = argv;
+       com_argv = argv;
 
        Sys_Shared_EarlyInit();