X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_em%2Fconvert.c;h=4a4b9cf444234d8192f10d35ea7910c6be75ba85;hb=93d40da6020c70d47690dabb0498648bfb46da1a;hp=9b4b75682c7c02f3b995750434769fef8a0b9b7b;hpb=58ea80c54f5a1e6605e2c33b554dff1fcc0c26b5;p=rocksndiamonds.git diff --git a/src/game_em/convert.c b/src/game_em/convert.c index 9b4b7568..4a4b9cf4 100644 --- a/src/game_em/convert.c +++ b/src/game_em/convert.c @@ -213,17 +213,19 @@ static const short map[CAVE_TILE_MAX] = int map_em_element_C_to_X(int element_em_cave) { - if (element_em_cave >= 0 && element_em_cave < CAVE_TILE_MAX) - return map[element_em_cave]; + if (element_em_cave < 0 || element_em_cave >= CAVE_TILE_MAX) + { + Error(ERR_WARN, "invalid EM cave element %d", element_em_cave); - Error(ERR_WARN, "invalid EM cave element %d", element_em_cave); + return Xblank; + } - return Xblank; + return map[element_em_cave]; } int map_em_element_X_to_C(int element_em_game) { - static unsigned short map_reverse[TILE_MAX]; + static unsigned short map_reverse[GAME_TILE_MAX]; static boolean map_reverse_initialized = FALSE; if (!map_reverse_initialized) @@ -231,7 +233,7 @@ int map_em_element_X_to_C(int element_em_game) int i; // return "Cblank" for all undefined elements in mapping array - for (i = 0; i < TILE_MAX; i++) + for (i = 0; i < GAME_TILE_MAX; i++) map_reverse[i] = Cblank; for (i = 0; i < CAVE_TILE_MAX; i++) @@ -240,19 +242,19 @@ int map_em_element_X_to_C(int element_em_game) map_reverse_initialized = TRUE; } - if (element_em_game >= 0 && element_em_game < TILE_MAX) + if (element_em_game < 0 || element_em_game >= GAME_TILE_MAX) { - int element_em_cave = map_reverse[element_em_game]; + Error(ERR_WARN, "invalid EM game element %d", element_em_game); - if (element_em_cave == Cblank && element_em_game != Xblank) - Error(ERR_WARN, "unknown EM game element %d", element_em_game); - - return element_em_cave; + return Cblank; } - Error(ERR_WARN, "invalid EM game element %d", element_em_game); + int element_em_cave = map_reverse[element_em_game]; + + if (element_em_cave == Cblank && element_em_game != Xblank) + Error(ERR_WARN, "unknown EM game element %d", element_em_game); - return Cblank; + return element_em_cave; } void prepare_em_level(void) @@ -360,7 +362,7 @@ void prepare_em_level(void) for (j = 0; j < 8; j++) lev.ball_array[i][j] = map[cav.ball_array[i][j]]; - for (i = 0; i < TILE_MAX; i++) + for (i = 0; i < GAME_TILE_MAX; i++) lev.android_array[i] = map[cav.android_array[i]]; /* determine number of players in this level */