Add ScriptInterfaceGame, a new base class for GameLogicScript that doesn't know about sol.

This commit is contained in:
hispidence 2021-11-29 21:46:25 +00:00
parent 0563755dba
commit 22114650b1
3 changed files with 40 additions and 0 deletions

View file

@ -0,0 +1,38 @@
#pragma once
#include <memory>
#include <string>
#include <functional>
#include "room.h"
#include "level.h"
typedef DWORD D3DCOLOR;
using VarMapVal = std::variant< short,
std::reference_wrapper<MESH_INFO>,
std::reference_wrapper<LEVEL_CAMERA_INFO>,
std::reference_wrapper<SINK_INFO>,
std::reference_wrapper<SOUND_SOURCE_INFO>,
std::reference_wrapper<AI_OBJECT>>;
using CallbackDrawString = std::function<void(std::string const&, D3DCOLOR, int, int, int)>;
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;
};

View file

@ -190,6 +190,7 @@ CALL gen.bat</Command>
<ClInclude Include="Game\memory\Vector.h" /> <ClInclude Include="Game\memory\Vector.h" />
<ClInclude Include="Game\gui.h" /> <ClInclude Include="Game\gui.h" />
<ClInclude Include="Game\particle\SimpleParticle.h" /> <ClInclude Include="Game\particle\SimpleParticle.h" />
<ClInclude Include="Scripting\ScriptInterfaceGame.h" />
<ClInclude Include="Specific\phd_global.h" /> <ClInclude Include="Specific\phd_global.h" />
<ClInclude Include="Game\memory\qmalloc.h" /> <ClInclude Include="Game\memory\qmalloc.h" />
<ClInclude Include="Game\pickup\pickuputil.h" /> <ClInclude Include="Game\pickup\pickuputil.h" />

View file

@ -709,6 +709,7 @@
<ClInclude Include="Objects\TR5\Object\tr5_expandingplatform.h" /> <ClInclude Include="Objects\TR5\Object\tr5_expandingplatform.h" />
<ClInclude Include="Game\gui.h" /> <ClInclude Include="Game\gui.h" />
<ClInclude Include="Game\effects\lara_fx.h" /> <ClInclude Include="Game\effects\lara_fx.h" />
<ClInclude Include="Scripting\ScriptInterfaceGame.h" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="Resources.rc" /> <ResourceCompile Include="Resources.rc" />