changed "http" to "https" in URLs
[rocksndiamonds.git] / src / main.h
index ba83a4d6c730ac07775e2e63f55da0fde0152519..029f17434cdc6d4882c4c63c922b832eeb8c776f 100644 (file)
@@ -4,7 +4,7 @@
 // (c) 1995-2014 by Artsoft Entertainment
 //                         Holger Schemel
 //                 info@artsoft.org
-//                 http://www.artsoft.org/
+//                 https://www.artsoft.org/
 // ----------------------------------------------------------------------------
 // main.h
 // ============================================================================
 #define CE_VALUE_CHANGES_OF_X          41
 #define CE_SCORE_CHANGES               42
 #define CE_SCORE_CHANGES_OF_X          43
+#define CE_CLICKED_BY_MOUSE            44
+#define CE_PRESSED_BY_MOUSE            45
+#define CE_MOUSE_CLICKED_ON_X          46
+#define CE_MOUSE_PRESSED_ON_X          47
 
-#define NUM_CHANGE_EVENTS              44
+#define NUM_CHANGE_EVENTS              48
 
 #define NUM_CE_BITFIELDS               ((NUM_CHANGE_EVENTS + 31) / 32)
 
+#define CE_HEADLINE_SPECIAL_EVENTS     250
+#define CE_UNDEFINED                   255
+
 #define CE_BITMASK_DEFAULT             0
 
 #define CH_EVENT_BITFIELD_NR(e)                (e / 32)
 #define CA_SET_PLAYER_INVENTORY                18
 #define CA_SET_CE_ARTWORK              19
 #define CA_SET_LEVEL_RANDOM_SEED       20
+#define CA_MOVE_PLAYER_NEW             21
 
 #define CA_HEADLINE_LEVEL_ACTIONS      250
 #define CA_HEADLINE_PLAYER_ACTIONS     251
 #define MIN_ELEMENTS_IN_GROUP  1
 #define MAX_ELEMENTS_IN_GROUP  16
 #define MIN_ANDROID_ELEMENTS   1
-#define MAX_ANDROID_ELEMENTS   16
+#define MAX_ANDROID_ELEMENTS   32
+#define MAX_ANDROID_ELEMENTS_OLD 16    // (extended after version 4.1.4.1)
 
 // values for elements with content
 #define MIN_ELEMENT_CONTENTS   1
 #define EL_MM_END_2                    (EL_DF_START2 + 430)
 #define EL_MM_END                      EL_MM_END_2
 
-#define NUM_FILE_ELEMENTS              1215
+#define EL_SPRING_LEFT                 1215
+#define EL_SPRING_RIGHT                        1216
+
+#define NUM_FILE_ELEMENTS              1217
 
 
 // "real" (and therefore drawable) runtime elements
@@ -2312,6 +2324,7 @@ enum
 {
   GFX_SPECIAL_ARG_SETUP_MAIN = 0,
   GFX_SPECIAL_ARG_SETUP_GAME,
+  GFX_SPECIAL_ARG_SETUP_ENGINES,
   GFX_SPECIAL_ARG_SETUP_EDITOR,
   GFX_SPECIAL_ARG_SETUP_GRAPHICS,
   GFX_SPECIAL_ARG_SETUP_SOUND,
@@ -2370,10 +2383,13 @@ enum
   GFX_ARG_DRAW_ORDER,
   GFX_ARG_INIT_DELAY_FIXED,
   GFX_ARG_INIT_DELAY_RANDOM,
+  GFX_ARG_INIT_DELAY_ACTION,
   GFX_ARG_ANIM_DELAY_FIXED,
   GFX_ARG_ANIM_DELAY_RANDOM,
+  GFX_ARG_ANIM_DELAY_ACTION,
   GFX_ARG_POST_DELAY_FIXED,
   GFX_ARG_POST_DELAY_RANDOM,
+  GFX_ARG_POST_DELAY_ACTION,
   GFX_ARG_INIT_EVENT,
   GFX_ARG_INIT_EVENT_ACTION,
   GFX_ARG_ANIM_EVENT,
@@ -2386,6 +2402,7 @@ enum
   GFX_ARG_FADE_DELAY,
   GFX_ARG_POST_DELAY,
   GFX_ARG_AUTO_DELAY,
+  GFX_ARG_AUTO_DELAY_UNIT,
   GFX_ARG_ALIGN,
   GFX_ARG_VALIGN,
   GFX_ARG_SORT_PRIORITY,
@@ -2543,16 +2560,16 @@ enum
 
 // program information and versioning definitions
 #define PROGRAM_VERSION_SUPER          4
-#define PROGRAM_VERSION_MAJOR          1
-#define PROGRAM_VERSION_MINOR          1
-#define PROGRAM_VERSION_PATCH          1
+#define PROGRAM_VERSION_MAJOR          2
+#define PROGRAM_VERSION_MINOR          0
+#define PROGRAM_VERSION_PATCH          2
 #define PROGRAM_VERSION_EXTRA          ""
 
 #define PROGRAM_TITLE_STRING           "Rocks'n'Diamonds"
 #define PROGRAM_AUTHOR_STRING          "Holger Schemel"
 #define PROGRAM_EMAIL_STRING           "info@artsoft.org"
-#define PROGRAM_WEBSITE_STRING         "http://www.artsoft.org/"
-#define PROGRAM_COPYRIGHT_STRING       "Copyright \xa9""1995-2018 by Holger Schemel"
+#define PROGRAM_WEBSITE_STRING         "https://www.artsoft.org/"
+#define PROGRAM_COPYRIGHT_STRING       "Copyright \xa9""1995-2020 by Holger Schemel"
 #define PROGRAM_COMPANY_STRING         "A Game by Artsoft Entertainment"
 
 #define PROGRAM_ICON_FILENAME          "RocksIcon32x32.png"
@@ -2645,10 +2662,15 @@ struct RequestButtonInfo
   struct TextPosInfo yes;
   struct TextPosInfo no;
   struct TextPosInfo confirm;
+
   struct TextPosInfo player_1;
   struct TextPosInfo player_2;
   struct TextPosInfo player_3;
   struct TextPosInfo player_4;
+
+  struct TextPosInfo touch_yes;
+  struct TextPosInfo touch_no;
+  struct TextPosInfo touch_confirm;
 };
 
 struct MenuMainButtonInfo
