+/* ------------------------------------------------------------------------- */
+/* functions for loading MM level */
+/* ------------------------------------------------------------------------- */
+
+void CopyNativeLevel_RND_to_MM(struct LevelInfo *level)
+{
+ struct LevelInfo_MM *level_mm = level->native_mm_level;
+ int x, y;
+
+ level_mm->file_version = level->file_version;
+ level_mm->game_version = level->game_version;
+ level_mm->encoding_16bit_field = level->encoding_16bit_field;
+
+ level_mm->fieldx = MIN(level->fieldx, MM_MAX_PLAYFIELD_WIDTH);
+ level_mm->fieldy = MIN(level->fieldx, MM_MAX_PLAYFIELD_HEIGHT);
+
+ level_mm->time = level->time;
+ level_mm->kettles_needed = level->gems_needed;
+ level_mm->auto_count_kettles = FALSE;
+ level_mm->laser_red = FALSE;
+ level_mm->laser_green = FALSE;
+ level_mm->laser_blue = TRUE;
+
+ strcpy(level_mm->name, level->name);
+ strcpy(level_mm->author, level->author);
+
+ level_mm->score[SC_PACMAN] = level->score[SC_PACMAN];
+ level_mm->score[SC_KEY] = level->score[SC_PACMAN];
+ level_mm->score[SC_TIME_BONUS] = level->score[SC_TIME_BONUS];
+
+ level_mm->amoeba_speed = level->amoeba_speed;
+ level_mm->time_fuse = 0;
+
+ for (y = 0; y < level_mm->fieldx; y++)
+ for (x = 0; x < level_mm->fieldy; x++)
+ level_mm->field[x][y] = map_element_RND_to_MM(level->field[x][y]);
+}
+
+void CopyNativeLevel_MM_to_RND(struct LevelInfo *level)
+{
+ struct LevelInfo_MM *level_mm = level->native_mm_level;
+ int x, y;
+
+ level->file_version = level_mm->file_version;
+ level->game_version = level_mm->game_version;
+ level->encoding_16bit_field = level_mm->encoding_16bit_field;
+
+ level->fieldx = MIN(level_mm->fieldx, MAX_LEV_FIELDX);
+ level->fieldy = MIN(level_mm->fieldx, MAX_LEV_FIELDY);
+
+ level->time = level_mm->time;
+ level->gems_needed = level_mm->kettles_needed;
+
+ strcpy(level->name, level_mm->name);
+ strcpy(level->author, level_mm->author);
+
+ level->score[SC_PACMAN] = level_mm->score[SC_PACMAN];
+ level->score[SC_KEY] = level_mm->score[SC_PACMAN];
+ level->score[SC_TIME_BONUS] = level_mm->score[SC_TIME_BONUS];
+
+ level->amoeba_speed = level_mm->amoeba_speed;
+
+ for (y = 0; y < level->fieldx; y++)
+ for (x = 0; x < level->fieldy; x++)
+ level->field[x][y] = map_element_MM_to_RND(level_mm->field[x][y]);
+}
+
+