Subversion Repositories Games.Rick Dangerous

Rev

Rev 2 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. /*
  2.  * src/system.c
  3.  *
  4.  * Copyright (C) 1998-2002 BigOrno (bigorno@bigorno.net). All rights reserved.
  5.  *
  6.  * The use and distribution terms for this software are contained in the file
  7.  * named README, which can be found in the root of this distribution. By
  8.  * using this software in any fashion, you are agreeing to be bound by the
  9.  * terms of this license.
  10.  *
  11.  * You must not remove this notice, or any other, from this software.
  12.  */
  13.  
  14. #include <SDL.h>
  15.  
  16. #include <signal.h>
  17.  
  18. #include "system.h"
  19. #include "windows.h"
  20.  
  21.  
  22. /*
  23.  * Panic
  24.  */
  25. void sys_panic (char *err, ...)
  26. {
  27.    va_list argptr;
  28.    char s[1024];
  29.  
  30.    /* prepare message */
  31.    va_start (argptr, err);
  32.    vsprintf_s (s, sizeof (s), err, argptr);
  33.    va_end (argptr);
  34.  
  35.    /* print message and die */
  36.    MessageBox (NULL, s, NULL, MB_OK);
  37.    exit (1);
  38. }
  39.  
  40.  
  41. /*
  42.  * Print a message
  43.  */
  44. void sys_printf (char *msg, ...)
  45. {
  46.    va_list argptr;
  47.    char s[2048];
  48.  
  49.    /* prepare message */
  50.    va_start (argptr, msg);
  51.    vsprintf_s (s, sizeof (s), msg, argptr);
  52.    va_end (argptr);
  53.  
  54.    MessageBox (NULL, s, NULL, MB_OK);
  55. }
  56.  
  57.  
  58. /*
  59.  * Return number of microseconds elapsed since first call
  60.  */
  61. U32 sys_gettime (void)
  62. {
  63.    static U32 ticks_base = 0;
  64.    U32 ticks;
  65.  
  66.    ticks = SDL_GetTicks ();
  67.  
  68.    if (!ticks_base)
  69.       ticks_base = ticks;
  70.  
  71.    return ticks - ticks_base;
  72. }
  73.  
  74.  
  75. /*
  76.  * Sleep a number of microseconds
  77.  */
  78. void sys_sleep (int s)
  79. {
  80.    SDL_Delay (s);
  81. }
  82.  
  83.  
  84. /*
  85.  * Initialize system
  86.  */
  87. void sys_init (int argc, char **argv)
  88. {
  89.    sysarg_init (argc, argv);
  90.    sysvid_init ();
  91.    sysjoy_init ();
  92.  
  93.     if (sysarg_args_nosound == 0)
  94.       syssnd_init ();
  95.  
  96.    atexit (sys_shutdown);
  97.    signal (SIGINT, exit);
  98.    signal (SIGTERM, exit);
  99. }
  100.  
  101.  
  102. /*
  103.  * Shutdown system
  104.  */
  105. void sys_shutdown (void)
  106. {
  107.    syssnd_shutdown ();
  108.    sysjoy_shutdown ();
  109.    sysvid_shutdown ();
  110. }
  111.