fixed handling of androids in EM engine for old tapes
[rocksndiamonds.git] / src / game_em / reademc.c
index 3f366227a6785c7d0cee3010ac22f8c723c66209..f93310309df3fa452c6f2b943ee6b78e3ad9eb40 100644 (file)
  * behaviour.
  */
 
+/* changes for game engine integration in Rocks'n'Diamonds:
+ *
+ * added support for rolling spring (not mapped to pushed spring)
+ * - required for Elvis Mine 8, levels 3, 23, 48 and 73
+ */
+
 #define GET_BE16(x)            ((&x)[0] << 8 | (&x)[1])
 
 static const short map_emc_raw[256] =
@@ -62,8 +68,8 @@ static const short map_emc_raw[256] =
   Cdynamite_2,         Cdynamite_3,    Cdynamite_4,    Cacid_s,        //  60
 
   Cexit_1,             Cexit_2,        Cexit_3,        Cballoon,       //  64
-  Cplant,              Cspring,        Cspring,        Cpush_spring_w, //  68
-  Cpush_spring_e,      Cball_1,        Cball_2,        Candroid,       //  72
+  Cplant,              Cspring,        Cspring,        Cspring_w,      //  68
+  Cspring_e,           Cball_1,        Cball_2,        Candroid,       //  72
   Cpause,              Candroid,       Candroid,       Candroid,       //  76
   Candroid,            Candroid,       Candroid,       Candroid,       //  80
   Candroid,            Cblank,         Cblank,         Cblank,         //  84
@@ -293,7 +299,7 @@ void convert_em_level(unsigned char *src, int file_version)
   cav.time_seconds = MIN(GET_BE16(src[2110]), 9999);
   cav.gems_needed = src[2095];
 
-  cav.infinite = TRUE;
+  cav.infinite = game_em.use_wrap_around;
   cav.testmode = FALSE;
   cav.teamwork = (src[2150] & 128) != 0;