XCode compilability fixes
[btb/d2x.git] / include / pstypes.h
1 /* $Id: pstypes.h,v 1.27 2004-05-31 08:33:41 btb Exp $ */
2 /*
3 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
4 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
5 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
6 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
7 IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
8 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
9 FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
10 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
11 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
12 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
13 */
14
15 /*
16  *
17  * Common types for use in Miner
18  *
19  * Old Log:
20  * Revision 1.2  1993/09/14  12:12:30  matt
21  * Added #define for NULL
22  *
23  * Revision 1.1  1993/08/24  12:50:40  matt
24  * Initial revision
25  *
26  *
27  */
28
29 #ifndef _TYPES_H
30 #define _TYPES_H
31
32 // define a dboolean
33 typedef int dboolean;
34
35 //define a signed byte
36 typedef signed char sbyte;
37
38 //define unsigned types;
39 typedef unsigned char ubyte;
40 #if defined(_WIN32) || defined(__sun__)
41 typedef unsigned short ushort;
42 typedef unsigned int uint;
43 #endif
44
45 #if defined(_WIN32) || defined(__sun__) // platforms missing u_int??_t
46 #include <SDL_types.h>
47 #ifndef __unix__ // platforms missing int??_t
48 typedef Sint16 int16_t;
49 typedef Sint32 int32_t;
50 typedef Sint64 int64_t;
51 #endif // !defined(__unix__)
52 typedef Uint16 u_int16_t;
53 typedef Uint32 u_int32_t;
54 typedef Uint64 u_int64_t;
55 #endif // defined(_WIN32) || defined(__sun__)
56
57 #ifdef _MSC_VER
58 # include <stdlib.h> // this is where min and max are defined
59 #endif
60 #ifndef min
61 #define min(a,b) (((a)>(b))?(b):(a))
62 #endif
63 #ifndef max
64 #define max(a,b) (((a)<(b))?(b):(a))
65 #endif
66
67 #ifdef _WIN32
68 # ifndef __MINGW32__
69 #  define PATH_MAX _MAX_PATH
70 # endif
71 # ifdef _WIN32_WCE
72 #  define _MAX_DIR 256
73 # endif
74 #elif defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
75 # include <sys/types.h>
76 # define _MAX_PATH 1024
77 # define _MAX_DIR 256
78 #elif defined __DJGPP__
79 # include <sys/types.h>
80 # define _MAX_PATH 255
81 # define _MAX_DIR 63
82 #endif
83
84 #ifndef __cplusplus
85 //define a boolean
86 typedef ubyte bool;
87 #endif
88
89 #ifndef NULL
90 #define NULL 0
91 #endif
92
93 // the following stuff has nothing to do with types but needed everywhere,
94 // and since this file is included everywhere, it's here.
95 #ifdef __GNUC__
96 # define __pack__ __attribute__((packed))
97 #elif defined(_MSC_VER)
98 # pragma pack(push, packing)
99 # pragma pack(1)
100 # define __pack__
101 #else
102 # error d2x will not work without packed structures
103 #endif
104
105 #ifdef _MSC_VER
106 # define inline __inline
107 #endif
108
109 #ifndef PACKAGE_STRING
110 # define PACKAGE_STRING "d2x"
111 #endif
112
113 #endif //_TYPES_H
114