X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fscripting%2Fscript_interpreter.h;h=73f596bd9103af96698dc03dbcc0bcd0e3a5561a;hb=eb7c6ccdd326f6bceb67cd5259015dd994b04928;hp=54618c40b364c020902cd4d99e9bf2d200093871;hpb=4a54087f52d6a8a2e5b4c498e772685bb0885991;p=supertux.git diff --git a/src/scripting/script_interpreter.h b/src/scripting/script_interpreter.h index 54618c40b..73f596bd9 100644 --- a/src/scripting/script_interpreter.h +++ b/src/scripting/script_interpreter.h @@ -3,20 +3,42 @@ #include #include +#include "timer.h" +#include "game_object.h" +#include "scripting/sound.h" +#include "scripting/level.h" -class ScriptInterpreter +class Sector; + +class ScriptInterpreter : public GameObject { public: - ScriptInterpreter(); - ~ScriptInterpreter(); + ScriptInterpreter(Sector* sector); + ~ScriptInterpreter(); + + void draw(DrawingContext& ); + void action(float ); + + void load_script(std::istream& in, const std::string& sourcename = ""); + void start_script(); + + void expose_object(void* object, const std::string& name, + const std::string& type); - void load_script(std::istream& in, const std::string& sourcename = ""); - void run_script(); - void resume_script(); - bool script_suspended(); + void set_wakeup_time(float seconds); + + static ScriptInterpreter* current() + { + return _current; + } private: - HSQUIRRELVM v; + HSQUIRRELVM v; + static ScriptInterpreter* _current; + Timer wakeup_timer; + + Scripting::Sound* sound; + Scripting::Level* level; }; #endif