diff --git a/source/cl_sys_win.c b/source/cl_sys_win.c index c9f67fc..0b41bce 100644 --- a/source/cl_sys_win.c +++ b/source/cl_sys_win.c @@ -50,12 +50,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "quakedef.h" #include "winquake.h" #include "resource.h" -#include "errno.h" -#include "fcntl.h" +#include "sys.h" +#include +#include #include #include #include -#include "sys.h" + qboolean is_server = false; #define MINIMUM_WIN_MEMORY 0x0c00000 @@ -181,8 +182,6 @@ Sys_Init */ void Sys_Init (void) { -// LARGE_INTEGER PerformanceFreq; -// unsigned int lowpart, highpart; OSVERSIONINFO vinfo; // allocate a named semaphore on the client so the @@ -276,30 +275,6 @@ void Sys_Quit (void) -double Sys_DoubleTime (void) -{ - static DWORD starttime; - static qboolean first = true; - DWORD now; -// double t; - - now = timeGetTime(); - - if (first) { - first = false; - starttime = now; - return 0.0; - } - - if (now < starttime) // wrapped? - return (now / 1000.0) + (LONG_MAX - starttime / 1000.0); - - if (now - starttime == 0) - return 0.0; - - return (now - starttime) / 1000.0; -} - char *Sys_ConsoleInput (void) { static char text[256]; diff --git a/source/qw_client.dsp b/source/qw_client.dsp index b575e0d..acf4b46 100644 --- a/source/qw_client.dsp +++ b/source/qw_client.dsp @@ -55,7 +55,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 -# ADD LINK32 dxguid.lib mgllt.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libcmt" /out:"Release/qw-client-win.exe" +# ADD LINK32 dxguid.lib mglfx.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libcmt" /out:"Release/qw-client-win.exe" !ELSEIF "$(CFG)" == "qw_client - Win32 Debug" @@ -71,7 +71,7 @@ LINK32=link.exe # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "id386" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "id386" /FR /YX /FD /GZ /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD BASE RSC /l 0x419 /d "_DEBUG" @@ -81,7 +81,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept -# ADD LINK32 dxguid.lib mgllt.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcmt" /out:"Debug/qw-client-win.exe" /pdbtype:sept +# ADD LINK32 dxguid.lib mglfx.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcmt" /out:"Debug/qw-client-win.exe" /pdbtype:sept !ELSEIF "$(CFG)" == "qw_client - Win32 GLDebug" @@ -93,8 +93,8 @@ LINK32=link.exe # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" +# PROP Output_Dir "GLDebug" +# PROP Intermediate_Dir "GLDebug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "../scitech/include" /I "../include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "id386" /YX /FD /GZ /c @@ -108,7 +108,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 dxguid.lib ..\scitech\lib\win32\vc\mgllt.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept -# ADD LINK32 comctl32.lib opengl32.lib glu32.lib dxguid.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /out:"Debug/qw-client-wgl.exe" /pdbtype:sept +# ADD LINK32 comctl32.lib opengl32.lib glu32.lib dxguid.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /out:"GLDebug/qw-client-wgl.exe" /pdbtype:sept !ELSEIF "$(CFG)" == "qw_client - Win32 GLRelease" @@ -120,8 +120,8 @@ LINK32=link.exe # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" +# PROP Output_Dir "GLRelease" +# PROP Intermediate_Dir "GLRelease" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /I "../scitech/include" /I "../include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "id386" /YX /FD /c @@ -135,7 +135,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 dxguid.lib ..\scitech\lib\win32\vc\mgllt.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:windows /machine:I386 -# ADD LINK32 comctl32.lib opengl32.lib glu32.lib dxguid.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:windows /machine:I386 /out:"Release/qw-client-wgl.exe" +# ADD LINK32 comctl32.lib opengl32.lib glu32.lib dxguid.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib /nologo /subsystem:windows /machine:I386 /out:"GLRelease/qw-client-wgl.exe" !ENDIF @@ -1230,6 +1230,19 @@ SOURCE=.\cl_math.S !IF "$(CFG)" == "qw_client - Win32 Release" +# Begin Custom Build +OutDir=.\Release +InputPath=.\cl_math.S +InputName=cl_math + +"$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + cl /D "id386" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) + ..\tools\gas2masm\debug\gas2masm < $(OUTDIR)\$(InputName).spp > $(OUTDIR)\$(InputName).asm + ml /nologo /c /Cp /coff /Zi /H64 /Fo$(OUTDIR)\$(InputName).obj $(OUTDIR)\$(InputName).asm + del $(OUTDIR)\$(InputName).spp + +# End Custom Build + !ELSEIF "$(CFG)" == "qw_client - Win32 Debug" # Begin Custom Build @@ -1258,28 +1271,6 @@ InputName=cl_math # End Source File # Begin Source File -SOURCE=.\d_copy.S - -!IF "$(CFG)" == "qw_client - Win32 Release" - -!ELSEIF "$(CFG)" == "qw_client - Win32 Debug" - -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "qw_client - Win32 GLDebug" - -# PROP BASE Exclude_From_Build 1 -# PROP Exclude_From_Build 1 - -!ELSEIF "$(CFG)" == "qw_client - Win32 GLRelease" - -# PROP Exclude_From_Build 1 - -!ENDIF - -# End Source File -# Begin Source File - SOURCE=.\d_draw.S !IF "$(CFG)" == "qw_client - Win32 Release" @@ -1630,12 +1621,12 @@ InputName=math !ELSEIF "$(CFG)" == "qw_client - Win32 GLDebug" # Begin Custom Build -OutDir=.\Debug +OutDir=.\GLDebug InputPath=.\math.S InputName=math "$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - cl /D "id386" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) + cl /D "id386" /D "GLQUAKE" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) ..\tools\gas2masm\debug\gas2masm < $(OUTDIR)\$(InputName).spp > $(OUTDIR)\$(InputName).asm ml /nologo /c /Cp /coff /Zi /H64 /Fo$(OUTDIR)\$(InputName).obj $(OUTDIR)\$(InputName).asm del $(OUTDIR)\$(InputName).spp @@ -1645,12 +1636,12 @@ InputName=math !ELSEIF "$(CFG)" == "qw_client - Win32 GLRelease" # Begin Custom Build -OutDir=.\Release +OutDir=.\GLRelease InputPath=.\math.S InputName=math "$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - cl /D "id386" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) + cl /D "id386" /D "GLQUAKE" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) ..\tools\gas2masm\debug\gas2masm < $(OUTDIR)\$(InputName).spp > $(OUTDIR)\$(InputName).asm ml /nologo /c /Cp /coff /Zi /H64 /Fo$(OUTDIR)\$(InputName).obj $(OUTDIR)\$(InputName).asm del $(OUTDIR)\$(InputName).spp @@ -1922,12 +1913,12 @@ InputName=snd_mixa !ELSEIF "$(CFG)" == "qw_client - Win32 GLDebug" # Begin Custom Build -OutDir=.\Debug +OutDir=.\GLDebug InputPath=.\snd_mixa.S InputName=snd_mixa "$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - cl /D "id386" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) + cl /D "id386" /D "GLQUAKE" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) ..\tools\gas2masm\debug\gas2masm < $(OUTDIR)\$(InputName).spp > $(OUTDIR)\$(InputName).asm ml /nologo /c /Cp /coff /Zi /H64 /Fo$(OUTDIR)\$(InputName).obj $(OUTDIR)\$(InputName).asm del $(OUTDIR)\$(InputName).spp @@ -1937,12 +1928,12 @@ InputName=snd_mixa !ELSEIF "$(CFG)" == "qw_client - Win32 GLRelease" # Begin Custom Build -OutDir=.\Release +OutDir=.\GLRelease InputPath=.\snd_mixa.S InputName=snd_mixa "$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - cl /D "id386" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) + cl /D "id386" /D "GLQUAKE" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) ..\tools\gas2masm\debug\gas2masm < $(OUTDIR)\$(InputName).spp > $(OUTDIR)\$(InputName).asm ml /nologo /c /Cp /coff /Zi /H64 /Fo$(OUTDIR)\$(InputName).obj $(OUTDIR)\$(InputName).asm del $(OUTDIR)\$(InputName).spp @@ -2044,14 +2035,14 @@ InputName=surf8 # End Source File # Begin Source File -SOURCE=.\sys_wina.S +SOURCE=.\sys_x86.S !IF "$(CFG)" == "qw_client - Win32 Release" # Begin Custom Build OutDir=.\Release -InputPath=.\sys_wina.S -InputName=sys_wina +InputPath=.\sys_x86.S +InputName=sys_x86 "$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" cl /D "id386" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) @@ -2065,8 +2056,8 @@ InputName=sys_wina # Begin Custom Build OutDir=.\Debug -InputPath=.\sys_wina.S -InputName=sys_wina +InputPath=.\sys_x86.S +InputName=sys_x86 "$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" cl /D "id386" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) @@ -2079,12 +2070,12 @@ InputName=sys_wina !ELSEIF "$(CFG)" == "qw_client - Win32 GLDebug" # Begin Custom Build -OutDir=.\Debug -InputPath=.\sys_wina.S -InputName=sys_wina +OutDir=.\GLDebug +InputPath=.\sys_x86.S +InputName=sys_x86 "$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - cl /D "id386" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) + cl /D "id386" /D "GLQUAKE" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) ..\tools\gas2masm\debug\gas2masm < $(OUTDIR)\$(InputName).spp > $(OUTDIR)\$(InputName).asm ml /nologo /c /Cp /coff /Zi /H64 /Fo$(OUTDIR)\$(InputName).obj $(OUTDIR)\$(InputName).asm del $(OUTDIR)\$(InputName).spp @@ -2094,12 +2085,12 @@ InputName=sys_wina !ELSEIF "$(CFG)" == "qw_client - Win32 GLRelease" # Begin Custom Build -OutDir=.\Release -InputPath=.\sys_wina.S -InputName=sys_wina +OutDir=.\GLRelease +InputPath=.\sys_x86.S +InputName=sys_x86 "$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - cl /D "id386" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) + cl /D "id386" /D "GLQUAKE" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) ..\tools\gas2masm\debug\gas2masm < $(OUTDIR)\$(InputName).spp > $(OUTDIR)\$(InputName).asm ml /nologo /c /Cp /coff /Zi /H64 /Fo$(OUTDIR)\$(InputName).obj $(OUTDIR)\$(InputName).asm del $(OUTDIR)\$(InputName).spp @@ -2146,12 +2137,12 @@ InputName=worlda !ELSEIF "$(CFG)" == "qw_client - Win32 GLDebug" # Begin Custom Build -OutDir=.\Debug +OutDir=.\GLDebug InputPath=.\worlda.S InputName=worlda "$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - cl /D "id386" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) + cl /D "id386" /D "GLQUAKE" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) ..\tools\gas2masm\debug\gas2masm < $(OUTDIR)\$(InputName).spp > $(OUTDIR)\$(InputName).asm ml /nologo /c /Cp /coff /Zi /H64 /Fo$(OUTDIR)\$(InputName).obj $(OUTDIR)\$(InputName).asm del $(OUTDIR)\$(InputName).spp @@ -2161,12 +2152,12 @@ InputName=worlda !ELSEIF "$(CFG)" == "qw_client - Win32 GLRelease" # Begin Custom Build -OutDir=.\Release +OutDir=.\GLRelease InputPath=.\worlda.S InputName=worlda "$(OUTDIR)\$(InputName).obj" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - cl /D "id386" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) + cl /D "id386" /D "GLQUAKE" /I "..\source" /I "..\include" /I "..\win32" /nologo /EP > $(OUTDIR)\$(InputName).spp $(InputPath) ..\tools\gas2masm\debug\gas2masm < $(OUTDIR)\$(InputName).spp > $(OUTDIR)\$(InputName).asm ml /nologo /c /Cp /coff /Zi /H64 /Fo$(OUTDIR)\$(InputName).obj $(OUTDIR)\$(InputName).asm del $(OUTDIR)\$(InputName).spp diff --git a/source/sv_sys_win.c b/source/sv_sys_win.c index 4a25143..c4d3e77 100644 --- a/source/sv_sys_win.c +++ b/source/sv_sys_win.c @@ -78,27 +78,6 @@ void Sys_Error (char *error, ...) } -/* -================ -Sys_DoubleTime -================ -*/ -double Sys_DoubleTime (void) -{ - double t; - struct _timeb tstruct; - static int starttime; - - _ftime( &tstruct ); - - if (!starttime) - starttime = tstruct.time; - t = (tstruct.time-starttime) + tstruct.millitm*0.001; - - return t; -} - - /* ================ Sys_ConsoleInput @@ -183,6 +162,10 @@ is marked void Sys_Init (void) { Cvar_RegisterVariable (&sys_nostdout); + + // make sure the timer is high precision, otherwise + // NT gets 18ms resolution + timeBeginPeriod( 1 ); } /* diff --git a/source/sys_win.c b/source/sys_win.c index 7adb71b..16cf1b4 100644 --- a/source/sys_win.c +++ b/source/sys_win.c @@ -20,8 +20,41 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include "qwsvdef.h" +#include "winquake.h" +#include #include + +/* +============== +Sys_DoubleTime +============== +*/ +double Sys_DoubleTime (void) +{ + static DWORD starttime; + static qboolean first = true; + DWORD now; + + now = timeGetTime(); + + if (first) { + first = false; + starttime = now; + return 0.0; + } + + if (now < starttime) // wrapped? + return (now / 1000.0) + (LONG_MAX - starttime / 1000.0); + + if (now - starttime == 0) + return 0.0; + + return (now - starttime) / 1000.0; +} + + /* ================ Sys_mkdir