X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fobject%2Fplatform.hpp;h=a9567ed0821039416812f9d3137f1719d74934c0;hb=ed161bf9da56b598f3db3637c6017fa22e9ab0d7;hp=8e981e5ae5bb4ae5718af8fed23a79aa9a36b5b3;hpb=7eedaa580901ec970795fe66d6e7fa56349fb0a0;p=supertux.git diff --git a/src/object/platform.hpp b/src/object/platform.hpp index 8e981e5ae..a9567ed08 100644 --- a/src/object/platform.hpp +++ b/src/object/platform.hpp @@ -21,14 +21,16 @@ #define __PLATFORM_H__ #include +#include #include "object/moving_sprite.hpp" #include "object/path.hpp" #include "object/path_walker.hpp" +#include "script_interface.hpp" /** * This class is the base class for platforms that tux can stand on */ -class Platform : public MovingSprite +class Platform : public MovingSprite, public ScriptInterface { public: Platform(const lisp::Lisp& reader); @@ -42,6 +44,31 @@ public: return speed; } + /** + * @name Scriptable Methods + * @{ + */ + + /** Move platform until at given node, then stop */ + void goto_node(int node_no); + + /** Start moving platform */ + void start_moving(); + + /** Stop platform at next node */ + void stop_moving(); + + /** + * @} + */ + + virtual void expose(HSQUIRRELVM vm, SQInteger table_idx); + virtual void unexpose(HSQUIRRELVM vm, SQInteger table_idx); + + Path& get_path() { + return *path.get(); + } + private: std::auto_ptr path; std::auto_ptr walker; @@ -50,4 +77,3 @@ private: }; #endif -