X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Freademc.c;h=5184d8d72ed9bb217d57d00e2e622ed1049fe50c;hb=b641818c787e48bbf03ce2a0cd5b542c4c21e523;hp=f93310309df3fa452c6f2b943ee6b78e3ad9eb40;hpb=1d35e75d3e0a040a61fcdfb38c25811e68052230;p=rocksndiamonds.git diff --git a/src/game_em/reademc.c b/src/game_em/reademc.c index f9331030..5184d8d7 100644 --- a/src/game_em/reademc.c +++ b/src/game_em/reademc.c @@ -393,6 +393,9 @@ void convert_em_level(unsigned char *src, int file_version) for (x = 0; x < 9; x++) cav.eater_array[i][x] = map_emc[src[eater_offset[i] + x]]; + if (file_version < FILE_VERSION_EM_V6) + cav.num_eater_arrays = 4; + /* ball */ temp = map_emc[src[2159]]; @@ -555,12 +558,12 @@ static const unsigned char map_v4[256] = 240,241,153,153, 153,153,153,153, 153,153,153,153, 153,153,153,153 // 240 }; -static const unsigned char map_v4_eater[32] = +static const unsigned char map_v4_eater[28] = { /* filter for v4 eater */ 128,18,2,0, 4,8,16,20, 28,37,41,45, 189,180,179,252, // 0 - 133,134,135,136, 146,147,175,65, 66,64,2,18, 128,128,128,128 // 16 + 133,134,135,136, 146,147,175,65, 66,64,2,18 // 16 }; static boolean filename_has_v1_format(char *filename) @@ -673,7 +676,7 @@ int cleanup_em_level(unsigned char *src, int length, char *filename) for (i = 0; i < 2048; i++) /* cave */ src[i] = map_v4[src[i]]; for (i = 2048; i < 2084; i++) /* eaters */ - src[i] = map_v4_eater[src[i] % 32]; + src[i] = map_v4_eater[src[i] < 28 ? src[i] : 0]; for (i = 2112; i < 2148; i++) /* eaters */ src[i] = src[i - 64];