rnd-20060430-1-src
[rocksndiamonds.git] / src / main.h
index b2a69ad38a745709d4696a1b926322075a625e1a..774c97c73a10b1e3d9221549410b4dc8cc914427 100644 (file)
 #define CE_MOVE_OF_X                   35
 #define CE_DIGGING_X                   36
 #define CE_CREATION_OF_X               37
+#define CE_SCORE_GETS_ZERO             38
+#define CE_SCORE_GETS_ZERO_OF_X                39
 
-#define NUM_CHANGE_EVENTS              38
+#define NUM_CHANGE_EVENTS              40
 
 #define CE_BITMASK_DEFAULT             0
 
 #define CA_ARG_ELEMENT_RESET           (CA_ARG_ELEMENT + 0)
 #define CA_ARG_ELEMENT_TARGET          (CA_ARG_ELEMENT + 1)
 #define CA_ARG_ELEMENT_TRIGGER         (CA_ARG_ELEMENT + 2)
-#define CA_ARG_ELEMENT_HEADLINE                (CA_ARG_ELEMENT + 998)
+#define CA_ARG_ELEMENT_HEADLINE                (CA_ARG_ELEMENT + 997)
 #define CA_ARG_ELEMENT_CV_TARGET       (CA_ARG_ELEMENT_TARGET)
 #define CA_ARG_ELEMENT_CV_TRIGGER      (CA_ARG_ELEMENT_TRIGGER)
 #define CA_ARG_ELEMENT_CV_HEADLINE     (CA_ARG_ELEMENT_HEADLINE)
 #define CA_ARG_ELEMENT_NR_TARGET       (CA_ARG_ELEMENT + 3)
 #define CA_ARG_ELEMENT_NR_TRIGGER      (CA_ARG_ELEMENT + 4)
-#define CA_ARG_ELEMENT_NR_HEADLINE     (CA_ARG_ELEMENT + 999)
+#define CA_ARG_ELEMENT_NR_HEADLINE     (CA_ARG_ELEMENT + 998)
+#define CA_ARG_ELEMENT_CS_TARGET       (CA_ARG_ELEMENT + 5)
+#define CA_ARG_ELEMENT_CS_TRIGGER      (CA_ARG_ELEMENT + 6)
+#define CA_ARG_ELEMENT_CS_HEADLINE     (CA_ARG_ELEMENT + 999)
 #define CA_ARG_SPEED                   13000
 #define CA_ARG_SPEED_NOT_MOVING                (CA_ARG_SPEED + STEPSIZE_NOT_MOVING)
 #define CA_ARG_SPEED_VERY_SLOW         (CA_ARG_SPEED + STEPSIZE_VERY_SLOW)
 #define GFX_ELEMENT(e)         (element_info[e].use_gfx_element ?      \
                                 element_info[e].gfx_element : e)
 
