rnd-20031130-1-src
[rocksndiamonds.git] / src / main.h
index 627d52910ab897329294d468e7765a068e16013c..ff701a202c926b3684c06d90fc2f54bf3b225b68 100644 (file)
 #define ACTION_CHANGING                                23
 #define ACTION_EXPLODING                       24
 #define ACTION_BORING                          25
-#define ACTION_SLEEPING                                26
-#define ACTION_DYING                           27
-#define ACTION_TURNING                         28
-#define ACTION_TURNING_FROM_LEFT               29
-#define ACTION_TURNING_FROM_RIGHT              30
-#define ACTION_TURNING_FROM_UP                 31
-#define ACTION_TURNING_FROM_DOWN               32
-#define ACTION_OTHER                           33
+#define ACTION_BORING_1                                26
+#define ACTION_BORING_2                                27
+#define ACTION_BORING_3                                28
+#define ACTION_BORING_4                                29
+#define ACTION_BORING_5                                30
+#define ACTION_BORING_6                                31
+#define ACTION_BORING_7                                32
+#define ACTION_BORING_8                                33
+#define ACTION_BORING_9                                34
+#define ACTION_BORING_10                       35
+#define ACTION_SLEEPING                                36
+#define ACTION_SLEEPING_1                      37
+#define ACTION_SLEEPING_2                      38
+#define ACTION_SLEEPING_3                      39
+#define ACTION_AWAKENING                       40
+#define ACTION_DYING                           41
+#define ACTION_TURNING                         42
+#define ACTION_TURNING_FROM_LEFT               43
+#define ACTION_TURNING_FROM_RIGHT              44
+#define ACTION_TURNING_FROM_UP                 45
+#define ACTION_TURNING_FROM_DOWN               46
+#define ACTION_OTHER                           47
+
+#define NUM_ACTIONS                            48
+
+#define ACTION_BORING_LAST                     ACTION_BORING_10
+#define ACTION_SLEEPING_LAST                   ACTION_SLEEPING_3
 
-#define NUM_ACTIONS                            34
 
 /* values for special image configuration suffixes (must match game mode) */
 #define GFX_SPECIAL_ARG_DEFAULT                        0
 #define GFX_ARG_DRAW_XOFFSET                   23
 #define GFX_ARG_DRAW_YOFFSET                   24
 #define GFX_ARG_DRAW_MASKED                    25
-#define GFX_ARG_NAME                           26
+#define GFX_ARG_ANIM_DELAY_FIXED               26
+#define GFX_ARG_ANIM_DELAY_RANDOM              27
+#define GFX_ARG_POST_DELAY_FIXED               28
+#define GFX_ARG_POST_DELAY_RANDOM              29
+#define GFX_ARG_NAME                           30
 
-#define NUM_GFX_ARGS                           27
+#define NUM_GFX_ARGS                           31
 
 
 /* values for sound configuration suffixes */
 #define NUM_MUSIC_PREFIXES                     1
 #define MAX_LEVELS                             1000
 
+/* definitions for demo animation lists */
+#define HELPANIM_LIST_NEXT                     -1
+#define HELPANIM_LIST_END                      -999
+
+
+/* program information and versioning definitions */
 
 #define PROGRAM_VERSION_MAJOR  3
 #define PROGRAM_VERSION_MINOR  0
 #define PROGRAM_AUTHOR_STRING  "Holger Schemel"
 #define PROGRAM_COPYRIGHT_STRING "Copyright ©1995-2003 by Holger Schemel"
 
-#if 0
-#define PROGRAM_DOS_PORT_STRING        "DOS port done by Guido Schulz"
-#define PROGRAM_IDENT_STRING   PROGRAM_VERSION_STRING " " TARGET_STRING
-#define WINDOW_TITLE_STRING    PROGRAM_TITLE_STRING " " PROGRAM_IDENT_STRING
-#endif
-
 #define ICON_TITLE_STRING      PROGRAM_TITLE_STRING
 #define COOKIE_PREFIX          "ROCKSNDIAMONDS"
 #define FILENAME_PREFIX                "Rocks"
@@ -1158,7 +1180,7 @@ struct PlayerInfo
   byte programmed_action;      /* action forced by game itself (like moving
                                   through doors); overrides other actions */
 
-  int jx,jy, last_jx,last_jy;
+  int jx, jy, last_jx, last_jy;
   int MovDir, MovPos, GfxDir, GfxPos;
   int Frame, StepFrame;
 
@@ -1178,6 +1200,21 @@ struct PlayerInfo
   boolean is_pushing;
   boolean is_switching;
 
+  boolean is_bored;
+  boolean is_sleeping;
+
+  int frame_counter_bored;
+  int frame_counter_sleeping;
+
+  int anim_delay_counter;
+  int post_delay_counter;
+
+  int special_action_bored;
+  int special_action_sleeping;
+
+  int num_special_action_bored;
+  int num_special_action_sleeping;
+
   int switch_x, switch_y;
 
   int show_envelope;
@@ -1304,6 +1341,12 @@ struct GameInfo
   boolean gravity;
   boolean explosions_delayed;
   boolean envelope_active;
+
+  /* values for player idle animation (no effect on engine) */
+  int player_boring_delay_fixed;
+  int player_boring_delay_random;
+  int player_sleeping_delay_fixed;
+  int player_sleeping_delay_random;
 };
 
 struct GlobalInfo
@@ -1456,6 +1499,11 @@ struct GraphicInfo
   int diggable_like;           /* element for cloning digging graphics */
   int border_size;             /* border size for "crumbled" graphics */
 
+  int anim_delay_fixed;                /* optional delay values for bored and   */
+  int anim_delay_random;       /* sleeping player animations (animation */
+  int post_delay_fixed;                /* intervall and following pause before  */
+  int post_delay_random;       /* next intervall (bored animation only) */
+
   int step_offset;             /* optional step offset of toon animations */
   int step_delay;              /* optional step delay of toon animations */
 
@@ -1494,6 +1542,8 @@ struct MusicFileInfo
   char *album;
   char *year;
 
+  int music;
+
   struct MusicFileInfo *next;
 };
 
@@ -1516,7 +1566,7 @@ struct SpecialSuffixInfo
   int value;
 };
 
-struct InfoAnimationInfo
+struct HelpAnimInfo
 {
   int element;
   int action;
@@ -1619,12 +1669,15 @@ extern struct GraphicInfo      *graphic_info;
 extern struct SoundInfo               *sound_info;
 extern struct MusicInfo               *music_info;
 extern struct MusicFileInfo    *music_file_info;
-extern struct InfoAnimationInfo *info_animation_info;
+extern struct HelpAnimInfo     *helpanim_info;
+extern SetupFileHash           *helptext_info;
 extern struct ConfigInfo       image_config[];
 extern struct ConfigInfo       sound_config[];
 extern struct ConfigInfo       music_config[];
 extern struct ConfigInfo       image_config_suffix[];
 extern struct ConfigInfo       sound_config_suffix[];
 extern struct ConfigInfo       music_config_suffix[];
+extern struct ConfigInfo       helpanim_config[];
+extern struct ConfigInfo       helptext_config[];
 
 #endif /* MAIN_H */