i_system.c
上传用户:xuyinpeng
上传日期:2021-05-12
资源大小:455k
文件大小:4k
源码类别:

射击游戏

开发平台:

Visual C++

  1. // Emacs style mode select   -*- C++ -*- 
  2. //-----------------------------------------------------------------------------
  3. //
  4. // $Id:$
  5. //
  6. // Copyright (C) 1993-1996 by id Software, Inc.
  7. //
  8. // This source is available for distribution and/or modification
  9. // only under the terms of the DOOM Source Code License as
  10. // published by id Software. All rights reserved.
  11. //
  12. // The source is distributed in the hope that it will be useful,
  13. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. // FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
  15. // for more details.
  16. //
  17. // $Log:$
  18. //
  19. // DESCRIPTION:
  20. //
  21. //-----------------------------------------------------------------------------
  22. static const char
  23. rcsid[] = "$Id: m_bbox.c,v 1.1 1997/02/03 22:45:10 b1 Exp $";
  24. #include <stdlib.h>
  25. #include <stdio.h>
  26. #include <string.h>
  27. #include <stdarg.h>
  28. #include <time.h>
  29. //#include <unistd.h>
  30. #include <windows.h>
  31. #include <mmsystem.h>
  32. #include "doomdef.h"
  33. #include "m_misc.h"
  34. #include "i_video.h"
  35. #include "i_sound.h"
  36. #include "d_net.h"
  37. #include "g_game.h"
  38. #ifdef __GNUG__
  39. #pragma implementation "i_system.h"
  40. #endif
  41. #include "i_system.h"
  42. extern char MsgText[2048];
  43. void WriteDebug(char *);
  44. int mb_used = 6;
  45. void
  46. I_Tactile
  47. ( int on,
  48.   int off,
  49.   int total )
  50. {
  51.   // UNUSED.
  52.   on = off = total = 0;
  53. }
  54. ticcmd_t emptycmd;
  55. ticcmd_t* I_BaseTiccmd(void)
  56. {
  57.     return &emptycmd;
  58. }
  59. int  I_GetHeapSize (void)
  60. {
  61.     return mb_used*1024*1024;
  62. }
  63. byte* I_ZoneBase (int* size)
  64. {
  65.     *size = mb_used*1024*1024;
  66.     return (byte *) malloc (*size);
  67. }
  68. //
  69. // I_GetTime
  70. // returns time in 1/70th second tics
  71. //
  72. int  I_GetTime (void)
  73. {
  74. //    struct timeval tp;
  75. //    struct timezone tzp;
  76.     int newtics;
  77.     DWORD       currtime;
  78.     //static int basetime=0;
  79.     static DWORD    basetime = 0;
  80.   
  81. //    gettimeofday(&tp, &tzp);
  82. //    if (!basetime)
  83. // basetime = tp.tv_sec;
  84. //    newtics = (tp.tv_sec-basetime)*TICRATE + tp.tv_usec*TICRATE/1000000;
  85.     currtime = timeGetTime();
  86.     if (!basetime)
  87.        basetime = currtime;
  88.     newtics = ((currtime-basetime)/(1000/TICRATE));
  89.     return newtics;
  90. }
  91. //
  92. // I_Init
  93. //
  94. void I_Init (void)
  95. {
  96. // FIXME
  97.     I_InitSound();
  98.     //  I_InitGraphics();
  99. }
  100. //
  101. // I_Quit
  102. //
  103. void WinDoomExit(void);
  104. extern int GameMode;
  105. #define GAME_QUIT   5
  106. void I_DeferQuit(void)
  107.    {
  108.     GameMode = GAME_QUIT;
  109.    }
  110. void I_Quit(void)
  111.    {
  112.     WriteDebug("Exiting WinDoom...n");
  113.     D_QuitNetGame ();
  114.     I_ShutdownSound();
  115.     I_ShutdownMusic();
  116.     M_SaveDefaults();
  117.     I_ShutdownGraphics();
  118.     WinDoomExit();
  119.     //exit(0);
  120.    }
  121. void I_WaitVBL(int count)
  122. {
  123. /* FIXME
  124. #ifdef SGI
  125.     sginap(1);                                           
  126. #else
  127. #ifdef SUN
  128.     sleep(0);
  129. #else
  130.     usleep (count * (1000000/70) );                                
  131. #endif
  132. #endif
  133. */
  134. }
  135. void I_BeginRead(void)
  136. {
  137. }
  138. void I_EndRead(void)
  139. {
  140. }
  141. byte* I_AllocLow(int length)
  142. {
  143.     byte* mem;
  144.         
  145.     mem = (byte *)malloc (length);
  146.     memset (mem,0,length);
  147.     return mem;
  148. }
  149. //
  150. // I_Error
  151. //
  152. extern int     demotype;
  153. extern boolean demorecording;
  154. extern int GameMode;
  155. #define GAME_QUIT 5
  156. void I_Error (char *error, ...)
  157. {
  158.     va_list argptr;
  159.     if (GameMode == GAME_QUIT)
  160.        return;
  161.     // Message first.
  162.     va_start (argptr,error);
  163.     //fprintf (stderr, "Error: ");
  164.     WriteDebug("Error: ");
  165.     //vfprintf (stderr,error,argptr);
  166.     vsprintf (MsgText,error,argptr);
  167.     WriteDebug(MsgText);
  168.     //fprintf (stderr, "n");
  169.     WriteDebug("n");
  170.     va_end (argptr);
  171.     //fflush( stderr );
  172.     // Shutdown. Here might be other errors.
  173.     if (demorecording)
  174.        {
  175.         if (demotype == DEMO_I)
  176.         G_EndDemo();
  177.         else
  178.             G_EndDemo_II();
  179.        }
  180.     I_Quit();
  181.     //D_QuitNetGame();
  182.     //I_ShutdownGraphics();
  183.     
  184.     GameMode = GAME_QUIT;
  185.     //exit(-1);
  186.    }