mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-05-09 03:58:19 +03:00
Add ScriptInterfaceFlow and ScriptInterfaceState. Add references.
This commit is contained in:
parent
b59b7e4a1c
commit
4429bd8aa2
6 changed files with 82 additions and 3 deletions
|
@ -40,6 +40,7 @@
|
|||
<ClInclude Include="include\ItemEnumPair.h" />
|
||||
<ClInclude Include="include\ReservedScriptNames.h" />
|
||||
<ClInclude Include="include\ScriptAssert.h" />
|
||||
<ClInclude Include="include\Scripting\AudioTracks.h" />
|
||||
<ClInclude Include="include\Scripting\GameFlowScript.h" />
|
||||
<ClInclude Include="include\Scripting\GameLogicScript.h" />
|
||||
<ClInclude Include="include\Scripting\GameScriptAIObject.h" />
|
||||
|
@ -61,12 +62,16 @@
|
|||
<ClInclude Include="include\Scripting\GameScriptSinkInfo.h" />
|
||||
<ClInclude Include="include\Scripting\GameScriptSkyLayer.h" />
|
||||
<ClInclude Include="include\Scripting\GameScriptSoundSourceInfo.h" />
|
||||
<ClInclude Include="include\Scripting\InventorySlots.h" />
|
||||
<ClInclude Include="include\Scripting\ItemEnumPair.h" />
|
||||
<ClInclude Include="include\Scripting\LuaHandler.h" />
|
||||
<ClInclude Include="include\Scripting\ObjectIDs.h" />
|
||||
<ClInclude Include="include\Scripting\ReservedScriptNames.h" />
|
||||
<ClInclude Include="include\Scripting\ScriptAssert.h" />
|
||||
<ClInclude Include="include\Scripting\ScriptInterfaceFlow.h" />
|
||||
<ClInclude Include="include\Scripting\ScriptInterfaceGame.h" />
|
||||
<ClInclude Include="include\Scripting\ScriptInterfaceLevel.h" />
|
||||
<ClInclude Include="include\Scripting\ScriptInterfaceState.h" />
|
||||
<ClInclude Include="include\Scripting\ScriptUtil.h" />
|
||||
<ClInclude Include="include\ScriptInterfaceGame.h" />
|
||||
<ClInclude Include="include\ScriptInterfaceLevel.h" />
|
||||
|
@ -79,6 +84,7 @@
|
|||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\GameFlowScript.cpp" />
|
||||
<ClCompile Include="src\ScriptInterfaceState.cpp" />
|
||||
<ClCompile Include="src\GameLogicScript.cpp" />
|
||||
<ClCompile Include="src\GameScriptAIObject.cpp" />
|
||||
<ClCompile Include="src\GameScriptAnimations.cpp" />
|
||||
|
@ -264,4 +270,4 @@
|
|||
<Error Condition="!Exists('..\packages\Microsoft.XAudio2.Redist.1.2.8\build\native\Microsoft.XAudio2.Redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.XAudio2.Redist.1.2.8\build\native\Microsoft.XAudio2.Redist.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\directxtk_desktop_2017.2021.11.8.1\build\native\directxtk_desktop_2017.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\directxtk_desktop_2017.2021.11.8.1\build\native\directxtk_desktop_2017.targets'))" />
|
||||
</Target>
|
||||
</Project>
|
||||
</Project>
|
||||
|
|
|
@ -171,6 +171,21 @@
|
|||
<ClInclude Include="include\Scripting\GameFlowScript.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="include\Scripting\InventorySlots.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="include\Scripting\ObjectIDs.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="include\Scripting\AudioTracks.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="include\Scripting\ScriptInterfaceFlow.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="include\Scripting\ScriptInterfaceState.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="frameworkandsol.cpp">
|
||||
|
@ -242,8 +257,11 @@
|
|||
<ClCompile Include="src\ScriptAssert.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="src\ScriptInterfaceState.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
|
|
17
Scripting/include/Scripting/ScriptInterfaceFlow.h
Normal file
17
Scripting/include/Scripting/ScriptInterfaceFlow.h
Normal file
|
@ -0,0 +1,17 @@
|
|||
#pragma once
|
||||
class ScriptInterfaceFlow {
|
||||
public:
|
||||
virtual ~ScriptInterfaceFlow() = default;
|
||||
virtual void LoadGameFlowScript() = 0;
|
||||
virtual int GetNumLevels() const = 0;
|
||||
virtual char const* GetString(const char* id) const = 0;
|
||||
virtual bool IsFlyCheatEnabled() const = 0;
|
||||
virtual bool HasCrawlExtended() const = 0;
|
||||
virtual bool HasCrouchRoll() const = 0;
|
||||
virtual bool HasCrawlspaceSwandive() const = 0;
|
||||
virtual bool HasMonkeyTurn180() const = 0;
|
||||
virtual bool HasMonkeyAutoJump() const = 0;
|
||||
virtual bool HasOscillateHang() const = 0;
|
||||
virtual bool HasAFKPose() const = 0;
|
||||
};
|
||||
|
12
Scripting/include/Scripting/ScriptInterfaceState.h
Normal file
12
Scripting/include/Scripting/ScriptInterfaceState.h
Normal file
|
@ -0,0 +1,12 @@
|
|||
#pragma once
|
||||
#include "ScriptInterfaceGame.h"
|
||||
#include "ScriptInterfaceFlow.h"
|
||||
|
||||
class ScriptInterfaceState
|
||||
{
|
||||
public:
|
||||
static ScriptInterfaceGame* CreateGame();
|
||||
static ScriptInterfaceFlow* CreateFlow();
|
||||
static void ScriptInterfaceState::Init();
|
||||
};
|
||||
|
27
Scripting/src/ScriptInterfaceState.cpp
Normal file
27
Scripting/src/ScriptInterfaceState.cpp
Normal file
|
@ -0,0 +1,27 @@
|
|||
#include "frameworkandsol.h"
|
||||
#include "ScriptInterfaceState.h"
|
||||
#include "GameLogicScript.h"
|
||||
#include "GameFlowScript.h"
|
||||
|
||||
sol::state g_solState;
|
||||
|
||||
int lua_exception_handler(lua_State* L, sol::optional<std::exception const &> maybe_exception, sol::string_view description)
|
||||
{
|
||||
return luaL_error(L, description.data());
|
||||
}
|
||||
|
||||
ScriptInterfaceGame* ScriptInterfaceState::CreateGame()
|
||||
{
|
||||
return new GameScript(&g_solState);
|
||||
}
|
||||
|
||||
ScriptInterfaceFlow* ScriptInterfaceState::CreateFlow()
|
||||
{
|
||||
return new GameFlow(&g_solState);
|
||||
}
|
||||
|
||||
void ScriptInterfaceState::Init()
|
||||
{
|
||||
g_solState.open_libraries(sol::lib::base, sol::lib::math);
|
||||
g_solState.set_exception_handler(lua_exception_handler);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue