Click here to Skip to main content
15,892,059 members
Articles / Desktop Programming / MFC

2D LUA Based Robot Simulator

Rate me:
Please Sign up or sign in to vote.
4.89/5 (26 votes)
14 Apr 2014Public Domain9 min read 131K   7.9K   119  
An article on designing your own robot simulator
// ---------------------------------------------------------------------------
// 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 "stdafx.h"
#include "lualib/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__

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under A Public Domain dedication


Written By
Student
Indonesia Indonesia
http://kataauralius.com/

Comments and Discussions