X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame_em%2Fconvert.c;h=5a143a698886e668040920b4d460f3b2d7e89bee;hp=dc5d78c6926caf01bd93469fa1221b7a42ceda8b;hb=51dcb2097c619c5f9ba924a7edb4a3bdd6a6986e;hpb=4fe9164460ddbdc1077604bac5c418f02fd8fa2b diff --git a/src/game_em/convert.c b/src/game_em/convert.c index dc5d78c6..5a143a69 100644 --- a/src/game_em/convert.c +++ b/src/game_em/convert.c @@ -165,10 +165,35 @@ int cleanup_em_level(unsigned char *src, int length) for (i = 2112; i < 2148; i++) src[i] = src[i - 64]; } +#if 1 + else if (length >= 2106 && + src[0] == 245 && + src[1983] == 27) + { + unsigned char j = 94; + + /* ---------- this cave has V3 file format ---------- */ + file_version = FILE_VERSION_EM_V3; + + for (i = 0; i < 2106; i++) + src[i] = (src[i] ^ (j += 7)) - 0x11; + src[1] = 131; + for (i = 0; i < 2048; i++) + src[i] = remap_v4[src[i]]; + for (i = 2048; i < 2084; i++) + src[i] = remap_v4eater[src[i] >= 28 ? 0 : src[i]]; + for (i = 2112; i < 2148; i++) + src[i] = src[i - 64]; + } +#endif else { /* ---------- this cave has unknown file format ---------- */ +#if 1 + printf("::: %d, %d\n", src[0], src[1983]); +#endif + return 0; }