X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=9484a5c6a90c9f4eb9f12dab53007840e732a057;hb=8f33ee4940b9c35bf4627b7ef1126d03748da646;hp=3c6527ab01c3abd652178e794e2b6822445df9fa;hpb=891c39ca37c4fea5f6cc4ca40f913a56c68ef495;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 3c6527ab..9484a5c6 100644 --- a/src/main.h +++ b/src/main.h @@ -161,7 +161,7 @@ #define CE_PRESSED_BY_PLAYER 2 #define CE_PUSHED_BY_PLAYER 3 #define CE_DROPPED_BY_PLAYER 4 -#define CE_COLLISION 5 +#define CE_COLLISION_ACTIVE 5 #define CE_IMPACT 6 #define CE_SMASHED 7 #define CE_OTHER_IS_TOUCHING 8 @@ -172,8 +172,8 @@ #define CE_OTHER_GETS_PUSHED 13 #define CE_OTHER_GETS_COLLECTED 14 #define CE_OTHER_GETS_DROPPED 15 -#define CE_BY_PLAYER 16 /* obsolete; now CE_BY_DIRECT_ACTION */ -#define CE_BY_COLLISION 17 /* obsolete; now CE_BY_DIRECT_ACTION */ +#define CE_BY_PLAYER_OBSOLETE 16 /* obsolete; now CE_BY_DIRECT_ACTION */ +#define CE_BY_COLLISION_OBSOLETE 17 /* obsolete; now CE_BY_DIRECT_ACTION */ #define CE_BY_OTHER_ACTION 18 /* activates other element events */ #define CE_BY_DIRECT_ACTION 19 /* activates direct element events */ #define CE_OTHER_GETS_DIGGED 20 @@ -183,8 +183,11 @@ #define CE_OTHER_GETS_LEFT 24 #define CE_SWITCHED 25 #define CE_OTHER_IS_SWITCHING 26 +#define CE_COLLISION_PASSIVE 27 +#define CE_OTHER_IS_COLL_ACTIVE 28 +#define CE_OTHER_IS_COLL_PASSIVE 29 -#define NUM_CHANGE_EVENTS 27 +#define NUM_CHANGE_EVENTS 30 #define CE_BITMASK_DEFAULT 0 @@ -224,6 +227,8 @@ #define MV_BIT_TURNING_LEFT 8 #define MV_BIT_TURNING_RIGHT 9 #define MV_BIT_WHEN_PUSHED 10 +#define MV_BIT_MAZE_RUNNER 11 +#define MV_BIT_MAZE_HUNTER 12 /* values for special move patterns for custom elements */ #define MV_HORIZONTAL (MV_LEFT | MV_RIGHT) @@ -237,6 +242,9 @@ #define MV_TURNING_LEFT (1 << MV_BIT_TURNING_LEFT) #define MV_TURNING_RIGHT (1 << MV_BIT_TURNING_RIGHT) #define MV_WHEN_PUSHED (1 << MV_BIT_WHEN_PUSHED) +#define MV_MAZE_RUNNER (1 << MV_BIT_MAZE_RUNNER) +#define MV_MAZE_HUNTER (1 << MV_BIT_MAZE_HUNTER) +#define MV_MAZE_RUNNER_STYLE (MV_MAZE_RUNNER | MV_MAZE_HUNTER) /* values for slippery property for custom elements */ #define SLIPPERY_ANY_RANDOM 0 @@ -514,7 +522,7 @@ #define EL_BD_MAGIC_WALL 61 #define EL_INVISIBLE_STEELWALL 62 -#define EL_UNUSED_63 63 +#define EL_MAZE_RUNNER 63 #define EL_DYNABOMB_INCREASE_NUMBER 64 #define EL_DYNABOMB_INCREASE_SIZE 65 @@ -927,19 +935,26 @@ #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 +#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 + /* values for special image configuration suffixes (must match game mode) */ #define GFX_SPECIAL_ARG_DEFAULT 0 @@ -1064,22 +1079,22 @@ #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_VERSION_PATCH 8 -#define PROGRAM_VERSION_BUILD 0 +#define PROGRAM_VERSION_BUILD 3 #define PROGRAM_TITLE_STRING "Rocks'n'Diamonds" #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" @@ -1199,6 +1214,16 @@ struct PlayerInfo int frame_counter_bored; int frame_counter_sleeping; + int anim_delay_counter; + int post_delay_counter; + + int action_waiting, last_action_waiting; + 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; @@ -1211,6 +1236,8 @@ struct PlayerInfo unsigned long actual_frame_counter; + int step_counter; + int score; int gems_still_needed; int sokobanfields_still_needed; @@ -1519,13 +1546,22 @@ struct MusicPrefixInfo struct MusicFileInfo { - char *context; + char *basename; + + char *title_header; + char *artist_header; + char *album_header; + char *year_header; char *title; char *artist; char *album; char *year; + int music; + + boolean is_sound; + struct MusicFileInfo *next; }; @@ -1548,7 +1584,7 @@ struct SpecialSuffixInfo int value; }; -struct InfoAnimationInfo +struct HelpAnimInfo { int element; int action; @@ -1597,6 +1633,8 @@ extern short AmoebaCnt[MAX_NUM_AMOEBA]; extern short AmoebaCnt2[MAX_NUM_AMOEBA]; extern short ExplodePhase[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short ExplodeField[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern int RunnerVisit[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern int PlayerVisit[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern unsigned long Properties[MAX_NUM_ELEMENTS][NUM_EP_BITFIELDS]; @@ -1651,12 +1689,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 */