X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fbadguy%2Fangrystone.cpp;h=bcf6d90f888317a718b68eea2b585664d91fb098;hb=a3316d68ca17966517c3f7bb0c0cb2b7e612fd0a;hp=ff7c86257ae4da0c605923c0b3b2dc3eafb667ed;hpb=e8f7edf76b317dd795fca90d64ef821eba07c142;p=supertux.git diff --git a/src/badguy/angrystone.cpp b/src/badguy/angrystone.cpp index ff7c86257..bcf6d90f8 100644 --- a/src/badguy/angrystone.cpp +++ b/src/badguy/angrystone.cpp @@ -1,5 +1,5 @@ -// $Id: angrystone.cpp 2979 2006-01-10 00:00:04Z matzebraun $ -// +// $Id$ +// // AngryStone - A spiked block that charges towards the player // Copyright (C) 2006 Christoph Sommer // @@ -12,7 +12,7 @@ // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. -// +// // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA @@ -29,12 +29,8 @@ 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); - bbox.set_size(87.8, 87.8); // sprite is (88px, 88px) - sprite = sprite_manager->create("angrystone"); - state = IDLE; } void @@ -57,10 +53,14 @@ AngryStone::activate() sprite->set_action("idle"); } -HitResponse -AngryStone::collision_solid(GameObject& , const CollisionHit& hit) +void +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 +69,7 @@ AngryStone::collision_solid(GameObject& , const CollisionHit& hit) oldWallDirection.x = attackDirection.x; oldWallDirection.y = attackDirection.y; } - - return CONTINUE; +#endif } void @@ -95,7 +94,7 @@ AngryStone::active_update(float elapsed_time) { BadGuy::active_update(elapsed_time); if (state == IDLE) { - MovingObject* player = Sector::current()->player; + MovingObject* player = this->get_nearest_player(); MovingObject* badguy = this; const Vector playerPos = player->get_pos(); const Vector badguyPos = badguy->get_pos(); @@ -111,10 +110,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");