changed triggering CE actions by digging or collecting
[rocksndiamonds.git] / src / main.h
index c412801a2607b2e667710e9a6f7fc06ac2ecc9de..6fac677484fcd6ded75579e50d8203e0166af267 100644 (file)
 #define IS_DC_STEELWALL_2(e)   ((e) >= EL_DC_STEELWALL_2_LEFT &&       \
                                 (e) <= EL_DC_STEELWALL_2_SINGLE)
 
+// !!! IMPROVE THIS !!!
+#define IS_EM_ELEMENT(e)       (map_element_EM_to_RND_cave(map_element_RND_to_EM_cave(e)) == (e))
+
 #define MM_WALL_BASE(e)                ((e) & 0xfff0)
 #define MM_WALL_BITS(e)                ((e) & 0x000f)
 
@@ -2276,6 +2279,7 @@ enum
   GFX_SPECIAL_ARG_TITLE_4,
   GFX_SPECIAL_ARG_TITLE_5,
   GFX_SPECIAL_ARG_MAIN,
+  GFX_SPECIAL_ARG_NAMES,
   GFX_SPECIAL_ARG_LEVELS,
   GFX_SPECIAL_ARG_LEVELNR,
   GFX_SPECIAL_ARG_SCORES,
@@ -2289,7 +2293,9 @@ enum
   GFX_SPECIAL_ARG_PREVIEW,
   GFX_SPECIAL_ARG_CRUMBLED,
   GFX_SPECIAL_ARG_MAINONLY,
+  GFX_SPECIAL_ARG_NAMESONLY,
   GFX_SPECIAL_ARG_TYPENAME,
+  GFX_SPECIAL_ARG_TYPENAMES,
   GFX_SPECIAL_ARG_SUBMENU,
   GFX_SPECIAL_ARG_MENU,
   GFX_SPECIAL_ARG_TOONS,
@@ -2524,6 +2530,7 @@ enum
 #define GAME_MODE_TITLE_4              GFX_SPECIAL_ARG_TITLE_4
 #define GAME_MODE_TITLE_5              GFX_SPECIAL_ARG_TITLE_5
 #define GAME_MODE_MAIN                 GFX_SPECIAL_ARG_MAIN
+#define GAME_MODE_NAMES                        GFX_SPECIAL_ARG_NAMES
 #define GAME_MODE_LEVELS               GFX_SPECIAL_ARG_LEVELS
 #define GAME_MODE_LEVELNR              GFX_SPECIAL_ARG_LEVELNR
 #define GAME_MODE_SCORES               GFX_SPECIAL_ARG_SCORES
@@ -2537,7 +2544,9 @@ enum
 #define GAME_MODE_PSEUDO_PREVIEW       GFX_SPECIAL_ARG_PREVIEW
 #define GAME_MODE_PSEUDO_CRUMBLED      GFX_SPECIAL_ARG_CRUMBLED
 #define GAME_MODE_PSEUDO_MAINONLY      GFX_SPECIAL_ARG_MAINONLY
+#define GAME_MODE_PSEUDO_NAMESONLY     GFX_SPECIAL_ARG_NAMESONLY
 #define GAME_MODE_PSEUDO_TYPENAME      GFX_SPECIAL_ARG_TYPENAME
+#define GAME_MODE_PSEUDO_TYPENAMES     GFX_SPECIAL_ARG_TYPENAMES
 #define GAME_MODE_PSEUDO_SUBMENU       GFX_SPECIAL_ARG_SUBMENU
 #define GAME_MODE_PSEUDO_MENU          GFX_SPECIAL_ARG_MENU
 #define GAME_MODE_PSEUDO_TOONS         GFX_SPECIAL_ARG_TOONS
@@ -2561,8 +2570,8 @@ enum
 // program information and versioning definitions
 #define PROGRAM_VERSION_SUPER          4
 #define PROGRAM_VERSION_MAJOR          2
-#define PROGRAM_VERSION_MINOR          0
-#define PROGRAM_VERSION_PATCH          3
+#define PROGRAM_VERSION_MINOR          2
+#define PROGRAM_VERSION_PATCH          1
 #define PROGRAM_VERSION_EXTRA          ""
 
 #define PROGRAM_TITLE_STRING           "Rocks'n'Diamonds"
@@ -2881,9 +2890,15 @@ struct RequestInfo
   int anim_mode;
   int align;
   int valign;
+  int sort_priority;
   boolean autowrap;
   boolean centered;
   boolean wrap_single_words;
+
+  // run-time values
+  Bitmap *bitmap;
+  int sx, sy;
+  int xsize, ysize;
 };
 
 struct PreviewInfo
@@ -3171,6 +3186,7 @@ struct LevelInfo
   boolean sb_objects_needed;   // all Sokoban objects must be solved
   boolean auto_exit_sokoban;   // automatically finish solved Sokoban levels
   boolean solved_by_one_player;        // level is solved if one player enters exit
+  boolean finish_dig_collect;  // only finished dig/collect triggers ce action
 
   boolean continuous_snapping; // repeated snapping without releasing key
   boolean block_snap_field;    // snapping blocks field to show animation
@@ -3244,6 +3260,8 @@ struct GlobalInfo
   int anim_status_next;
 
   boolean use_envelope_request;
+
+  char **user_names;
 };
 
 struct ElementChangeInfo
@@ -3636,11 +3654,9 @@ extern DrawBuffer               *fieldbuffer;
 extern DrawBuffer             *drawto_field;
 
 extern int                     game_status;
-extern boolean                 game_status_last_screen;
+extern int                     game_status_last_screen;
 extern boolean                 level_editor_test_game;
 extern boolean                 network_playing;
-extern boolean                 network_server;
-extern SDL_Thread             *server_thread;
 
 extern int                     key_joystick_mapping;