rnd-20030402-1-src
[rocksndiamonds.git] / src / main.h
index 991d0eca677e8daaa8c0f7d0fe8d370d27ad5f3f..f00ab2a7d74187d43dc543728931be7c3b00a48a 100644 (file)
 #define EP_BIT_BELT_SWITCH     (1 << 2)
 #define EP_BIT_TUBE            (1 << 3)
 #define EP_BIT_EM_SLIPPERY_WALL        (1 << 4)
+#define EP_BIT_CAN_BE_CRUMBLED (1 << 5)
 
 #define EP_BITMASK_DEFAULT     0
 
 #define IS_BELT_SWITCH(e)      (Properties2[e] & EP_BIT_BELT_SWITCH)
 #define IS_TUBE(e)             (Properties2[e] & EP_BIT_TUBE)
 #define IS_EM_SLIPPERY_WALL(e) (Properties2[e] & EP_BIT_EM_SLIPPERY_WALL)
+#define CAN_BE_CRUMBLED(e)     (Properties2[e] & EP_BIT_CAN_BE_CRUMBLED)
 
 #define IS_CUSTOM_ELEMENT(e)   ((e) >= EL_CUSTOM_START &&      \
                                 (e) <= EL_CUSTOM_END)
 #define WINDOW_TITLE_STRING    PROGRAM_TITLE_STRING " " PROGRAM_IDENT_STRING
 #define WINDOW_SUBTITLE_STRING PROGRAM_RIGHTS_STRING " " PROGRAM_AUTHOR_STRING
 #define ICON_TITLE_STRING      PROGRAM_TITLE_STRING
-#define UNIX_USERDATA_DIRECTORY        ".rocksndiamonds"
 #define COOKIE_PREFIX          "ROCKSNDIAMONDS"
 #define FILENAME_PREFIX                "Rocks"
 
+#if defined(PLATFORM_UNIX)
+#define USERDATA_DIRECTORY     ".rocksndiamonds"
+#elif defined(PLATFORM_WIN32)
+#define USERDATA_DIRECTORY     PROGRAM_TITLE_STRING
+#else
+#define USERDATA_DIRECTORY     "userdata"
+#endif
+
 #define X11_ICON_FILENAME      "rocks_icon.xbm"
 #define X11_ICONMASK_FILENAME  "rocks_iconmask.xbm"
 #define MSDOS_POINTER_FILENAME "mouse.pcx"
@@ -920,8 +929,8 @@ struct PlayerInfo
                                   through doors); overrides other actions */
 
   int jx,jy, last_jx,last_jy;
-  int MovDir, MovPos, GfxPos;
-  int Frame;
+  int MovDir, MovPos, GfxDir, GfxPos;
+  int Frame, StepFrame;
 
   int GfxAction;
 
@@ -935,9 +944,9 @@ struct PlayerInfo
 
   int last_move_dir;
   boolean is_moving;
-
-  boolean is_digging;
   boolean is_waiting;
+  boolean is_digging;
+  boolean is_collecting;
 
   unsigned long move_delay;
   int move_delay_value;
@@ -996,6 +1005,7 @@ struct TapeInfo
   int game_version;    /* game release version the tape was created with */
   int engine_version;  /* game engine version the tape was recorded with */
 
+  char *level_identifier;
   int level_nr;
   unsigned long random_seed;
   unsigned long date;
@@ -1050,6 +1060,14 @@ struct GlobalInfo
 
   int num_toons;
 
+  int menu_draw_xoffset;
+  int menu_draw_yoffset;
+  int menu_draw_xoffset_MAIN;
+  int menu_draw_yoffset_MAIN;
+
+  int door_step_offset;
+  int door_step_delay;
+
   float frames_per_second;
   boolean fps_slowdown;
   int fps_slowdown_factor;
@@ -1170,6 +1188,7 @@ extern unsigned long              Properties2[MAX_NUM_ELEMENTS];
 extern int                     GfxFrame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 extern int                     GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 extern int                     GfxRandom[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern int                     GfxElement[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 
 extern int                     lev_fieldx, lev_fieldy;
 extern int                     scroll_x, scroll_y;