From 8bf399f2ee6bbb0833d1eb4f48e363ce9284331b Mon Sep 17 00:00:00 2001 From: Christoph Sommer Date: Mon, 9 Apr 2007 00:00:06 +0000 Subject: [PATCH] Added "Invisible Wall" area by tjcarter (GPL2+/CC-by-sa) SVN-Revision: 4970 --- data/images/engine/editor/invisible_wall.png | Bin 0 -> 391 bytes src/object/invisible_wall.cpp | 41 +++++++++++++++++++++++++ src/object/invisible_wall.hpp | 43 +++++++++++++++++++++++++++ 3 files changed, 84 insertions(+) create mode 100644 data/images/engine/editor/invisible_wall.png create mode 100644 src/object/invisible_wall.cpp create mode 100644 src/object/invisible_wall.hpp diff --git a/data/images/engine/editor/invisible_wall.png b/data/images/engine/editor/invisible_wall.png new file mode 100644 index 0000000000000000000000000000000000000000..c24690380dba39d8517e70f81ff4f6d03c925f36 GIT binary patch literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^3Lq@N1SHpV7(M_}oCO|{#X#BvjNMLV+kphj3LMjc zv;r8n|C%$Gfq_xQ)5S3);_%yu(?ZP#98>!KudS=BO0aTd=6sU5s``b6i{@#jONTb) z+%___Tg+Tx(>T@m-R~D0Qeu*4$2Gp>T(eS|VavKXyHy!^&RSa9FfiDjRbHfW_3CYp+D`fP|9>cx z;I!5&3x4%vbs4=qyP)C9rk!ig*k^xT7IL7gF5B&^+=9z3^7~5n>qj?6^c~)LPpQOZ z8Pm0fTe<7gm`rw8Ntp*VJTv-tZ>jACKSpQ%7uQ%a9Us_c=!9}aJbnNDcg3&Jq$;Kl g|91Ws(l{)xS$D^C%7WjWz<^`$boFyt=akR{0H4LEZ2$lO literal 0 HcmV?d00001 diff --git a/src/object/invisible_wall.cpp b/src/object/invisible_wall.cpp new file mode 100644 index 000000000..4416b23aa --- /dev/null +++ b/src/object/invisible_wall.cpp @@ -0,0 +1,41 @@ +// $Id$ +// +// SuperTux +// Copyright (C) 2006 Matthias Braun +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// 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. + +#include + +#include "invisible_wall.hpp" +#include "lisp/lisp.hpp" +#include "object_factory.hpp" +#include "sprite/sprite.hpp" + +InvisibleWall::InvisibleWall(const lisp::Lisp& lisp) + : MovingSprite(lisp, "images/objects/invisible/invisible.sprite", LAYER_TILES, COLGROUP_STATIC), width(32), height(32) +{ + lisp.get("width", width); + lisp.get("height", height); + bbox.set_size(width, height); +} + +HitResponse +InvisibleWall::collision(GameObject& , const CollisionHit& ) +{ + return FORCE_MOVE; +} + +IMPLEMENT_FACTORY(InvisibleWall, "invisible_wall"); diff --git a/src/object/invisible_wall.hpp b/src/object/invisible_wall.hpp new file mode 100644 index 000000000..0daa737d2 --- /dev/null +++ b/src/object/invisible_wall.hpp @@ -0,0 +1,43 @@ +// $Id$ +// +// SuperTux +// Copyright (C) 2006 Matthias Braun +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// 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. + +#ifndef __INVISIBLE_WALL_H__ +#define __INVISIBLE_WALL_H__ + +#include "object/moving_sprite.hpp" +#include "lisp/lisp.hpp" +#include "physic.hpp" +#include "timer.hpp" + +class Player; + +/** A tile that starts falling down if tux stands to long on it */ +class InvisibleWall : public MovingSprite, private UsesPhysic +{ +public: + InvisibleWall(const lisp::Lisp& lisp); + virtual InvisibleWall* clone() const { return new InvisibleWall(*this); } + + HitResponse collision(GameObject& other, const CollisionHit& hit); + +private: + float width, height; +}; + +#endif -- 2.11.0