rnd-20090719-1-src
[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 float Stretch; // , StretchWidth%, TwoPixels!
52
53 int ScrollMinX, ScrollMaxX, ScrollMinY, ScrollMaxY;
54 int ScrollX, ScrollY;
55 // --- const long ScrollDelta = 1&;
56
57 // Public FieldWidth&, FieldHeight&
58 boolean EndFlag;
59 long PauseMode;
60
61 TickCountObject Clock;
62 long MurphyX, MurphyY;
63
64 void GoPlay()
65 {
66   //  Call subFetchAndInitLevelB
67   EndFlag = False;
68
69   subMainGameLoop();
70 }