X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Finit.c;h=977521342cd3c5e3d606d19dfce4963132aa2a64;hb=5f9fbeb32ecd4c70ed6d6df8809719af619b40c0;hp=9a68e2ad5ebc7b8c0c38f07078c6846320f05a17;hpb=d5224fde97c235c903f631a4eccb9904c2ddf9c3;p=rocksndiamonds.git diff --git a/src/init.c b/src/init.c index 9a68e2ad..97752134 100644 --- a/src/init.c +++ b/src/init.c @@ -481,9 +481,9 @@ void InitElementGraphicInfo() for (act=0; act= EL_CHAR_START && i <= EL_CHAR_END) SET_PROPERTY(i, EP_INACTIVE, TRUE); /* ---------- WALKABLE, PASSABLE, ACCESSIBLE --------------------------- */ - if (IS_WALKABLE_OVER(i) || IS_WALKABLE_INSIDE(i) || IS_WALKABLE_UNDER(i)) - SET_PROPERTY(i, EP_WALKABLE, TRUE); + SET_PROPERTY(i, EP_WALKABLE, (IS_WALKABLE_OVER(i) || + IS_WALKABLE_INSIDE(i) || + IS_WALKABLE_UNDER(i))); - if (IS_PASSABLE_OVER(i) || IS_PASSABLE_INSIDE(i) || IS_PASSABLE_UNDER(i)) - SET_PROPERTY(i, EP_PASSABLE, TRUE); + SET_PROPERTY(i, EP_PASSABLE, (IS_PASSABLE_OVER(i) || + IS_PASSABLE_INSIDE(i) || + IS_PASSABLE_UNDER(i))); - if (IS_WALKABLE_OVER(i) || IS_PASSABLE_OVER(i)) - SET_PROPERTY(i, EP_ACCESSIBLE_OVER, TRUE); + SET_PROPERTY(i, EP_ACCESSIBLE_OVER, (IS_WALKABLE_OVER(i) || + IS_PASSABLE_OVER(i))); - if (IS_WALKABLE_INSIDE(i) || IS_PASSABLE_INSIDE(i)) - SET_PROPERTY(i, EP_ACCESSIBLE_INSIDE, TRUE); + SET_PROPERTY(i, EP_ACCESSIBLE_INSIDE, (IS_WALKABLE_INSIDE(i) || + IS_PASSABLE_INSIDE(i))); - if (IS_WALKABLE_UNDER(i) || IS_PASSABLE_UNDER(i)) - SET_PROPERTY(i, EP_ACCESSIBLE_UNDER, TRUE); + SET_PROPERTY(i, EP_ACCESSIBLE_UNDER, (IS_WALKABLE_UNDER(i) || + IS_PASSABLE_UNDER(i))); - if (IS_WALKABLE(i) || IS_PASSABLE(i)) - SET_PROPERTY(i, EP_ACCESSIBLE, TRUE); + SET_PROPERTY(i, EP_ACCESSIBLE, (IS_WALKABLE(i) || + IS_PASSABLE(i))); + + /* ---------- SNAPPABLE ------------------------------------------------ */ + SET_PROPERTY(i, EP_SNAPPABLE, (IS_DIGGABLE(i) || + IS_COLLECTIBLE(i) || + IS_SWITCHABLE(i) || + i == EL_BD_ROCK)); /* ---------- WALL ----------------------------------------------------- */ SET_PROPERTY(i, EP_WALL, TRUE); /* default: element is wall */ @@ -2347,9 +2414,12 @@ void InitElementPropertiesEngine(int engine_version) !IS_COLLECTIBLE(i))); /* ---------- DRAGONFIRE_PROOF ----------------------------------------- */ - if (IS_HISTORIC_SOLID(i) || i == EL_EXPLOSION || - (IS_CUSTOM_ELEMENT(i) && IS_INDESTRUCTIBLE(i))) + + 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))); /* ---------- EXPLOSION_PROOF ------------------------------------------ */ if (i == EL_FLAMES) @@ -2914,6 +2984,12 @@ void ReloadCustomArtwork() } } +void KeyboardAutoRepeatOffUnlessAutoplay() +{ + if (global.autoplay_leveldir == NULL) + KeyboardAutoRepeatOff(); +} + /* ========================================================================= */ /* OpenAll() */