X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=7805f3496b79e0e167eeb75878a1d9a01f60ad7f;hb=0bc034af5fcbf709be96723aff7ec5bc0c3c7baf;hp=4bd3788e851223fb5f090bb45566af7e47946a66;hpb=de94c39950b38b1dd99f387cda61cb650214b59e;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 4bd3788e..7805f349 100644 --- a/src/main.h +++ b/src/main.h @@ -238,7 +238,7 @@ #define PLAYER_BITS_TRIGGER (1 << 4) /* values for change side for custom elements */ -#define CH_SIDE_NONE MV_NO_MOVING +#define CH_SIDE_NONE MV_NONE #define CH_SIDE_LEFT MV_LEFT #define CH_SIDE_RIGHT MV_RIGHT #define CH_SIDE_TOP MV_UP @@ -346,6 +346,7 @@ #define MV_BIT_TURNING_LEFT_RIGHT 14 #define MV_BIT_TURNING_RIGHT_LEFT 15 #define MV_BIT_TURNING_RANDOM 16 +#define MV_BIT_WIND_DIRECTION 17 /* values for custom move patterns */ #define MV_TOWARDS_PLAYER (1 << MV_BIT_TOWARDS_PLAYER) @@ -362,12 +363,14 @@ #define MV_TURNING_LEFT_RIGHT (1 << MV_BIT_TURNING_LEFT_RIGHT) #define MV_TURNING_RIGHT_LEFT (1 << MV_BIT_TURNING_RIGHT_LEFT) #define MV_TURNING_RANDOM (1 << MV_BIT_TURNING_RANDOM) +#define MV_WIND_DIRECTION (1 << MV_BIT_WIND_DIRECTION) /* values for initial move direction (bits 0 - 3: basic move directions) */ #define MV_START_BIT_PREVIOUS 4 /* values for initial move direction */ -#define MV_START_AUTOMATIC (MV_NO_MOVING) +#define MV_START_NONE (MV_NONE) +#define MV_START_AUTOMATIC (MV_NONE) #define MV_START_LEFT (MV_LEFT) #define MV_START_RIGHT (MV_RIGHT) #define MV_START_UP (MV_UP) @@ -651,7 +654,6 @@ #define MIN_ELEMENT_CONTENTS 1 #define STD_ELEMENT_CONTENTS 4 #define MAX_ELEMENT_CONTENTS 8 -#define NUM_MAGIC_BALL_CONTENTS 8 #define LEVEL_SCORE_ELEMENTS 16 /* level elements with score */ @@ -1290,9 +1292,41 @@ #define ACTION_SLURPED_BY_SPRING 49 #define ACTION_TWINKLING 50 #define ACTION_SPLASHING 51 -#define ACTION_OTHER 52 - -#define NUM_ACTIONS 53 +#define ACTION_PAGE_1 52 +#define ACTION_PAGE_2 53 +#define ACTION_PAGE_3 54 +#define ACTION_PAGE_4 55 +#define ACTION_PAGE_5 56 +#define ACTION_PAGE_6 57 +#define ACTION_PAGE_7 58 +#define ACTION_PAGE_8 59 +#define ACTION_PAGE_9 60 +#define ACTION_PAGE_10 61 +#define ACTION_PAGE_11 62 +#define ACTION_PAGE_12 63 +#define ACTION_PAGE_13 64 +#define ACTION_PAGE_14 65 +#define ACTION_PAGE_15 66 +#define ACTION_PAGE_16 67 +#define ACTION_PAGE_17 68 +#define ACTION_PAGE_18 69 +#define ACTION_PAGE_19 70 +#define ACTION_PAGE_20 71 +#define ACTION_PAGE_21 72 +#define ACTION_PAGE_22 73 +#define ACTION_PAGE_23 74 +#define ACTION_PAGE_24 75 +#define ACTION_PAGE_25 76 +#define ACTION_PAGE_26 77 +#define ACTION_PAGE_27 78 +#define ACTION_PAGE_28 79 +#define ACTION_PAGE_29 80 +#define ACTION_PAGE_30 81 +#define ACTION_PAGE_31 82 +#define ACTION_PAGE_32 83 +#define ACTION_OTHER 84 + +#define NUM_ACTIONS 85 #define ACTION_BORING_LAST ACTION_BORING_10 #define ACTION_SLEEPING_LAST ACTION_SLEEPING_3 @@ -1438,9 +1472,9 @@ /* program information and versioning definitions */ -#define RELEASE_311 FALSE +#define RELEASE_3_1_2 FALSE -#if RELEASE_311 +#if RELEASE_3_1_2 #define PROGRAM_VERSION_MAJOR 3 #define PROGRAM_VERSION_MINOR 1 #define PROGRAM_VERSION_PATCH 2 @@ -1450,7 +1484,7 @@ #define PROGRAM_VERSION_MAJOR 3 #define PROGRAM_VERSION_MINOR 2 #define PROGRAM_VERSION_PATCH 0 -#define PROGRAM_VERSION_BUILD 3 +#define PROGRAM_VERSION_BUILD 5 #endif #define PROGRAM_TITLE_STRING "Rocks'n'Diamonds" @@ -1552,6 +1586,11 @@ struct HiScore int Score; }; +struct Content +{ + int e[3][3]; +}; + struct PlayerInfo { boolean present; /* player present in level playfield */ @@ -1690,17 +1729,26 @@ struct LevelInfo int score[LEVEL_SCORE_ELEMENTS]; - int yamyam_content[MAX_ELEMENT_CONTENTS][3][3]; + struct Content yamyam_content[MAX_ELEMENT_CONTENTS]; int num_yamyam_contents; int amoeba_speed; int amoeba_content; + int game_of_life[4]; + int biomaze[4]; + int time_magic_wall; int time_wheel; int time_light; int time_timegate; + int shield_normal_time; + int shield_deadly_time; + + int extra_time; + int time_orb_time; + /* values for the new EMC elements */ int android_move_time; int android_clone_time; @@ -1713,7 +1761,7 @@ struct LevelInfo int lenses_time; int magnify_time; int wind_direction_initial; - int ball_content[NUM_MAGIC_BALL_CONTENTS][3][3]; + struct Content ball_content[MAX_ELEMENT_CONTENTS]; boolean android_array[16]; int can_move_into_acid_bits; /* bitfield to store property for elements */ @@ -1805,7 +1853,7 @@ struct GameInfo int belt_dir[4]; int belt_dir_nr[4]; int switchgate_pos; - int balloon_dir; + int wind_direction; boolean gravity; boolean explosions_delayed; boolean envelope_active; @@ -1854,7 +1902,7 @@ struct ElementChangeInfo short trigger_element; /* element triggering change */ - int target_content[3][3]; /* elements for extended change target */ + struct Content target_content;/* elements for extended change target */ boolean use_target_content; /* use extended change target */ boolean only_if_complete; /* only use complete target content */ boolean use_random_replace; /* use random value for replacing elements */ @@ -1965,7 +2013,7 @@ struct ElementInfo int slippery_type; /* how/where other elements slip away */ - int content[3][3]; /* new elements after explosion */ + struct Content content; /* new elements after explosion */ int explosion_type; /* type of explosion, like 3x3, 3+3 or 1x1 */ int explosion_delay; /* duration of explosion of this element */