From dab565345260287a1b98d0fc701ee055cbc3d343 Mon Sep 17 00:00:00 2001 From: lordhavoc Date: Mon, 29 Oct 2001 07:16:35 +0000 Subject: [PATCH] moved Sys_Printf and related code/data to sys_shared.c (new), removed all uses of isDedicated (replaced with cls.state == ca_dedicated), timestamps should work on all targets now, and made some minor whitespace changes git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@975 d7cf8633-e32d-0410-b094-e92efae38249 --- makefile | 2 +- quakedef.h | 5 +- sys_linux.c | 145 +++------------------------------------------------ sys_shared.c | 119 ++++++++++++++++++++++++++++++++++++++++++ sys_win.c | 56 ++++++-------------- vid_wgl.c | 1 - winquake.h | 1 - 7 files changed, 144 insertions(+), 185 deletions(-) create mode 100644 sys_shared.c diff --git a/makefile b/makefile index 043cea8e..a9d955a0 100644 --- a/makefile +++ b/makefile @@ -9,7 +9,7 @@ SOUNDLIB=-lasound #SND=snd_oss.o #SOUNDLIB= -OBJECTS= buildnumber.o cd_linux.o chase.o cl_demo.o cl_input.o cl_main.o cl_parse.o cl_tent.o cmd.o common.o console.o crc.o cvar.o fractalnoise.o gl_draw.o gl_poly.o gl_rmain.o gl_rmisc.o gl_rsurf.o gl_screen.o gl_warp.o host.o host_cmd.o image.o keys.o mathlib.o menu.o model_alias.o model_brush.o model_shared.o model_sprite.o net_bsd.o net_udp.o net_dgrm.o net_loop.o net_main.o pr_cmds.o pr_edict.o pr_exec.o r_light.o r_part.o r_explosion.o sbar.o snd_dma.o snd_mem.o snd_mix.o $(SND) sv_main.o sv_move.o sv_phys.o sv_user.o sv_light.o sys_linux.o transform.o view.o wad.o world.o zone.o vid_shared.o palette.o r_crosshairs.o gl_textures.o gl_models.o r_sprites.o r_modules.o r_explosion.o r_lerpanim.o cl_effects.o r_decals.o protocol.o quakeio.o r_clip.o ui.o portals.o +OBJECTS= buildnumber.o cd_linux.o chase.o cl_demo.o cl_input.o cl_main.o cl_parse.o cl_tent.o cmd.o common.o console.o crc.o cvar.o fractalnoise.o gl_draw.o gl_poly.o gl_rmain.o gl_rmisc.o gl_rsurf.o gl_screen.o gl_warp.o host.o host_cmd.o image.o keys.o mathlib.o menu.o model_alias.o model_brush.o model_shared.o model_sprite.o net_bsd.o net_udp.o net_dgrm.o net_loop.o net_main.o pr_cmds.o pr_edict.o pr_exec.o r_light.o r_part.o r_explosion.o sbar.o snd_dma.o snd_mem.o snd_mix.o $(SND) sv_main.o sv_move.o sv_phys.o sv_user.o sv_light.o sys_linux.o transform.o view.o wad.o world.o zone.o vid_shared.o palette.o r_crosshairs.o gl_textures.o gl_models.o r_sprites.o r_modules.o r_explosion.o r_lerpanim.o cl_effects.o r_decals.o protocol.o quakeio.o r_clip.o ui.o portals.o sys_shared.o #K6/athlon optimizations CPUOPTIMIZATIONS=-march=k6 diff --git a/quakedef.h b/quakedef.h index 8c806df7..24025549 100644 --- a/quakedef.h +++ b/quakedef.h @@ -252,7 +252,6 @@ extern qboolean noclip_anglehack; extern quakeparms_t host_parms; extern cvar_t sys_ticrate; -extern cvar_t sys_nostdout; extern cvar_t developer; extern qboolean host_initialized; // true if into command execution @@ -280,8 +279,6 @@ extern int current_skill; // skill level for currently loaded level (in case // the user changes the cvar while the level is // running, this reflects the level actually in use) -extern qboolean isDedicated; - extern int minimum_memory; // @@ -297,3 +294,5 @@ void fractalnoise(unsigned char *noise, int size, int startgrid); #include "palette.h" #include "image.h" + +void Sys_Shared_Init(void); diff --git a/sys_linux.c b/sys_linux.c index 6428c179..d36b5588 100644 --- a/sys_linux.c +++ b/sys_linux.c @@ -21,55 +21,11 @@ #include "quakedef.h" -qboolean isDedicated; - -int nostdout = 0; - char *basedir = "."; #if CACHEENABLE char *cachedir = "/tmp"; #endif -extern cvar_t timestamps; -extern cvar_t timeformat; - -/* The translation table between the graphical font and plain ASCII --KB */ -static char qfont_table[256] = { - '\0', '#', '#', '#', '#', '.', '#', '#', - '#', 9, 10, '#', ' ', 13, '.', '.', - '[', ']', '0', '1', '2', '3', '4', '5', - '6', '7', '8', '9', '.', '<', '=', '>', - ' ', '!', '"', '#', '$', '%', '&', '\'', - '(', ')', '*', '+', ',', '-', '.', '/', - '0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', ':', ';', '<', '=', '>', '?', - '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', - 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', - 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', - 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', - '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', - 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', - 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', - 'x', 'y', 'z', '{', '|', '}', '~', '<', - - '<', '=', '>', '#', '#', '.', '#', '#', - '#', '#', ' ', '#', ' ', '>', '.', '.', - '[', ']', '0', '1', '2', '3', '4', '5', - '6', '7', '8', '9', '.', '<', '=', '>', - ' ', '!', '"', '#', '$', '%', '&', '\'', - '(', ')', '*', '+', ',', '-', '.', '/', - '0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', ':', ';', '<', '=', '>', '?', - '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', - 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', - 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', - 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', - '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', - 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', - 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', - 'x', 'y', 'z', '{', '|', '}', '~', '<' -}; - // ======================================================================= // General routines // ======================================================================= @@ -78,98 +34,15 @@ void Sys_DebugNumber(int y, int val) { } -/* -void Sys_Printf (char *fmt, ...) -{ - va_list argptr; - char text[1024]; - - va_start (argptr,fmt); - vsprintf (text,fmt,argptr); - va_end (argptr); - Qprintf(stderr, "%s", text); - - Con_Print (text); -} - -void Sys_Printf (char *fmt, ...) -{ - - va_list argptr; - char text[1024], *t_p; - int l, r; - - if (nostdout) - return; - - va_start (argptr,fmt); - vsprintf (text,fmt,argptr); - va_end (argptr); - - l = strlen(text); - t_p = text; - -// make sure everything goes through, even though we are non-blocking - while (l) - { - r = write (1, text, l); - if (r != l) - sleep (0); - if (r > 0) - { - t_p += r; - l -= r; - } - } - -} -*/ - -#define MAX_PRINT_MSG 4096 -void Sys_Printf (char *fmt, ...) -{ - va_list argptr; - char start[MAX_PRINT_MSG]; // String we started with - char stamp[MAX_PRINT_MSG]; // Time stamp - char final[MAX_PRINT_MSG]; // String we print - - time_t mytime = 0; - struct tm *local = NULL; - - unsigned char *p; - - va_start (argptr, fmt); - vsnprintf (start, sizeof(start), fmt, argptr); - va_end (argptr); - - if (nostdout) - return; - - if (timestamps.value) { - mytime = time (NULL); - local = localtime (&mytime); - strftime (stamp, sizeof (stamp), timeformat.string, local); - - snprintf (final, sizeof (final), "%s%s", stamp, start); - } else { - snprintf (final, sizeof (final), "%s", start); - } - - for (p = (unsigned char *) final; *p; p++) { - putc (qfont_table[*p], stdout); - } - fflush (stdout); -} - #if 0 static char end1[] = -"\x1b[?7h\x1b[40m\x1b[2J\x1b[0;1;41m\x1b[1;1H QUAKE: The Doomed Dimension \x1b[33mby \x1b[44mid\x1b[41m Software \x1b[2;1H ---------------------------------------------------------------------------- \x1b[3;1H CALL 1-800-IDGAMES TO ORDER OR FOR TECHNICAL SUPPORT \x1b[4;1H PRICE: $45.00 (PRICES MAY VARY OUTSIDE THE US.) \x1b[5;1H \x1b[6;1H \x1b[37mYes! You only have one fourth of this incredible epic. That is because most \x1b[7;1H of you have paid us nothing or at most, very little. You could steal the \x1b[8;1H game from a friend. But we both know you'll be punished by God if you do. \x1b[9;1H \x1b[33mWHY RISK ETERNAL DAMNATION? CALL 1-800-IDGAMES AND BUY NOW! \x1b[10;1H \x1b[37mRemember, we love you almost as much as He does. \x1b[11;1H \x1b[12;1H \x1b[33mProgramming: \x1b[37mJohn Carmack, Michael Abrash, John Cash \x1b[13;1H \x1b[33mDesign: \x1b[37mJohn Romero, Sandy Petersen, American McGee, Tim Willits \x1b[14;1H \x1b[33mArt: \x1b[37mAdrian Carmack, Kevin Cloud \x1b[15;1H \x1b[33mBiz: \x1b[37mJay Wilbur, Mike Wilson, Donna Jackson \x1b[16;1H \x1b[33mProjects: \x1b[37mShawn Green \x1b[33mSupport: \x1b[37mBarrett Alexander \x1b[17;1H \x1b[33mSound Effects: \x1b[37mTrent Reznor and Nine Inch Nails \x1b[18;1H For other information or details on ordering outside the US, check out the \x1b[19;1H files accompanying QUAKE or our website at http://www.idsoftware.com. \x1b[20;1H \x1b[0;41mQuake is a trademark of Id Software, inc., (c)1996 Id Software, inc. \x1b[21;1H All rights reserved. NIN logo is a r -egistered trademark licensed to \x1b[22;1H Nothing Interactive, Inc. All rights reserved. \x1b[40m\x1b[23;1H\x1b[0m"; +"\x1b[?7h\x1b[40m\x1b[2J\x1b[0;1;41m\x1b[1;1H QUAKE: The Doomed Dimension \x1b[33mby \x1b[44mid\x1b[41m Software \x1b[2;1H ---------------------------------------------------------------------------- \x1b[3;1H CALL 1-800-IDGAMES TO ORDER OR FOR TECHNICAL SUPPORT \x1b[4;1H PRICE: $45.00 (PRICES MAY VARY OUTSIDE THE US.) \x1b[5;1H \x1b[6;1H \x1b[37mYes! You only have one fourth of this incredible epic. That is because most \x1b[7;1H of you have paid us nothing or at most, very little. You could steal the \x1b[8;1H game from a friend. But we both know you'll be punished by God if you do. \x1b[9;1H \x1b[33mWHY RISK ETERNAL DAMNATION? CALL 1-800-IDGAMES AND BUY NOW! \x1b[10;1H \x1b[37mRemember, we love you almost as much as He does. \x1b[11;1H \x1b[12;1H \x1b[33mProgramming: \x1b[37mJohn Carmack, Michael Abrash, John Cash \x1b[13;1H \x1b[33mDesign: \x1b[37mJohn Romero, Sandy Petersen, American McGee, Tim Willits \x1b[14;1H \x1b[33mArt: \x1b[37mAdrian Carmack, Kevin Cloud \x1b[15;1H \x1b[33mBiz: \x1b[37mJay Wilbur, Mike Wilson, Donna Jackson \x1b[16;1H \x1b[33mProjects: \x1b[37mShawn Green \x1b[33mSupport: \x1b[37mBarrett Alexander \x1b[17;1H \x1b[33mSound Effects: \x1b[37mTrent Reznor and Nine Inch Nails \x1b[18;1H For other information or details on ordering outside the US, check out the \x1b[19;1H files accompanying QUAKE or our website at http://www.idsoftware.com. \x1b[20;1H \x1b[0;41mQuake is a trademark of Id Software, inc., (c)1996 Id Software, inc. \x1b[21;1H All rights reserved. NIN logo is a" +" registered trademark licensed to \x1b[22;1H Nothing Interactive, Inc. All rights reserved. \x1b[40m\x1b[23;1H\x1b[0m"; static char end2[] = -"\x1b[?7h\x1b[40m\x1b[2J\x1b[0;1;41m\x1b[1;1H QUAKE \x1b[33mby \x1b[44mid\x1b[41m Software \x1b[2;1H ----------------------------------------------------------------------------- \x1b[3;1H \x1b[37mWhy did you quit from the registered version of QUAKE? Did the \x1b[4;1H scary monsters frighten you? Or did Mr. Sandman tug at your \x1b[5;1H little lids? No matter! What is important is you love our \x1b[6;1H game, and gave us your money. Congratulations, you are probably \x1b[7;1H not a thief. \x1b[8;1H Thank You. \x1b[9;1H \x1b[33;44mid\x1b[41m Software is: \x1b[10;1H PROGRAMMING: \x1b[37mJohn Carmack, Michael Abrash, John Cash \x1b[11;1H \x1b[33mDESIGN: \x1b[37mJohn Romero, Sandy Petersen, American McGee, Tim Willits \x1b[12;1H \x1b[33mART: \x1b[37mAdrian Carmack, Kevin Cloud \x1b[13;1H \x1b[33mBIZ: \x1b[37mJay Wilbur, Mike Wilson \x1b[33mPROJECTS MAN: \x1b[37mShawn Green \x1b[14;1H \x1b[33mBIZ ASSIST: \x1b[37mDonna Jackson \x1b[33mSUPPORT: \x1b[37mBarrett Alexander \x1b[15;1H \x1b[33mSOUND EFFECTS AND MUSIC: \x1b[37mTrent Reznor and Nine Inch Nails \x1b[16;1H \x1b[17;1H If you need help running QUAKE refer to the text files in the \x1b[18;1H QUAKE directory, or our website at http://www.idsoftware.com. \x1b[19;1H If all else fails, call our technical support at 1-800-IDGAMES. \x1b[20;1H \x1b[0;41mQuake is a trademark of Id Software, inc., (c)1996 Id Software, inc. \x1b[21;1H All rights reserved. N -IN logo is a registered trademark licensed \x1b[22;1H to Nothing Interactive, Inc. All rights reserved. \x1b[23;1H\x1b[40m\x1b[0m"; - +"\x1b[?7h\x1b[40m\x1b[2J\x1b[0;1;41m\x1b[1;1H QUAKE \x1b[33mby \x1b[44mid\x1b[41m Software \x1b[2;1H ----------------------------------------------------------------------------- \x1b[3;1H \x1b[37mWhy did you quit from the registered version of QUAKE? Did the \x1b[4;1H scary monsters frighten you? Or did Mr. Sandman tug at your \x1b[5;1H little lids? No matter! What is important is you love our \x1b[6;1H game, and gave us your money. Congratulations, you are probably \x1b[7;1H not a thief. \x1b[8;1H Thank You. \x1b[9;1H \x1b[33;44mid\x1b[41m Software is: \x1b[10;1H PROGRAMMING: \x1b[37mJohn Carmack, Michael Abrash, John Cash \x1b[11;1H \x1b[33mDESIGN: \x1b[37mJohn Romero, Sandy Petersen, American McGee, Tim Willits \x1b[12;1H \x1b[33mART: \x1b[37mAdrian Carmack, Kevin Cloud \x1b[13;1H \x1b[33mBIZ: \x1b[37mJay Wilbur, Mike Wilson \x1b[33mPROJECTS MAN: \x1b[37mShawn Green \x1b[14;1H \x1b[33mBIZ ASSIST: \x1b[37mDonna Jackson \x1b[33mSUPPORT: \x1b[37mBarrett Alexander \x1b[15;1H \x1b[33mSOUND EFFECTS AND MUSIC: \x1b[37mTrent Reznor and Nine Inch Nails \x1b[16;1H \x1b[17;1H If you need help running QUAKE refer to the text files in the \x1b[18;1H QUAKE directory, or our website at http://www.idsoftware.com. \x1b[19;1H If all else fails, call our technical support at 1-800-IDGAMES. \x1b[20;1H \x1b[0;41mQuake is a trademark of Id Software, inc., (c)1996 Id Software, inc. \x1b[21;1H All rights reserved." +" NIN logo is a registered trademark licensed \x1b[22;1H to Nothing Interactive, Inc. All rights reserved. \x1b[23;1H\x1b[40m\x1b[0m"; #endif + void Sys_Quit (void) { Host_Shutdown(); @@ -403,13 +276,7 @@ int main (int c, char **v) Host_Init(); - if (COM_CheckParm("-nostdout")) - nostdout = 1; - else - { - fcntl(0, F_SETFL, fcntl (0, F_GETFL, 0) | FNDELAY); - printf ("Linux DarkPlaces -- Version %0.3f (build %i)\n", VERSION, buildnumber); - } + Sys_Shared_Init(); oldtime = Sys_DoubleTime () - 0.1; while (1) diff --git a/sys_shared.c b/sys_shared.c new file mode 100644 index 00000000..52a28285 --- /dev/null +++ b/sys_shared.c @@ -0,0 +1,119 @@ + +#include "quakedef.h" +#include + +extern cvar_t timestamps; +extern cvar_t timeformat; + +static int sys_nostdout = false; + +/* The translation table between the graphical font and plain ASCII --KB */ +static char qfont_table[256] = { + '\0', '#', '#', '#', '#', '.', '#', '#', + '#', 9, 10, '#', ' ', 13, '.', '.', + '[', ']', '0', '1', '2', '3', '4', '5', + '6', '7', '8', '9', '.', '<', '=', '>', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '{', '|', '}', '~', '<', + + '<', '=', '>', '#', '#', '.', '#', '#', + '#', '#', ' ', '#', ' ', '>', '.', '.', + '[', ']', '0', '1', '2', '3', '4', '5', + '6', '7', '8', '9', '.', '<', '=', '>', + ' ', '!', '"', '#', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', ':', ';', '<', '=', '>', '?', + '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', + 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', + 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', + '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', + 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z', '{', '|', '}', '~', '<' +}; + +#ifdef WIN32 +extern HANDLE hinput, houtput; +#endif + +#define MAX_PRINT_MSG 16384 +void Sys_Printf (char *fmt, ...) +{ + va_list argptr; + char start[MAX_PRINT_MSG]; // String we started with + char stamp[MAX_PRINT_MSG]; // Time stamp + char final[MAX_PRINT_MSG]; // String we print + + time_t mytime = 0; + struct tm *local = NULL; + + unsigned char *p; +#ifdef WIN32 + DWORD dummy; +#endif + + va_start (argptr, fmt); +#ifdef HAVE_VSNPRINTF + vsnprintf (start, sizeof(start), fmt, argptr); +#else + vsprintf (start, fmt, argptr); +#endif + va_end (argptr); + + if (sys_nostdout) + return; + + if (timestamps.value) + { + mytime = time (NULL); + local = localtime (&mytime); + strftime (stamp, sizeof (stamp), timeformat.string, local); + + snprintf (final, sizeof (final), "%s%s", stamp, start); + } + else + snprintf (final, sizeof (final), "%s", start); + + for (p = (unsigned char *) final; *p; p++) + *p = qfont_table[*p]; +#ifdef WIN32 + if (cls.state == ca_dedicated) + WriteFile(houtput, final, strlen (final), &dummy, NULL); +#else + puts(final); +#endif +// for (p = (unsigned char *) final; *p; p++) +// putc (qfont_table[*p], stdout); +#ifndef WIN32 + fflush (stdout); +#endif +} + +void Sys_Shared_Init(void) +{ + if (COM_CheckParm("-nostdout")) + sys_nostdout = 1; + else + { +#if defined(__linux__) + fcntl(0, F_SETFL, fcntl (0, F_GETFL, 0) | FNDELAY); + printf ("DarkPlaces Linux GL %.2f build %3i", (float) VERSION, buildnumber); +#elif defined(WIN32) + printf ("DarkPlaces Windows GL %.2f build %3i", (float) VERSION, buildnumber); +#else + printf ("DarkPlaces Unknown GL %.2f build %3i", (float) VERSION, buildnumber); +#endif + } +} diff --git a/sys_win.c b/sys_win.c index 1327b35d..8ad72f03 100644 --- a/sys_win.c +++ b/sys_win.c @@ -36,7 +36,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. int starttime; qboolean ActiveApp, Minimized; -qboolean isDedicated; static qboolean sc_return_on_enter = false; HANDLE hinput, houtput; @@ -231,7 +230,7 @@ void Sys_Error (char *error, ...) vsprintf (text, error, argptr); va_end (argptr); - if (isDedicated) + if (cls.state == ca_dedicated) { va_start (argptr, error); vsprintf (text, error, argptr); @@ -248,8 +247,7 @@ void Sys_Error (char *error, ...) starttime = Sys_DoubleTime (); sc_return_on_enter = true; // so Enter will get us out of here - while (!Sys_ConsoleInput () && - ((Sys_DoubleTime () - starttime) < CONSOLE_ERROR_TIMEOUT)) + while (!Sys_ConsoleInput () && ((Sys_DoubleTime () - starttime) < CONSOLE_ERROR_TIMEOUT)) { } } @@ -261,13 +259,11 @@ void Sys_Error (char *error, ...) { in_sys_error0 = 1; VID_SetDefaultMode (); - MessageBox(NULL, text, "Quake Error", - MB_OK | MB_SETFOREGROUND | MB_ICONSTOP); + MessageBox(NULL, text, "Quake Error", MB_OK | MB_SETFOREGROUND | MB_ICONSTOP); } else { - MessageBox(NULL, text, "Double Quake Error", - MB_OK | MB_SETFOREGROUND | MB_ICONSTOP); + MessageBox(NULL, text, "Double Quake Error", MB_OK | MB_SETFOREGROUND | MB_ICONSTOP); } } @@ -287,22 +283,6 @@ void Sys_Error (char *error, ...) exit (1); } -void Sys_Printf (char *fmt, ...) -{ - va_list argptr; - char text[1024]; - DWORD dummy; - - if (isDedicated) - { - va_start (argptr,fmt); - vsprintf (text, fmt, argptr); - va_end (argptr); - - WriteFile(houtput, text, strlen (text), &dummy, NULL); - } -} - void Sys_Quit (void) { @@ -311,7 +291,7 @@ void Sys_Quit (void) if (tevent) CloseHandle (tevent); - if (isDedicated) + if (cls.state == ca_dedicated) FreeConsole (); // shut down QHOST hooks if necessary @@ -425,7 +405,7 @@ char *Sys_ConsoleInput (void) int dummy; int ch, numread, numevents; - if (!isDedicated) + if (cls.state != ca_dedicated) return NULL; @@ -553,7 +533,7 @@ static char *empty_string = ""; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { - double time, oldtime, newtime/*, timediff*/; + double oldtime, newtime; MEMORYSTATUS lpBuffer; static char cwd[1024]; int t; @@ -610,7 +590,7 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin host_parms.argc = com_argc; host_parms.argv = com_argv; - isDedicated = (COM_CheckParm ("-dedicated") != 0); + Sys_Shared_Init(); // take the greater of all the available memory or half the total memory, // but at least 8 Mb and no more than 16 Mb, unless they explicitly @@ -635,12 +615,12 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin if (!tevent) Sys_Error ("Couldn't create event"); - if (isDedicated) + // LordHavoc: can't check cls.state because it hasn't been initialized yet + // if (cls.state == ca_dedicated) + if (COM_CheckParm("-dedicated")) { if (!AllocConsole ()) - { Sys_Error ("Couldn't create dedicated server console"); - } hinput = GetStdHandle (STD_INPUT_HANDLE); houtput = GetStdHandle (STD_OUTPUT_HANDLE); @@ -687,24 +667,20 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLin /* main window message loop */ while (1) { - if (!isDedicated) + if (cls.state != ca_dedicated) { // yield the CPU for a little while when paused, minimized, or not the focus - if ((cl.paused && (!ActiveApp && !DDActive)) || Minimized) + if ((cl.paused && !ActiveApp) || Minimized) { SleepUntilInput (PAUSE_SLEEP); scr_skipupdate = 1; // no point in bothering to draw } - else if (!ActiveApp && !DDActive) - { + else if (!ActiveApp) SleepUntilInput (NOT_FOCUS_SLEEP); - } - - newtime = Sys_DoubleTime (); - time = newtime - oldtime; } - Host_Frame (time); + newtime = Sys_DoubleTime (); + Host_Frame (newtime - oldtime); oldtime = newtime; } diff --git a/vid_wgl.c b/vid_wgl.c index 1cc9cb01..4558d890 100644 --- a/vid_wgl.c +++ b/vid_wgl.c @@ -62,7 +62,6 @@ const char *gl_renderer; const char *gl_version; const char *gl_extensions; -qboolean DDActive; qboolean scr_skipupdate; static vmode_t modelist[MAX_MODE_LIST]; diff --git a/winquake.h b/winquake.h index 3bb1cf7d..850958b2 100644 --- a/winquake.h +++ b/winquake.h @@ -35,7 +35,6 @@ extern int global_nCmdShow; #ifndef SERVERONLY extern LPDIRECTDRAW lpDD; -extern qboolean DDActive; extern LPDIRECTDRAWSURFACE lpPrimary; extern LPDIRECTDRAWSURFACE lpFrontBuffer; extern LPDIRECTDRAWSURFACE lpBackBuffer; -- 2.39.2