1 // compiler options, common for all game modules
4 {$MODESWITCH ADVANCEDRECORDS+}
5 {$MODESWITCH ALLOWINLINE+}
6 {$MODESWITCH ANSISTRINGS+} // Allow use of ansistrings.
7 {$MODESWITCH AUTODEREF+} // Automatic (silent) dereferencing of typed pointers.
9 {$MODESWITCH CLASSICPROCVARS+} // Use classical procedural variables.
10 {$MODESWITCH DEFAULTPARAMETERS+} // Allow use of default parameter values.
11 {$MODESWITCH DUPLICATELOCALS-} // Allow local variables in class methods to have the same names as properties of the class.
12 {$MODESWITCH EXCEPTIONS+}
13 {$MODESWITCH HINTDIRECTIVE+} // Support the hint directives (deprecated, platform etc.)
14 {$MODESWITCH INITFINAL+} // Allow use of Initialization and Finalization
15 {.$MODESWITCH ISOUNARYMINUS-} // Unary minus as required by ISO pascal.
16 {$MODESWITCH MACPROCVARS-} // Use mac-style procedural variables.
17 {$MODESWITCH NESTEDCOMMENTS-}
18 {$MODESWITCH NESTEDPROCVARS+}
20 {$MODESWITCH OUT+} // Allow use of the out parameter type.
21 {$MODESWITCH PCHARTOSTRING+}
22 {$MODESWITCH POINTERTOPROCVAR+} // Allow silent conversion of pointers to procedural variables.
23 {$MODESWITCH PROPERTIES+}
24 {$MODESWITCH REPEATFORWARD+} // Implementation and Forward declaration must match completely.
26 {$MODESWITCH TYPEHELPERS+} // Allow the use of type helpers.
27 {$MODESWITCH UNICODESTRINGS-}
30 {$MODESWITCH OBJECTIVEC1}
50 {$SAFEFPUEXCEPTIONS OFF}
51 {$SCOPEDENUMS ON} // this may be changed later
55 {$VARSTRINGCHECKS OFF}
57 {$S-} // disable stack checking
58 {$MMX-} // get lost, mmx
60 {$IF DEFINED(D2F_DEBUG)}
66 {$DEFINE D2F_MORE_OPTIM}
71 {$IF DEFINED(D2F_DEBUG_OPTIM) or DEFINED(D2F_MORE_OPTIM)}
72 {$OPTIMIZATION DEADVALUES}
73 {$OPTIMIZATION CONSTPROP}
74 {$OPTIMIZATION DEADSTORE}
89 (* --------- Build options check --------- *)
93 {$IF DEFINED(USE_SDL) OR DEFINED(USE_SDL2)}
94 {$WARNING System drivers not supported in headless mode. Force stub driver...}
99 {$IF DEFINED(USE_GLES1) OR DEFINED(USE_OPENGL)}
100 {$WARNING Render drivers not needed in headless mode. Force stub driver...}
104 {$IFDEF ENABLE_HOLMES}
105 {$WARNING Holmes in headless mode has no sense. Disabled.}
106 {$UNDEF ENABLE_HOLMES}
109 {$WARNING Menu in headless mode has no sense. Disabled.}
111 {$DEFINE DISABLE_MENU}
113 {$IFDEF ENABLE_TOUCH}
114 {$WARNING Touch screen in headless mode has no sense. Disabled.}
115 {$UNDEF ENABLE_TOUCH}
116 {$DEFINE DISABLE_TOUCH}
120 {$IF DEFINED(ENABLE_MENU) AND DEFINED(DISABLE_MENU)}
121 {$ERROR Select ENABLE_MENU or DISABLE_MENU}
122 {$ELSEIF NOT DEFINED(ENABLE_MENU) AND NOT DEFINED(DISABLE_MENU)}
123 // defaut ENABLE/DISABLE menu
125 {$DEFINE DISABLE_MENU}
127 {$DEFINE ENABLE_MENU}
131 {$IF DEFINED(ENABLE_TOUCH) AND DEFINED(DISABLE_TOUCH)}
132 {$ERROR Select ENABLE_TOUCH or DISABLE_TOUCH}
133 {$ELSEIF NOT DEFINED(ENABLE_TOUCH) AND NOT DEFINED(DISABLE_TOUCH)}
134 // defaut ENABLE/DISABLE touch
136 {$DEFINE DISABLE_TOUCH}
138 {$DEFINE ENABLE_TOUCH}
142 {$IF DEFINED(USE_SYSSTUB)}
143 {$IF DEFINED(USE_SDL) OR DEFINED(USE_SDL2)}
144 {$ERROR Only one system driver must be selected!}
146 {$ELSEIF DEFINED(USE_SDL)}
147 {$IF DEFINED(USE_SYSSTUB) OR DEFINED(USE_SDL2)}
148 {$ERROR Only one system driver must be selected!}
150 {$ELSEIF DEFINED(USE_SDL2)}
151 {$IF DEFINED(USE_SYSSTUB) OR DEFINED(USE_SDL)}
152 {$ERROR Only one system driver must be selected!}
156 {.$ERROR System driver not selected. Use -dUSE_SYSSTUB or -dUSE_SDL or -dUSE_SDL2}
159 {$IF DEFINED(USE_SOUNDSTUB)}
160 {$IF DEFINED(USE_SDLMIXER) OR DEFINED(USE_FMOD) OR DEFINED(USE_OPENAL)}
161 {$ERROR Only one sound driver must be selected!}
163 {$ELSEIF DEFINED(USE_SDLMIXER)}
164 {$IF DEFINED(USE_SOUNDSTUB) OR DEFINED(USE_FMOD) OR DEFINED(USE_OPENAL)}
165 {$ERROR Only one sound driver must be selected!}
167 {$ELSEIF DEFINED(USE_FMOD)}
168 {$IF DEFINED(USE_SOUNDSTUB) OR DEFINED(USE_SDLMIXER) OR DEFINED(USE_OPENAL)}
169 {$ERROR Only one sound driver must be selected!}
171 {$ELSEIF DEFINED(USE_OPENAL)}
172 {$IF DEFINED(USE_SOUNDSTUB) OR DEFINED(USE_SDLMIXER) OR DEFINED(USE_FMOD)}
173 {$ERROR Only one sound driver must be selected!}
177 {$DEFINE USE_SOUNDSTUB}
179 {$ERROR Sound driver not selected. Use -dUSE_SOUNDSTUB or -dUSE_SDLMIXER or -dUSE_FMOD or -dUSE_OPENAL}
183 {$IF DEFINED(USE_GLSTUB)}
184 {$IF DEFINED(USE_GLES1) OR DEFINED(USE_OPENGL)}
185 {$ERROR Only one render driver must be selected!}
187 {$ELSEIF DEFINED(USE_GLES1)}
188 {$IF DEFINED(USE_GLSTUB) OR DEFINED(USE_OPENGL)}
189 {$ERROR Only one render driver must be selected!}
191 {$ELSEIF DEFINED(USE_OPENGL)}
192 {$IF DEFINED(USE_GLSTUB) OR DEFINED(USE_GLES1)}
193 {$ERROR Only one render driver must be selected!}
197 {.$ERROR Render driver not selected. Use -dUSE_GLSTUB or -dUSE_GLES1 or -dUSE_OPENGL}
200 {$IFDEF ENABLE_HOLMES}
202 {$ERROR Holmes supported only with SDL2}
205 {$ERROR Holmes supported only with desktop OpenGL}