diff options
Diffstat (limited to 'src/i_system.c')
-rw-r--r-- | src/i_system.c | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/src/i_system.c b/src/i_system.c new file mode 100644 index 00000000..22a12045 --- /dev/null +++ b/src/i_system.c @@ -0,0 +1,186 @@ +// Emacs style mode select -*- C++ -*- +//----------------------------------------------------------------------------- +// +// $Id: i_system.c 4 2005-07-23 16:19:41Z fraggle $ +// +// Copyright (C) 1993-1996 by id Software, Inc. +// +// This source is available for distribution and/or modification +// only under the terms of the DOOM Source Code License as +// published by id Software. All rights reserved. +// +// The source is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License +// for more details. +// +// $Log$ +// Revision 1.1 2005/07/23 16:20:39 fraggle +// Initial revision +// +// +// DESCRIPTION: +// +//----------------------------------------------------------------------------- + +static const char +rcsid[] = "$Id: i_system.c 4 2005-07-23 16:19:41Z fraggle $"; + + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + +#include <stdarg.h> +#include <sys/time.h> +#include <unistd.h> + +#include "doomdef.h" +#include "m_misc.h" +#include "i_video.h" +#include "i_sound.h" + +#include "d_net.h" +#include "g_game.h" + +#ifdef __GNUG__ +#pragma implementation "i_system.h" +#endif +#include "i_system.h" + + + + +int mb_used = 6; + + +void +I_Tactile +( int on, + int off, + int total ) +{ + // UNUSED. + on = off = total = 0; +} + +ticcmd_t emptycmd; +ticcmd_t* I_BaseTiccmd(void) +{ + return &emptycmd; +} + + +int I_GetHeapSize (void) +{ + return mb_used*1024*1024; +} + +byte* I_ZoneBase (int* size) +{ + *size = mb_used*1024*1024; + return (byte *) malloc (*size); +} + + + +// +// I_GetTime +// returns time in 1/70th second tics +// +int I_GetTime (void) +{ + struct timeval tp; + struct timezone tzp; + int newtics; + static int basetime=0; + + gettimeofday(&tp, &tzp); + if (!basetime) + basetime = tp.tv_sec; + newtics = (tp.tv_sec-basetime)*TICRATE + tp.tv_usec*TICRATE/1000000; + return newtics; +} + + + +// +// I_Init +// +void I_Init (void) +{ + I_InitSound(); + // I_InitGraphics(); +} + +// +// I_Quit +// +void I_Quit (void) +{ + D_QuitNetGame (); + I_ShutdownSound(); + I_ShutdownMusic(); + M_SaveDefaults (); + I_ShutdownGraphics(); + exit(0); +} + +void I_WaitVBL(int count) +{ +#ifdef SGI + sginap(1); +#else +#ifdef SUN + sleep(0); +#else + usleep (count * (1000000/70) ); +#endif +#endif +} + +void I_BeginRead(void) +{ +} + +void I_EndRead(void) +{ +} + +byte* I_AllocLow(int length) +{ + byte* mem; + + mem = (byte *)malloc (length); + memset (mem,0,length); + return mem; +} + + +// +// I_Error +// +extern boolean demorecording; + +void I_Error (char *error, ...) +{ + va_list argptr; + + // Message first. + va_start (argptr,error); + fprintf (stderr, "Error: "); + vfprintf (stderr,error,argptr); + fprintf (stderr, "\n"); + va_end (argptr); + + fflush( stderr ); + + // Shutdown. Here might be other errors. + if (demorecording) + G_CheckDemoStatus(); + + D_QuitNetGame (); + I_ShutdownGraphics(); + + exit(-1); +} |