X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fgame_object.hpp;h=f463f88d441c825699d14619149406afb8c261df;hb=b50836ea0d5c455c115fba76616ba544aad5ae5f;hp=1131847fb9d00adebcc78be6e94027cc3be50684;hpb=5b7f9214cb929399f1a855ef5807018a9447d510;p=supertux.git diff --git a/src/game_object.hpp b/src/game_object.hpp index 1131847fb..f463f88d4 100644 --- a/src/game_object.hpp +++ b/src/game_object.hpp @@ -1,7 +1,7 @@ -// $Id: game_object.h 2293 2005-03-25 20:39:56Z matzebraun $ +// $Id$ // -// SuperTux - A Jump'n Run -// Copyright (C) 2004 Matthias Braun +// 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 @@ -20,6 +20,8 @@ #define SUPERTUX_GAMEOBJECT_H #include +#include "refcounter.hpp" +#include "lisp/lisp.hpp" class DrawingContext; class ObjectRemoveListener; @@ -33,9 +35,8 @@ class ObjectRemoveListener; * draw() functions. Both are called once per frame. * - Providing a safe way to remove the object by calling the remove_me * functions. - * - a 32bit bitset for flags... */ -class GameObject +class GameObject : public RefCounter { public: GameObject(); @@ -55,15 +56,17 @@ public: /** returns true if the object is not scheduled to be removed yet */ bool is_valid() const - { - return !wants_to_die; - } + { + return !wants_to_die; + } + /** schedules this object to be removed at the end of the frame */ void remove_me() { wants_to_die = true; } - /** registers a remove listener which will be called if the object + + /** registers a remove listener which will be called if the object * gets removed/destroyed */ void add_remove_listener(ObjectRemoveListener* listener) @@ -74,18 +77,10 @@ public: remove_listeners = entry; } - - // flags - enum { - /// the tile so you can stand on it - FLAG_SOLID = 0x0001, - /// can be used to temporatily disable collision detection - FLAG_NO_COLLDET = 0x0002 - }; - int get_flags() const + const std::string& get_name() const { - return flags; + return name; } private: @@ -102,8 +97,11 @@ private: RemoveListenerListEntry* remove_listeners; protected: - int flags; + /** + * a name for the gameobject, this is mostly a hint for scripts and for + * debugging, don't rely on names being set or being unique + */ + std::string name; }; #endif /*SUPERTUX_GAMEOBJECT_H*/ -