#ifndef GAME_SCRIPT_SCRIPTMANAGER_H #define GAME_SCRIPT_SCRIPTMANAGER_H #include <map> #include <vector> #include <string> #include <components/compiler/streamerrorhandler.hpp> #include <components/compiler/fileparser.hpp> #include <components/interpreter/types.hpp> namespace ESMS { struct ESMStore; } namespace Compiler { class Context; } namespace Interpreter { class Context; class Interpreter; } namespace MWScript { class ScriptManager { Compiler::StreamErrorHandler mErrorHandler; const ESMS::ESMStore& mStore; bool mVerbose; Compiler::Context& mCompilerContext; Compiler::FileParser mParser; std::map<std::string, std::vector<Interpreter::Type_Code> > mScripts; bool compile (const std::string& name); public: ScriptManager (const ESMS::ESMStore& store, bool verbose, Compiler::Context& compilerContext); void run (const std::string& name, Interpreter::Context& interpreterContext); }; }; #endif