diff options
author | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-26 23:30:17 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@localhost> | 2011-05-26 23:30:17 +0000 |
commit | ec4bcbd01f73873a97a7d089e2f2de260db243d5 (patch) | |
tree | 47475764be4ec3b20caf7941ea52ca4b49e63f8a /sys/src/games/doom/i_system.c | |
parent | 269e63406d8d9fe79351849ca5c225f7dd3024d1 (diff) |
rio: disable cons if /dev/kbd is open, add games/doom
Diffstat (limited to 'sys/src/games/doom/i_system.c')
-rw-r--r-- | sys/src/games/doom/i_system.c | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/sys/src/games/doom/i_system.c b/sys/src/games/doom/i_system.c new file mode 100644 index 000000000..10bd5bb3f --- /dev/null +++ b/sys/src/games/doom/i_system.c @@ -0,0 +1,153 @@ +/* i_system.c */ + +#include "doomdef.h" +#include "doomtype.h" + +#include "i_system.h" +#include "i_sound.h" +#include "i_video.h" + +#include "d_net.h" +#include "g_game.h" +#include "m_misc.h" + +int mb_used = 6; /* 6MB heap */ + +void I_Init (void) +{ + // I_InitSound(); + I_InitGraphics(); +} + +byte* I_ZoneBase (int *size) +{ + *size = mb_used*1024*1024; + return (byte *) malloc(*size); +} + +/* returns time in 1/70th second tics */ +int I_GetTime (void) +{ + return (int)((nsec()*TICRATE)/1000000000); +} + +static ticcmd_t emptycmd; +ticcmd_t* I_BaseTiccmd (void) +{ + return &emptycmd; +} + +void I_Quit (void) +{ + D_QuitNetGame (); + I_ShutdownSound(); + I_ShutdownMusic(); + M_SaveDefaults (); + I_ShutdownGraphics(); + threadexitsall(nil); +} + +byte* I_AllocLow (int length) +{ + byte *mem; + + mem = (byte *)malloc (length); + memset (mem,0,length); + return mem; +} + +void I_Tactile(int on, int off, int total) +{ + USED(on, off, total); +} + +/* +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_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(); + + threadexitsall("I_Error"); +} + +int I_FileExists (char *filepath) +{ + return (0 == access(filepath, AREAD)); +} + +int I_Open (char *filepath) +{ + return open(filepath, OREAD); +} + +void I_Close (int handle) +{ + close (handle); +} + +int I_Seek (int handle, int n) +{ + return seek(handle, n, 0); +} + +int I_Read (int handle, void *buf, int n) +{ + return read(handle, buf, n); +} + +char* I_IdentifyWAD(char *wadname) +{ + char path[1024]; + + /* /sys/lib/doom/... */ + snprintf(path, sizeof path, "/sys/lib/doom/%s", wadname); + if (I_FileExists (path)) + return path; + + /* $home/lib/doom/... */ + snprintf(path, sizeof path, "%s/lib/doom/%s", getenv("home"), wadname); + if (I_FileExists (path)) + return path; + + return nil; +} |