fixed bug with dragon fire destroying indestructible steel letter walls
authorHolger Schemel <info@artsoft.org>
Mon, 17 Sep 2018 17:51:54 +0000 (19:51 +0200)
committerHolger Schemel <info@artsoft.org>
Mon, 17 Sep 2018 17:51:54 +0000 (19:51 +0200)
Before this change, steel letter walls could be destroyed by dragon
fire, although they are set to be indestructible. This change makes
sure that indestructible elements cannot be destroyed by dragon fire
(with the exception of the "acid" element, which is to be discussed,
but would break level 014 of "rnd_paul_e_collins_iii" if changed).

As far as this was tested agains existing solution tapes, this change
does not seem to break any existing levels or tapes.

src/init.c

index 5aa38b583cb4e90ad7d1139bae4c8c50a76c1708..3a2f9f318d4fe0ce098344cfaf029a7d47803d76 100644 (file)
@@ -4570,8 +4570,8 @@ void InitElementPropertiesEngine(int engine_version)
     if (IS_HISTORIC_SOLID(i) || i == EL_EXPLOSION)
       SET_PROPERTY(i, EP_DRAGONFIRE_PROOF, TRUE);
     else
     if (IS_HISTORIC_SOLID(i) || i == EL_EXPLOSION)
       SET_PROPERTY(i, EP_DRAGONFIRE_PROOF, TRUE);
     else
-      SET_PROPERTY(i, EP_DRAGONFIRE_PROOF, (IS_CUSTOM_ELEMENT(i) &&
-                                           IS_INDESTRUCTIBLE(i)));
+      SET_PROPERTY(i, EP_DRAGONFIRE_PROOF, (IS_INDESTRUCTIBLE(i) &&
+                                           i != EL_ACID));
 
     /* ---------- EXPLOSION_PROOF ------------------------------------------ */
     if (i == EL_FLAMES)
 
     /* ---------- EXPLOSION_PROOF ------------------------------------------ */
     if (i == EL_FLAMES)