rnd-20091124-2-src
[rocksndiamonds.git] / src / game_sp / export.h
index 552e2ecb14a303618088f650666be38f6ec4eb14..f54bb28aee2c012a4b1405d5e4a0a630147393ba 100644 (file)
                                         SP_PLAYFIELD_HEIGHT)
 #define SP_LEVEL_SIZE                  (SP_HEADER_SIZE + SP_PLAYFIELD_SIZE)
 
+#if 0
+#define SP_SCREEN_BUFFER_XSIZE         (SCR_FIELDX + 2)
+#define SP_SCREEN_BUFFER_YSIZE         (SCR_FIELDY + 2)
+#endif
+
 #define SP_FRAMES_PER_SECOND           35
 #define SP_MAX_TAPE_LEN                        64010   /* (see "spfix63.doc") */
 
@@ -84,18 +89,26 @@ struct GameInfo_SP
   boolean GameOver;
 };
 
+struct DemoInfo_SP
+{
+  boolean is_available;                /* structure contains valid demo */
+
+  int level_nr;                        /* number of corresponding level */
+
+  int length;                  /* number of demo entries */
+  byte data[SP_MAX_TAPE_LEN];  /* array of demo entries */
+};
+
 struct LevelInfo_SP
 {
   LevelInfoType header;
-
-  byte playfield[SP_MAX_PLAYFIELD_WIDTH][SP_MAX_PLAYFIELD_HEIGHT];
+  byte header_raw_bytes[SP_HEADER_SIZE];
 
   int width, height;
 
-  boolean demo_available;
+  byte playfield[SP_MAX_PLAYFIELD_WIDTH][SP_MAX_PLAYFIELD_HEIGHT];
 
-  byte demo[SP_MAX_TAPE_LEN];
-  int demo_length;
+  struct DemoInfo_SP demo;
 };
 
 struct GraphicInfo_SP
@@ -153,4 +166,7 @@ extern void DrawGameDoorValues_SP();
 extern void LoadEngineSnapshotValues_SP();
 extern void SaveEngineSnapshotValues_SP();
 
+extern int map_key_RND_to_SP(int);
+extern int map_key_SP_to_RND(int);
+
 #endif /* GAME_SP_EXPORT_H */