X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=3c6527ab01c3abd652178e794e2b6822445df9fa;hb=891c39ca37c4fea5f6cc4ca40f913a56c68ef495;hp=3bbb26522d686210c7f47d135fd364e3e35a7e82;hpb=983c38dbae8637ef26d8be356e04c9b64bf9fc1f;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 3bbb2652..3c6527ab 100644 --- a/src/main.h +++ b/src/main.h @@ -882,12 +882,14 @@ #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 */ @@ -917,16 +919,27 @@ #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 @@ -971,9 +984,13 @@ #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 */ @@ -1156,7 +1173,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; @@ -1176,6 +1193,12 @@ struct PlayerInfo boolean is_pushing; boolean is_switching; + boolean is_bored; + boolean is_sleeping; + + int frame_counter_bored; + int frame_counter_sleeping; + int switch_x, switch_y; int show_envelope; @@ -1302,6 +1325,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 @@ -1454,6 +1483,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 */ @@ -1514,6 +1548,15 @@ struct SpecialSuffixInfo int value; }; +struct InfoAnimationInfo +{ + int element; + int action; + int direction; + + int delay; +}; + #if 0 extern GC tile_clip_gc; @@ -1608,6 +1651,7 @@ 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 ConfigInfo image_config[]; extern struct ConfigInfo sound_config[]; extern struct ConfigInfo music_config[];