diff --git a/TR5Main/Scripting/ScriptInterfaceGame.h b/TR5Main/Scripting/ScriptInterfaceGame.h new file mode 100644 index 000000000..2d42dcefe --- /dev/null +++ b/TR5Main/Scripting/ScriptInterfaceGame.h @@ -0,0 +1,38 @@ +#pragma once +#include +#include +#include +#include "room.h" +#include "level.h" + +typedef DWORD D3DCOLOR; +using VarMapVal = std::variant< short, + std::reference_wrapper, + std::reference_wrapper, + std::reference_wrapper, + std::reference_wrapper, + std::reference_wrapper>; + +using CallbackDrawString = std::function; + +class ScriptInterfaceGame { +public: + virtual void ProcessDisplayStrings(float dt) = 0; + + + virtual void InitCallbacks() = 0; + + virtual void OnStart() = 0; + virtual void OnLoad() = 0; + virtual void OnControlPhase(float dt) = 0; + virtual void OnSave() = 0; + virtual void OnEnd() = 0; + + virtual void SetCallbackDrawString(CallbackDrawString) = 0; + virtual void FreeLevelScripts() = 0; + virtual bool AddName(std::string const& key, VarMapVal val) = 0; + virtual void ExecuteScriptFile(std::string const& luaFileName) = 0; + virtual void ExecuteFunction(std::string const& luaFileName) = 0; + + virtual void AssignItemsAndLara() = 0; +}; \ No newline at end of file diff --git a/TR5Main/TombEngine.vcxproj b/TR5Main/TombEngine.vcxproj index cdcfe9877..28714d073 100644 --- a/TR5Main/TombEngine.vcxproj +++ b/TR5Main/TombEngine.vcxproj @@ -190,6 +190,7 @@ CALL gen.bat + diff --git a/TR5Main/TombEngine.vcxproj.filters b/TR5Main/TombEngine.vcxproj.filters index 3aaaeba35..e45269f86 100644 --- a/TR5Main/TombEngine.vcxproj.filters +++ b/TR5Main/TombEngine.vcxproj.filters @@ -709,6 +709,7 @@ +