X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fobject%2Funstable_tile.hpp;h=a6bb71e48c934aacac9d6d4e19d9e27923d0b2c8;hb=08ccb17345a52f5ffd8a5dd6ecf675cad55f16a7;hp=aec3e0e6a00a6eabc2432e2b885d629bb02fa7b2;hpb=5b7f9214cb929399f1a855ef5807018a9447d510;p=supertux.git diff --git a/src/object/unstable_tile.hpp b/src/object/unstable_tile.hpp index aec3e0e6a..a6bb71e48 100644 --- a/src/object/unstable_tile.hpp +++ b/src/object/unstable_tile.hpp @@ -1,7 +1,8 @@ // $Id$ -// -// SuperTux -// Copyright (C) 2005 Matthias Braun +// +// SuperTux - Unstable Tile +// Copyright (C) 2006 Matthias Braun +// 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 @@ -12,40 +13,38 @@ // 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 -// 02111-1307, USA. +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + #ifndef __UNSTABLE_TILE_H__ #define __UNSTABLE_TILE_H__ -#include "moving_object.hpp" +#include "object/moving_sprite.hpp" #include "lisp/lisp.hpp" #include "physic.hpp" #include "timer.hpp" -class Sprite; -class Player; - -/** A tile that starts falling down if tux stands to long on it */ -class UnstableTile : public MovingObject +/** + * A block that disintegrates when stood on + */ +class UnstableTile : public MovingSprite, public UsesPhysic { public: UnstableTile(const lisp::Lisp& lisp); - ~UnstableTile(); + virtual UnstableTile* clone() const { return new UnstableTile(*this); } HitResponse collision(GameObject& other, const CollisionHit& hit); void update(float elapsed_time); - void draw(DrawingContext& context); private: - Physic physic; - Sprite* sprite; - Timer timer; - bool hit; - bool falling; + enum State { + STATE_NORMAL, /**< default state */ + STATE_CRUMBLING, /**< crumbling, still solid */ + STATE_DISINTEGRATING /**< disintegrating, no longer solid */ + }; + State state; }; #endif -