X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fbadguy%2Fangrystone.cpp;h=34ea9c14f7a749fc131e8e5a299e1d9a8fbcf9a6;hb=13c84268f16872f9b442251c4175a3a1a7a7899a;hp=a44e8363e494e89692fcfec53ed5e53dc3abecd7;hpb=b51a3e05e9212c00c3bf7d00c6c2bf33fe8e2970;p=supertux.git diff --git a/src/badguy/angrystone.cpp b/src/badguy/angrystone.cpp index a44e8363e..34ea9c14f 100644 --- a/src/badguy/angrystone.cpp +++ b/src/badguy/angrystone.cpp @@ -1,7 +1,7 @@ // $Id$ // // AngryStone - A spiked block that charges towards the player -// Copyright (C) 2006 Christoph Sommer +// Copyright (C) 2006 Christoph Sommer // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License @@ -29,12 +29,12 @@ static const float ATTACK_TIME = 1; static const float RECOVER_TIME = .5; AngryStone::AngryStone(const lisp::Lisp& reader) + : BadGuy(reader, "images/creatures/angrystone/angrystone.sprite"), state(IDLE) { - reader.get("x", start_position.x); - reader.get("y", start_position.y); - sprite = sprite_manager->create("images/creatures/angrystone/angrystone.sprite"); - bbox.set_size(sprite->get_current_hitbox_width(), sprite->get_current_hitbox_height()); - state = IDLE; + physic.set_velocity_x(0); + physic.set_velocity_y(0); + physic.enable_gravity(true); + sprite->set_action("idle"); } void @@ -49,18 +49,13 @@ AngryStone::write(lisp::Writer& writer) } void -AngryStone::activate() -{ - physic.set_velocity_x(0); - physic.set_velocity_y(0); - physic.enable_gravity(true); - sprite->set_action("idle"); -} - -HitResponse -AngryStone::collision_solid(GameObject& , const CollisionHit& hit) +AngryStone::collision_solid(const CollisionHit& hit) { - if ((state == ATTACKING) && (hit.normal.x == -attackDirection.x) && (hit.normal.y == attackDirection.y)) { + // TODO + (void) hit; +#if 0 + if ((state == ATTACKING) && + (hit.normal.x == -attackDirection.x) && (hit.normal.y == attackDirection.y)) { state = IDLE; sprite->set_action("idle"); physic.set_velocity_x(0); @@ -69,8 +64,7 @@ AngryStone::collision_solid(GameObject& , const CollisionHit& hit) oldWallDirection.x = attackDirection.x; oldWallDirection.y = attackDirection.y; } - - return CONTINUE; +#endif } void @@ -90,7 +84,7 @@ AngryStone::collision_badguy(BadGuy& badguy, const CollisionHit& ) return FORCE_MOVE; } -void +void AngryStone::active_update(float elapsed_time) { BadGuy::active_update(elapsed_time); @@ -111,10 +105,10 @@ AngryStone::active_update(float elapsed_time) { if ((dx > -playerWidth) && (dx < badguyWidth)) { if (dy > 0) { attackDirection.x = 0; - attackDirection.y = -1; + attackDirection.y = 1; } else { attackDirection.x = 0; - attackDirection.y = 1; + attackDirection.y = -1; } if ((attackDirection.x != oldWallDirection.x) || (attackDirection.y != oldWallDirection.y)) { sprite->set_action("charging");