[Super-tux-commit] supertux/src worldmap.cpp,1.84,1.85 worldmap.h,1.31,1.32
Brought to you by:
wkendrick
From: Ricardo C. <rm...@us...> - 2004-06-08 15:00:01
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19292/src Modified Files: worldmap.cpp worldmap.h Log Message: Save worldmap filename to slot. This is a first step to make worldmap more flexible in loading more maps. Index: worldmap.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/worldmap.cpp,v retrieving revision 1.84 retrieving revision 1.85 diff -u -d -r1.84 -r1.85 --- worldmap.cpp 3 Jun 2004 22:09:31 -0000 1.84 +++ worldmap.cpp 8 Jun 2004 14:59:49 -0000 1.85 @@ -362,8 +362,6 @@ name = "<no file>"; music = "SALCON.MOD"; - - load_map(); } WorldMap::~WorldMap() @@ -379,12 +377,12 @@ void WorldMap::load_map() { - std::string filename = datadir + "/levels/default/worldmap.stwm"; - - lisp_object_t* root_obj = lisp_read_from_file(filename); + lisp_object_t* root_obj = lisp_read_from_file(datadir + "/levels/worldmap/" + map_filename); if (!root_obj) - st_abort("Couldn't load file", filename); - + st_abort("Couldn't load file", datadir + "/levels/worldmap/" + map_filename); + + std::cout << "Loading map: " << datadir + "/levels/worldmap/" + map_filename << std::endl; + if (strcmp(lisp_symbol(lisp_car(root_obj)), "supertux-worldmap") == 0) { lisp_object_t* cur = lisp_cdr(root_obj); @@ -905,7 +903,7 @@ song = sound_manager->load_music(datadir + "/music/" + music); sound_manager->play_music(song); - + unsigned int last_update_time; unsigned int update_time; @@ -968,7 +966,8 @@ out << "(supertux-savegame\n" << " (version 1)\n" - << " (title \"Icyisland - " << nb_solved_levels << "/" << levels.size() << "\")\n" + << " (title \"" << name << " - " << nb_solved_levels << "/" << levels.size() << "\")\n" + << " (map \"" << map_filename << "\")\n" << " (lives " << player_status.lives << ")\n" << " (score " << player_status.score << ")\n" << " (distros " << player_status.distros << ")\n" @@ -995,25 +994,37 @@ { std::cout << "loadgame: " << filename << std::endl; savegame_file = filename; + map_filename = "icyisland.stwm"; if (access(filename.c_str(), F_OK) != 0) + { + load_map(); return; + } lisp_object_t* savegame = lisp_read_from_file(filename); if (!savegame) { std::cout << "WorldMap:loadgame: File not found: " << filename << std::endl; + load_map(); return; } lisp_object_t* cur = savegame; if (strcmp(lisp_symbol(lisp_car(cur)), "supertux-savegame") != 0) + { + load_map(); return; + } cur = lisp_cdr(cur); LispReader reader(cur); + /* Get the Map filename and then load it before setting level settings */ + reader.read_string("map", map_filename); + load_map(); + reader.read_int("lives", player_status.lives); reader.read_int("score", player_status.score); reader.read_int("distros", player_status.distros); Index: worldmap.h =================================================================== RCS file: /cvsroot/super-tux/supertux/src/worldmap.h,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- worldmap.h 30 May 2004 01:08:49 -0000 1.31 +++ worldmap.h 8 Jun 2004 14:59:50 -0000 1.32 @@ -148,6 +148,8 @@ }; private: + std::string map_filename; + typedef std::vector<Level> Levels; Levels levels; |