+/* !!! CHECK THIS !!! */
 #if 1
 #define TILE_GFX_ELEMENT(x, y)                                         \
                   (GfxElement[x][y] != EL_UNDEFINED &&                 \
 #define MAX_ELEMENT_NAME_LEN   32
 #define MAX_TAPES_PER_SET      1024
 #define MAX_SCORE_ENTRIES      100
+#define MAX_NUM_TITLE_SCREENS  5
+
 #define MAX_NUM_AMOEBA         100
+
 #if 0  /* game.h */
 #define MAX_INVENTORY_SIZE     1000
 #define STD_NUM_KEYS           4
 #define MAX_NUM_KEYS           8
 #endif
+
 #define NUM_BELTS              4
 #define NUM_BELT_PARTS         3
 #define MIN_ENVELOPE_XSIZE     1
 #define EL_EMC_DRIPPER                 704
 
 #define EL_TRIGGER_CE_VALUE            705
+#define EL_TRIGGER_CE_SCORE            706
+#define EL_CURRENT_CE_VALUE            707
+#define EL_CURRENT_CE_SCORE            708
 
-#define EL_YAMYAM_LEFT                 706
-#define EL_YAMYAM_RIGHT                        707
-#define EL_YAMYAM_UP                   708
-#define EL_YAMYAM_DOWN                 709
+#define EL_YAMYAM_LEFT                 709
+#define EL_YAMYAM_RIGHT                        710
+#define EL_YAMYAM_UP                   711
+#define EL_YAMYAM_DOWN                 712
 
-#define NUM_FILE_ELEMENTS              710
+#define NUM_FILE_ELEMENTS              713
 
 
 /* "real" (and therefore drawable) runtime elements */
 
 /* values for special image configuration suffixes (must match game mode) */
 #define GFX_SPECIAL_ARG_DEFAULT                0
-#define GFX_SPECIAL_ARG_MAIN           1
-#define GFX_SPECIAL_ARG_LEVELS         2
-#define GFX_SPECIAL_ARG_SCORES         3
-#define GFX_SPECIAL_ARG_EDITOR         4
-#define GFX_SPECIAL_ARG_INFO           5
-#define GFX_SPECIAL_ARG_SETUP          6
-#define GFX_SPECIAL_ARG_PLAYING                7
-#define GFX_SPECIAL_ARG_DOOR           8
-#define GFX_SPECIAL_ARG_PREVIEW                9
-#define GFX_SPECIAL_ARG_CRUMBLED       10
+#define GFX_SPECIAL_ARG_TITLE          1
+#define GFX_SPECIAL_ARG_MAIN           2
+#define GFX_SPECIAL_ARG_LEVELS         3
+#define GFX_SPECIAL_ARG_SCORES         4
+#define GFX_SPECIAL_ARG_EDITOR         5
+#define GFX_SPECIAL_ARG_INFO           6
+#define GFX_SPECIAL_ARG_SETUP          7
+#define GFX_SPECIAL_ARG_PLAYING                8
+#define GFX_SPECIAL_ARG_DOOR           9
+#define GFX_SPECIAL_ARG_PREVIEW                10
+#define GFX_SPECIAL_ARG_CRUMBLED       11
 
-#define NUM_SPECIAL_GFX_ARGS           11
+#define NUM_SPECIAL_GFX_ARGS           12
 
 
 /* values for image configuration suffixes */
 #define FONT_VALUE_1                   26
 #define FONT_VALUE_2                   27
 #define FONT_VALUE_OLD                 28
-#define FONT_LEVEL_NUMBER              29
-#define FONT_TAPE_RECORDER             30
-#define FONT_GAME_INFO                 31
+#define FONT_LEVEL_NUMBER_ACTIVE       29
+#define FONT_LEVEL_NUMBER              30
+#define FONT_TAPE_RECORDER             31
+#define FONT_GAME_INFO                 32
 
-#define NUM_FONTS                      32
+#define NUM_FONTS                      33
 #define NUM_INITIAL_FONTS              4
 
 /* values for game_status (must match special image configuration suffixes) */
 #define GAME_MODE_DEFAULT              0
-#define GAME_MODE_MAIN                 1
-#define GAME_MODE_LEVELS               2
-#define GAME_MODE_SCORES               3
-#define GAME_MODE_EDITOR               4
-#define GAME_MODE_INFO                 5
-#define GAME_MODE_SETUP                        6
-#define GAME_MODE_PLAYING              7
-#define GAME_MODE_PSEUDO_DOOR          8
-#define GAME_MODE_PSEUDO_PREVIEW       9
-#define GAME_MODE_PSEUDO_CRUMBLED      10
+#define GAME_MODE_TITLE                        1
+#define GAME_MODE_MAIN                 2
+#define GAME_MODE_LEVELS               3
+#define GAME_MODE_SCORES               4
+#define GAME_MODE_EDITOR               5
+#define GAME_MODE_INFO                 6
+#define GAME_MODE_SETUP                        7
+#define GAME_MODE_PLAYING              8
+#define GAME_MODE_PSEUDO_DOOR          9
+#define GAME_MODE_PSEUDO_PREVIEW       10
+#define GAME_MODE_PSEUDO_CRUMBLED      11
 
 /* there are no special config file suffixes for these modes */
-#define GAME_MODE_PSEUDO_TYPENAME      11
-#define GAME_MODE_QUIT                 12
+#define GAME_MODE_PSEUDO_TYPENAME      12
+#define GAME_MODE_QUIT                 13
 
 /* special definitions currently only used for custom artwork configuration */
 #define MUSIC_PREFIX_BACKGROUND                0
 #define PROGRAM_VERSION_MAJOR          3
 #define PROGRAM_VERSION_MINOR          2
 #define PROGRAM_VERSION_PATCH          0
-#define PROGRAM_VERSION_BUILD          7
+#define PROGRAM_VERSION_BUILD          8
 
 #define PROGRAM_TITLE_STRING           "Rocks'n'Diamonds"
 #define PROGRAM_AUTHOR_STRING          "Holger Schemel"
@@ -1970,6 +1986,7 @@ struct ElementChangeInfo
   int actual_trigger_side;     /* element side that triggered the change */
   int actual_trigger_player;   /* player which actually triggered change */
   int actual_trigger_ce_value; /* CE value of element that triggered change */
+  int actual_trigger_ce_score; /* CE score of element that triggered change */
 
   boolean can_change_or_has_action;    /* can_change | has_action */
 
@@ -2147,7 +2164,8 @@ struct GraphicInfo
   int step_offset;             /* optional step offset of toon animations */
   int step_delay;              /* optional step delay of toon animations */
 
-  int draw_x, draw_y;          /* optional offset for drawing fonts chars */
+  int draw_xoffset;            /* optional offset for drawing font chars */
+  int draw_yoffset;            /* optional offset for drawing font chars */
 
   int draw_masked;             /* optional setting for drawing envelope gfx */
 
@@ -2225,10 +2243,12 @@ struct HelpAnimInfo
 };
 
 
-extern Bitmap                 *bitmap_db_field, *bitmap_db_door;
+extern Bitmap                 *bitmap_db_title;
+extern Bitmap                 *bitmap_db_field;
+extern Bitmap                 *bitmap_db_door;
 extern Pixmap                  tile_clipmask[];
-extern DrawBuffer            *fieldbuffer;
-extern DrawBuffer            *drawto_field;
+extern DrawBuffer             *fieldbuffer;
+extern DrawBuffer             *drawto_field;
 
 extern int                     game_status;
 extern boolean                 level_editor_test_game;