{ CE_HIT_BY_SOMETHING, "hit by something" },
#else
{ CE_HITTING_SOMETHING, "collision" },
+#endif
+#if 1
+ { CE_BLOCKED, "blocked" },
#endif
{ CE_IMPACT, "impact (on something)" },
{ CE_SMASHED, "smashed (from above)" },
static struct ValueTextInfo options_change_replace_when[] =
{
{ CP_WHEN_EMPTY, "empty" },
+ { CP_WHEN_WALKABLE, "walkable" },
{ CP_WHEN_DIGGABLE, "diggable" },
{ CP_WHEN_COLLECTIBLE, "collectible" },
{ CP_WHEN_REMOVABLE, "removable" },
CAN_EXPLODE_CROSS(element));
/* special case: sub-settings dependent from main setting */
+#if 0
+ custom_element.can_explode_by_fire = CAN_EXPLODE_BY_FIRE(element);
+ custom_element.can_explode_smashed = CAN_EXPLODE_SMASHED(element);
+ custom_element.can_explode_impact = CAN_EXPLODE_IMPACT(element);
+#else
if (CAN_EXPLODE_BY_FIRE(element))
custom_element.can_explode_by_fire = TRUE;
if (CAN_EXPLODE_SMASHED(element))
custom_element.can_explode_smashed = TRUE;
if (CAN_EXPLODE_IMPACT(element))
custom_element.can_explode_impact = TRUE;
+#endif
/* ---------- element settings: advanced (custom elements) --------------- */
HAS_CHANGE_EVENT(element, CE_SWITCHED) ? CE_SWITCHED :
HAS_CHANGE_EVENT(element, CE_HITTING_SOMETHING) ? CE_HITTING_SOMETHING :
HAS_CHANGE_EVENT(element, CE_HIT_BY_SOMETHING) ? CE_HIT_BY_SOMETHING :
+ HAS_CHANGE_EVENT(element, CE_BLOCKED) ? CE_BLOCKED :
HAS_CHANGE_EVENT(element, CE_IMPACT) ? CE_IMPACT :
HAS_CHANGE_EVENT(element, CE_SMASHED) ? CE_SMASHED :
custom_element_change.direct_action);
{
int i;
int access_type_and_layer;
+ boolean can_explode;
/* mark that this custom element has been modified */
custom_element.modified_settings = TRUE;
custom_element_properties[EP_EXPLODE_RESULT];
/* special case: sub-settings dependent from main setting */
+#if 0
+ can_explode = (custom_element_properties[EP_CAN_EXPLODE_1X1] ||
+ custom_element_properties[EP_CAN_EXPLODE_3X3] ||
+ custom_element_properties[EP_CAN_EXPLODE_CROSS]);
+ custom_element_properties[EP_CAN_EXPLODE_BY_FIRE] =
+ (can_explode && custom_element.can_explode_by_fire);
+ custom_element_properties[EP_CAN_EXPLODE_SMASHED] =
+ (can_explode && custom_element.can_explode_smashed);
+ custom_element_properties[EP_CAN_EXPLODE_IMPACT] =
+ (can_explode && custom_element.can_explode_impact);
+#else
if (custom_element_properties[EP_CAN_EXPLODE_1X1] ||
custom_element_properties[EP_CAN_EXPLODE_3X3] ||
custom_element_properties[EP_CAN_EXPLODE_CROSS])
custom_element_properties[EP_CAN_EXPLODE_IMPACT] =
custom_element.can_explode_impact;
}
+#endif
/* ---------- element settings: advanced (custom elements) --------------- */
custom_element_change_events[CE_SWITCHED] = FALSE;
custom_element_change_events[CE_HITTING_SOMETHING] = FALSE;
custom_element_change_events[CE_HIT_BY_SOMETHING] = FALSE;
+ custom_element_change_events[CE_BLOCKED] = FALSE;
custom_element_change_events[CE_IMPACT] = FALSE;
custom_element_change_events[CE_SMASHED] = FALSE;
custom_element_change_events[custom_element_change.direct_action] =