38325dc0fb7f75db9942bfc330b52375e6765523
[rocksndiamonds.git] / src / game_sp / modAnimations.h
1 // ----------------------------------------------------------------------------
2 // modAnimations.h
3 // ----------------------------------------------------------------------------
4
5 #ifndef MODANIMATIONS_H
6 #define MODANIMATIONS_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 #ifndef HAS_SpecialPortType
16 typedef struct
17 {
18 #if 1
19   short PortLocation; // = 2*(x+(y*60))
20 #else
21   int PortLocation; // = 2*(x+(y*60))
22 #endif
23   byte Gravity; // 1 = turn on, anything else (0) = turn off
24   byte FreezeZonks; // 2 = turn on, anything else (0) = turn off  (1=off!)
25   byte FreezeEnemies; // 1 = turn on, anything else (0) = turn off
26   byte UnUsed;
27 } SpecialPortType;
28 #define HAS_SpecialPortType
29 #endif
30
31 #ifndef HAS_LevelInfoType
32 typedef struct
33 {
34   byte UnUsed[4];
35   byte InitialGravity; // 1=on, anything else (0) = off
36   byte Version; // SpeedFixVersion XOR &H20
37   char LevelTitle[23];
38   byte InitialFreezeZonks; // 2=on, anything else (0) = off.  (1=off too!)
39   byte InfotronsNeeded;
40
41   // Number of Infotrons needed. 0 means that Supaplex will count the total
42   // amount of Infotrons in the level, and use the low byte of that number.
43   // (A multiple of 256 Infotrons will then result in 0-to-eat, etc.!)
44   byte SpecialPortCount; // Maximum 10 allowed!
45   SpecialPortType SpecialPort[10];
46   byte SpeedByte; // = Speed XOR Highbyte(RandomSeed)
47   byte CheckSumByte; // = CheckSum XOR SpeedByte
48 #if 1
49   short DemoRandomSeed;
50 #else
51   int DemoRandomSeed;
52 #endif
53 } LevelInfoType;
54 #define HAS_LevelInfoType
55 #endif
56
57 #define ScrollDelta                     ((long)1)
58
59 extern void GoPlay();
60
61 extern DDScrollBuffer Stage;
62 extern DDSpriteBuffer NormalSprites;
63 extern DDSpriteBuffer StretchedSprites;
64 extern LevelInfoType LInfo;
65 extern boolean EndFlag;
66 extern byte LData[59 + 1][23 + 1];
67 extern float Stretch;
68 extern int ScrollMinX, ScrollMaxX, ScrollMinY, ScrollMaxY;
69 extern int ScrollX, ScrollY;
70 extern long PauseMode;
71
72 #endif /* MODANIMATIONS_H */