X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=6fa98bd1504f34a0e504deb7f3ce43e72453806f;hb=b180608242f0190c6c8b31772e4dcfce2e9af47c;hp=71bca9d762d8b422edfb2f7a72859466b693bd3b;hpb=84f2d2359ecfa6253804b353f92dd9b2ccb55887;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 71bca9d7..6fa98bd1 100644 --- a/src/main.h +++ b/src/main.h @@ -206,8 +206,13 @@ #define CE_HITTING_X 28 #define CE_HIT_BY_X 29 #define CE_BLOCKED 30 +#define CE_SWITCHED_BY_PLAYER 31 +#define CE_PLAYER_SWITCHES_X 32 +#define CE_SNAPPED_BY_PLAYER 33 +#define CE_PLAYER_SNAPS_X 34 +#define CE_MOVE_OF_X 35 -#define NUM_CHANGE_EVENTS 31 +#define NUM_CHANGE_EVENTS 36 #define CE_BITMASK_DEFAULT 0 @@ -340,10 +345,14 @@ #define CA_ARG_NUMBER_CE_SCORE (CA_ARG_NUMBER + 3) #define CA_ARG_NUMBER_CE_VALUE (CA_ARG_NUMBER + 4) #define CA_ARG_NUMBER_CE_DELAY (CA_ARG_NUMBER + 5) +#define CA_ARG_NUMBER_LEVEL_TIME (CA_ARG_NUMBER + 6) +#define CA_ARG_NUMBER_LEVEL_GEMS (CA_ARG_NUMBER + 7) +#define CA_ARG_NUMBER_LEVEL_SCORE (CA_ARG_NUMBER + 8) #define CA_ARG_NUMBER_HEADLINE (CA_ARG_NUMBER + 999) #define CA_ARG_ELEMENT 12000 -#define CA_ARG_ELEMENT_TARGET (CA_ARG_ELEMENT + 0) -#define CA_ARG_ELEMENT_TRIGGER (CA_ARG_ELEMENT + 1) +#define CA_ARG_ELEMENT_RESET (CA_ARG_ELEMENT + 0) +#define CA_ARG_ELEMENT_TARGET (CA_ARG_ELEMENT + 1) +#define CA_ARG_ELEMENT_TRIGGER (CA_ARG_ELEMENT + 2) #define CA_ARG_ELEMENT_HEADLINE (CA_ARG_ELEMENT + 999) #define CA_ARG_SPEED 13000 #define CA_ARG_SPEED_NOT_MOVING (CA_ARG_SPEED + 0) @@ -582,16 +591,28 @@ #define IS_RND_GATE_GRAY(e) ((e) >= EL_GATE_1_GRAY && \ (e) <= EL_GATE_4_GRAY) +#define IS_RND_GATE_GRAY_ACTIVE(e) ((e) >= EL_GATE_1_GRAY_ACTIVE && \ + (e) <= EL_GATE_4_GRAY_ACTIVE) #define IS_EM_GATE_GRAY(e) ((e) >= EL_EM_GATE_1_GRAY && \ (e) <= EL_EM_GATE_4_GRAY) +#define IS_EM_GATE_GRAY_ACTIVE(e) ((e) >= EL_EM_GATE_1_GRAY_ACTIVE && \ + (e) <= EL_EM_GATE_4_GRAY_ACTIVE) #define IS_EMC_GATE_GRAY(e) ((e) >= EL_EMC_GATE_5_GRAY && \ (e) <= EL_EMC_GATE_8_GRAY) +#define IS_EMC_GATE_GRAY_ACTIVE(e) ((e) >= EL_EMC_GATE_5_GRAY_ACTIVE && \ + (e) <= EL_EMC_GATE_8_GRAY_ACTIVE) #define IS_GATE_GRAY(e) (IS_RND_GATE_GRAY(e) || \ IS_EM_GATE_GRAY(e) || \ IS_EMC_GATE_GRAY(e)) +#define IS_GATE_GRAY_ACTIVE(e) (IS_RND_GATE_GRAY_ACTIVE(e) || \ + IS_EM_GATE_GRAY_ACTIVE(e) || \ + IS_EMC_GATE_GRAY_ACTIVE(e)) #define RND_GATE_GRAY_NR(e) ((e) - EL_GATE_1_GRAY) +#define RND_GATE_GRAY_ACTIVE_NR(e) ((e) - EL_GATE_1_GRAY_ACTIVE) #define EM_GATE_GRAY_NR(e) ((e) - EL_EM_GATE_1_GRAY) +#define EM_GATE_GRAY_ACTIVE_NR(e) ((e) - EL_EM_GATE_1_GRAY_ACTIVE) #define EMC_GATE_GRAY_NR(e) ((e) - EL_EMC_GATE_5_GRAY + 4) +#define EMC_GATE_GRAY_ACTIVE_NR(e) ((e) - EL_EMC_GATE_5_GRAY_ACTIVE + 4) #define GATE_GRAY_NR(e) (IS_RND_GATE_GRAY(e) ? RND_GATE_GRAY_NR(e) : \ IS_EM_GATE_GRAY(e) ? EM_GATE_GRAY_NR(e) : \ IS_EMC_GATE_GRAY(e) ? EMC_GATE_GRAY_NR(e) : 0) @@ -1219,9 +1240,23 @@ #define EL_BD_MAGIC_WALL_EMPTYING (EL_FIRST_RUNTIME_REAL + 42) #define EL_MAGIC_WALL_DEAD (EL_FIRST_RUNTIME_REAL + 43) #define EL_BD_MAGIC_WALL_DEAD (EL_FIRST_RUNTIME_REAL + 44) +#define EL_EMC_FAKE_GRASS_ACTIVE (EL_FIRST_RUNTIME_REAL + 45) +#define EL_GATE_1_GRAY_ACTIVE (EL_FIRST_RUNTIME_REAL + 46) +#define EL_GATE_2_GRAY_ACTIVE (EL_FIRST_RUNTIME_REAL + 47) +#define EL_GATE_3_GRAY_ACTIVE (EL_FIRST_RUNTIME_REAL + 48) +#define EL_GATE_4_GRAY_ACTIVE (EL_FIRST_RUNTIME_REAL + 49) +#define EL_EM_GATE_1_GRAY_ACTIVE (EL_FIRST_RUNTIME_REAL + 50) +#define EL_EM_GATE_2_GRAY_ACTIVE (EL_FIRST_RUNTIME_REAL + 51) +#define EL_EM_GATE_3_GRAY_ACTIVE (EL_FIRST_RUNTIME_REAL + 52) +#define EL_EM_GATE_4_GRAY_ACTIVE (EL_FIRST_RUNTIME_REAL + 53) +#define EL_EMC_GATE_5_GRAY_ACTIVE (EL_FIRST_RUNTIME_REAL + 54) +#define EL_EMC_GATE_6_GRAY_ACTIVE (EL_FIRST_RUNTIME_REAL + 55) +#define EL_EMC_GATE_7_GRAY_ACTIVE (EL_FIRST_RUNTIME_REAL + 56) +#define EL_EMC_GATE_8_GRAY_ACTIVE (EL_FIRST_RUNTIME_REAL + 57) +#define EL_EMC_DRIPPER_ACTIVE (EL_FIRST_RUNTIME_REAL + 58) /* "unreal" (and therefore not drawable) runtime elements */ -#define EL_FIRST_RUNTIME_UNREAL (EL_FIRST_RUNTIME_REAL + 45) +#define EL_FIRST_RUNTIME_UNREAL (EL_FIRST_RUNTIME_REAL + 59) #define EL_BLOCKED (EL_FIRST_RUNTIME_UNREAL + 0) #define EL_EXPLOSION (EL_FIRST_RUNTIME_UNREAL + 1) @@ -1533,7 +1568,7 @@ #define PROGRAM_VERSION_MAJOR 3 #define PROGRAM_VERSION_MINOR 2 #define PROGRAM_VERSION_PATCH 0 -#define PROGRAM_VERSION_BUILD 5 +#define PROGRAM_VERSION_BUILD 6 #endif #define PROGRAM_TITLE_STRING "Rocks'n'Diamonds" @@ -1664,7 +1699,8 @@ struct PlayerInfo int GfxAction; - boolean use_murphy_graphic; + boolean use_murphy; + int artwork_element; boolean block_last_field; int block_delay_adjustment; /* needed for different engine versions */ @@ -1800,9 +1836,12 @@ struct LevelInfo int extra_time; int time_orb_time; + int extra_time_score; + int start_element[MAX_PLAYERS]; boolean use_start_element[MAX_PLAYERS]; +#if 1 /* values for the new EMC elements */ int android_move_time; int android_clone_time; @@ -1817,6 +1856,7 @@ struct LevelInfo int wind_direction_initial; struct Content ball_content[MAX_ELEMENT_CONTENTS]; boolean android_array[16]; +#endif int can_move_into_acid_bits; /* bitfield to store property for elements */ int dont_collide_with_bits; /* bitfield to store property for elements */ @@ -1914,6 +1954,12 @@ struct GameInfo boolean explosions_delayed; boolean envelope_active; +#if 1 + /* values for the new EMC elements */ + int lenses_time_left; + int magnify_time_left; +#endif + /* values for player idle animation (no effect on engine) */ int player_boring_delay_fixed; int player_boring_delay_random;