From 10a0e290ac07524dc129cc2b227b0f9e95df0f8e Mon Sep 17 00:00:00 2001 From: Ben Beltran Date: Mon, 16 Apr 2012 09:39:52 -0500 Subject: first commit --- LuaScript.h | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 LuaScript.h (limited to 'LuaScript.h') diff --git a/LuaScript.h b/LuaScript.h new file mode 100644 index 0000000..96c588c --- /dev/null +++ b/LuaScript.h @@ -0,0 +1,67 @@ +// --------------------------------------------------------------------------- +// FILE NAME : LuaScript.h +// --------------------------------------------------------------------------- +// DESCRIPTION : +// +// Scripting base class +// +// --------------------------------------------------------------------------- +// VERSION : 1.00 +// DATE : 1-Sep-2005 +// AUTHOR : Richard Shephard +// --------------------------------------------------------------------------- +// LIBRARY INCLUDE FILES + +#ifndef __LUA_SCRIPT_BASE_H__ +#define __LUA_SCRIPT_BASE_H__ + +#include "luainc.h" +#include "luavirtualmachine.h" + +class CLuaScript +{ +public: + CLuaScript (CLuaVirtualMachine& vm); + virtual ~CLuaScript (void); + + // Compile script into Virtual Machine + bool CompileFile (const char *strFilename); + bool CompileBuffer (unsigned char *pbBuffer, size_t szLen); + + // Register function with Lua + int RegisterFunction (const char *strFuncName); + + // Selects a Lua Script function to call + bool SelectScriptFunction (const char *strFuncName); + void AddParam (int iInt); + void AddParam (float fFloat); + void AddParam (char *string); + + // Runs the loaded script + bool Go (int nReturns = 0); + + // Checks on Virtual Machine script + bool ScriptHasFunction (const char *strScriptName); + + // Method indexing check + int methods (void) { return m_nMethods; } + + + // When the script calls a class method, this is called + virtual int ScriptCalling (CLuaVirtualMachine& vm, int iFunctionNumber) = 0; + + // When the script function has returns + virtual void HandleReturns (CLuaVirtualMachine& vm, const char *strFunc) = 0; + + CLuaVirtualMachine& vm (void) { return m_vm; } + +protected: + int m_nMethods; + CLuaVirtualMachine& m_vm; + int m_iThisRef; + int m_nArgs; + const char *m_strFunctionName; +}; + + +#endif // __LUA_SCRIPT_BASE_H__ \ No newline at end of file -- cgit