version number set to 4.0.1.0
[rocksndiamonds.git] / src / main.h
index 12c911b3a3c50f14806562099fc11be42e10bf8a..90d6e8800e2a37f6e2d2de6bbc97bed8a3bfc16c 100644 (file)
 #define ACTION_PART_6                  89
 #define ACTION_PART_7                  90
 #define ACTION_PART_8                  91
-#define ACTION_OTHER                   92
-
-#define NUM_ACTIONS                    93
+#define ACTION_PART_9                  92
+#define ACTION_PART_10                 93
+#define ACTION_PART_11                 94
+#define ACTION_PART_12                 95
+#define ACTION_PART_13                 96
+#define ACTION_PART_14                 97
+#define ACTION_PART_15                 98
+#define ACTION_PART_16                 99
+#define ACTION_PART_17                 100
+#define ACTION_PART_18                 101
+#define ACTION_PART_19                 102
+#define ACTION_PART_20                 103
+#define ACTION_PART_21                 104
+#define ACTION_PART_22                 105
+#define ACTION_PART_23                 106
+#define ACTION_PART_24                 107
+#define ACTION_PART_25                 108
+#define ACTION_PART_26                 109
+#define ACTION_PART_27                 110
+#define ACTION_PART_28                 111
+#define ACTION_PART_29                 112
+#define ACTION_PART_30                 113
+#define ACTION_PART_31                 114
+#define ACTION_PART_32                 115
+#define ACTION_OTHER                   116
+
+#define NUM_ACTIONS                    117
 
 #define ACTION_BORING_LAST             ACTION_BORING_10
 #define ACTION_SLEEPING_LAST           ACTION_SLEEPING_3
 #define GFX_SPECIAL_ARG_SUBMENU                29
 #define GFX_SPECIAL_ARG_MENU           30
 #define GFX_SPECIAL_ARG_TOONS          31
-#define GFX_SPECIAL_ARG_FADING         32
-#define GFX_SPECIAL_ARG_QUIT           33
+#define GFX_SPECIAL_ARG_SCORESOLD      32
+#define GFX_SPECIAL_ARG_SCORESNEW      33
+#define GFX_SPECIAL_ARG_FADING         34
+#define GFX_SPECIAL_ARG_QUIT           35
 
-#define NUM_SPECIAL_GFX_ARGS           34
+#define NUM_SPECIAL_GFX_ARGS           36
 
 /* these additional definitions are currently only used for draw offsets */
 #define GFX_SPECIAL_ARG_INFO_MAIN      0
 #define GFX_ARG_ANIM_DELAY_RANDOM      38
 #define GFX_ARG_POST_DELAY_FIXED       39
 #define GFX_ARG_POST_DELAY_RANDOM      40
-#define GFX_ARG_NAME                   41
-#define GFX_ARG_SCALE_UP_FACTOR                42
-#define GFX_ARG_TILE_SIZE              43
-#define GFX_ARG_CLONE_FROM             44
-#define GFX_ARG_FADE_MODE              45
-#define GFX_ARG_FADE_DELAY             46
-#define GFX_ARG_POST_DELAY             47
-#define GFX_ARG_AUTO_DELAY             48
-#define GFX_ARG_ALIGN                  49
-#define GFX_ARG_VALIGN                 50
-#define GFX_ARG_SORT_PRIORITY          51
-#define GFX_ARG_CLASS                  52
-#define GFX_ARG_STYLE                  53
-#define GFX_ARG_ACTIVE_XOFFSET         54
-#define GFX_ARG_ACTIVE_YOFFSET         55
-#define GFX_ARG_PRESSED_XOFFSET                56
-#define GFX_ARG_PRESSED_YOFFSET                57
-
-#define NUM_GFX_ARGS                   58
+#define GFX_ARG_INIT_EVENT             41
+#define GFX_ARG_ANIM_EVENT             42
+#define GFX_ARG_NAME                   43
+#define GFX_ARG_SCALE_UP_FACTOR                44
+#define GFX_ARG_TILE_SIZE              45
+#define GFX_ARG_CLONE_FROM             46
+#define GFX_ARG_FADE_MODE              47
+#define GFX_ARG_FADE_DELAY             48
+#define GFX_ARG_POST_DELAY             49
+#define GFX_ARG_AUTO_DELAY             50
+#define GFX_ARG_ALIGN                  51
+#define GFX_ARG_VALIGN                 52
+#define GFX_ARG_SORT_PRIORITY          53
+#define GFX_ARG_CLASS                  54
+#define GFX_ARG_STYLE                  55
+#define GFX_ARG_ACTIVE_XOFFSET         56
+#define GFX_ARG_ACTIVE_YOFFSET         57
+#define GFX_ARG_PRESSED_XOFFSET                58
+#define GFX_ARG_PRESSED_YOFFSET                59
+
+#define NUM_GFX_ARGS                   60
 
 
 /* values for sound configuration suffixes */
 #define MAX_NUM_TOONS                  20
 
 /* values for global animation configuration (must match those from main.c) */
