-1
};
+ static int ep_throwable[] =
+ {
+ -1
+ };
+
static int ep_player[] =
{
EL_PLAYER_1,
EL_PLAYER_4,
EL_SP_MURPHY,
EL_SOKOBAN_FIELD_PLAYER,
+ EL_TRIGGER_PLAYER,
-1
};
-1
};
+ static int ep_sp_buggy_base[] =
+ {
+ EL_SP_BUGGY_BASE,
+ EL_SP_BUGGY_BASE_ACTIVATING,
+ EL_SP_BUGGY_BASE_ACTIVE,
+ -1
+ };
+
static int ep_gem[] =
{
EL_BD_DIAMOND,
{ ep_pushable, EP_PUSHABLE },
{ ep_can_explode_cross, EP_CAN_EXPLODE_CROSS },
{ ep_protected, EP_PROTECTED },
+ { ep_throwable, EP_THROWABLE },
{ ep_player, EP_PLAYER },
{ ep_can_pass_magic_wall, EP_CAN_PASS_MAGIC_WALL },
{ ep_bd_element, EP_BD_ELEMENT },
{ ep_sp_element, EP_SP_ELEMENT },
{ ep_sb_element, EP_SB_ELEMENT },
+ { ep_sp_buggy_base, EP_SP_BUGGY_BASE },
{ ep_gem, EP_GEM },
{ ep_food_dark_yamyam, EP_FOOD_DARK_YAMYAM },
{ ep_food_penguin, EP_FOOD_PENGUIN },
/* ---------- COLLECTIBLE ---------------------------------------------- */
SET_PROPERTY(i, EP_COLLECTIBLE, (IS_COLLECTIBLE_ONLY(i) ||
- IS_DROPPABLE(i)));
+ IS_DROPPABLE(i) ||
+ IS_THROWABLE(i)));
/* ---------- SNAPPABLE ------------------------------------------------ */
SET_PROPERTY(i, EP_SNAPPABLE, (IS_DIGGABLE(i) ||
CAN_EXPLODE_IMPACT(i)));
/* ---------- CAN_EXPLODE_3X3 ------------------------------------------ */
+#if 0
+ SET_PROPERTY(i, EP_CAN_EXPLODE_3X3, (!CAN_EXPLODE_1X1(i) &&
+ !CAN_EXPLODE_CROSS(i)));
+#else
SET_PROPERTY(i, EP_CAN_EXPLODE_3X3, (CAN_EXPLODE(i) &&
!CAN_EXPLODE_1X1(i) &&
!CAN_EXPLODE_CROSS(i)));
+#endif
/* ---------- CAN_EXPLODE_BY_DRAGONFIRE -------------------------------- */
SET_PROPERTY(i, EP_CAN_EXPLODE_BY_DRAGONFIRE, CAN_EXPLODE_BY_FIRE(i));
SET_PROPERTY(i, EP_MAYBE_DONT_COLLIDE_WITH, (i == EL_SP_SNIKSNAK ||
i == EL_SP_ELECTRON));
+ /* ---------- DIGGABLE_WITH_GRAVITY ------------------------------------ */
+ SET_PROPERTY(i, EP_DIGGABLE_WITH_GRAVITY, (IS_DIGGABLE(i) &&
+ !IS_SP_BUGGY_BASE(i)));
+
/* ---------- CAN_MOVE_INTO_ACID --------------------------------------- */
if (COULD_MOVE_INTO_ACID(i) && !IS_CUSTOM_ELEMENT(i))
SET_PROPERTY(i, EP_CAN_MOVE_INTO_ACID,