summaryrefslogtreecommitdiff
path: root/src/i_system.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/i_system.c')
-rw-r--r--src/i_system.c186
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);
+}