#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"
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;
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;
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;
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;
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;