[Super-tux-commit] supertux/src badguy.cpp,1.131,1.132
Brought to you by:
wkendrick
From: Ricardo C. <rm...@us...> - 2004-10-21 18:34:24
|
Update of /cvsroot/super-tux/supertux/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3509/src Modified Files: badguy.cpp Log Message: Bugfix: enemies below half the screen were not appearing and were causing problems at level begin. Dunno how did this bug only showed up after my changes, since it doesn't seem to be related. Index: badguy.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/badguy.cpp,v retrieving revision 1.131 retrieving revision 1.132 diff -u -d -r1.131 -r1.132 --- badguy.cpp 21 Oct 2004 18:03:22 -0000 1.131 +++ badguy.cpp 21 Oct 2004 18:34:13 -0000 1.132 @@ -159,13 +159,12 @@ void BadGuy::init() { - base.x = 0; - base.y = 0; + base.x = start_position.x; + base.y = start_position.y; base.width = 32; base.height = 32; mode = NORMAL; - dying = DYING_NOT; old_base = base; dir = LEFT; seen = false; @@ -177,8 +176,6 @@ specs = badguyspecs_manager->load(badguykind_to_string(kind)); - set_action("hide", "hide"); - // if we're in a solid tile at start correct that now if(Sector::current()) { if(kind != BAD_FLAME && kind != BAD_FISH && kind != BAD_FLAMEFISH && collision_object_map(base)) @@ -869,12 +866,12 @@ if (start_position.x > scroll_x - X_OFFSCREEN_DISTANCE && start_position.x < scroll_x - base.width && start_position.y > scroll_y - Y_OFFSCREEN_DISTANCE && - start_position.y < scroll_y + Y_OFFSCREEN_DISTANCE) + start_position.y < scroll_y + screen->h + Y_OFFSCREEN_DISTANCE) activate(RIGHT); else if (start_position.x > scroll_x + screen->w && start_position.x < scroll_x + screen->w + X_OFFSCREEN_DISTANCE && start_position.y > scroll_y - Y_OFFSCREEN_DISTANCE && - start_position.y < scroll_y + Y_OFFSCREEN_DISTANCE) + start_position.y < scroll_y + screen->h + Y_OFFSCREEN_DISTANCE) activate(LEFT); /* Special case for badguys on start of the level. * If in the future, it's possible to set Tux start pos, this case @@ -962,6 +959,9 @@ void BadGuy::draw(DrawingContext& context) { + if(!seen) + return; + if((dir == LEFT && action_left == "hide") || (dir == RIGHT && action_right == "hide")) return; @@ -1217,6 +1217,9 @@ void BadGuy::collision(void *p_c_object, int c_object, CollisionType type) { + if(!seen) + return; + BadGuy* pbad_c = NULL; Bullet* pbullet_c = NULL; |