aboutsummaryrefslogtreecommitdiffstats
path: root/WinQuake/scitech/INCLUDE/DEBUG.H
diff options
context:
space:
mode:
Diffstat (limited to 'WinQuake/scitech/INCLUDE/DEBUG.H')
-rw-r--r--WinQuake/scitech/INCLUDE/DEBUG.H290
1 files changed, 290 insertions, 0 deletions
diff --git a/WinQuake/scitech/INCLUDE/DEBUG.H b/WinQuake/scitech/INCLUDE/DEBUG.H
new file mode 100644
index 0000000..1e93676
--- /dev/null
+++ b/WinQuake/scitech/INCLUDE/DEBUG.H
@@ -0,0 +1,290 @@
+/****************************************************************************
+*
+* Copyright (C) 1996 SciTech Software
+* All rights reserved.
+*
+* Filename: $Workfile: debug.h $
+* Version: $Revision: 1.17 $
+*
+* Language: ANSI C
+* Environment: any
+*
+* Description: General header file for operating system portable code.
+*
+* $Date: 04 Mar 1997 11:34:08 $ $Author: KendallB $
+*
+****************************************************************************/
+
+#ifndef __DEBUG_H
+#define __DEBUG_H
+
+/* We have the following defines to identify the compilation environment:
+ *
+ * __16BIT__ Compiling for 16 bit code (any environment)
+ * __32BIT__ Compiling for 32 bit code (any environment)
+ * __MSDOS__ Compiling for MS-DOS (includes __WINDOWS16__, __WIN386__)
+ * __REALDOS__ Compiling for MS-DOS (excludes __WINDOWS16__)
+ * __MSDOS16__ Compiling for 16 bit MS-DOS
+ * __MSDOS32__ Compiling for 32 bit MS-DOS
+ * __WINDOWS__ Compiling for Windows
+ * __WINDOWS16__ Compiling for 16 bit Windows (__MSDOS__ also defined)
+ * __WINDOWS32__ Compiling for 32 bit Windows
+ * __WIN386__ Compiling for Watcom C++ Win386 extended Windows
+ * __OS2__ Compiling for OS/2
+ * __OS2_16__ Compiling for 16 bit OS/2
+ * __OS2_32__ Compiling for 32 bit OS/2
+ * __UNIX__ Compiling for Unix
+ *
+ */
+
+#ifdef __SC__
+#if __INTSIZE == 4
+#define __SC386__
+#endif
+#endif
+
+#ifdef __GNUC__
+#define __cdecl /* GCC doesn't know about __cdecl modifiers */
+#define __FLAT__ /* GCC is always 32 bit flat model */
+#define __HAS_BOOL__ /* Latest GNU C++ has bool type */
+#endif
+
+#ifdef __BORLANDC__
+#if (__BORLANDC__ >= 0x500) || defined(CLASSLIB_DEFS_H)
+#define __HAS_BOOL__ /* Borland C++ 5.0 and later define bool type */
+#endif
+#endif
+
+/* For the Metaware High C/C++ compiler, there is no _cdecl calling
+ * convention. The conventions can be changed, but it is a complicated
+ * process involving #pragmas, and all externally referenced functions
+ * will use stack based calling conventions. We also need to change the
+ * global aliasing conventions to use underscores for external function
+ * and variables names, so that our assembler routines will link
+ * correctly (except of course the main function - man what a PAIN!).
+ */
+
+#ifdef __HIGHC__
+#define __cdecl
+#define __FLAT__ /* High C is always 32 bit flat model */
+#pragma Global_aliasing_convention("_%r")
+extern main();
+#pragma Alias(main,"main")
+#endif
+
+#if defined(__MSDOS__) || defined(__DOS__) || defined(__DPMI32__) || (defined(M_I86) && !defined(__SC386__))
+#ifndef __MSDOS__
+#define __MSDOS__
+#endif
+#if defined(__386__) || defined(__FLAT__) || defined(__NT__) || defined(__SC386__)
+#ifndef __MSDOS32__
+#define __MSDOS32__
+#endif
+#ifndef __32BIT__
+#define __32BIT__
+#endif
+#ifndef __REALDOS__
+#define __REALDOS__
+#endif
+#elif (defined(_Windows) || defined(_WINDOWS)) && !defined(__DPMI16__)
+#ifndef __16BIT__
+#define __16BIT__
+#endif
+#ifndef __WINDOWS16__
+#define __WINDOWS16__
+#endif
+#ifndef __WINDOWS__
+#define __WINDOWS__
+#endif
+#ifndef __MSDOS__
+#define __MSDOS__
+#endif
+#else
+#ifndef __16BIT__
+#define __16BIT__
+#endif
+#ifndef __MSDOS16__
+#define __MSDOS16__
+#endif
+#ifndef __REALDOS__
+#define __REALDOS__
+#endif
+#endif
+#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
+#ifndef __32BIT__
+#define __32BIT__
+#endif
+#ifndef __WINDOWS32__
+#define __WINDOWS32__
+#endif
+#ifndef _WIN32
+#define _WIN32 /* Microsoft Win32 SDK headers use _WIN32 */
+#endif
+#ifndef WIN32
+#define WIN32 /* OpenGL headers use WIN32 */
+#endif
+#ifndef __WINDOWS__
+#define __WINDOWS__
+#endif
+#elif defined(__WINDOWS_386__)
+#ifndef __32BIT__
+#define __32BIT__
+#endif
+#ifndef __WIN386__
+#define __WIN386__
+#endif
+#ifndef __WINDOWS__
+#define __WINDOWS__
+#endif
+#ifndef __MSDOS__
+#define __MSDOS__
+#endif
+#elif defined(__OS2__)
+#ifndef __OS2__ /* TODO: to be completed */
+#define __OS2__
+#define __OS2_32__ /* Default to 32 bit OS/2 */
+#endif
+#else
+#define __UNIX__ /* TODO: to be completed */
+#endif
+
+/* We have the following defines to define the calling conventions for
+ * publicly accesible functions:
+ *
+ * _PUBAPI - Compiler default calling conventions for all public 'C' functions
+ * _ASMAPI - Calling conventions for all public assembler functions
+ * _DLLAPI - Calling conventions for all DLL exported functions
+ * _DLLVAR - Modifier to export/import globals in 32 bit DLL's
+ * _EXPORT - Expands to _export when compiling a DLL
+ * _VARAPI - Modifiers for variables; Watcom C++ mangles C++ globals
+ */
+
+#define _PUBAPI
+#define _ASMAPI __cdecl
+
+#if defined(_MSC_VER) && defined(_WIN32) && !defined(__SC__)
+#define __PASCAL __stdcall
+#define __export
+#define __import
+#else
+#define __PASCAL __pascal
+#endif
+
+#if defined(__WATCOMC__)
+#define _VARAPI __cdecl
+#else
+#define _VARAPI
+#endif
+
+#if defined(__WINDOWS__)
+#ifdef BUILD_DLL
+#define _DLLASM __export __cdecl
+#define _EXPORT __export
+#ifdef __WINDOWS32__
+#define _DLLAPI __export __PASCAL
+#define _DLLVAR __export
+#else
+#define _DLLAPI __export __far __pascal
+#define _DLLVAR
+#endif
+#else
+#define _DLLASM __cdecl
+#define _EXPORT
+#ifdef __WINDOWS32__
+#define _DLLAPI __PASCAL
+#define _DLLVAR __import
+#else
+#define _DLLAPI __far __pascal
+#define _DLLVAR
+#endif
+#endif
+#else
+#define _EXPORT
+#define _DLLAPI
+#define _DLLVAR
+#endif
+
+/* Useful macros */
+
+#define PRIVATE static
+#define PUBLIC
+
+#ifdef DEBUG
+# define DBG(x) x
+#else
+# define DBG(x)
+#endif
+
+#ifndef NULL
+# define NULL 0L
+#endif
+
+#ifndef MAX
+# define MAX(a,b) ( ((a) > (b)) ? (a) : (b))
+#endif
+#ifndef MIN
+# define MIN(a,b) ( ((a) < (b)) ? (a) : (b))
+#endif
+#ifndef ABS
+# define ABS(a) ((a) >= 0 ? (a) : -(a))
+#endif
+#ifndef SIGN
+# define SIGN(a) ((a) > 0 ? 1 : -1)
+#endif
+
+/* General typedefs */
+
+#ifndef __GENDEFS
+#define __GENDEFS
+typedef unsigned char uchar;
+typedef unsigned short ushort;
+typedef unsigned int uint;
+typedef unsigned long ulong;
+typedef int ibool; /* Integer boolean type */
+#ifndef __cplusplus
+#define bool ibool /* Standard C */
+#else
+#ifndef __HAS_BOOL__
+#define bool ibool /* Older C++ compilers */
+#endif
+#endif /* __cplusplus */
+#endif /* __GENDEFS */
+
+/* Includes Windows headers, as they define TRUE and FALSE */
+
+#ifdef __WINDOWS__
+#ifndef _WINDOWS_ /* Dont include if already included */
+#ifndef __WIN386__
+#define STRICT
+#define WIN32_LEAN_AND_MEAN
+#endif
+#include <windows.h>
+#endif
+#endif
+
+/* Boolean truth values */
+
+#undef false
+#undef true
+#undef NO
+#undef YES
+#undef FALSE
+#undef TRUE
+
+#ifdef __cplusplus /* Cast to bool's for C++ code */
+#define false ((bool)0)
+#define true ((bool)1)
+#define NO ((bool)0)
+#define YES ((bool)1)
+#define FALSE ((bool)0)
+#define TRUE ((bool)1)
+#else /* Define to 0 and 1 for C code */
+#define false 0
+#define true 1
+#define NO 0
+#define YES 1
+#define FALSE 0
+#define TRUE 1
+#endif
+
+#endif /* __DEBUG_H */