[Super-tux-commit] supertux/src worldmap.cpp,1.29,1.30
Brought to you by:
wkendrick
From: Ingo R. <gr...@us...> - 2004-04-17 20:41:27
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11590 Modified Files: worldmap.cpp Log Message: - fixed loadgame Index: worldmap.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/worldmap.cpp,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- worldmap.cpp 17 Apr 2004 14:13:53 -0000 1.29 +++ worldmap.cpp 17 Apr 2004 20:41:18 -0000 1.30 @@ -517,8 +517,12 @@ for(Levels::iterator i = levels.begin(); i != levels.end(); ++i) { - leveldot_green->draw(i->x*32 + offset.x, - i->y*32 + offset.y); + if (i->solved) + leveldot_green->draw(i->x*32 + offset.x, + i->y*32 + offset.y); + else + leveldot_red->draw(i->x*32 + offset.x, + i->y*32 + offset.y); } tux->draw(offset); @@ -673,16 +677,25 @@ { while(level_cur) { - std::string name; - bool solved = false; - LispReader level_reader(level_cur); - level_reader.read_string("name", &name); - level_reader.read_bool("solved", &solved); + lisp_object_t* sym = lisp_car(lisp_car(level_cur)); + lisp_object_t* data = lisp_cdr(lisp_car(level_cur)); - for(Levels::iterator i = levels.begin(); i != levels.end(); ++i) + if (strcmp(lisp_symbol(sym), "level") == 0) { - if (name == i->name) - i->solved = solved; + std::string name; + bool solved = false; + + LispReader level_reader(data); + level_reader.read_string("name", &name); + level_reader.read_bool("solved", &solved); + + std::cout << "Name: " << name << " " << solved << std::endl; + + for(Levels::iterator i = levels.begin(); i != levels.end(); ++i) + { + if (name == i->name) + i->solved = solved; + } } level_cur = lisp_cdr(level_cur); |