rnd-20100213-1-src
[rocksndiamonds.git] / src / game_sp / Globals.h
1 // ----------------------------------------------------------------------------
2 // Globals.h
3 // ----------------------------------------------------------------------------
4
5 #ifndef GLOBALS_H
6 #define GLOBALS_H
7
8 #include "vb_types.h"
9 #include "vb_defs.h"
10 #include "vb_vars.h"
11 #include "vb_lib.h"
12
13 #include "global.h"
14
15 #if 1
16
17 #define ZoomFactor                      (2)
18
19 #define BaseWidth                       (ZoomFactor * 16)
20 #define StretchWidth                    (ZoomFactor * 16)
21 #define StretchWidth2                   (StretchWidth / 2)
22 #define TwoPixels                       (ZoomFactor * 2)
23
24 #else
25
26 #define BaseWidth                       (16)
27 #define StretchWidth                    (16)
28 #define StretchWidth2                   (StretchWidth / 2)
29 #define TwoPixels                       (2)
30
31 #endif
32
33
34 // ----------------------------------------------------------------------------
35 // elements (stored in file and playfield)
36 // ----------------------------------------------------------------------------
37
38 #if 1
39
40 #define fiSpace                         (0)
41 #define fiZonk                          (1)
42 #define fiBase                          (2)
43 #define fiMurphy                        (3)
44 #define fiInfotron                      (4)
45 #define fiRAM                           (5)
46 #define fiHardWare                      (6)
47 #define fiExit                          (7)
48 #define fiOrangeDisk                    (8)
49 #define fiPortRight                     (9)
50 #define fiPortDown                      (10)
51 #define fiPortLeft                      (11)
52 #define fiPortUp                        (12)
53 #define fiSpPortRight                   (13)
54 #define fiSpPortDown                    (14)
55 #define fiSpPortLeft                    (15)
56 #define fiSpPortUp                      (16)
57 #define fiSnikSnak                      (17)
58 #define fiYellowDisk                    (18)
59 #define fiTerminal                      (19)
60 #define fiRedDisk                       (20)
61 #define fiPortUpAndDown                 (21)
62 #define fiPortLeftAndRight              (22)
63 #define fiPortAllDirections             (23)
64 #define fiElectron                      (24)
65 #define fiBug                           (25)
66 #define fiRAMLeft                       (26)
67 #define fiRAMRight                      (27)
68 #define fiHWFirst                       (28)
69
70 #define fiHW_0                          (fiHWFirst + 0)
71 #define fiHW_1                          (fiHWFirst + 1)
72 #define fiHW_2                          (fiHWFirst + 2)
73 #define fiHW_3                          (fiHWFirst + 3)
74 #define fiHW_4                          (fiHWFirst + 4)
75 #define fiHW_5                          (fiHWFirst + 5)
76 #define fiHW_6                          (fiHWFirst + 6)
77 #define fiHW_7                          (fiHWFirst + 7)
78 #define fiHW_8                          (fiHWFirst + 8)
79 #define fiHW_9                          (fiHWFirst + 9)
80
81 #define fiHWLast                        (37)
82 #define fiRAMTop                        (38)
83 #define fiRAMBottom                     (39)
84 #define fiWallSpace                     (40)
85 #define fiHWTrash1                      (41)
86 #define fiHWTrash2                      (42)
87 #define fiHWMurphy                      (43)
88
89 #define fiExplosion                     (0x1F)
90
91 #else
92
93 #define fiBase                          (2)
94 #define fiBug                           (25)
95 #define fiElectron                      (24)
96 #define fiExit                          (7)
97 #define fiExplosion                     (0x1F)
98 #define fiHWFirst                       (28)
99 #define fiHWLast                        (37)
100 #define fiHWMurphy                      (43)
101 #define fiHWTrash1                      (41)
102 #define fiHWTrash2                      (42)
103 #define fiHardWare                      (6)
104 #define fiInfotron                      (4)
105 #define fiMurphy                        (3)
106 #define fiOrangeDisk                    (8)
107 #define fiPortAllDirections             (23)
108 #define fiPortDown                      (10)
109 #define fiPortLeft                      (11)
110 #define fiPortLeftAndRight              (22)
111 #define fiPortRight                     (9)
112 #define fiPortUp                        (12)
113 #define fiPortUpAndDown                 (21)
114 #define fiRAM                           (5)
115 #define fiRAMBottom                     (39)
116 #define fiRAMLeft                       (26)
117 #define fiRAMRight                      (27)
118 #define fiRAMTop                        (38)
119 #define fiRedDisk                       (20)
120 #define fiSnikSnak                      (17)
121 #define fiSpPortDown                    (14)
122 #define fiSpPortLeft                    (15)
123 #define fiSpPortRight                   (13)
124 #define fiSpPortUp                      (16)
125 #define fiSpace                         (0)
126 #define fiTerminal                      (19)
127 #define fiWallSpace                     (40)
128 #define fiYellowDisk                    (18)
129 #define fiZonk                          (1)
130
131 #endif
132
133
134 // ----------------------------------------------------------------------------
135 // graphics and animations (used at runtime to display the elements)
136 // ----------------------------------------------------------------------------
137
138 #if 1
139
140 #define aniSpace                        IMG_EMPTY_SPACE
141
142 #define aniMurphy                       IMG_SP_MURPHY
143 #define aniMurphyDropping               IMG_SP_MURPHY_DROPPING
144
145 #define aniMurphySleepLeft              IMG_SP_MURPHY_SLEEPING_LEFT
146 #define aniMurphySleepRight             IMG_SP_MURPHY_SLEEPING_RIGHT
147 #define aniMurphyTouchDown              IMG_SP_MURPHY_SNAPPING_DOWN
148 #define aniMurphyTouchLeft              IMG_SP_MURPHY_SNAPPING_LEFT
149 #define aniMurphyTouchRight             IMG_SP_MURPHY_SNAPPING_RIGHT
150 #define aniMurphyTouchUp                IMG_SP_MURPHY_SNAPPING_UP
151 #define aniMurphyYawn                   IMG_SP_MURPHY_BORING_1
152 #define aniPushLeft                     IMG_SP_MURPHY_PUSHING_LEFT
153 #define aniPushRight                    IMG_SP_MURPHY_PUSHING_RIGHT
154 #define aniPushUpDown                   IMG_SP_MURPHY_PUSHING_RIGHT
155
156 #define aniSnikSnakDown                 167
157 #define aniSnikSnakLeft                 239
158 #define aniSnikSnakRight                247
159 #define aniSnikSnakUp                   159
160
161 #define aniTerminal                     IMG_SP_TERMINAL
162 #define aniTerminalActive               IMG_SP_TERMINAL_ACTIVE
163
164 #define aniExplosionInfo                (111)
165
166 #else
167
168 #define aniMurphySleepLeft              (71)
169 #define aniMurphySleepRight             (68)
170 #define aniMurphyTouchDown              (47)
171 #define aniMurphyTouchLeft              (95)
172 #define aniMurphyTouchRight             (94)
173 #define aniMurphyTouchUp                (46)
174 #define aniMurphyYawn                   (56)
175 #define aniPushLeft                     (45)
176 #define aniPushRight                    (44)
177 #define aniPushUpDown                   (79)
178
179 #define aniSnikSnakDown                 (167)
180 #define aniSnikSnakLeft                 (239)
181 #define aniSnikSnakRight                (247)
182 #define aniSnikSnakUp                   (159)
183
184 #define aniTerminal                     (0x80)
185 #define aniTerminalActive               (0x88)
186
187 #define aniExplosionInfo                (111)
188
189 #endif
190
191 #define posFrameCorner                  (55)
192 #define posFrameHorizontal              (111)
193 #define posFrameVertical                (110)
194
195
196 #if 1
197
198 extern int aniBug[], aniZonkRollRight[], aniZonkRollLeft[];
199 extern int aniEatInfotronLeft[], aniEatInfotronRight[];
200 extern int aniInfotronRollRight[], aniInfotronRollLeft[];
201 extern int aniMurphyEatLeft[], aniMurphyEatRight[];
202 extern int aniMurphyEatUpLeft[], aniMurphyEatUpRight[], aniSplitUpDown[];
203 extern int aniMurphyExit[];
204 extern int aniSnikSnak[], aniElectron[], aniExplosion[];
205 extern int aniTouchBase[], aniTouchInfotron[], aniTouchRedDisk[];
206 extern int aniYellowDisk[], aniOrangeDisk[], aniRedDisk[];
207
208 #else
209
210 extern int *aniBug, *aniZonkRollRight, *aniZonkRollLeft;
211 extern int *aniEatInfotronLeft, *aniEatInfotronRight;
212 extern int *aniInfotronRollRight, *aniInfotronRollLeft;
213 extern int *aniMurphyEatLeft, *aniMurphyEatRight;
214 extern int *aniMurphyEatUpLeft, *aniMurphyEatUpRight, *aniSplitUpDown;
215 extern int *aniMurphyExit;
216 extern int *aniSnikSnak, *aniElectron, *aniExplosion;
217 extern int *aniTouchBase, *aniTouchInfotron, *aniTouchRedDisk;
218 extern int *aniYellowDisk, *aniOrangeDisk, *aniRedDisk;
219
220 #endif
221
222
223 // ----------------------------------------------------------------------------
224 // input keys
225 // ----------------------------------------------------------------------------
226
227 #if 1
228
229 #define keyNone                         (0)
230 #define keyUp                           (1)
231 #define keyLeft                         (2)
232 #define keyDown                         (3)
233 #define keyRight                        (4)
234 #define keySpaceUp                      (5)
235 #define keySpaceLeft                    (6)
236 #define keySpaceDown                    (7)
237 #define keySpaceRight                   (8)
238 #define keySpace                        (9)
239
240 #else
241
242 #define keyDown                         (3)
243 #define keyLeft                         (2)
244 #define keyNone                         (0)
245 #define keyRight                        (4)
246 #define keySpace                        (9)
247 #define keySpaceDown                    (7)
248 #define keySpaceLeft                    (6)
249 #define keySpaceRight                   (8)
250 #define keySpaceUp                      (5)
251 #define keyUp                           (1)
252
253 #endif
254
255
256 extern int GetSI(int X, int Y);
257 extern int GetStretchX(int si);
258 extern int GetStretchY(int si);
259 extern int GetX(int si);
260 extern int GetY(int si);
261 extern void InitGlobals();
262 extern void InitPseudoCompileFlags();
263
264 extern void ReadLevel();
265
266 extern boolean Alignments;
267 extern boolean BlockingSpeed;
268 extern boolean Cracked;
269 extern boolean Ctrl_Alt_Fix;
270 extern boolean Dead_Code;
271 extern boolean DebugSwitch;
272 extern boolean DemoRecordFix;
273 extern boolean EGA_Arg;
274 extern boolean EP_DEBUG;
275 extern boolean EP_DEMO;
276 extern boolean EP_ENHANCE;
277 extern boolean EP_OLD8;
278 extern boolean EXTRASPEED;
279 extern boolean HP_DEMO;
280 extern boolean LevelLoaded;
281 extern boolean Level_Arg;
282 extern boolean Level_Fix;
283 extern boolean Norm_Time;
284 extern boolean Original;
285 extern boolean Protection;
286 extern boolean Record_Fix;
287 extern boolean Redundant;
288 extern boolean SAVEGAME;
289 extern boolean SafeRecord;
290 extern boolean ScreenFix;
291 extern boolean SpeedKeys;
292 extern boolean TIMINGFIX;
293 extern boolean Ver62;
294 extern boolean Ver62test;
295 extern boolean Ver63;
296 extern boolean Ver64;
297 extern boolean bCapturePane;
298 extern byte *DisPlayField;
299 extern byte *PlayField8;
300 extern char *CurPath, *OrigPath, *TmpPath;
301 extern currency DeltaT;
302 extern int *PlayField16;
303
304 extern int FieldHeight;
305 extern int FieldMax, LevelMax;
306 extern int FieldWidth;
307 extern int FreezeZonks;
308 extern int HeaderSize;
309 extern int LevelNumber;
310 extern int TimerVar;
311 extern short RandomSeed;
312 extern long DeltaTPlay, DeltaTDemo;
313 extern long FileMax;
314 extern long SignatureDelay;
315
316 #endif /* GLOBALS_H */