X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=255a6475adc66f2f3aa4786be75c8835394c871c;hb=9de8eede744c45187c7011543ef8097d1ebc879c;hp=1108cbf76d19aa265912e6e10eb17313e9f81b10;hpb=c4fa66eaa78cc9381f03aca44aa06da994f6f44d;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 1108cbf7..255a6475 100644 --- a/src/main.h +++ b/src/main.h @@ -159,19 +159,23 @@ #define CE_TOUCHED_BY_PLAYER 1 #define CE_PRESSED_BY_PLAYER 2 #define CE_PUSHED_BY_PLAYER 3 -#define CE_IMPACT 4 -#define CE_SMASHED 5 -#define CE_OTHER_COLLECTING 6 -#define CE_OTHER_PUSHING 7 -#define CE_OTHER_CHANGING 8 -#define CE_OTHER_EXPLODING 9 +#define CE_COLLISION 4 +#define CE_IMPACT 5 +#define CE_SMASHED 6 +#define CE_OTHER_IS_TOUCHING 7 +#define CE_OTHER_IS_CHANGING 8 +#define CE_OTHER_IS_EXPLODING 9 +#define CE_OTHER_GETS_TOUCHED 10 +#define CE_OTHER_GETS_PRESSED 11 +#define CE_OTHER_GETS_PUSHED 12 +#define CE_OTHER_GETS_COLLECTED 13 /* values for internal purpose only (level editor) */ -#define CE_BY_PLAYER 10 -#define CE_IMPACT_SMASHED 11 -#define CE_BY_OTHER 12 +#define CE_BY_PLAYER 14 +#define CE_BY_COLLISION 15 +#define CE_BY_OTHER 16 -#define NUM_CHANGE_EVENTS 13 +#define NUM_CHANGE_EVENTS 17 #define CE_BITMASK_DEFAULT 0 @@ -1081,6 +1085,8 @@ struct LevelInfo boolean gravity; boolean em_slippery_gems; /* EM style "gems slip from wall" behaviour */ + boolean use_custom_template; /* use custom properties from template file */ + boolean no_level_file; }; @@ -1171,17 +1177,19 @@ struct ElementChangeInfo { unsigned long events; /* bitfield for change events */ + short target_element; /* target element after change */ + int delay_fixed; /* added frame delay before changed (fixed) */ int delay_random; /* added frame delay before changed (random) */ int delay_frames; /* either 1 (frames) or 50 (seconds; 50 fps) */ - short trigger; /* custom element triggering change */ - - short target_element; /* target element after change */ + short trigger_element; /* custom element triggering change */ int content[3][3]; /* new elements after extended change */ boolean use_content; /* use extended change content */ boolean only_complete; /* only use complete content */ + boolean use_random_change; /* use random value for setting content */ + int random; /* random value for setting content */ int power; /* power of extended change */ boolean explode; /* explode instead of change */ @@ -1214,8 +1222,6 @@ struct ElementInfo /* ---------- special element property values ---------- */ - boolean use_template; /* use all properties from template file */ - boolean use_gfx_element; short gfx_element; /* optional custom graphic element */ @@ -1234,6 +1240,22 @@ struct ElementInfo int content[3][3]; /* new elements after explosion */ struct ElementChangeInfo change; + + /* ---------- internal values used in level editor ---------- */ + + int access_type; /* walkable or passable */ + int access_layer; /* accessible over/inside/under */ + int walk_to_action; /* diggable/collectible/pushable */ + int smash_targets; /* can smash player/enemies/everything */ + int deadliness; /* deadly when running/colliding/touching */ + int consistency; /* indestructible/can explode */ + int change_player_action; /* touched/pressed/pushed by player */ + int change_collide_action; /* collision/impact/smashed */ + int change_other_action; /* various change actions */ + + boolean can_explode_by_fire; /* element explodes by fire */ + boolean can_explode_smashed; /* element explodes when smashed */ + boolean can_explode_impact; /* element explodes on impact */ }; struct FontInfo