X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=8ffeb3de6d9736a06e51fbfc382ea7b95da61b6d;hb=4c2027809249e8cfb5d81ef0ab5835f40c3a3835;hp=23b431efaa7be3ea837584b7aa4ad2eeca821c25;hpb=2c2b1d42b803d35d9f55ce68bf1339dcde6f158a;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 23b431ef..8ffeb3de 100644 --- a/src/main.h +++ b/src/main.h @@ -63,9 +63,9 @@ /* values for configurable properties (custom elem's only, else pre-defined) */ #define EP_DIGGABLE 0 #define EP_COLLECTIBLE 1 -#define EP_UNUSED_2 2 -#define EP_UNUSED_3 3 -#define EP_UNUSED_4 4 +#define EP_DONT_GO_TO 2 +#define EP_ENEMY 3 +#define EP_DONT_TOUCH 4 #define EP_INDESTRUCTIBLE 5 #define EP_SLIPPERY 6 #define EP_CAN_EXPLODE 7 @@ -97,46 +97,44 @@ #define EP_PLAYER 27 #define EP_CAN_PASS_MAGIC_WALL 28 #define EP_SWITCHABLE 29 -#define EP_DONT_TOUCH 30 -#define EP_ENEMY 31 -#define EP_DONT_GO_TO 32 -#define EP_BD_ELEMENT 33 -#define EP_SP_ELEMENT 34 -#define EP_SB_ELEMENT 35 -#define EP_GEM 36 -#define EP_FOOD_DARK_YAMYAM 37 -#define EP_FOOD_PENGUIN 38 -#define EP_FOOD_PIG 39 -#define EP_HISTORIC_WALL 40 -#define EP_HISTORIC_SOLID 41 -#define EP_BELT 42 -#define EP_BELT_ACTIVE 43 -#define EP_BELT_SWITCH 44 -#define EP_TUBE 45 -#define EP_KEYGATE 46 -#define EP_AMOEBOID 47 -#define EP_AMOEBALIVE 48 -#define EP_HAS_CONTENT 49 -#define EP_ACTIVE_BOMB 50 -#define EP_INACTIVE 51 +#define EP_BD_ELEMENT 30 +#define EP_SP_ELEMENT 31 +#define EP_SB_ELEMENT 32 +#define EP_GEM 33 +#define EP_FOOD_DARK_YAMYAM 34 +#define EP_FOOD_PENGUIN 35 +#define EP_FOOD_PIG 36 +#define EP_HISTORIC_WALL 37 +#define EP_HISTORIC_SOLID 38 +#define EP_BELT 39 +#define EP_BELT_ACTIVE 40 +#define EP_BELT_SWITCH 41 +#define EP_TUBE 42 +#define EP_KEYGATE 43 +#define EP_AMOEBOID 44 +#define EP_AMOEBALIVE 45 +#define EP_HAS_CONTENT 46 +#define EP_ACTIVE_BOMB 47 +#define EP_INACTIVE 48 /* values for derived properties (determined from properties above) */ -#define EP_ACCESSIBLE_OVER 52 -#define EP_ACCESSIBLE_INSIDE 53 -#define EP_ACCESSIBLE_UNDER 54 -#define EP_WALKABLE 55 -#define EP_PASSABLE 56 -#define EP_ACCESSIBLE 57 -#define EP_SNAPPABLE 58 -#define EP_WALL 59 -#define EP_SOLID_FOR_PUSHING 60 -#define EP_DRAGONFIRE_PROOF 61 -#define EP_EXPLOSION_PROOF 62 +#define EP_ACCESSIBLE_OVER 49 +#define EP_ACCESSIBLE_INSIDE 50 +#define EP_ACCESSIBLE_UNDER 51 +#define EP_WALKABLE 52 +#define EP_PASSABLE 53 +#define EP_ACCESSIBLE 54 +#define EP_SNAPPABLE 55 +#define EP_WALL 56 +#define EP_SOLID_FOR_PUSHING 57 +#define EP_DRAGONFIRE_PROOF 58 +#define EP_EXPLOSION_PROOF 59 /* values for internal purpose only (level editor) */ -#define EP_WALK_TO_OBJECT 63 +#define EP_WALK_TO_OBJECT 60 +#define EP_DEADLY 61 -#define NUM_ELEMENT_PROPERTIES 64 +#define NUM_ELEMENT_PROPERTIES 62 #define NUM_EP_BITFIELDS ((NUM_ELEMENT_PROPERTIES + 31) / 32) #define EP_BITFIELD_BASE 0 @@ -172,6 +170,9 @@ /* macros for configurable properties */ #define IS_DIGGABLE(e) HAS_PROPERTY(e, EP_DIGGABLE) #define IS_COLLECTIBLE(e) HAS_PROPERTY(e, EP_COLLECTIBLE) +#define DONT_GO_TO(e) HAS_PROPERTY(e, EP_DONT_GO_TO) +#define IS_ENEMY(e) HAS_PROPERTY(e, EP_ENEMY) +#define DONT_TOUCH(e) HAS_PROPERTY(e, EP_DONT_TOUCH) #define IS_INDESTRUCTIBLE(e) HAS_PROPERTY(e, EP_INDESTRUCTIBLE) #define IS_SLIPPERY(e) HAS_PROPERTY(e, EP_SLIPPERY) #define CAN_EXPLODE(e) HAS_PROPERTY(e, EP_CAN_EXPLODE) @@ -184,8 +185,8 @@ #define IS_PASSABLE_OVER(e) HAS_PROPERTY(e, EP_PASSABLE_OVER) #define IS_PASSABLE_INSIDE(e) HAS_PROPERTY(e, EP_PASSABLE_INSIDE) #define IS_PASSABLE_UNDER(e) HAS_PROPERTY(e, EP_PASSABLE_UNDER) -#define IS_PUSHABLE(e) HAS_PROPERTY(e, EP_PUSHABLE) #define IS_CHANGEABLE(e) HAS_PROPERTY(e, EP_CHANGEABLE) +#define IS_PUSHABLE(e) HAS_PROPERTY(e, EP_PUSHABLE) /* macros for special configurable properties */ #define IS_EM_SLIPPERY_WALL(e) HAS_PROPERTY(e, EP_EM_SLIPPERY_WALL) @@ -197,9 +198,6 @@ #define ELEM_IS_PLAYER(e) HAS_PROPERTY(e, EP_PLAYER) #define CAN_PASS_MAGIC_WALL(e) HAS_PROPERTY(e, EP_CAN_PASS_MAGIC_WALL) #define IS_SWITCHABLE(e) HAS_PROPERTY(e, EP_SWITCHABLE) -#define DONT_TOUCH(e) HAS_PROPERTY(e, EP_DONT_TOUCH) -#define IS_ENEMY(e) HAS_PROPERTY(e, EP_ENEMY) -#define DONT_GO_TO(e) HAS_PROPERTY(e, EP_DONT_GO_TO) #define IS_BD_ELEMENT(e) HAS_PROPERTY(e, EP_BD_ELEMENT) #define IS_SP_ELEMENT(e) HAS_PROPERTY(e, EP_SP_ELEMENT) #define IS_SB_ELEMENT(e) HAS_PROPERTY(e, EP_SB_ELEMENT) @@ -1173,8 +1171,10 @@ struct ElementInfo int move_delay_random; /* additional random frame delay for moving */ int move_pattern; /* direction movable element moves to */ + int move_direction_initial; /* initial direction element moves to */ int walk_to_action; /* only for level editor; not stored */ + int deadliness; /* only for level editor; not stored */ int walkable_layer; /* only for level editor; not stored */ int content[3][3]; /* new elements after explosion */