40#define NS_BLOCK_ASSERTIONS 1
46#import <Foundation/Foundation.h>
49 #define OOLITE_GNUSTEP 1
51 #if (((GNUSTEP_BASE_MAJOR_VERSION == 1 && GNUSTEP_BASE_MINOR_VERSION >= 31) || (GNUSTEP_BASE_MAJOR_VERSION > 1)) && !OOLITE_MODERN_BUILD)
52 #error Oolite legacy build cannot be generated using GNUstep 1.31 or higher.
55 #if ((GNUSTEP_BASE_MAJOR_VERSION == 1 && GNUSTEP_BASE_MINOR_VERSION < 28) && OOLITE_MODERN_BUILD)
56 #error Oolite modern build cannot be generated using GNUstep earlier than 1.28.
59 #if (GNUSTEP_BASE_MAJOR_VERSION == 1 && GNUSTEP_BASE_MINOR_VERSION >= 20) || (GNUSTEP_BASE_MAJOR_VERSION > 1)
60 #define OOLITE_GNUSTEP_1_20 1
62 #error Oolite for non-Mac targets requires GNUstep 1.20.
67 #define NSIntegerMax INTPTR_MAX
68 #define NSIntegerMin INTPTR_MIN
69 #define NSUIntegerMax UINTPTR_MAX
73 #import <AppKit/AppKit.h>
75 #define OOLITE_MAC_OS_X 1
76 #define OOLITE_SPEECH_SYNTH 1
79 #define OOLITE_64_BIT 1
85 #define DESTROY(x) do { id x_ = x; x = nil; [x_ release]; } while (0)
88 #if defined MAC_OS_X_VERSION_10_7 && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7
89 #define OOLITE_MAC_OS_X_10_7 1
92 #if defined MAC_OS_X_VERSION_10_8 && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8
93 #define OOLITE_MAC_OS_X_10_8 1
96 #ifndef MAC_OS_X_VERSION_10_12
102#ifndef OOLITE_MAC_OS_X_10_7
103 #define OOLITE_MAC_OS_X_10_7 0
106#ifndef OOLITE_MAC_OS_X_10_8
107 #define OOLITE_MAC_OS_X_10_8 0
112#define OOLITE_HAVE_CLANG 1
114#define OOLITE_HAVE_CLANG 0
118#if defined(__GNUC__) && !OOLITE_HAVE_CLANG
120#define OOLITE_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
132 #define OOLITE_WINDOWS 1
134 #define OOLITE_64_BIT 1
139#define OOLITE_LINUX 1
147 #define MAX(A,B) ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a > __b ? __a : __b; })
151 #define MIN(A,B) ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a < __b ? __a : __b; })
155 #define OOLITE_SPEECH_SYNTH 1
156 #define OOLITE_ESPEAK 1
169#import "Comparison.h"
173 NSUpArrowFunctionKey = 0xF700,
174 NSDownArrowFunctionKey = 0xF701,
175 NSLeftArrowFunctionKey = 0xF702,
176 NSRightArrowFunctionKey = 0xF703,
177 NSF1FunctionKey = 0xF704,
178 NSF2FunctionKey = 0xF705,
179 NSF3FunctionKey = 0xF706,
180 NSF4FunctionKey = 0xF707,
181 NSF5FunctionKey = 0xF708,
182 NSF6FunctionKey = 0xF709,
183 NSF7FunctionKey = 0xF70A,
184 NSF8FunctionKey = 0xF70B,
185 NSF9FunctionKey = 0xF70C,
186 NSF10FunctionKey = 0xF70D,
187 NSF11FunctionKey = 0xF70E,
188 NSF12FunctionKey = 0xF70F,
189 NSF13FunctionKey = 0xF710,
190 NSF14FunctionKey = 0xF711,
191 NSF15FunctionKey = 0xF712,
192 NSF16FunctionKey = 0xF713,
193 NSF17FunctionKey = 0xF714,
194 NSF18FunctionKey = 0xF715,
195 NSF19FunctionKey = 0xF716,
196 NSF20FunctionKey = 0xF717,
197 NSF21FunctionKey = 0xF718,
198 NSF22FunctionKey = 0xF719,
199 NSF23FunctionKey = 0xF71A,
200 NSF24FunctionKey = 0xF71B,
201 NSF25FunctionKey = 0xF71C,
202 NSF26FunctionKey = 0xF71D,
203 NSF27FunctionKey = 0xF71E,
204 NSF28FunctionKey = 0xF71F,
205 NSF29FunctionKey = 0xF720,
206 NSF30FunctionKey = 0xF721,
207 NSF31FunctionKey = 0xF722,
208 NSF32FunctionKey = 0xF723,
209 NSF33FunctionKey = 0xF724,
210 NSF34FunctionKey = 0xF725,
211 NSF35FunctionKey = 0xF726,
212 NSInsertFunctionKey = 0xF727,
213 NSDeleteFunctionKey = 0xF728,
214 NSHomeFunctionKey = 0xF729,
215 NSBeginFunctionKey = 0xF72A,
216 NSEndFunctionKey = 0xF72B,
217 NSPageUpFunctionKey = 0xF72C,
218 NSPageDownFunctionKey = 0xF72D,
219 NSPrintScreenFunctionKey = 0xF72E,
220 NSScrollLockFunctionKey = 0xF72F,
221 NSPauseFunctionKey = 0xF730,
222 NSSysReqFunctionKey = 0xF731,
223 NSBreakFunctionKey = 0xF732,
224 NSResetFunctionKey = 0xF733,
225 NSStopFunctionKey = 0xF734,
226 NSMenuFunctionKey = 0xF735,
227 NSUserFunctionKey = 0xF736,
228 NSSystemFunctionKey = 0xF737,
229 NSPrintFunctionKey = 0xF738,
230 NSClearLineFunctionKey = 0xF739,
231 NSClearDisplayFunctionKey = 0xF73A,
232 NSInsertLineFunctionKey = 0xF73B,
233 NSDeleteLineFunctionKey = 0xF73C,
234 NSInsertCharFunctionKey = 0xF73D,
235 NSDeleteCharFunctionKey = 0xF73E,
236 NSPrevFunctionKey = 0xF73F,
237 NSNextFunctionKey = 0xF740,
238 NSSelectFunctionKey = 0xF741,
239 NSExecuteFunctionKey = 0xF742,
240 NSUndoFunctionKey = 0xF743,
241 NSRedoFunctionKey = 0xF744,
242 NSFindFunctionKey = 0xF745,
243 NSHelpFunctionKey = 0xF746,
244 NSModeSwitchFunctionKey = 0xF747
250#ifndef OOLITE_GNUSTEP
251#define OOLITE_GNUSTEP 0
254#ifndef OOLITE_MAC_OS_X
255#define OOLITE_MAC_OS_X 0
258#ifndef OOLITE_WINDOWS
259#define OOLITE_WINDOWS 0
263#define OOLITE_LINUX 0
270#ifndef OOLITE_SPEECH_SYNTH
271#define OOLITE_SPEECH_SYNTH 0
275#define OOLITE_ESPEAK 0
279 #define OOLITE_64_BIT 0
283#define OOLITE_PROPERTY_SYNTAX (OOLITE_MAC_OS_X || OOLITE_HAVE_CLANG)
289@interface NSObject (OODescriptionComponents)
316 #define OOLITE_RELEASE_PLIST_ERROR_STRINGS 1
318 #define OOLITE_RELEASE_PLIST_ERROR_STRINGS 0
348 #define OOLITE_FAST_ENUMERATION 1
351 #define OOLITE_FAST_ENUMERATION 1
352 #elif defined (OOLITE_GNUSTEP)
353 #define OOLITE_FAST_ENUMERATION (OOLITE_GCC_VERSION >= 40600)
357#ifndef OOLITE_FAST_ENUMERATION
358#define OOLITE_FAST_ENUMERATION 0
376#if OOLITE_FAST_ENUMERATION
377#define foreach(VAR, COLLECTION) for(VAR in COLLECTION)
378#define foreachkey(VAR, DICT) for(VAR in DICT)
380#define foreach(VAR, COLLECTION) for (NSEnumerator *ooForEachEnum = [(COLLECTION) objectEnumerator]; ((VAR) = [ooForEachEnum nextObject]); )
381#define foreachkey(VAR, DICT) for (NSEnumerator *ooForEachEnum = [(DICT) keyEnumerator]; ((VAR) = [ooForEachEnum nextObject]); )
389@interface NSEnumerator (OOForEachSupport)
402#ifndef OOLITE_HAVE_PROTOCOL_OPTIONAL
403#define OOLITE_HAVE_PROTOCOL_OPTIONAL (OOLITE_MAC_OS_X || OOLITE_HAVE_CLANG || OOLITE_GCC_VERSION >= 40700)
406#if OOLITE_HAVE_PROTOCOL_OPTIONAL
407#define OOLITE_OPTIONAL(protocolName) @optional
409#define OOLITE_OPTIONAL(protocolName) @end @interface NSObject (protocolName ## Optional)
445#if __OBJC__ && !__has_feature(objc_instancetype)
446typedef id instancetype;
456#ifndef OO_GAME_DATA_TO_USER_FOLDER
457#define OO_GAME_DATA_TO_USER_FOLDER 0
NSUInteger NSWindowStyleMask
NSInteger OOComparisonResult
NSEnumerator * objectEnumerator()
NSString * descriptionComponents()
NSString * shortDescriptionComponents()
NSString * shortDescription()