Script.h

00001 #pragma once
00002 
00003 #include "ZakEngine/defines.h"
00004 #include "ScriptMgr.h"
00005 
00006 namespace zak {
00007 
00008 #define SCRIPT_MAX_CHARS_NAME   100
00009 
00064 class ZAKENGINE_API Script {
00065         friend class ScriptMgr;
00066 
00067 public:
00068 
00074         int      GetFunctionIdByDecl(char *functionPrototype);
00075 
00082         bool Prepare (char *functionPrototype);
00083 
00090         bool Prepare (int funcId);
00091 
00095         bool Execute();
00096 
00100         bool LoadScript(char *filename);
00101 
00106         bool LoadByteCode(char *filename);
00107         bool SaveByteCode(char *filename);
00108 
00114         bool ExecuteString(char *script);
00115 
00123         int  SetArgDWord(int iArg, asDWORD value) { return _context->SetArgDWord(iArg, value); }
00124 
00132         int  SetArgQWord(int iArg, asQWORD value) { return _context->SetArgQWord(iArg, value); }
00133 
00141         int  SetArgFloat(int iArg, float value) { return _context->SetArgFloat(iArg, value); }
00142 
00150         int  SetArgDouble(int iArg, double value){ return _context->SetArgDouble(iArg, value); }
00151 
00159         int  SetArgObject(int iArg, void *object){ return _context->SetArgObject(iArg, object); }
00160 
00166         asDWORD GetReturnDWord() { return _context->GetReturnDWord(); }
00167 
00173         asQWORD GetReturnQWord() { return _context->GetReturnQWord(); }
00174 
00180         float GetReturnFloat() { return _context->GetReturnFloat(); }
00181 
00187         double GetReturnDouble() { return _context->GetReturnDouble(); }
00188 
00194         void *GetReturnObject() { return _context->GetReturnObject(); }
00195 
00196 private:
00197 
00198         Script(char *moduleName, char *sectionName);
00199         ~Script();
00200 
00201         char _moduleName[SCRIPT_MAX_CHARS_NAME];
00202         char _sectionName[SCRIPT_MAX_CHARS_NAME];
00203 
00204         asIScriptContext* _context;
00205 
00206         int     _currentFunc;
00207 
00208 
00209 };
00210 
00211 } // end namespace

Generado el Tue May 29 14:46:15 2007 para Zak Engine v1.1.0 por  doxygen 1.5.1-p1