X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fobject%2Fcoin.cpp;h=c0910183ede408b8fd9e3bb470d47609fc8f81cd;hb=e3bb6e46812f108f093e9ad0751a945c34b18cd3;hp=0799ef02ec6bdd06c80c82e4a960822fb0feccdc;hpb=4ada19ad88b175b612e8f09d6426eb940a7d947f;p=supertux.git diff --git a/src/object/coin.cpp b/src/object/coin.cpp index 0799ef02e..c0910183e 100644 --- a/src/object/coin.cpp +++ b/src/object/coin.cpp @@ -8,6 +8,8 @@ #include "sector.h" #include "scene.h" #include "gameobjs.h" +#include "statistics.h" +#include "object_factory.h" Coin::Coin(const Vector& pos) { @@ -16,6 +18,14 @@ Coin::Coin(const Vector& pos) 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; @@ -37,6 +47,7 @@ Coin::collect() { Sector::current()->player->get_status().incCoins(); Sector::current()->add_object(new BouncyCoin(get_pos())); + global_stats.add_points(COINS_COLLECTED_STAT, 1); remove_me(); } @@ -51,3 +62,4 @@ Coin::collision(GameObject& other, const CollisionHit& ) return ABORT_MOVE; } +IMPLEMENT_FACTORY(Coin, "coin");