re-enabled storing selection from "last played level set" menu
[rocksndiamonds.git] / src / main.h
index 3dd32c3dd986bfe8f6df2667001984e9bd2005a1..c67fbebbb0f363b3d35b7aa0485bb6c8aa16b6c9 100644 (file)
 #define CH_SIDE_TOP_BOTTOM             MV_VERTICAL
 #define CH_SIDE_ANY                    MV_ANY_DIRECTION
 
+#define CH_SIDE_FROM_BUTTON(b) ((b) == MB_LEFTBUTTON   ? CH_SIDE_LEFT :       \
+                                (b) == MB_RIGHTBUTTON  ? CH_SIDE_RIGHT :      \
+                                (b) == MB_MIDDLEBUTTON ? CH_SIDE_TOP_BOTTOM : \
+                                CH_SIDE_NONE)
+
 // values for change player for custom elements
 #define CH_PLAYER_NONE                 PLAYER_BITS_NONE
 #define CH_PLAYER_1                    PLAYER_BITS_1
@@ -2570,7 +2575,7 @@ enum
 // program information and versioning definitions
 #define PROGRAM_VERSION_SUPER          4
 #define PROGRAM_VERSION_MAJOR          2
-#define PROGRAM_VERSION_MINOR          1
+#define PROGRAM_VERSION_MINOR          3
 #define PROGRAM_VERSION_PATCH          1
 #define PROGRAM_VERSION_EXTRA          ""
 
@@ -2578,7 +2583,7 @@ enum
 #define PROGRAM_AUTHOR_STRING          "Holger Schemel"
 #define PROGRAM_EMAIL_STRING           "info@artsoft.org"
 #define PROGRAM_WEBSITE_STRING         "https://www.artsoft.org/"
-#define PROGRAM_COPYRIGHT_STRING       "Copyright \xa9""1995-2020 by Holger Schemel"
+#define PROGRAM_COPYRIGHT_STRING       "Copyright \xa9""1995-2021 by Holger Schemel"
 #define PROGRAM_COMPANY_STRING         "A Game by Artsoft Entertainment"
 
 #define PROGRAM_ICON_FILENAME          "RocksIcon32x32.png"
@@ -2894,6 +2899,11 @@ struct RequestInfo
   boolean autowrap;
   boolean centered;
   boolean wrap_single_words;
+
+  // run-time values
+  Bitmap *bitmap;
+  int sx, sy;
+  int xsize, ysize;
 };
 
 struct PreviewInfo
@@ -3181,6 +3191,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
@@ -3198,6 +3209,8 @@ struct LevelInfo
   // ('int' instead of 'boolean' because used as selectbox value in editor)
   int use_step_counter;                // count steps instead of seconds for level
 
+  int time_score_base;         // use time score for 1 or 10 seconds/steps
+
   short field[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
 
   boolean use_custom_template; // use custom properties from template file
@@ -3389,6 +3402,8 @@ struct ElementInfo
   int drop_delay_random;       // additional random delay after dropping
   int move_delay_fixed;                // constant delay after moving
   int move_delay_random;       // additional random delay after moving
+  int step_delay_fixed;                // constant delay while moving
+  int step_delay_random;       // additional random delay while moving
 
   int move_pattern;            // direction movable element moves to
   int move_direction_initial;  // initial direction element moves to