X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Flevel.cpp;h=9ae1831ee2fd13e0e4b7ada03f9ac9ae8493934a;hb=ee6db785e8eff4883da70b404a9bdb4a42e75ac3;hp=c22db5e52ea2d79a01ae816310f7867b31e36c42;hpb=84160722392a024dda42bd86ca9bd85b68c49457;p=supertux.git diff --git a/src/level.cpp b/src/level.cpp index c22db5e52..9ae1831ee 100644 --- a/src/level.cpp +++ b/src/level.cpp @@ -358,6 +358,7 @@ Level::load(const std::string& filename) LispReader reader(lisp_cdr(data)); reader.read_int("x", &bg_data.x); reader.read_int("y", &bg_data.y); + reader.read_bool("stay-on-platform", &bg_data.stay_on_platform); badguy_data.push_back(bg_data); @@ -416,7 +417,7 @@ Level::load(const std::string& filename) if (*i == '0' || *i == '1' || *i == '2') { badguy_data.push_back(BadGuyData(static_cast(*i-'0'), - x*32, y*32)); + x*32, y*32, false)); *i = 0; } else @@ -560,12 +561,21 @@ Level::save(const char * subset, int level) } fprintf( fi,")\n"); + + fprintf( fi,"(reset-points\n"); + for(std::vector::iterator i = reset_points.begin(); + i != reset_points.end(); ++i) + fprintf( fi,"(point (x %d) (y %d))\n",i->x, i->y); + fprintf( fi,")\n"); + fprintf( fi,"(objects\n"); for(std::vector::iterator it = badguy_data.begin(); it != badguy_data.end(); ++it) - fprintf( fi,"(%s (x %d) (y %d))\n",badguykind_to_string((*it).kind).c_str(),(*it).x,(*it).y); + fprintf( fi,"(%s (x %d) (y %d) (stay-on-platform %s))\n", + badguykind_to_string((*it).kind).c_str(),(*it).x,(*it).y, + it->stay_on_platform ? "#t" : "#f"); fprintf( fi,")\n");