mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
CEngineAPI vftable implementation
This commit is contained in:
parent
1a3f17a422
commit
1c29d5aed5
@ -4,9 +4,21 @@
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
#ifndef ENGINE_LAUNCHER_APIH
|
||||
#define ENGINE_LAUNCHER_APIH
|
||||
|
||||
#include "appframework/iappsystem.h"
|
||||
|
||||
struct StartupInfo_t
|
||||
{
|
||||
void* m_pInstance;
|
||||
const char m_pBaseDirectory[260];
|
||||
const char m_pInitialMod[260];
|
||||
const char m_pInitialGame[260];
|
||||
uint8_t m_pParentAppSystemGroup[236];
|
||||
bool m_bTextMode;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Return values from the initialization stage of the application framework
|
||||
//-----------------------------------------------------------------------------
|
||||
@ -32,4 +44,27 @@ enum
|
||||
//-----------------------------------------------------------------------------
|
||||
#define VENGINE_LAUNCHER_API_VERSION "VENGINE_LAUNCHER_API_VERSION004"
|
||||
|
||||
// NOTE: _purecall IEngineAPI vtable
|
||||
abstract_class IEngineAPI : public IAppSystem
|
||||
{
|
||||
// Functions
|
||||
public:
|
||||
// This function must be called before init
|
||||
virtual bool SetStartupInfo(StartupInfo_t & info) = 0;
|
||||
|
||||
// Run the engine
|
||||
virtual int Run() = 0;
|
||||
|
||||
// Sets the engine to run in a particular editor window
|
||||
virtual void PostConsoleCommand(const char* pConsoleCommand) = 0;
|
||||
|
||||
// Are we running the simulation?
|
||||
virtual bool IsRunningSimulation() const = 0;
|
||||
|
||||
// Start/stop running the simulation
|
||||
virtual void ActivateSimulation(bool bActive) = 0;
|
||||
|
||||
// Reset the map we're on
|
||||
virtual void SetMap(const char* pMapName) = 0;
|
||||
};
|
||||
|
||||
#endif // ENGINE_LAUNCHER_APIH
|
8
r5dev/engine/sdk_dll.cpp
Normal file
8
r5dev/engine/sdk_dll.cpp
Normal file
@ -0,0 +1,8 @@
|
||||
//=============================================================================//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
//=============================================================================//
|
||||
|
||||
#include "core/stdafx.h"
|
||||
#include "engine/sdk_dll.h"
|
5
r5dev/engine/sdk_dll.h
Normal file
5
r5dev/engine/sdk_dll.h
Normal file
@ -0,0 +1,5 @@
|
||||
#ifndef SDK_DLL_H
|
||||
#define SDK_DLL_H
|
||||
|
||||
|
||||
#endif // SDK_DLL_H
|
@ -1,11 +1,41 @@
|
||||
#pragma once
|
||||
#include "vpc/interfaces.h"
|
||||
#include "appframework/engine_launcher_api.h"
|
||||
|
||||
class CEngineAPI
|
||||
class CEngineAPI : public IEngineAPI
|
||||
{
|
||||
public:
|
||||
virtual bool Connect(CreateInterfaceFn factory) = 0;
|
||||
virtual void Disconnect() = 0;
|
||||
virtual void* QueryInterface(const char* pInterfaceName) = 0;
|
||||
virtual InitReturnVal_t Init() = 0;
|
||||
virtual void Shutdown() = 0;
|
||||
virtual AppSystemTier_t GetTier() = 0;
|
||||
virtual void Reconnect(CreateInterfaceFn factory, const char* pInterfaceName) = 0;
|
||||
|
||||
// This function must be called before init
|
||||
virtual bool SetStartupInfo(StartupInfo_t& info) = 0;
|
||||
|
||||
virtual int Run() = 0;
|
||||
|
||||
// Posts a console command
|
||||
virtual void PostConsoleCommand(const char* pConsoleCommand) = 0;
|
||||
|
||||
// Are we running the simulation?
|
||||
virtual bool IsRunningSimulation() const = 0;
|
||||
|
||||
// Start/stop running the simulation
|
||||
virtual void ActivateSimulation(bool bActive) = 0;
|
||||
|
||||
// Reset the map we're on
|
||||
virtual void SetMap(const char* pMapName) = 0;
|
||||
|
||||
|
||||
static bool ModInit(CEngineAPI* pEngineAPI, const char* pModName, const char* pGameDir);
|
||||
// TODO [ AMOS ]:
|
||||
private:
|
||||
void* m_hEditorHWnd;
|
||||
bool m_bRunningSimulation;
|
||||
StartupInfo_t m_StartupInfo;
|
||||
};
|
||||
|
||||
inline CMemory p_CEngineAPI_Connect;
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include "tier0/commandline.h"
|
||||
#include "tier1/cvar.h"
|
||||
#include "vpc/interfaces.h"
|
||||
#include "appframework/engine_launcher_api.h"
|
||||
#include "launcher/IApplication.h"
|
||||
#include "pluginsystem/pluginsystem.h"
|
||||
#include "ebisusdk/EbisuSDK.h"
|
||||
|
@ -1,24 +1,9 @@
|
||||
#pragma once
|
||||
#include "appframework/iappsystem.h"
|
||||
//-----------------------------------------------------------------------------
|
||||
// Return values from the initialization stage of the application framework
|
||||
//-----------------------------------------------------------------------------
|
||||
enum
|
||||
{
|
||||
INIT_RESTART = INIT_LAST_VAL,
|
||||
RUN_FIRST_VAL,
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Return values from IEngineAPI::Run.
|
||||
//-----------------------------------------------------------------------------
|
||||
enum
|
||||
{
|
||||
RUN_OK = RUN_FIRST_VAL,
|
||||
RUN_RESTART,
|
||||
};
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
//
|
||||
//-------------------------------------------------------------------------
|
||||
class CModAppSystemGroup
|
||||
{
|
||||
public:
|
||||
|
@ -43,6 +43,7 @@
|
||||
<ClCompile Include="..\engine\net.cpp" />
|
||||
<ClCompile Include="..\engine\networkstringtable.cpp" />
|
||||
<ClCompile Include="..\engine\net_chan.cpp" />
|
||||
<ClCompile Include="..\engine\sdk_dll.cpp" />
|
||||
<ClCompile Include="..\engine\sys_dll.cpp" />
|
||||
<ClCompile Include="..\engine\sys_dll2.cpp" />
|
||||
<ClCompile Include="..\engine\sys_engine.cpp" />
|
||||
@ -189,6 +190,7 @@
|
||||
<ClInclude Include="..\engine\networkstringtable.h" />
|
||||
<ClInclude Include="..\engine\net_chan.h" />
|
||||
<ClInclude Include="..\engine\packed_entity.h" />
|
||||
<ClInclude Include="..\engine\sdk_dll.h" />
|
||||
<ClInclude Include="..\engine\sys_dll.h" />
|
||||
<ClInclude Include="..\engine\sys_dll2.h" />
|
||||
<ClInclude Include="..\engine\sys_engine.h" />
|
||||
|
@ -591,6 +591,9 @@
|
||||
<ClCompile Include="..\pluginsystem\pluginsystem.cpp">
|
||||
<Filter>sdk\pluginsystem</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\engine\sdk_dll.cpp">
|
||||
<Filter>sdk\engine</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\client\cdll_engine_int.h">
|
||||
@ -1748,6 +1751,9 @@
|
||||
<ClInclude Include="..\pluginsystem\pluginsystem.h">
|
||||
<Filter>sdk\pluginsystem</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\engine\sdk_dll.h">
|
||||
<Filter>sdk\engine</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="..\shared\resource\lockedserver.png">
|
||||
|
@ -161,6 +161,7 @@
|
||||
<ClInclude Include="..\engine\networkstringtable.h" />
|
||||
<ClInclude Include="..\engine\net_chan.h" />
|
||||
<ClInclude Include="..\engine\packed_entity.h" />
|
||||
<ClInclude Include="..\engine\sdk_dll.h" />
|
||||
<ClInclude Include="..\engine\server\server.h" />
|
||||
<ClInclude Include="..\engine\server\sv_main.h" />
|
||||
<ClInclude Include="..\engine\server\sv_rcon.h" />
|
||||
@ -497,6 +498,7 @@
|
||||
<ClCompile Include="..\engine\net.cpp" />
|
||||
<ClCompile Include="..\engine\networkstringtable.cpp" />
|
||||
<ClCompile Include="..\engine\net_chan.cpp" />
|
||||
<ClCompile Include="..\engine\sdk_dll.cpp" />
|
||||
<ClCompile Include="..\engine\server\server.cpp" />
|
||||
<ClCompile Include="..\engine\server\sv_main.cpp" />
|
||||
<ClCompile Include="..\engine\server\sv_rcon.cpp" />
|
||||
|
@ -1245,6 +1245,9 @@
|
||||
<ClInclude Include="..\pluginsystem\pluginsystem.h">
|
||||
<Filter>sdk\pluginsystem</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\engine\sdk_dll.h">
|
||||
<Filter>sdk\engine</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\common\opcodes.cpp">
|
||||
@ -1559,6 +1562,9 @@
|
||||
<ClCompile Include="..\pluginsystem\pluginsystem.cpp">
|
||||
<Filter>sdk\pluginsystem</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\engine\sdk_dll.cpp">
|
||||
<Filter>sdk\engine</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\Dedicated.def" />
|
||||
|
@ -43,6 +43,7 @@
|
||||
<ClCompile Include="..\engine\net.cpp" />
|
||||
<ClCompile Include="..\engine\networkstringtable.cpp" />
|
||||
<ClCompile Include="..\engine\net_chan.cpp" />
|
||||
<ClCompile Include="..\engine\sdk_dll.cpp" />
|
||||
<ClCompile Include="..\engine\server\server.cpp" />
|
||||
<ClCompile Include="..\engine\server\sv_main.cpp" />
|
||||
<ClCompile Include="..\engine\sys_dll.cpp" />
|
||||
@ -199,6 +200,7 @@
|
||||
<ClInclude Include="..\engine\networkstringtable.h" />
|
||||
<ClInclude Include="..\engine\net_chan.h" />
|
||||
<ClInclude Include="..\engine\packed_entity.h" />
|
||||
<ClInclude Include="..\engine\sdk_dll.h" />
|
||||
<ClInclude Include="..\engine\server\server.h" />
|
||||
<ClInclude Include="..\engine\server\sv_main.h" />
|
||||
<ClInclude Include="..\engine\sys_dll.h" />
|
||||
|
@ -630,6 +630,9 @@
|
||||
<ClCompile Include="..\pluginsystem\pluginsystem.cpp">
|
||||
<Filter>sdk\pluginsystem</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\engine\sdk_dll.cpp">
|
||||
<Filter>sdk\engine</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\client\cdll_engine_int.h">
|
||||
@ -1838,6 +1841,9 @@
|
||||
<ClInclude Include="..\pluginsystem\ipluginsystem.h">
|
||||
<Filter>sdk\pluginsystem</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\engine\sdk_dll.h">
|
||||
<Filter>sdk\engine</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="..\shared\resource\lockedserver.png">
|
||||
|
Loading…
x
Reference in New Issue
Block a user