From 66a2cc66d7504c9b64e1c461e62ad2a9d964fa95 Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Sat, 23 Jul 2005 16:19:41 +0000 Subject: Initial revision Subversion-branch: /trunk/chocolate-doom Subversion-revision: 4 --- src/i_system.c | 186 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 src/i_system.c (limited to 'src/i_system.c') 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 +#include +#include + +#include +#include +#include + +#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); +} -- cgit v1.2.3