removed unused/unneeded definitions
[rocksndiamonds.git] / src / main.h
index 48752bd0ea54c1d6ee40e74b44741a10a7a82458..92585c34140f2c322253f4f22020689b808c6429 100644 (file)
 #include <fcntl.h>
 
 #include "libgame/libgame.h"
+
+#include "game_bd/game_bd.h"
 #include "game_em/game_em.h"
 #include "game_sp/game_sp.h"
 #include "game_mm/game_mm.h"
-#include "engines.h"
 
 #include "conf_gfx.h"  // include auto-generated data structure definitions
 #include "conf_snd.h"  // include auto-generated data structure definitions
 #define EL_BD_FIREFLY_UP               75
 #define EL_BD_FIREFLY_LEFT             76
 #define EL_BD_FIREFLY_DOWN             77
-#define EL_BD_BUTTERFLY_1              EL_BD_BUTTERFLY_DOWN
-#define EL_BD_BUTTERFLY_2              EL_BD_BUTTERFLY_LEFT
-#define EL_BD_BUTTERFLY_3              EL_BD_BUTTERFLY_UP
-#define EL_BD_BUTTERFLY_4              EL_BD_BUTTERFLY_RIGHT
-#define EL_BD_FIREFLY_1                        EL_BD_FIREFLY_LEFT
-#define EL_BD_FIREFLY_2                        EL_BD_FIREFLY_DOWN
-#define EL_BD_FIREFLY_3                        EL_BD_FIREFLY_RIGHT
-#define EL_BD_FIREFLY_4                        EL_BD_FIREFLY_UP
 #define EL_BD_BUTTERFLY                        78
 #define EL_BD_FIREFLY                  79
 #define EL_PLAYER_1                    80
 #define EL_DF_MIRROR_FIXED_16          (EL_DF_MIRROR_FIXED_START + 15)
 #define EL_DF_MIRROR_FIXED_END         EL_DF_MIRROR_FIXED_16
 
-#define EL_MM_END_3                    EL_DF_MIRROR_FIXED_END
-#define EL_DF_END_2                    EL_DF_MIRROR_FIXED_END
+#define EL_DF_SLOPE_START              1249
+#define EL_DF_SLOPE_1                  (EL_DF_SLOPE_START + 0)
+#define EL_DF_SLOPE_2                  (EL_DF_SLOPE_START + 1)
+#define EL_DF_SLOPE_3                  (EL_DF_SLOPE_START + 2)
+#define EL_DF_SLOPE_4                  (EL_DF_SLOPE_START + 3)
+#define EL_DF_SLOPE_END                        EL_DF_SLOPE_4
+
+#define EL_MM_END_3                    EL_DF_SLOPE_END
+#define EL_DF_END_2                    EL_DF_SLOPE_END
 
-#define NUM_FILE_ELEMENTS              1249
+#define NUM_FILE_ELEMENTS              1253
 
 
 // "real" (and therefore drawable) runtime elements
@@ -2490,6 +2490,7 @@ enum
   GFX_ARG_SORT_PRIORITY,
   GFX_ARG_CLASS,
   GFX_ARG_STYLE,
+  GFX_ARG_ALPHA,
   GFX_ARG_ACTIVE_XOFFSET,
   GFX_ARG_ACTIVE_YOFFSET,
   GFX_ARG_PRESSED_XOFFSET,
@@ -2545,6 +2546,7 @@ enum
   FONT_ENVELOPE_2,
   FONT_ENVELOPE_3,
   FONT_ENVELOPE_4,
+  FONT_REQUEST_NARROW,
   FONT_REQUEST,
   FONT_INPUT_1_ACTIVE,
   FONT_INPUT_2_ACTIVE,
@@ -2654,15 +2656,15 @@ enum
 // program information and versioning definitions
 #define PROGRAM_VERSION_SUPER          4
 #define PROGRAM_VERSION_MAJOR          3
-#define PROGRAM_VERSION_MINOR          5
-#define PROGRAM_VERSION_PATCH          5
+#define PROGRAM_VERSION_MINOR          8
+#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         "https://www.artsoft.org/"
-#define PROGRAM_COPYRIGHT_STRING       "1995-2023 by Holger Schemel"
+#define PROGRAM_COPYRIGHT_STRING       "1995-2024 by Holger Schemel"
 #define PROGRAM_COMPANY_STRING         "A Game by Artsoft Entertainment"
 
 #define PROGRAM_ICON_FILENAME          "icons/icon.png"
@@ -2722,11 +2724,12 @@ enum
 // values for game engine type identifier
 #define GAME_ENGINE_TYPE_UNKNOWN       LEVEL_FILE_TYPE_UNKNOWN
 #define GAME_ENGINE_TYPE_RND           LEVEL_FILE_TYPE_RND
+#define GAME_ENGINE_TYPE_BD            LEVEL_FILE_TYPE_BD
 #define GAME_ENGINE_TYPE_EM            LEVEL_FILE_TYPE_EM
 #define GAME_ENGINE_TYPE_SP            LEVEL_FILE_TYPE_SP
 #define GAME_ENGINE_TYPE_MM            LEVEL_FILE_TYPE_MM
 
-#define NUM_ENGINE_TYPES               4
+#define NUM_ENGINE_TYPES               5
 
 // values for automatically playing tapes
 #define AUTOPLAY_NONE                  0
@@ -3228,6 +3231,7 @@ struct LevelInfo
   int game_engine_type;
 
   // level stored in native format for the alternative native game engines
+  struct LevelInfo_BD *native_bd_level;
   struct LevelInfo_EM *native_em_level;
   struct LevelInfo_SP *native_sp_level;
   struct LevelInfo_MM *native_mm_level;
@@ -3470,6 +3474,8 @@ struct ElementChangeInfo
   void (*post_change_function)(int x, int y);
 
   short actual_trigger_element;        // element that actually triggered change
+  int actual_trigger_x;                // element x position that triggered change
+  int actual_trigger_y;                // element y position that triggered change
   int actual_trigger_side;     // element side that triggered the change
   int actual_trigger_player;   // player which actually triggered change
   int actual_trigger_player_bits; // player bits of triggering players
@@ -3584,6 +3590,8 @@ struct ElementInfo
 
   struct ElementGroupInfo *group;      // pointer to element group info
 
+  boolean has_anim_event;      // element can trigger global animation
+
   // ---------- internal values used at runtime when playing ----------
 
   boolean has_change_event[NUM_CHANGE_EVENTS];
@@ -3732,6 +3740,7 @@ struct GraphicInfo
 
   int class;
   int style;
+  int alpha;
 
   int active_xoffset;
   int active_yoffset;
@@ -3772,11 +3781,13 @@ struct MusicFileInfo
   char *artist_header;
   char *album_header;
   char *year_header;
+  char *played_header;
 
   char *title;
   char *artist;
   char *album;
   char *year;
+  char *played;
 
   int music;