X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain.h;h=95f6da8efa83e981462ca15af4c62117ca31c46d;hb=ca3d1b424a90490fb8da2a3bcfe58a4ab206d8a1;hp=4340d7c6485b68f1d382f1d31e1d185ebe3172fd;hpb=b21faa39ac22e1987db2bc6158374388e0090dfe;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 4340d7c6..95f6da8e 100644 --- a/src/main.h +++ b/src/main.h @@ -162,19 +162,20 @@ #define CE_COLLISION 4 #define CE_IMPACT 5 #define CE_SMASHED 6 -#define CE_OTHER_COLLECTING 7 -#define CE_OTHER_TOUCHING 8 -#define CE_OTHER_PRESSING 9 -#define CE_OTHER_PUSHING 10 -#define CE_OTHER_CHANGING 11 -#define CE_OTHER_EXPLODING 12 +#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 13 -#define CE_BY_COLLISION 14 -#define CE_BY_OTHER 15 +#define CE_BY_PLAYER 14 +#define CE_BY_COLLISION 15 +#define CE_BY_OTHER 16 -#define NUM_CHANGE_EVENTS 16 +#define NUM_CHANGE_EVENTS 17 #define CE_BITMASK_DEFAULT 0 @@ -320,6 +321,7 @@ /* boundaries of arrays etc. */ #define MAX_LEVEL_NAME_LEN 32 #define MAX_LEVEL_AUTHOR_LEN 32 +#define MAX_ELEMENT_NAME_LEN 32 #define MAX_TAPELEN (1000 * 50) /* max. time * framerate */ #define MAX_SCORE_ENTRIES 100 #define MAX_NUM_AMOEBA 100 @@ -1084,6 +1086,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; }; @@ -1174,13 +1178,13 @@ 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 */ @@ -1204,8 +1208,9 @@ struct ElementInfo char *token_name; /* element token used in config files */ char *class_name; /* element class used in config files */ - char *editor_description; /* short description for level editor */ - char *custom_description; /* custom description for level editor */ + char *editor_description; /* pre-defined description for level editor */ + char *custom_description; /* alternative description from config file */ + char description[MAX_ELEMENT_NAME_LEN + 1]; /* for custom elements */ /* ---------- graphic and sound definitions ---------- */ @@ -1219,9 +1224,7 @@ struct ElementInfo /* ---------- special element property values ---------- */ - boolean use_template; /* use all properties from template file */ - - boolean use_gfx_element; + boolean use_gfx_element; /* use custom graphic element */ short gfx_element; /* optional custom graphic element */ int score; /* score value for collecting */ @@ -1239,6 +1242,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