X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Fconvert.c;h=8a44053cabfa187cfe24cff148c6729a8b160d69;hb=b640b9d7647df4cbba0e530f6f4bcece384048e4;hp=07c18a051259607a6e7bfdfebf56ed521ace2f44;hpb=5fb4ddfd1d152d256f6b30e2dfeae0d14681893e;p=rocksndiamonds.git diff --git a/src/game_em/convert.c b/src/game_em/convert.c index 07c18a05..8a44053c 100644 --- a/src/game_em/convert.c +++ b/src/game_em/convert.c @@ -11,6 +11,8 @@ #include "main_em.h" +#define ALLOW_ROLLING_SPRING + static unsigned char remap_v6[256] = { /* filter crap for v6 */ @@ -20,7 +22,11 @@ static unsigned char remap_v6[256] = 0,16,2,18, 36,37,37,37, 40,41,42,43, 44,45,128,128, 128,148,148, 148,45,45,45, 148,0,57,58, 59,60,61,62,63, +#ifdef ALLOW_ROLLING_SPRING + 64,65,66,67, 68,69,69,71, 72,73,74,75, 118,75,75,75, +#else 64,65,66,67, 68,69,69,69, 69,73,74,75, 118,75,75,75, +#endif 75,75,75,75, 75,153,153,153, 153,153,153,153, 153,153,153,153, 153,153,153,99, 100,68,68,68, 68,68,68,68, 68,118,118,118, 118,118,114,115, 131,118,118,119, 120,121,122,118, 118,118,118,118, @@ -179,6 +185,7 @@ int cleanup_em_level(unsigned char *src, int length) for (i = 0; i < 2106; i++) src[i] = (src[i] ^ (j += 7)) - 0x11; + src[0] = 131; /* needed for Emerald Mine II levels */ src[1] = 131; for (i = 0; i < 2048; i++) src[i] = remap_v4[src[i]]; @@ -439,6 +446,11 @@ int cleanup_em_level(unsigned char *src, int length) * - rolling spring is now turned into regular spring. it appears the emc * editor only uses the force code for initially moving spring. i will * follow this in my editor. + * + * 2006-04-02 + * - introduced ALLOW_ROLLING_SPRING; if defined, do NOT turn rolling spring + * into regular spring, because this breaks at least E.M.C. Mine 3, level 79 + * (see comment directly above) */ static unsigned short remap_emerald[256] = @@ -463,10 +475,17 @@ static unsigned short remap_emerald[256] = Xstone, Xgrow_ew, Xgrow_ns, Xdynamite_1, Xdynamite_2, Xdynamite_3, Xdynamite_4, Xacid_s, +#ifdef ALLOW_ROLLING_SPRING + Xexit_1, Xexit_2, Xexit_3, Xballoon, + Xplant, Xspring, Xspring_fall, Xspring_w, + Xspring_e, Xball_1, Xball_2, Xandroid, + Xblank, Xandroid, Xandroid, Xandroid, +#else Xexit_1, Xexit_2, Xexit_3, Xballoon, Xplant, Xspring, Xspring, Xspring, Xspring, Xball_1, Xball_2, Xandroid, Xblank, Xandroid, Xandroid, Xandroid, +#endif Xandroid, Xandroid, Xandroid, Xandroid, Xandroid, Xblank, Xblank, Xblank,