Initial Commit

This commit is contained in:
2026-02-12 11:46:06 +03:00
commit b044c8d1a5
3973 changed files with 1599881 additions and 0 deletions

View File

@@ -0,0 +1,91 @@
#include <string>
#include "core.h"
#include "game_lua_help.h"
class LuaStateWrapper
{
public:
LuaStateWrapper()
{
m_luaState = LuaPlus::LuaState::Create();
m_luaState->OpenLibs();
}
~LuaStateWrapper()
{
LuaPlus::LuaState::Destroy(m_luaState);
}
LuaPlus::LuaState& operator()()
{
return *m_luaState;
}
private:
LuaPlus::LuaState* m_luaState;
};
LuaPlus::LuaState& GetLuaState()
{
static LuaStateWrapper instance;
return instance();
}
void luaError(int errorcode)
{
LuaPlus::LuaState* state = &GetLuaState();
LuaPlus::LuaStackObject stackObj(state, -1);
const char* errorStr = stackObj.GetString();
if (errorStr) {
GetLuaState().SetTop(0);
}
else {
errorStr = "Unknown lua error";
}
Core::Error(errorStr);
}
void luaError(int errorcode, const char* filename)
{
LuaPlus::LuaState* state = &GetLuaState();
LuaPlus::LuaStackObject stackObj(state, -1);
std::string errorStr = stackObj.GetString();
if (!errorStr.empty()) {
GetLuaState().SetTop(0);
}
else {
errorStr = "Unknown lua error";
}
Core::Error(errorStr.c_str());
}
void luaLoadScript(const char* filename)
{
char buffer[260];
snprintf(buffer, sizeof(buffer), "data/scripts/%s", filename);
int result = 0;
result = GetLuaState().DoFile(buffer);
if (result != 0) {
luaError(result, buffer);
}
}
void luaDoString(const char* str)
{
int result = 0;
result = GetLuaState().DoString(str);
if (result != 0) {
luaError(result);
}
}
glm::mat4 getMatrixFromLua(LuaPlus::LuaObject& matrix)
{
glm::mat4 return_matrix = glm::identity<glm::mat4>();
return return_matrix;
}