Subversion Repositories Games.Rick Dangerous

Rev

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

  1. /*
  2.  * src/system.h
  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. #ifndef _SYSTEM_H
  15. #define _SYSTEM_H
  16.  
  17. #ifdef WIN32
  18.  /* there are true at least on x86 platforms */
  19. typedef unsigned char U8; // 8 bits unsigned
  20. typedef unsigned short U16; // 16 bits unsigned
  21. typedef unsigned long U32; // 32 bits unsigned
  22. typedef signed char S8; // 8 bits signed
  23. typedef signed short S16; // 16 bits signed
  24. typedef signed long S32; // 32 bits signed
  25. #else // !WIN32
  26. #include <stdint.h>
  27. typedef uint8_t U8;
  28. typedef uint16_t U16;
  29. typedef uint32_t U32;
  30. typedef int8_t S8;
  31. typedef int16_t S16;
  32. typedef int32_t S32;
  33. #define strcpy_s(dest,size,source) strcpy (dest, source)
  34. #define strcat_s(dest,size,source) strcat (dest, source)
  35. #define sprintf_s(dest,size,format,...) sprintf (dest, format, __VA_ARGS__)
  36. #define strncpy_s(dest,size,source,count) strncpy (dest, source, count)
  37. #define vsprintf_s(buffer,maxsize,format,...) vsprintf(buffer,format, ##__VA_ARGS__)
  38. #define fopen_s(fp,filename,mode) *(fp) = fopen (filename, mode)
  39. #endif // WIN32
  40.  
  41. /* this must be after typedefs because it relies on types defined above */
  42. #include "rects.h"
  43. #include "img.h"
  44.  
  45. /*
  46.  * main section
  47.  */
  48. extern void sys_init (int, char **);
  49. extern void sys_shutdown (void);
  50. extern char *sys_getbasepath (void);
  51. extern void sys_panic (char *, ...);
  52. extern void sys_printf (char *, ...);
  53. extern U32 sys_gettime (void);
  54. extern void sys_sleep (int);
  55.  
  56. /*
  57.  * video section
  58.  */
  59. extern void sysvid_init (void);
  60. extern void sysvid_shutdown (void);
  61. extern void sysvid_clear (void);
  62. extern void sysvid_paint (rect_t *);
  63.  
  64. /*
  65.  * events section
  66.  */
  67. extern void sysevt_poll (void);
  68. extern void sysevt_wait (void);
  69.  
  70. /*
  71.  * sound section
  72.  */
  73. typedef struct
  74. {
  75.    U8 *buf;
  76.    U32 len;
  77.    U8 dispose;
  78. } sound_t;
  79.  
  80. extern void syssnd_init (void);
  81. extern void syssnd_shutdown (void);
  82. extern void syssnd_vol (S8);
  83. extern void syssnd_toggleMute (void);
  84. extern S8 syssnd_play (sound_t *, S8);
  85. extern void syssnd_pause (U8, U8);
  86. extern void syssnd_stopchan (S8);
  87. extern void syssnd_stopsound (sound_t *);
  88. extern void syssnd_stopall (void);
  89. extern int syssnd_isplaying (sound_t *);
  90. extern sound_t *syssnd_load (char *name);
  91. extern void syssnd_free (sound_t *);
  92.  
  93. /*
  94.  * args section
  95.  */
  96. extern int sysarg_args_period;
  97. extern int sysarg_args_map;
  98. extern int sysarg_args_submap;
  99. extern int sysarg_args_nosound;
  100. extern int sysarg_args_vol;
  101.  
  102. extern void sysarg_init (int, char **);
  103.  
  104. /*
  105.  * joystick section
  106.  */
  107. extern void sysjoy_init (void);
  108. extern void sysjoy_shutdown (void);
  109.  
  110. #endif
  111.