+
+ if (strcmp(lisp_symbol(lisp_car(element)), "special-tile") == 0)
+ {
+ Level level;
+ LispReader reader(lisp_cdr(element));
+ level.solved = false;
+
+ level.north = true;
+ level.east = true;
+ level.south = true;
+ level.west = true;
+
+ reader.read_string("extro-filename", level.extro_filename);
+ reader.read_string("map-message", level.display_map_message);
+ reader.read_string("next-world", level.next_worldmap);
+ reader.read_string("level", level.name, true);
+ reader.read_int("x", level.x);
+ reader.read_int("y", level.y);
+ level.auto_path = true;
+ reader.read_bool("auto-path", level.auto_path);
+ level.swap_x = level.swap_y = -1;
+ reader.read_int("swap-x", level.swap_x);
+ reader.read_int("swap-y", level.swap_y);
+ level.vertical_flip = false;
+ reader.read_bool("flip-level", level.vertical_flip);
+ level.quit_worldmap = false;
+ reader.read_bool("exit-game", level.quit_worldmap);
+
+ levels.push_back(level);
+ }
+
+ /* Kept for backward compability */
+ else if (strcmp(lisp_symbol(lisp_car(element)), "level") == 0)