ref: 5781718e4d025711c24f6db2eaea14de2d17fec9
dir: /i_system.c/
/* i_system.c */ #include "h2stdinc.h" #include "doomdef.h" #include "i_system.h" #include "i_video.h" #include "i_sound.h" #include "soundst.h" int mb_used = 32; /* 32MB heap */ void I_Init (void) { S_Init(); I_MouseEnable(1); } 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; } extern void G_CheckDemoStatus(void); void I_Quit (void) { D_QuitNetGame (); I_ShutdownSound(); M_SaveDefaults (); I_ShutdownGraphics(); postnote(PNGROUP, getpid(), "I_Quit"); exits(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); } // // 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(); exits("I_Error"); } int I_FileExists (char *filepath) { return access(filepath, AEXIST) == 0; } 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); } void I_CheckExternDriver (void) { } char* I_IdentifyWAD(char *wadname) { static char path[1024]; char *home; snprint(path, sizeof path, wadname); if (I_FileExists (path)) return path; if(home = getenv("home")){ snprintf(path, sizeof path, "%s/lib/heretic/%s", home, wadname); free(home); if (I_FileExists (path)) return path; } snprintf(path, sizeof path, "/sys/lib/heretic/%s", wadname); if (I_FileExists (path)) return path; snprintf(path, sizeof path, "/sys/games/lib/heretic/%s", wadname); if (I_FileExists (path)) return path; return nil; }