123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- /* OpenDoors Online Software Programming Toolkit
- * (C) Copyright 1991 - 1999 by Brian Pirie.
- *
- * Oct-2001 door32.sys/socket modifications by Rob Swindell (www.synchro.net)
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- *
- * File: ODGen.h
- *
- * Description: Contains general definitions used throughout OpenDoors,
- * including: - version information manifest constants
- * - debugging macros
- * - compiler-dependent definitions
- * - internally used macros
- *
- * Revisions: Date Ver Who Change
- * ---------------------------------------------------------------
- * Oct 13, 1994 6.00 BP Created.
- * Oct 20, 1994 6.00 BP Added DIM macro.
- * Dec 31, 1994 6.00 BP Remove USEINLINE option.
- * Dec 12, 1995 6.00 BP Moved ODPLAT_??? to OpenDoor.h.
- * Dec 19, 1995 6.00 BP Implement ASSERT() for Win32.
- * Jan 23, 1996 6.00 BP Added OD_TEXTMODE.
- * Feb 19, 1996 6.00 BP Changed version number to 6.00.
- * Feb 24, 1996 6.00 BP Turn off OD_DIAGNOSTICS.
- * Mar 03, 1996 6.10 BP Begin version 6.10.
- * Mar 03, 1996 6.10 BP Moved ODFAR to OpenDoor.h.
- * Oct 19, 2001 6.20 RS Incremented version for socket support.
- */
- #ifndef _INC_ODGEN
- #define _INC_ODGEN
- /* PLATFORM-SPECIFIC DEFINITIONS. */
- /* DLL specific defintions. */
- #ifdef OD_DLL
- #ifdef ODPLAT_WIN32
- #define OD_DLL_NAME "ODOORS62"
- #endif /* ODPLAT_WIN32 */
- #endif /* OD_DLL */
- /* Mutlithreading specific definitions. */
- #ifdef ODPLAT_WIN32
- #define OD_MULTITHREADED
- #endif /* ODPLAT_WIN32 */
- /* Text mode specific definitions. */
- #if defined(ODPLAT_DOS) || defined(ODPLAT_NIX)
- #define OD_TEXTMODE
- #endif /* ODPLAT_DOS */
- /* DOS specific definitions. */
- #ifdef ODPLAT_DOS
- /* Keyword to flag ISR functions. */
- #define INTERRUPT interrupt
- /* Inline assembly keyword varies from compiler to compiler. */
- #ifdef _MSC_VER
- #define ASM __asm
- #else
- #define ASM asm
- #endif
- /* Memory model information. */
- #ifdef __TINY__
- #define SMALLDATA
- #define SMALLCODE
- #endif
- #ifdef __SMALL__
- #define SMALLDATA
- #define SMALLCODE
- #endif
- #ifdef __COMPACT__
- #define LARGEDATA
- #define SMALLCODE
- #endif
- #ifdef __MEDIUM__
- #define SMALLDATA
- #define LARGECODE
- #endif
- #ifdef __LARGE__
- #define LARGEDATA
- #define LARGECODE
- #endif
- #ifdef __HUGE__
- #define LARGEDATA
- #define LARGECODE
- #endif
- #endif /* ODPLAT_DOS */
- /* VERSION INFORMATION CONSTANTS. */
- #define OD_VER_SHORTNAME "OpenDoors"
- #define OD_VER_STATUSLINE " OpenDoors 6.24 - (C) Copyright 1991-2001" \
- " by Brian Pirie "
- #define OD_VER_UNREG_STAT " OpenDoors 6.24 *WARNING* Unregistered Version" \
- " - Limit 1 month trial period! "
- #ifdef ODPLAT_DOS
- #define OD_VER_SIGNON "[OpenDoors 6.24/DOS - " \
- "(C) Copyright 1991-2001 by Brian Pirie]\n\r"
- #define OD_VER_FULLNAME "OpenDoors 6.24/DOS"
- #endif /* ODPLAT_DOS */
- #ifdef ODPLAT_WIN32
- #define OD_VER_SIGNON "[OpenDoors 6.24/Win32 - " \
- "(C) Copyright 1991-2001 by Brian Pirie]\n\r"
- #define OD_VER_FULLNAME "OpenDoors 6.24/Win32"
- #endif /* ODPLAT_WIN32 */
- #ifdef ODPLAT_NIX
- #define OD_VER_SIGNON "[OpenDoors 6.24/*nix - " \
- "(C) Copyright 1991-2001 by Brian Pirie]\n\r"
- #define OD_VER_FULLNAME "OpenDoors 6.24/*nix"
- #endif /* ODPLAT_NIX */
- /* COMPILER DEPENDENT DEFINITIONS. */
- /* Some compilers don't like const keyword on parameters. */
- #define CONST const
- /* DEBUG MACROS. */
- /* OD_DEBUG is defined for debug version of the library. */
- /* #define OD_DEBUG */
- /* OD_DIAGNOSTICS is defined to enable od_internal_debug. */
- /* #define OD_DIAGNOSTICS */
- /* ASSERTion macro - terminates if test condition fails. */
- #ifdef OD_DEBUG
- #define __STR(x) __VAL(x)
- #define __VAL(x) #x
- #ifdef ODPLAT_WIN32
- #define ASSERT(x) if(!(x)) { MessageBox(NULL, __FILE__ ":" \
- __STR(__LINE__) "\n" #x, OD_VER_FULLNAME " - Test condition failed", \
- MB_ICONSTOP | MB_OK); exit(1); }
- #else /* !ODPLAT_WIN32 */
- #define ASSERT(x) if(!(x)) { puts(OD_VER_FULLNAME \
- " - Test condition failed:\n" __FILE__ ":" __STR(__LINE__) "\n" #x); \
- exit(1); }
- #endif /* !ODPLAT_WIN32 */
- #else /* !OD_DEBUG */
- #define ASSERT(x)
- #endif /* !OD_DEBUG */
- /* TRACE() macro - used to generate debug output. */
- #ifdef OD_TRACE
- #include <stdio.h>
- #define TRACE_API 1
- #define TRACE(x, y) printf("[%s]", y);
- #else
- #define TRACE(x, y)
- #endif
- /* SCREEN SIZE. */
- #define OD_SCREEN_WIDTH 80
- #define OD_SCREEN_HEIGHT 25
- /* INTERNALLY USED MACROS. */
- /* MIN() and MAX() macros. Note that expressions passed to macros may be */
- /* evaluated more than once. For this reason, it is best to only pass */
- /* constants or variables to these macros. */
- #ifndef MIN
- #define MIN(x, y) ((x) > (y)) ? (y) : (x)
- #endif /* !MIN */
- #ifndef MAX
- #define MAX(x, y) ((x) > (y)) ? (x) : (y)
- #endif /* !MAX */
- /* DIM() macro. Returns the number of elements in an array. */
- #ifndef DIM
- #define DIM(x) (sizeof(x) / sizeof(*x))
- #endif /* !DIM */
- /* UNUSED() macro. Used to flag that a function parameter is intentionally */
- /* not used, thus preventing a compile-time warning. */
- #define UNUSED(x) ((void)(x))
- #endif /* !_INC_ODGEN */
|