rnd-20090623-1-src
[rocksndiamonds.git] / src / game_sp / modAnimations.c
diff --git a/src/game_sp/modAnimations.c b/src/game_sp/modAnimations.c
new file mode 100644 (file)
index 0000000..5cb6643
--- /dev/null
@@ -0,0 +1,69 @@
+// ----------------------------------------------------------------------------
+// modAnimations.c
+// ----------------------------------------------------------------------------
+
+#include "modAnimations.h"
+
+// static char *VB_Name = "modAnimations";
+// --- Option Explicit
+
+// ::: #ifndef HAS_SpecialPortType
+// ::: typedef struct
+// ::: {
+// :::   int PortLocation; // = 2*(x+(y*60))
+// :::   byte Gravity; // 1 = turn on, anything else (0) = turn off
+// :::   byte FreezeZonks; // 2 = turn on, anything else (0) = turn off  (1=off!)
+// :::   byte FreezeEnemies; // 1 = turn on, anything else (0) = turn off
+// :::   byte UnUsed;
+// ::: } SpecialPortType;
+// ::: #define HAS_SpecialPortType
+// ::: #endif
+
+// ::: #ifndef HAS_LevelInfoType
+// ::: typedef struct
+// ::: {
+// :::   byte UnUsed[4 + 1];
+// :::   byte InitialGravity; // 1=on, anything else (0) = off
+// :::   byte Version; // SpeedFixVersion XOR &H20
+// :::   char LevelTitle[23];
+// :::   byte InitialFreezeZonks; // 2=on, anything else (0) = off.  (1=off too!)
+// :::   byte InfotronsNeeded;
+
+// :::   // Number of Infotrons needed. 0 means that Supaplex will count the total
+// :::   // amount of Infotrons in the level, and use the low byte of that number.
+// :::   // (A multiple of 256 Infotrons will then result in 0-to-eat, etc.!)
+// :::   byte SpecialPortCount; // Maximum 10 allowed!
+// :::   SpecialPortType SpecialPort[10 + 1];
+// :::   byte SpeedByte; // = Speed XOR Highbyte(RandomSeed)
+// :::   byte CheckSumByte; // = CheckSum XOR SpeedByte
+// :::   int DemoRandomSeed;
+// ::: } LevelInfoType;
+// ::: #define HAS_LevelInfoType
+// ::: #endif
+
+DDSpriteBuffer NormalSprites;
+DDSpriteBuffer StretchedSprites;
+DDScrollBuffer Stage;
+
+byte LData[59 + 1][23 + 1];
+LevelInfoType LInfo;
+
+float Stretch; // , StretchWidth%, TwoPixels!
+
+int ScrollMinX, ScrollMaxX, ScrollMinY, ScrollMaxY;
+int ScrollX, ScrollY;
+// --- const long ScrollDelta = 1&;
+
+// Public FieldWidth&, FieldHeight&
+boolean EndFlag;
+long PauseMode;
+
+TickCountObject Clock;
+long MurphyX, MurphyY;
+
+void GoPlay()
+{
+  //  Call subFetchAndInitLevelB
+  EndFlag = False;
+  subMainGameLoop();
+}