forked from wangchen/Programming-Game-AI-by-Example-src
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathScriptor.h
80 lines (58 loc) · 1.49 KB
/
Scriptor.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#ifndef SCRIPTOR_H
#define SCRIPTOR_H
//-----------------------------------------------------------------------------
//
// Name: Scriptor.h
//
// Author: Mat Buckland (www.ai-junkie.com)
//
// Desc: class encapsulating the basic functionality necessary to read a
// Lua config file
//-----------------------------------------------------------------------------
extern "C"
{
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
}
#pragma comment(lib, "lua.lib")
#pragma comment(lib, "lualib.lib")
#include "LuaHelperFunctions.h"
class Scriptor
{
private:
lua_State* m_pLuaState;
public:
Scriptor():m_pLuaState(lua_open())
{
//open the libraries
OpenLuaLibraries(m_pLuaState);
}
~Scriptor(){lua_close(m_pLuaState);}
void RunScriptFile(char* ScriptName)
{
RunLuaScript(m_pLuaState, ScriptName);
}
lua_State* GetState(){return m_pLuaState;}
int GetInt(char* VariableName)
{
return PopLuaNumber<int>(m_pLuaState, VariableName);
}
double GetFloat(char* VariableName)
{
return PopLuaNumber<float>(m_pLuaState, VariableName);
}
double GetDouble(char* VariableName)
{
return PopLuaNumber<double>(m_pLuaState, VariableName);
}
std::string GetString(char* VariableName)
{
return PopLuaString(m_pLuaState, VariableName);
}
bool GetBool(char* VariableName)
{
return PopLuaBool(m_pLuaState, VariableName);
}
};
#endif