X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fsector.cpp;h=c340ddb5098c9e24410a3a59d2144e96e3afb698;hb=8bcdd6a1e7885a8280f999a750ba7a411414ccaf;hp=88b40cd1b5a4132b71caf7cfc1553797a885a7e6;hpb=b043123f5ece1879b3f884658d002f1d7726f212;p=supertux.git diff --git a/src/sector.cpp b/src/sector.cpp index 88b40cd1b..c340ddb50 100644 --- a/src/sector.cpp +++ b/src/sector.cpp @@ -177,6 +177,9 @@ Sector::parse_object(const std::string& name, const lisp::Lisp& reader) void Sector::parse(const lisp::Lisp& sector) { + + TileMap::loading_worldmap = false; + bool has_background = false; lisp::ListIterator iter(§or); while(iter.next()) { @@ -236,6 +239,9 @@ Sector::parse(const lisp::Lisp& sector) void Sector::parse_old_format(const lisp::Lisp& reader) { + + TileMap::loading_worldmap = false; + name = "main"; reader.get("gravity", gravity); @@ -897,10 +903,10 @@ void check_collisions(collision::Constraints* constraints, return; // calculate intersection - float itop = r1.get_bottom() - r2.get_top(); + float itop = r1.get_bottom() - r2.get_top(); float ibottom = r2.get_bottom() - r1.get_top(); - float ileft = r1.get_right() - r2.get_left(); - float iright = r2.get_right() - r1.get_left(); + float ileft = r1.get_right() - r2.get_left(); + float iright = r2.get_right() - r1.get_left(); if(fabsf(movement.y) > fabsf(movement.x)) { if(ileft < SHIFT_DELTA) { @@ -1303,9 +1309,9 @@ Sector::handle_collisions() get_hit_normal(moving_object->dest, moving_object_2->dest, hit, normal); if(!moving_object->collides(*moving_object_2, hit)) - return; + continue; if(!moving_object_2->collides(*moving_object, hit)) - return; + continue; moving_object->collision(*moving_object_2, hit); moving_object_2->collision(*moving_object, hit);