#define EL_DYNABOMB_PLAYER_4 (EL_FIRST_DUMMY + 17)
#define EL_SHIELD_NORMAL_ACTIVE (EL_FIRST_DUMMY + 18)
#define EL_SHIELD_DEADLY_ACTIVE (EL_FIRST_DUMMY + 19)
-#define EL_DEFAULT (EL_FIRST_DUMMY + 20)
-#define EL_BD_DEFAULT (EL_FIRST_DUMMY + 21)
-#define EL_SP_DEFAULT (EL_FIRST_DUMMY + 22)
-#define EL_SB_DEFAULT (EL_FIRST_DUMMY + 23)
+#define EL_AMOEBA (EL_FIRST_DUMMY + 20)
+#define EL_DEFAULT (EL_FIRST_DUMMY + 21)
+#define EL_BD_DEFAULT (EL_FIRST_DUMMY + 22)
+#define EL_SP_DEFAULT (EL_FIRST_DUMMY + 23)
+#define EL_SB_DEFAULT (EL_FIRST_DUMMY + 24)
+#define EL_DUMMY (EL_FIRST_DUMMY + 25)
-#define MAX_NUM_ELEMENTS (EL_FIRST_DUMMY + 24)
+#define MAX_NUM_ELEMENTS (EL_FIRST_DUMMY + 26)
/* values for graphics/sounds action types */
#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 NUM_ACTIONS 34
+#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_SLEEPING 34
+#define ACTION_SLEEPING_1 35
+#define ACTION_SLEEPING_2 36
+#define ACTION_SLEEPING_3 37
+#define ACTION_DYING 38
+#define ACTION_TURNING 39
+#define ACTION_TURNING_FROM_LEFT 40
+#define ACTION_TURNING_FROM_RIGHT 41
+#define ACTION_TURNING_FROM_UP 42
+#define ACTION_TURNING_FROM_DOWN 43
+#define ACTION_OTHER 44
+
+#define NUM_ACTIONS 45
/* 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 */
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;
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;
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
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 */
int value;
};
+struct InfoAnimationInfo
+{
+ int element;
+ int action;
+ int direction;
+
+ int delay;
+};
+
#if 0
extern GC tile_clip_gc;
extern struct SoundInfo *sound_info;
extern struct MusicInfo *music_info;
extern struct MusicFileInfo *music_file_info;
+extern struct InfoAnimationInfo *info_animation_info;
extern struct ConfigInfo image_config[];
extern struct ConfigInfo sound_config[];
extern struct ConfigInfo music_config[];