-#define NUM_GLOBAL_ANIMS               8
-#define NUM_GLOBAL_ANIM_PARTS          8
+#define NUM_GLOBAL_ANIMS               MAX_GLOBAL_ANIMS
+#define NUM_GLOBAL_ANIM_PARTS          MAX_GLOBAL_ANIM_PARTS
 #define NUM_GLOBAL_ANIM_PARTS_ALL      (NUM_GLOBAL_ANIM_PARTS + 1)
 #define NUM_GLOBAL_ANIM_TOKENS         (2 * NUM_GLOBAL_ANIMS)
 
 #define GLOBAL_ANIM_ID_GRAPHIC_FIRST   0
-#define GLOBAL_ANIM_ID_GRAPHIC_LAST    7
-#define GLOBAL_ANIM_ID_CONTROL_FIRST   (NUM_GLOBAL_ANIMS + 0)
-#define GLOBAL_ANIM_ID_CONTROL_LAST    (NUM_GLOBAL_ANIMS + 7)
+#define GLOBAL_ANIM_ID_GRAPHIC_LAST    (NUM_GLOBAL_ANIMS - 1)
+#define GLOBAL_ANIM_ID_CONTROL_FIRST   (NUM_GLOBAL_ANIMS)
+#define GLOBAL_ANIM_ID_CONTROL_LAST    (2 * NUM_GLOBAL_ANIMS - 1)
 
 #define GLOBAL_ANIM_ID_PART_FIRST      0
-#define GLOBAL_ANIM_ID_PART_LAST       7
-#define GLOBAL_ANIM_ID_PART_BASE       8
+#define GLOBAL_ANIM_ID_PART_LAST       (NUM_GLOBAL_ANIM_PARTS - 1)
+#define GLOBAL_ANIM_ID_PART_BASE       (NUM_GLOBAL_ANIM_PARTS)
 
 /* values for global border graphics */
 #define IMG_GLOBAL_BORDER_FIRST                IMG_GLOBAL_BORDER
 #define GAME_MODE_PSEUDO_SUBMENU       29
 #define GAME_MODE_PSEUDO_MENU          30
 #define GAME_MODE_PSEUDO_TOONS         31
-#define GAME_MODE_PSEUDO_FADING                32
-#define GAME_MODE_QUIT                 33
+#define GAME_MODE_PSEUDO_SCORESOLD     32
+#define GAME_MODE_PSEUDO_SCORESNEW     33
+#define GAME_MODE_PSEUDO_FADING                34
+#define GAME_MODE_QUIT                 35
 
-#define NUM_GAME_MODES                 34
+#define NUM_GAME_MODES                 36
 
 /* special definitions currently only used for custom artwork configuration */
 #define MUSIC_PREFIX_BACKGROUND                0
 /* program information and versioning definitions */
 #define PROGRAM_VERSION_MAJOR          4
 #define PROGRAM_VERSION_MINOR          0
-#define PROGRAM_VERSION_PATCH          0
-#define PROGRAM_VERSION_BUILD          2
+#define PROGRAM_VERSION_PATCH          1
+#define PROGRAM_VERSION_BUILD          0
 #define PROGRAM_VERSION_EXTRA          ""
 
 #define PROGRAM_TITLE_STRING           "Rocks'n'Diamonds"
@@ -2829,6 +2859,11 @@ struct FontInfo
                                /* internal bitmap ID for special graphics */
 };
 
+struct GlobalAnimNameInfo
+{
+  char *token_name;            /* global animation token in config files */
+};
+
 struct GlobalAnimInfo
 {
   char *token_name;            /* global animation token in config files */
@@ -2883,6 +2918,9 @@ struct GraphicInfo
   int post_delay_fixed;                /* optional delay values after bored/global */
   int post_delay_random;       /* animations (pause before next animation) */
 
+  int init_event;              /* optional event triggering animation start */
+  int anim_event;              /* optional event triggering animation end   */
+
   int step_offset;             /* optional step offset of toon animations */
   int step_xoffset;            /* optional step offset of toon animations */
   int step_yoffset;            /* optional step offset of toon animations */
@@ -3130,6 +3168,7 @@ extern struct SpecialSuffixInfo special_suffix_info[];
 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 MusicPrefixInfo  music_prefix_info[];
 extern struct GraphicInfo      *graphic_info;
 extern struct SoundInfo               *sound_info;