Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2. Copyright (C) 1996-1997 Id Software, Inc.
  3.  
  4. This program is free software; you can redistribute it and/or
  5. modify it under the terms of the GNU General Public License
  6. as published by the Free Software Foundation; either version 2
  7. of the License, or (at your option) any later version.
  8.  
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
  12.  
  13. See the GNU General Public License for more details.
  14.  
  15. You should have received a copy of the GNU General Public License
  16. along with this program; if not, write to the Free Software
  17. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  18.  
  19. */
  20. // comndef.h  -- general definitions
  21.  
  22. #if !defined BYTE_DEFINED
  23. typedef unsigned char           byte;
  24. #define BYTE_DEFINED 1
  25. #endif
  26.  
  27. #undef true
  28. #undef false
  29.  
  30. typedef enum {false, true}      qboolean;
  31.  
  32. //============================================================================
  33.  
  34. typedef struct sizebuf_s
  35. {
  36.         qboolean        allowoverflow;  // if false, do a Sys_Error
  37.         qboolean        overflowed;             // set to true if the buffer size failed
  38.         byte    *data;
  39.         int             maxsize;
  40.         int             cursize;
  41. } sizebuf_t;
  42.  
  43. void SZ_Alloc (sizebuf_t *buf, int startsize);
  44. void SZ_Free (sizebuf_t *buf);
  45. void SZ_Clear (sizebuf_t *buf);
  46. void *SZ_GetSpace (sizebuf_t *buf, int length);
  47. void SZ_Write (sizebuf_t *buf, void *data, int length);
  48. void SZ_Print (sizebuf_t *buf, char *data);     // strcats onto the sizebuf
  49.  
  50. //============================================================================
  51.  
  52. typedef struct link_s
  53. {
  54.         struct link_s   *prev, *next;
  55. } link_t;
  56.  
  57.  
  58. void ClearLink (link_t *l);
  59. void RemoveLink (link_t *l);
  60. void InsertLinkBefore (link_t *l, link_t *before);
  61. void InsertLinkAfter (link_t *l, link_t *after);
  62.  
  63. // (type *)STRUCT_FROM_LINK(link_t *link, type, member)
  64. // ent = STRUCT_FROM_LINK(link,entity_t,order)
  65. // FIXME: remove this mess!
  66. #define STRUCT_FROM_LINK(l,t,m) ((t *)((byte *)l - (int)&(((t *)0)->m)))
  67.  
  68. //============================================================================
  69.  
  70. #ifndef NULL
  71. #define NULL ((void *)0)
  72. #endif
  73.  
  74. #define Q_MAXCHAR ((char)0x7f)
  75. #define Q_MAXSHORT ((short)0x7fff)
  76. #define Q_MAXINT        ((int)0x7fffffff)
  77. #define Q_MAXLONG ((int)0x7fffffff)
  78. #define Q_MAXFLOAT ((int)0x7fffffff)
  79.  
  80. #define Q_MINCHAR ((char)0x80)
  81. #define Q_MINSHORT ((short)0x8000)
  82. #define Q_MININT        ((int)0x80000000)
  83. #define Q_MINLONG ((int)0x80000000)
  84. #define Q_MINFLOAT ((int)0x7fffffff)
  85.  
  86. //============================================================================
  87.  
  88. extern  qboolean                bigendien;
  89.  
  90. extern  short   (*BigShort) (short l);
  91. extern  short   (*LittleShort) (short l);
  92. extern  int     (*BigLong) (int l);
  93. extern  int     (*LittleLong) (int l);
  94. extern  float   (*BigFloat) (float l);
  95. extern  float   (*LittleFloat) (float l);
  96.  
  97. //============================================================================
  98.  
  99. void MSG_WriteChar (sizebuf_t *sb, int c);
  100. void MSG_WriteByte (sizebuf_t *sb, int c);
  101. void MSG_WriteShort (sizebuf_t *sb, int c);
  102. void MSG_WriteLong (sizebuf_t *sb, int c);
  103. void MSG_WriteFloat (sizebuf_t *sb, float f);
  104. void MSG_WriteString (sizebuf_t *sb, char *s);
  105. void MSG_WriteCoord (sizebuf_t *sb, float f);
  106. void MSG_WriteAngle (sizebuf_t *sb, float f);
  107.  
  108. extern  int                     msg_readcount;
  109. extern  qboolean        msg_badread;            // set if a read goes beyond end of message
  110.  
  111. void MSG_BeginReading (void);
  112. int MSG_ReadChar (void);
  113. int MSG_ReadByte (void);
  114. int MSG_ReadShort (void);
  115. int MSG_ReadLong (void);
  116. float MSG_ReadFloat (void);
  117. char *MSG_ReadString (void);
  118.  
  119. float MSG_ReadCoord (void);
  120. float MSG_ReadAngle (void);
  121.  
  122. //============================================================================
  123.  
  124. void Q_memset (void *dest, int fill, int count);
  125. void Q_memcpy (void *dest, void *src, int count);
  126. int Q_memcmp (void *m1, void *m2, int count);
  127. void Q_strcpy (char *dest, char *src);
  128. void Q_strncpy (char *dest, char *src, int count);
  129. int Q_strlen (char *str);
  130. char *Q_strrchr (char *s, char c);
  131. void Q_strcat (char *dest, char *src);
  132. int Q_strcmp (char *s1, char *s2);
  133. int Q_strncmp (char *s1, char *s2, int count);
  134. int Q_strcasecmp (char *s1, char *s2);
  135. int Q_strncasecmp (char *s1, char *s2, int n);
  136. int     Q_atoi (char *str);
  137. float Q_atof (char *str);
  138.  
  139. //============================================================================
  140.  
  141. extern  char            com_token[1024];
  142. extern  qboolean        com_eof;
  143.  
  144. char *COM_Parse (char *data);
  145.  
  146.  
  147. extern  int             com_argc;
  148. extern  char    **com_argv;
  149.  
  150. int COM_CheckParm (char *parm);
  151. void COM_Init (char *path);
  152. void COM_InitArgv (int argc, char **argv);
  153.  
  154. char *COM_SkipPath (char *pathname);
  155. void COM_StripExtension (char *in, char *out);
  156. void COM_FileBase (char *in, char *out);
  157. void COM_DefaultExtension (char *path, char *extension);
  158.  
  159. char    *va(char *format, ...);
  160. // does a varargs printf into a temp buffer
  161.  
  162.  
  163. //============================================================================
  164.  
  165. extern int com_filesize;
  166. struct cache_user_s;
  167.  
  168. extern  char    com_gamedir[MAX_OSPATH];
  169.  
  170. void COM_WriteFile (char *filename, void *data, int len);
  171. int COM_OpenFile (char *filename, int *hndl);
  172. int COM_FOpenFile (char *filename, FILE **file);
  173. void COM_CloseFile (int h);
  174.  
  175. byte *COM_LoadStackFile (char *path, void *buffer, int bufsize);
  176. byte *COM_LoadTempFile (char *path);
  177. byte *COM_LoadHunkFile (char *path);
  178. void COM_LoadCacheFile (char *path, struct cache_user_s *cu);
  179.  
  180.  
  181. extern  struct cvar_s   registered;
  182.  
  183. extern qboolean         standard_quake, rogue, hipnotic;
  184.