1 // ----------------------------------------------------------------------------
3 // ----------------------------------------------------------------------------
17 #define ZoomFactor (2)
19 #define BaseWidth (ZoomFactor * 16)
20 #define StretchWidth (ZoomFactor * 16)
21 #define StretchWidth2 (StretchWidth / 2)
22 #define TwoPixels (ZoomFactor * 2)
26 #define BaseWidth (16)
27 #define StretchWidth (16)
28 #define StretchWidth2 (StretchWidth / 2)
34 // ----------------------------------------------------------------------------
35 // elements (stored in file and playfield)
36 // ----------------------------------------------------------------------------
44 #define fiInfotron (4)
46 #define fiHardWare (6)
48 #define fiOrangeDisk (8)
49 #define fiPortRight (9)
50 #define fiPortDown (10)
51 #define fiPortLeft (11)
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)
66 #define fiRAMLeft (26)
67 #define fiRAMRight (27)
68 #define fiHWFirst (28)
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)
83 #define fiRAMBottom (39)
84 #define fiWallSpace (40)
85 #define fiHWTrash1 (41)
86 #define fiHWTrash2 (42)
87 #define fiHWMurphy (43)
89 #define fiExplosion (0x1F)
95 #define fiElectron (24)
97 #define fiExplosion (0x1F)
98 #define fiHWFirst (28)
100 #define fiHWMurphy (43)
101 #define fiHWTrash1 (41)
102 #define fiHWTrash2 (42)
103 #define fiHardWare (6)
104 #define fiInfotron (4)
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)
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)
126 #define fiTerminal (19)
127 #define fiWallSpace (40)
128 #define fiYellowDisk (18)
134 // ----------------------------------------------------------------------------
135 // graphics and animations (used at runtime to display the elements)
136 // ----------------------------------------------------------------------------
140 #define aniSpace IMG_EMPTY_SPACE
142 #define aniMurphy IMG_SP_MURPHY
143 #define aniMurphyDropping IMG_SP_MURPHY_DROPPING
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
156 #define aniSnikSnakDown 167
157 #define aniSnikSnakLeft 239
158 #define aniSnikSnakRight 247
159 #define aniSnikSnakUp 159
161 #define aniTerminal IMG_SP_TERMINAL
162 #define aniTerminalActive IMG_SP_TERMINAL_ACTIVE
164 #define aniExplosionInfo (111)
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)
179 #define aniSnikSnakDown (167)
180 #define aniSnikSnakLeft (239)
181 #define aniSnikSnakRight (247)
182 #define aniSnikSnakUp (159)
184 #define aniTerminal (0x80)
185 #define aniTerminalActive (0x88)
187 #define aniExplosionInfo (111)
191 #define posFrameCorner (55)
192 #define posFrameHorizontal (111)
193 #define posFrameVertical (110)
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[];
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;
223 // ----------------------------------------------------------------------------
225 // ----------------------------------------------------------------------------
234 #define keySpaceUp (5)
235 #define keySpaceLeft (6)
236 #define keySpaceDown (7)
237 #define keySpaceRight (8)
247 #define keySpaceDown (7)
248 #define keySpaceLeft (6)
249 #define keySpaceRight (8)
250 #define keySpaceUp (5)
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();
264 extern void ReadLevel();
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;
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;
311 extern short RandomSeed;
312 extern long DeltaTPlay, DeltaTDemo;
314 extern long SignatureDelay;
316 #endif /* GLOBALS_H */