2018-09-22 23:54:36 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <sol.hpp>
|
|
|
|
#include <vector>
|
|
|
|
#include <string>
|
|
|
|
#include <iostream>
|
|
|
|
#include <fstream>
|
|
|
|
#include <map>
|
|
|
|
#include "..\Global\global.h"
|
|
|
|
|
|
|
|
using namespace std;
|
|
|
|
|
2018-09-23 12:01:07 +02:00
|
|
|
typedef struct LuaFunction {
|
|
|
|
string Name;
|
|
|
|
string Code;
|
|
|
|
bool Executed;
|
|
|
|
};
|
|
|
|
|
2018-09-22 23:54:36 +02:00
|
|
|
class GameScript
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
sol::state* m_lua;
|
|
|
|
|
|
|
|
string loadScriptFromFile(char* luaFilename);
|
|
|
|
map<__int16, __int16> m_itemsMap;
|
|
|
|
|
|
|
|
public:
|
2018-09-23 12:01:07 +02:00
|
|
|
vector<LuaFunction*> Triggers;
|
|
|
|
|
2018-09-22 23:54:36 +02:00
|
|
|
GameScript(sol::state* lua);
|
|
|
|
~GameScript();
|
2018-09-23 12:01:07 +02:00
|
|
|
|
2018-09-22 23:54:36 +02:00
|
|
|
bool ExecuteScript(char* luaFilename);
|
|
|
|
void EnableItem(__int16 id);
|
|
|
|
void DisableItem(__int16 id);
|
|
|
|
void PlayAudioTrack(__int16 track);
|
|
|
|
void ChangeAmbientSoundTrack(__int16 track);
|
2018-09-23 12:01:07 +02:00
|
|
|
bool ExecuteTrigger(__int16 index);
|
2018-09-22 23:54:36 +02:00
|
|
|
};
|