#pragma once #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 ~ScriptInterfaceGame() = default; 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; };