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 "../core/ReferenceCounted.h"
00022
00023 #ifdef __COMPILE_WITH_ANGELSCRIPT__
00024
00025 #include "ScriptManager.h"
00026
00027
00028 class ScriptManager;
00029
00030
00031
00034 class Script : public ReferenceCounted
00035 {
00036 public:
00037
00038
00041 Script(const std::string &name);
00043 ~Script();
00044
00045
00048 static Script* refFactory(const std::string &name);
00051 void refAdd();
00054 void refRelease();
00055
00056
00058 u32 getID() const;
00060 const std::string& getName() const;
00061
00063 asIScriptContext* getContext() const;
00065 asIScriptModule* getModule() const;
00066
00070 bool loadScript(const std::string &fileName);
00074 bool loadScript(IReadFile *file);
00077 bool unloadScript();
00078
00081 bool executeFunctionByName(const std::string &name, const std::string &args = "");
00082
00083 private:
00084
00085
00086 static u32 mIDCount;
00087
00088
00089 s32 mRefCount;
00090
00091
00092 u32 mID;
00093 std::string mName;
00094
00095 asIScriptModule *mModule;
00096 asIScriptContext *mContext;
00097
00098 };
00099
00100 #endif // __COMPILE_WITH_ANGELSCRIPT__
00101
00102 #endif