[Super-tux-commit] supertux/src/object background.cpp,1.2,1.3 block.cpp,1.7,1.8 camera.cpp,1.3,1.4 c
Brought to you by:
wkendrick
Update of /cvsroot/super-tux/supertux/src/object In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28891/src/object Modified Files: background.cpp block.cpp camera.cpp coin.cpp coin.h invisible_block.cpp platform.cpp rock.cpp tilemap.cpp Log Message: implemented a new object factory mechanism which is now really independent of the objects Index: platform.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/object/platform.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- platform.cpp 28 Nov 2004 14:56:51 -0000 1.3 +++ platform.cpp 20 Dec 2004 21:24:28 -0000 1.4 @@ -7,6 +7,7 @@ #include "special/sprite_manager.h" #include "lisp/lisp.h" #include "lisp/writer.h" +#include "object_factory.h" Platform::Platform(const lisp::Lisp& reader) { @@ -74,3 +75,5 @@ { sprite->draw(context, get_pos(), LAYER_OBJECTS); } + +IMPLEMENT_FACTORY(Platform, "flying_platform"); Index: coin.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/object/coin.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- coin.cpp 29 Nov 2004 14:54:05 -0000 1.4 +++ coin.cpp 20 Dec 2004 21:24:27 -0000 1.5 @@ -9,6 +9,7 @@ #include "scene.h" #include "gameobjs.h" #include "statistics.h" +#include "object_factory.h" Coin::Coin(const Vector& pos) { @@ -17,6 +18,14 @@ sprite = sprite_manager->create("coin"); } +Coin::Coin(const lisp::Lisp& reader) +{ + reader.get("x", bbox.p1.x); + reader.get("y", bbox.p1.y); + bbox.set_size(32, 32); + sprite = sprite_manager->create("coin"); +} + Coin::~Coin() { delete sprite; @@ -53,3 +62,4 @@ return ABORT_MOVE; } +IMPLEMENT_FACTORY(Coin, "coin"); Index: background.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/object/background.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- background.cpp 28 Nov 2004 14:56:51 -0000 1.2 +++ background.cpp 20 Dec 2004 21:24:27 -0000 1.3 @@ -25,6 +25,7 @@ #include "video/drawing_context.h" #include "lisp/lisp.h" #include "lisp/writer.h" +#include "object_factory.h" Background::Background() : type(INVALID), layer(LAYER_BACKGROUND0), image(0) @@ -128,3 +129,4 @@ } } +IMPLEMENT_FACTORY(Background, "background"); Index: coin.h =================================================================== RCS file: /cvsroot/super-tux/supertux/src/object/coin.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- coin.h 19 Dec 2004 13:34:12 -0000 1.3 +++ coin.h 20 Dec 2004 21:24:27 -0000 1.4 @@ -2,6 +2,7 @@ #define __COIN_H__ #include "special/moving_object.h" +#include "lisp/lisp.h" namespace SuperTux { class Sprite; @@ -13,6 +14,7 @@ { public: Coin(const Vector& pos); + Coin(const lisp::Lisp& reader); ~Coin(); HitResponse collision(GameObject& other, const CollisionHit& hit); Index: invisible_block.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/object/invisible_block.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- invisible_block.cpp 23 Nov 2004 16:47:26 -0000 1.2 +++ invisible_block.cpp 20 Dec 2004 21:24:27 -0000 1.3 @@ -5,6 +5,7 @@ #include "special/sprite.h" #include "special/sprite_manager.h" #include "video/drawing_context.h" +#include "object_factory.h" InvisibleBlock::InvisibleBlock(const Vector& pos) : Block(pos, sprite_manager->create("invisibleblock")), visible(false) @@ -32,3 +33,4 @@ visible = true; } +//IMPLEMENT_FACTORY(InvisibleBlock, "invisible_block"); Index: camera.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/object/camera.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- camera.cpp 1 Dec 2004 15:58:38 -0000 1.3 +++ camera.cpp 20 Dec 2004 21:24:27 -0000 1.4 @@ -32,6 +32,7 @@ #include "gameloop.h" #include "app/globals.h" #include "sector.h" +#include "object_factory.h" using namespace SuperTux; @@ -289,3 +290,4 @@ keep_in_bounds(); } + Index: block.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/object/block.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- block.cpp 29 Nov 2004 00:12:25 -0000 1.7 +++ block.cpp 20 Dec 2004 21:24:27 -0000 1.8 @@ -15,6 +15,7 @@ #include "star.h" #include "badguy/badguy.h" #include "coin.h" +#include "object_factory.h" static const float BOUNCY_BRICK_MAX_OFFSET=8; static const float BOUNCY_BRICK_SPEED=90; @@ -164,6 +165,8 @@ sprite->set_action("empty"); } +//IMPLEMENT_FACTORY(BonusBlock, "bonusblock") + //--------------------------------------------------------------------------- Brick::Brick(const Vector& pos, int data) @@ -222,3 +225,4 @@ } } +//IMPLEMENT_FACTORY(Brick, "brick") Index: tilemap.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/object/tilemap.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- tilemap.cpp 19 Dec 2004 16:53:23 -0000 1.3 +++ tilemap.cpp 20 Dec 2004 21:24:28 -0000 1.4 @@ -33,6 +33,7 @@ #include "app/globals.h" #include "lisp/lisp.h" #include "lisp/writer.h" +#include "object_factory.h" TileMap::TileMap() : solid(false), speed(1), width(0), height(0), layer(LAYER_TILES), @@ -277,3 +278,5 @@ { change(int(pos.x)/32, int(pos.y)/32, newtile); } + +IMPLEMENT_FACTORY(TileMap, "tilemap"); Index: rock.cpp =================================================================== RCS file: /cvsroot/super-tux/supertux/src/object/rock.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- rock.cpp 19 Dec 2004 13:34:12 -0000 1.1 +++ rock.cpp 20 Dec 2004 21:24:28 -0000 1.2 @@ -6,6 +6,7 @@ #include "lisp/writer.h" #include "video/drawing_context.h" #include "resources.h" +#include "object_factory.h" Rock::Rock(const lisp::Lisp& reader) { @@ -73,3 +74,5 @@ grabbed = true; } +IMPLEMENT_FACTORY(Rock, "rock") + |