+ return mapping_EM_to_RND[map_em_element_C_to_X(element_em_cave)];
+}
+
+int map_element_EM_to_RND_game(int element_em_game)
+{
+ static unsigned short mapping_EM_to_RND[GAME_TILE_MAX];
+ static boolean mapping_initialized = FALSE;
+
+ if (!mapping_initialized)
+ {
+ int i;
+
+ // return "EL_UNKNOWN" for all undefined elements in mapping array
+ for (i = 0; i < GAME_TILE_MAX; i++)
+ mapping_EM_to_RND[i] = EL_UNKNOWN;
+
+ for (i = 0; em_object_mapping_list[i].element_em != -1; i++)
+ mapping_EM_to_RND[em_object_mapping_list[i].element_em] =
+ em_object_mapping_list[i].element_rnd;
+
+ mapping_initialized = TRUE;
+ }
+
+ if (element_em_game < 0 || element_em_game >= GAME_TILE_MAX)
+ {
+ Error(ERR_WARN, "invalid EM game element %d", element_em_game);
+
+ return EL_UNKNOWN;
+ }
+
+ return mapping_EM_to_RND[element_em_game];