00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef __SCRIPT_H__
00017 #define __SCRIPT_H__
00018
00019
00020 #include "../dependencies.h"
00021 #include "ScriptManager.h"
00022
00023
00024 class ScriptManager;
00025
00026
00027
00030 class Script
00031 {
00032 public:
00033
00034
00037 Script(const std::string &name);
00039 ~Script();
00040
00041
00044 static Script* refFactory(const std::string &name);
00047 void refAdd();
00050 void refRelease();
00051
00052
00054 u32 getID() const;
00056 const std::string& getName() const;
00057
00059 asIScriptContext* getContext() const;
00061 asIScriptModule* getModule() const;
00062
00066 bool loadScript(const std::string &fileName);
00069 bool unloadScript();
00070
00073 bool executeFunctionByName(const std::string &name, const std::string &args = "");
00074
00075 private:
00076
00077
00078 static u32 mIDCount;
00079
00080
00081 s32 mRefCount;
00082
00083
00084 u32 mID;
00085 std::string mName;
00086
00087 asIScriptModule *mModule;
00088 asIScriptContext *mContext;
00089
00090 };
00091
00092
00093
00095 extern void bindScript(asIScriptEngine *engine);
00096
00097 #endif