From ff2e763b992b0611767b19d6d113046ab381be04 Mon Sep 17 00:00:00 2001 From: Nicholas Hastings Date: Fri, 10 Jul 2015 09:30:51 -0400 Subject: [PATCH] Fix server exiting on map change. --- core/provider/provider_ep2.cpp | 12 ++++++++++++ core/provider/provider_ep2.h | 3 +++ 2 files changed, 15 insertions(+) diff --git a/core/provider/provider_ep2.cpp b/core/provider/provider_ep2.cpp index e670d3a..86026de 100644 --- a/core/provider/provider_ep2.cpp +++ b/core/provider/provider_ep2.cpp @@ -39,6 +39,14 @@ #include #include "metamod.h" +#if SOURCE_ENGINE == SE_SOURCE2 +SH_DECL_HOOK1(ISource2ServerConfig, AllowDedicatedServers, const, 0, bool, EUniverse); +bool BaseProvider::AllowDedicatedServers(EUniverse universe) const +{ + RETURN_META_VALUE(MRES_SUPERCEDE, true); +} +#endif + /* Types */ typedef void (*CONPRINTF_FUNC)(const char *, ...); struct UsrMsgInfo @@ -189,6 +197,10 @@ void BaseProvider::Notify_DLLInit_Pre(CreateInterfaceFn engineFactory, { SH_ADD_HOOK_STATICFUNC(IServerGameClients, ClientCommand, gameclients, ClientCommand, false); } + +#if SOURCE_ENGINE == SE_SOURCE2 + SH_ADD_VPHOOK(ISource2ServerConfig, AllowDedicatedServers, serverconfig, SH_MEMBER(this, &BaseProvider::AllowDedicatedServers), false); +#endif } void BaseProvider::Notify_DLLShutdown_Pre() diff --git a/core/provider/provider_ep2.h b/core/provider/provider_ep2.h index c83522c..0ac92fd 100644 --- a/core/provider/provider_ep2.h +++ b/core/provider/provider_ep2.h @@ -77,6 +77,9 @@ public: virtual const char *GetUserMessage(int index, int *size=NULL); virtual int DetermineSourceEngine(); virtual bool ProcessVDF(const char *file, char path[], size_t path_len, char alias[], size_t alias_len); +#if SOURCE_ENGINE == SE_SOURCE2 + bool AllowDedicatedServers(EUniverse universe) const; +#endif }; extern IVEngineServer *engine;