40#define NS_BLOCK_ASSERTIONS 1
46#import <Foundation/Foundation.h>
48#ifdef GNUSTEP_BASE_LIBRARY
49 #define OOLITE_GNUSTEP 1
51 #if (GNUSTEP_BASE_MAJOR_VERSION == 1 && GNUSTEP_BASE_MINOR_VERSION < 28)
52 #error Oolite cannot be built using GNUstep earlier than 1.28.
57 #define NSIntegerMax INTPTR_MAX
58 #define NSIntegerMin INTPTR_MIN
59 #define NSUIntegerMax UINTPTR_MAX
63 #import <AppKit/AppKit.h>
65 #define OOLITE_MAC_OS_X 1
66 #define OOLITE_SPEECH_SYNTH 1
69 #define OOLITE_64_BIT 1
75 #define DESTROY(x) do { id x_ = x; x = nil; [x_ release]; } while (0)
78 #if defined MAC_OS_X_VERSION_10_7 && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
79 #define OOLITE_MAC_OS_X_10_7 1
82 #if defined MAC_OS_X_VERSION_10_8 && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
83 #define OOLITE_MAC_OS_X_10_8 1
86 #ifndef MAC_OS_X_VERSION_10_12
92#ifndef OOLITE_MAC_OS_X_10_7
93 #define OOLITE_MAC_OS_X_10_7 0
96#ifndef OOLITE_MAC_OS_X_10_8
97 #define OOLITE_MAC_OS_X_10_8 0
102#define OOLITE_HAVE_CLANG 1
104#define OOLITE_HAVE_CLANG 0
108#if defined(__GNUC__) && !OOLITE_HAVE_CLANG
110#define OOLITE_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
122 #define OOLITE_WINDOWS 1
124 #define OOLITE_64_BIT 1
129#define OOLITE_LINUX 1
137 #define MAX(A,B) ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a > __b ? __a : __b; })
141 #define MIN(A,B) ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a < __b ? __a : __b; })
145 #define OOLITE_SPEECH_SYNTH 1
146 #define OOLITE_ESPEAK 1
159#import "Comparison.h"
163 NSUpArrowFunctionKey = 0xF700,
164 NSDownArrowFunctionKey = 0xF701,
165 NSLeftArrowFunctionKey = 0xF702,
166 NSRightArrowFunctionKey = 0xF703,
167 NSF1FunctionKey = 0xF704,
168 NSF2FunctionKey = 0xF705,
169 NSF3FunctionKey = 0xF706,
170 NSF4FunctionKey = 0xF707,
171 NSF5FunctionKey = 0xF708,
172 NSF6FunctionKey = 0xF709,
173 NSF7FunctionKey = 0xF70A,
174 NSF8FunctionKey = 0xF70B,
175 NSF9FunctionKey = 0xF70C,
176 NSF10FunctionKey = 0xF70D,
177 NSF11FunctionKey = 0xF70E,
178 NSF12FunctionKey = 0xF70F,
179 NSF13FunctionKey = 0xF710,
180 NSF14FunctionKey = 0xF711,
181 NSF15FunctionKey = 0xF712,
182 NSF16FunctionKey = 0xF713,
183 NSF17FunctionKey = 0xF714,
184 NSF18FunctionKey = 0xF715,
185 NSF19FunctionKey = 0xF716,
186 NSF20FunctionKey = 0xF717,
187 NSF21FunctionKey = 0xF718,
188 NSF22FunctionKey = 0xF719,
189 NSF23FunctionKey = 0xF71A,
190 NSF24FunctionKey = 0xF71B,
191 NSF25FunctionKey = 0xF71C,
192 NSF26FunctionKey = 0xF71D,
193 NSF27FunctionKey = 0xF71E,
194 NSF28FunctionKey = 0xF71F,
195 NSF29FunctionKey = 0xF720,
196 NSF30FunctionKey = 0xF721,
197 NSF31FunctionKey = 0xF722,
198 NSF32FunctionKey = 0xF723,
199 NSF33FunctionKey = 0xF724,
200 NSF34FunctionKey = 0xF725,
201 NSF35FunctionKey = 0xF726,
202 NSInsertFunctionKey = 0xF727,
203 NSDeleteFunctionKey = 0xF728,
204 NSHomeFunctionKey = 0xF729,
205 NSBeginFunctionKey = 0xF72A,
206 NSEndFunctionKey = 0xF72B,
207 NSPageUpFunctionKey = 0xF72C,
208 NSPageDownFunctionKey = 0xF72D,
209 NSPrintScreenFunctionKey = 0xF72E,
210 NSScrollLockFunctionKey = 0xF72F,
211 NSPauseFunctionKey = 0xF730,
212 NSSysReqFunctionKey = 0xF731,
213 NSBreakFunctionKey = 0xF732,
214 NSResetFunctionKey = 0xF733,
215 NSStopFunctionKey = 0xF734,
216 NSMenuFunctionKey = 0xF735,
217 NSUserFunctionKey = 0xF736,
218 NSSystemFunctionKey = 0xF737,
219 NSPrintFunctionKey = 0xF738,
220 NSClearLineFunctionKey = 0xF739,
221 NSClearDisplayFunctionKey = 0xF73A,
222 NSInsertLineFunctionKey = 0xF73B,
223 NSDeleteLineFunctionKey = 0xF73C,
224 NSInsertCharFunctionKey = 0xF73D,
225 NSDeleteCharFunctionKey = 0xF73E,
226 NSPrevFunctionKey = 0xF73F,
227 NSNextFunctionKey = 0xF740,
228 NSSelectFunctionKey = 0xF741,
229 NSExecuteFunctionKey = 0xF742,
230 NSUndoFunctionKey = 0xF743,
231 NSRedoFunctionKey = 0xF744,
232 NSFindFunctionKey = 0xF745,
233 NSHelpFunctionKey = 0xF746,
234 NSModeSwitchFunctionKey = 0xF747
240#ifndef OOLITE_GNUSTEP
241#define OOLITE_GNUSTEP 0
244#ifndef OOLITE_MAC_OS_X
245#define OOLITE_MAC_OS_X 0
248#ifndef OOLITE_WINDOWS
249#define OOLITE_WINDOWS 0
253#define OOLITE_LINUX 0
260#ifndef OOLITE_SPEECH_SYNTH
261#define OOLITE_SPEECH_SYNTH 0
265#define OOLITE_ESPEAK 0
269 #define OOLITE_64_BIT 0
273#define OOLITE_PROPERTY_SYNTAX (OOLITE_MAC_OS_X || OOLITE_HAVE_CLANG)
279@interface NSObject (OODescriptionComponents)
306 #define OOLITE_RELEASE_PLIST_ERROR_STRINGS 1
308 #define OOLITE_RELEASE_PLIST_ERROR_STRINGS 0
352#define foreach(VAR, COLLECTION) for(VAR in COLLECTION)
353#define foreachkey(VAR, DICT) for(VAR in DICT)
360@interface NSEnumerator (OOForEachSupport)
361- (NSEnumerator *) objectEnumerator;
373#ifndef OOLITE_HAVE_PROTOCOL_OPTIONAL
374#define OOLITE_HAVE_PROTOCOL_OPTIONAL (OOLITE_MAC_OS_X || OOLITE_HAVE_CLANG || OOLITE_GCC_VERSION >= 40700)
377#if OOLITE_HAVE_PROTOCOL_OPTIONAL
378#define OOLITE_OPTIONAL(protocolName) @optional
380#define OOLITE_OPTIONAL(protocolName) @end @interface NSObject (protocolName ## Optional)
416#if __OBJC__ && !__has_feature(objc_instancetype)
417typedef id instancetype;
427#ifndef OO_GAME_DATA_TO_USER_FOLDER
428#define OO_GAME_DATA_TO_USER_FOLDER 0
NSUInteger NSWindowStyleMask
NSInteger OOComparisonResult
NSString * descriptionComponents()
NSString * shortDescriptionComponents()
NSString * shortDescription()