@@ -2671,6 +2693,8 @@ struct MenuMainButtonInfo
 
   struct MenuPosInfo insert_solution;
   struct MenuPosInfo play_solution;
+
+  struct MenuPosInfo switch_ecs_aga;
 };
 
 struct MenuMainTextInfo
@@ -2715,12 +2739,29 @@ struct MenuMainInfo
   struct TextPosInfo network_players;
 };
 
+struct MenuSetupButtonInfo
+{
+  struct MenuPosInfo prev_player;
+  struct MenuPosInfo next_player;
+
+  struct MenuPosInfo touch_back;
+  struct MenuPosInfo touch_next;
+  struct MenuPosInfo touch_back2;
+  struct MenuPosInfo touch_next2;
+};
+
+struct MenuSetupInfo
+{
+  struct MenuSetupButtonInfo button;
+};
+
 struct TitleFadingInfo
 {
   int fade_mode;
   int fade_delay;
   int post_delay;
   int auto_delay;
+  int auto_delay_unit;
 };
 
 struct TitleMessageInfo
@@ -2739,6 +2780,7 @@ struct TitleMessageInfo
   int fade_delay;
   int post_delay;
   int auto_delay;
+  int auto_delay_unit;
 };
 
 struct InitInfo
@@ -2801,6 +2843,7 @@ struct MenuInfo
   int music[NUM_SPECIAL_GFX_ARGS];
 
   struct MenuMainInfo main;
+  struct MenuSetupInfo setup;
 };
 
 struct DoorInfo
@@ -3087,7 +3130,7 @@ struct LevelInfo
   int android_move_time;
   int android_clone_time;
   boolean ball_random;
-  boolean ball_state_initial;
+  boolean ball_active_initial;
   int ball_time;
   int lenses_score;
   int magnify_score;
@@ -3412,6 +3455,18 @@ struct GlobalAnimInfo
   int music[NUM_GLOBAL_ANIM_PARTS_ALL][NUM_SPECIAL_GFX_ARGS];
 };
 
+struct GlobalAnimEventListInfo
+{
+  int *event_value;
+  int num_event_values;
+};
+
+struct GlobalAnimEventInfo
+{
+  struct GlobalAnimEventListInfo **event_list;
+  int num_event_lists;
+};
+
 struct GraphicInfo
 {
   Bitmap **bitmaps;            // bitmaps in all required sizes
@@ -3449,10 +3504,13 @@ struct GraphicInfo
 
   int init_delay_fixed;                // optional initial delay values for global
   int init_delay_random;       // animations (pause interval before start)
+  int init_delay_action;       // optional action called on animation start
   int anim_delay_fixed;                // optional delay values for bored/sleeping
   int anim_delay_random;       // and global animations (animation length)
+  int anim_delay_action;       // optional action called on animation end
   int post_delay_fixed;                // optional delay values after bored/global
   int post_delay_random;       // animations (pause before next animation)
+  int post_delay_action;       // optional action called after post delay
 
   int init_event;              // optional event triggering animation start
   int init_event_action;       // optional action called on animation start
@@ -3478,6 +3536,7 @@ struct GraphicInfo
   int fade_delay;              // optional setting for drawing title screens
   int post_delay;              // optional setting for drawing title screens
   int auto_delay;              // optional setting for drawing title screens
+  int auto_delay_unit;         // optional setting for drawing title screens
   int align, valign;           // optional setting for drawing title screens
   int sort_priority;           // optional setting for drawing title screens
 
@@ -3701,6 +3760,7 @@ extern struct TokenIntPtrInfo     image_config_vars[];
 extern struct FontInfo         font_info[];
 extern struct GlobalAnimInfo   global_anim_info[];
 extern struct GlobalAnimNameInfo global_anim_name_info[];
+extern struct GlobalAnimEventInfo global_anim_event_info;
 extern struct MusicPrefixInfo  music_prefix_info[];
 extern struct GraphicInfo      *graphic_info;
 extern struct SoundInfo               *sound_info;