7cd0123a10930fc68e1ae6ed0d29e6816fe8ee48
[rocksndiamonds.git] / src / game_sp / modAnimations.c
1 // ----------------------------------------------------------------------------
2 // modAnimations.c
3 // ----------------------------------------------------------------------------
4
5 #include "modAnimations.h"
6
7 // static char *VB_Name = "modAnimations";
8 // --- Option Explicit
9
10 // ::: #ifndef HAS_SpecialPortType
11 // ::: typedef struct
12 // ::: {
13 // :::   int PortLocation; // = 2*(x+(y*60))
14 // :::   byte Gravity; // 1 = turn on, anything else (0) = turn off
15 // :::   byte FreezeZonks; // 2 = turn on, anything else (0) = turn off  (1=off!)
16 // :::   byte FreezeEnemies; // 1 = turn on, anything else (0) = turn off
17 // :::   byte UnUsed;
18 // ::: } SpecialPortType;
19 // ::: #define HAS_SpecialPortType
20 // ::: #endif
21
22 // ::: #ifndef HAS_LevelInfoType
23 // ::: typedef struct
24 // ::: {
25 // :::   byte UnUsed[4 + 1];
26 // :::   byte InitialGravity; // 1=on, anything else (0) = off
27 // :::   byte Version; // SpeedFixVersion XOR &H20
28 // :::   char LevelTitle[23];
29 // :::   byte InitialFreezeZonks; // 2=on, anything else (0) = off.  (1=off too!)
30 // :::   byte InfotronsNeeded;
31
32 // :::   // Number of Infotrons needed. 0 means that Supaplex will count the total
33 // :::   // amount of Infotrons in the level, and use the low byte of that number.
34 // :::   // (A multiple of 256 Infotrons will then result in 0-to-eat, etc.!)
35 // :::   byte SpecialPortCount; // Maximum 10 allowed!
36 // :::   SpecialPortType SpecialPort[10 + 1];
37 // :::   byte SpeedByte; // = Speed XOR Highbyte(RandomSeed)
38 // :::   byte CheckSumByte; // = CheckSum XOR SpeedByte
39 // :::   int DemoRandomSeed;
40 // ::: } LevelInfoType;
41 // ::: #define HAS_LevelInfoType
42 // ::: #endif
43
44 DDSpriteBuffer NormalSprites;
45 DDSpriteBuffer StretchedSprites;
46 DDScrollBuffer Stage;
47
48 byte LData[59 + 1][23 + 1];
49 LevelInfoType LInfo;
50
51 #if 1
52 float Stretch = 1; // , StretchWidth%, TwoPixels!
53 #else
54 float Stretch; // , StretchWidth%, TwoPixels!
55 #endif
56
57 int ScrollMinX, ScrollMaxX, ScrollMinY, ScrollMaxY;
58 int ScrollX, ScrollY;
59 // --- const long ScrollDelta = 1&;
60
61 // Public FieldWidth&, FieldHeight&
62 boolean EndFlag;
63 long PauseMode;
64
65 TickCountObject Clock;
66 long MurphyX, MurphyY;
67
68 void GoPlay()
69 {
70   //  Call subFetchAndInitLevelB
71   EndFlag = False;
72
73 #if 1
74   subMainGameLoop_Init();
75 #else
76   subMainGameLoop();
77 #endif
78 }