Index: Pingus/src/actions/bridger.cc =================================================================== RCS file: /usr/local/cvsroot/Games/Pingus/src/actions/bridger.cc,v retrieving revision 1.49 diff -u -r1.49 bridger.cc --- Pingus/src/actions/bridger.cc 10 Feb 2002 22:14:06 -0000 1.49 +++ Pingus/src/actions/bridger.cc 1 Apr 2002 18:31:47 -0000 @@ -108,10 +108,18 @@ { if (walk_sprite.finished ()) { - mode = B_BUILDING; - block_build = false; - walk_sprite.reset (); - walk_one_step_up(); + if (way_is_free()) + { + mode = B_BUILDING; + block_build = false; + walk_sprite.reset (); + walk_one_step_up(); + } + else // We reached a wall... + { + // Let Walker sort out change of direction + is_finished = true; + } } else { @@ -123,23 +131,15 @@ Bridger::update_build (float delta) { build_sprite.update (delta); - + if (build_sprite.get_frame () >= 7 && !block_build) { block_build = true; if (bricks > 0) { - if (way_is_free()) - { - place_a_brick(); - } - else // We reached a wall... - { - pingu->direction.change(); - is_finished = true; - } - } + place_a_brick(); + } else // Out of bricks { pingu->set_action("waiter"); @@ -158,7 +158,7 @@ { bool ret_val; - if (rel_getpixel(2,2) == ColMap::NOTHING) + if (rel_getpixel(4,2) == ColMap::NOTHING) { ret_val = true; } @@ -168,7 +168,7 @@ return false; } - if (rel_getpixel(2, 26) == ColMap::NOTHING) + if (!head_collision_on_walk(4, 2)) { ret_val = true; }