X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ffiles.c;h=791181393dc89c48c1e0ec28f5381c994bc0004f;hb=0ef9c7d4b387b42f40d2f226920e306d588544f7;hp=f3d35adecbebdda6177e8ecd992fdd51317f0531;hpb=f2e11ad5ab49e5d051e3d3f054330b802905e4bb;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index f3d35ade..79118139 100644 --- a/src/files.c +++ b/src/files.c @@ -730,32 +730,37 @@ static void LoadLevel_InitLevel(struct LevelInfo *level, char *filename) } /* map elements which have changed in newer versions */ - if (level->game_version <= VERSION_IDENT(2,2,0)) + for(y=0; yfieldy; y++) { - /* map game font elements */ - for(y=0; yfieldy; y++) + for(x=0; xfieldx; x++) { - for(x=0; xfieldx; x++) + int element = level->field[x][y]; + + if (level->game_version <= VERSION_IDENT(2,2,0)) + { + /* map game font elements */ + element = (element == EL_CHAR('[') ? EL_CHAR_AUMLAUT : + element == EL_CHAR('\\') ? EL_CHAR_OUMLAUT : + element == EL_CHAR(']') ? EL_CHAR_UUMLAUT : + element == EL_CHAR('^') ? EL_CHAR_COPYRIGHT : element); + } + else if (level->game_version < VERSION_IDENT(3,0,0)) { - int element = level->field[x][y]; - - if (element == EL_CHAR('[')) - element = EL_CHAR_AUMLAUT; - else if (element == EL_CHAR('\\')) - element = EL_CHAR_OUMLAUT; - else if (element == EL_CHAR(']')) - element = EL_CHAR_UUMLAUT; - else if (element == EL_CHAR('^')) - element = EL_CHAR_COPYRIGHT; - - level->field[x][y] = element; + /* map Supaplex gravity tube elements */ + element = (element == EL_SP_GRAVITY_PORT_LEFT ? EL_SP_PORT_LEFT : + element == EL_SP_GRAVITY_PORT_RIGHT ? EL_SP_PORT_RIGHT : + element == EL_SP_GRAVITY_PORT_UP ? EL_SP_PORT_UP : + element == EL_SP_GRAVITY_PORT_DOWN ? EL_SP_PORT_DOWN : + element); } + + level->field[x][y] = element; } } /* copy elements to runtime playfield array */ - for(y=0; yfieldy; y++) - for(x=0; xfieldx; x++) + for(x=0; xfield[x][y]; /* initialize level size variables for faster access */