diff --git a/AMBuildScript b/AMBuildScript index 8b88a5f9..1980c87d 100644 --- a/AMBuildScript +++ b/AMBuildScript @@ -31,12 +31,13 @@ PossibleSDKs = { 'swarm': SDK('HL2SDK-SWARM', '2.swarm', '16', 'ALIENSWARM', WinOnly, 'swarm'), 'bgt': SDK('HL2SDK-BGT', '2.bgt', '4', 'BLOODYGOODTIME', WinOnly, 'bgt'), 'eye': SDK('HL2SDK-EYE', '2.eye', '5', 'EYE', WinOnly, 'eye'), - 'csgo': SDK('HL2SDKCSGO', '2.csgo', '20', 'CSGO', WinLinux, 'csgo'), + 'csgo': SDK('HL2SDKCSGO', '2.csgo', '21', 'CSGO', WinLinux, 'csgo'), 'portal2': SDK('HL2SDKPORTAL2', '2.portal2', '17', 'PORTAL2', [], 'portal2'), 'blade': SDK('HL2SDKBLADE', '2.blade', '18', 'BLADE', WinLinux, 'blade'), 'insurgency': SDK('HL2SDKINSURGENCY', '2.insurgency', '19', 'INSURGENCY', WinLinuxMac, 'insurgency'), 'contagion': SDK('HL2SDKCONTAGION', '2.contagion', '14', 'CONTAGION', WinOnly, 'contagion'), 'bms': SDK('HL2SDKBMS', '2.bms', '10', 'BMS', WinLinux, 'bms'), + 'doi': SDK('HL2SDKDOI', '2.doi', '20', 'DOI', WinLinuxMac, 'doi'), } def ResolveEnvPath(env, folder): @@ -436,7 +437,7 @@ class SMConfig(object): # For everything after Swarm, this needs to be defined for entity networking # to work properly with sendprop value changes. - if sdk.name in ['blade', 'insurgency', 'csgo']: + if sdk.name in ['blade', 'insurgency', 'doi', 'csgo']: compiler.defines += ['NETWORK_VARS_ENABLED'] if sdk.name in ['css', 'hl2dm', 'dods', 'sdk2013', 'bms', 'tf2', 'l4d', 'nucleardawn', 'l4d2']: @@ -474,14 +475,14 @@ class SMConfig(object): compiler.Dep(os.path.join(lib_folder, 'mathlib_i486.a')) ] - if sdk.name in ['blade', 'insurgency', 'csgo']: + if sdk.name in ['blade', 'insurgency', 'doi', 'csgo']: compiler.postlink += [compiler.Dep(os.path.join(lib_folder, 'interfaces_i486.a'))] dynamic_libs = [] if builder.target.platform == 'linux': - if sdk.name in ['css', 'hl2dm', 'dods', 'tf2', 'sdk2013', 'bms', 'nucleardawn', 'l4d2', 'insurgency']: + if sdk.name in ['css', 'hl2dm', 'dods', 'tf2', 'sdk2013', 'bms', 'nucleardawn', 'l4d2', 'insurgency', 'doi']: dynamic_libs = ['libtier0_srv.so', 'libvstdlib_srv.so'] - elif sdk.name in ['l4d', 'blade', 'insurgency', 'csgo']: + elif sdk.name in ['l4d', 'blade', 'insurgency', 'doi', 'csgo']: dynamic_libs = ['libtier0.so', 'libvstdlib.so'] else: dynamic_libs = ['tier0_i486.so', 'vstdlib_i486.so'] @@ -490,7 +491,7 @@ class SMConfig(object): dynamic_libs = ['libtier0.dylib', 'libvstdlib.dylib'] elif builder.target.platform == 'windows': libs = ['tier0', 'tier1', 'vstdlib', 'mathlib'] - if sdk.name in ['swarm', 'blade', 'insurgency', 'csgo']: + if sdk.name in ['swarm', 'blade', 'insurgency', 'doi', 'csgo']: libs.append('interfaces') for lib in libs: lib_path = os.path.join(sdk.path, 'lib', 'public', lib) + '.lib' diff --git a/core/HalfLife2.cpp b/core/HalfLife2.cpp index 0a071c4e..46d749a1 100644 --- a/core/HalfLife2.cpp +++ b/core/HalfLife2.cpp @@ -59,7 +59,7 @@ typedef ICommandLine *(*FakeGetCommandLine)(); #elif defined __linux__ #if SOURCE_ENGINE == SE_HL2DM || SOURCE_ENGINE == SE_DODS || SOURCE_ENGINE == SE_CSS || SOURCE_ENGINE == SE_TF2 \ || SOURCE_ENGINE == SE_SDK2013 || SOURCE_ENGINE == SE_LEFT4DEAD2 || SOURCE_ENGINE == SE_NUCLEARDAWN \ - || SOURCE_ENGINE == SE_BMS || SOURCE_ENGINE == SE_INSURGENCY + || SOURCE_ENGINE == SE_BMS || SOURCE_ENGINE == SE_INSURGENCY || SOURCE_ENGINE == SE_DOI #define TIER0_NAME "libtier0_srv.so" #define VSTDLIB_NAME "libvstdlib_srv.so" #elif SOURCE_ENGINE >= SE_LEFT4DEAD @@ -1348,6 +1348,7 @@ uint64_t CHalfLife2::GetServerSteamId64() const || SOURCE_ENGINE == SE_EYE \ || SOURCE_ENGINE == SE_HL2DM \ || SOURCE_ENGINE == SE_INSURGENCY \ + || SOURCE_ENGINE == SE_DOI \ || SOURCE_ENGINE == SE_SDK2013 \ || SOURCE_ENGINE == SE_ALIENSWARM \ || SOURCE_ENGINE == SE_TF2 diff --git a/core/PlayerManager.cpp b/core/PlayerManager.cpp index 49f7486d..d73a64b9 100644 --- a/core/PlayerManager.cpp +++ b/core/PlayerManager.cpp @@ -1965,7 +1965,8 @@ void CPlayer::Initialize(const char *name, const char *ip, edict_t *pEntity) || SOURCE_ENGINE == SE_DODS \ || SOURCE_ENGINE == SE_HL2DM \ || SOURCE_ENGINE == SE_BMS \ - || SOURCE_ENGINE == SE_INSURGENCY + || SOURCE_ENGINE == SE_INSURGENCY \ + || SOURCE_ENGINE == SE_DOI m_pIClient = engine->GetIServer()->GetClient(m_iIndex - 1); #else #if SOURCE_ENGINE == SE_SDK2013 diff --git a/core/logic/smn_maplists.cpp b/core/logic/smn_maplists.cpp index c583a4eb..093aaa15 100644 --- a/core/logic/smn_maplists.cpp +++ b/core/logic/smn_maplists.cpp @@ -515,10 +515,11 @@ private: continue; } - if (strcmp(bridge->GetSourceEngineName(), "insurgency") == 0) + if (strcmp(bridge->GetSourceEngineName(), "insurgency") == 0 + || strcmp(bridge->GetSourceEngineName(), "doi") == 0) { - // Insurgency (presumably?) doesn't allow spaces in map names - // and does use a space to delimit the map name from the map mode + // Insurgency and Day of Infamy (presumably?) doesn't allow spaces in map names + // and do use a space to delimit the map name from the map mode int i = 0; while (ptr[i] != 0) { diff --git a/core/logic_bridge.cpp b/core/logic_bridge.cpp index cbaab001..49f6213a 100644 --- a/core/logic_bridge.cpp +++ b/core/logic_bridge.cpp @@ -388,6 +388,8 @@ void UTIL_ConsolePrint(const char *fmt, ...) #define GAMEFIX "2.blade" #elif SOURCE_ENGINE == SE_INSURGENCY #define GAMEFIX "2.insurgency" +#elif SOURCE_ENGINE == SE_DOI +#define GAMEFIX "2.doi" #elif SOURCE_ENGINE == SE_CSGO #define GAMEFIX "2.csgo" #elif SOURCE_ENGINE == SE_CONTAGION @@ -510,6 +512,8 @@ const char *CoreProviderImpl::GetSourceEngineName() return "blade"; #elif SOURCE_ENGINE == SE_INSURGENCY return "insurgency"; +#elif SOURCE_ENGINE == SE_DOI + return "doi"; #elif SOURCE_ENGINE == SE_CSGO return "csgo"; #endif @@ -527,6 +531,7 @@ bool CoreProviderImpl::SymbolsAreHidden() || (SOURCE_ENGINE == SE_NUCLEARDAWN) \ || (SOURCE_ENGINE == SE_LEFT4DEAD2) \ || (SOURCE_ENGINE == SE_INSURGENCY) \ + || (SOURCE_ENGINE == SE_DOI) \ || (SOURCE_ENGINE == SE_BLADE) \ || (SOURCE_ENGINE == SE_CSGO) return true; diff --git a/extensions/sdkhooks/takedamageinfohack.cpp b/extensions/sdkhooks/takedamageinfohack.cpp index 9c8d572a..0fdb076b 100644 --- a/extensions/sdkhooks/takedamageinfohack.cpp +++ b/extensions/sdkhooks/takedamageinfohack.cpp @@ -88,7 +88,7 @@ CTakeDamageInfoHack::CTakeDamageInfoHack( CBaseEntity *pInflictor, CBaseEntity * m_flRadius = 0.0f; #endif -#if SOURCE_ENGINE == SE_INSURGENCY || SOURCE_ENGINE == SE_CSGO +#if SOURCE_ENGINE == SE_INSURGENCY || SOURCE_ENGINE == SE_DOI || SOURCE_ENGINE == SE_CSGO m_iDamagedOtherPlayers = 0; m_iObjectsPenetrated = 0; m_uiBulletID = 0; diff --git a/extensions/sdktools/vcaller.cpp b/extensions/sdktools/vcaller.cpp index 45d8e4bd..7a0c3113 100644 --- a/extensions/sdktools/vcaller.cpp +++ b/extensions/sdktools/vcaller.cpp @@ -140,6 +140,7 @@ static cell_t PrepSDKCall_SetSignature(IPluginContext *pContext, const cell_t *p || SOURCE_ENGINE == SE_NUCLEARDAWN \ || SOURCE_ENGINE == SE_BLADE \ || SOURCE_ENGINE == SE_INSURGENCY \ + || SOURCE_ENGINE == SE_DOI \ || SOURCE_ENGINE == SE_CSGO s_call_addr = memutils->ResolveSymbol(handle, &sig[1]); #else diff --git a/extensions/sdktools/vglobals.cpp b/extensions/sdktools/vglobals.cpp index daa6aa07..76e90fbb 100644 --- a/extensions/sdktools/vglobals.cpp +++ b/extensions/sdktools/vglobals.cpp @@ -217,9 +217,10 @@ void GetIServer() || SOURCE_ENGINE == SE_CSS \ || SOURCE_ENGINE == SE_SDK2013 \ || SOURCE_ENGINE == SE_BMS \ + || SOURCE_ENGINE == SE_DOI \ || SOURCE_ENGINE == SE_INSURGENCY -#if SOURCE_ENGINE != SE_INSURGENCY +#if SOURCE_ENGINE != SE_INSURGENCY && SOURCE_ENGINE != SE_DOI if (g_SMAPI->GetEngineFactory(false)("VEngineServer022", nullptr)) #endif // !SE_INSURGENCY { diff --git a/gamedata/core.games/master.games.txt b/gamedata/core.games/master.games.txt index 6aa5f03b..6cda7526 100644 --- a/gamedata/core.games/master.games.txt +++ b/gamedata/core.games/master.games.txt @@ -93,6 +93,7 @@ "engine.insurgency.txt" { "engine" "insurgency" + "engine" "doi" // #cheating #yolo } "game.dinodday.txt" diff --git a/gamedata/sdkhooks.games/master.games.txt b/gamedata/sdkhooks.games/master.games.txt index a2ead1cb..70d45eef 100644 --- a/gamedata/sdkhooks.games/master.games.txt +++ b/gamedata/sdkhooks.games/master.games.txt @@ -59,6 +59,7 @@ "engine.insurgency.txt" { "engine" "insurgency" + "engine" "doi" // #cheating #yolo } /* diff --git a/gamedata/sdktools.games/master.games.txt b/gamedata/sdktools.games/master.games.txt index 60784a45..1b807a10 100644 --- a/gamedata/sdktools.games/master.games.txt +++ b/gamedata/sdktools.games/master.games.txt @@ -88,6 +88,7 @@ "engine.insurgency.txt" { "engine" "insurgency" + "engine" "doi" // #cheating #yolo } "game.tf.txt" diff --git a/loader/loader.cpp b/loader/loader.cpp index cf0ac50d..48389445 100644 --- a/loader/loader.cpp +++ b/loader/loader.cpp @@ -76,6 +76,7 @@ #define FILENAME_1_6_ND "sourcemod.2.nd" PLATFORM_EXT #define FILENAME_1_6_BLADE "sourcemod.2.blade" PLATFORM_EXT #define FILENAME_1_6_INSURGENCY "sourcemod.2.insurgency" PLATFORM_EXT +#define FILENAME_1_6_DOI "sourcemod.2.doi" PLATFORM_EXT #define FILENAME_1_6_CONTAGION "sourcemod.2.contagion" PLATFORM_EXT #define FILENAME_1_6_BMS "sourcemod.2.bms" PLATFORM_EXT @@ -321,6 +322,11 @@ DLL_EXPORT METAMOD_PLUGIN *CreateInterface_MMS(const MetamodVersionInfo *mvi, co filename = FILENAME_1_6_INSURGENCY; break; } + case SOURCE_ENGINE_DOI: + { + filename = FILENAME_1_6_DOI; + break; + } default: { return NULL; diff --git a/plugins/include/halflife.inc b/plugins/include/halflife.inc index 6c6aa95c..fd6344db 100644 --- a/plugins/include/halflife.inc +++ b/plugins/include/halflife.inc @@ -89,6 +89,7 @@ enum EngineVersion Engine_Insurgency, /**< Insurgency (2013 Retail version)*/ Engine_Contagion, /**< Contagion */ Engine_BlackMesa, /**< Black Mesa Multiplayer */ + Engine_DOI, /**< Day of Infamy */ }; enum FindMapResult diff --git a/plugins/nextmap.sp b/plugins/nextmap.sp index d32c1649..99da4069 100644 --- a/plugins/nextmap.sp +++ b/plugins/nextmap.sp @@ -57,6 +57,8 @@ public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max char game[128]; GetGameFolderName(game, sizeof(game)); + EngineVersion engine = GetEngineVersion(); + if (StrEqual(game, "left4dead", false) || StrEqual(game, "dystopia", false) || StrEqual(game, "synergy", false) @@ -65,7 +67,8 @@ public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max || StrEqual(game, "swarm", false) || StrEqual(game, "bms", false) || StrEqual(game, "reactivedrop", false) - || GetEngineVersion() == Engine_Insurgency) + || engine == Engine_Insurgency + || engine == Engine_DOI) { strcopy(error, err_max, "Nextmap is incompatible with this game"); return APLRes_SilentFailure; diff --git a/public/sample_ext/AMBuildScript b/public/sample_ext/AMBuildScript index 98559352..291cce9b 100644 --- a/public/sample_ext/AMBuildScript +++ b/public/sample_ext/AMBuildScript @@ -33,13 +33,13 @@ PossibleSDKs = { 'swarm': SDK('HL2SDK-SWARM', '2.swarm', '16', 'ALIENSWARM', WinOnly, 'swarm'), 'bgt': SDK('HL2SDK-BGT', '2.bgt', '4', 'BLOODYGOODTIME', WinOnly, 'bgt'), 'eye': SDK('HL2SDK-EYE', '2.eye', '5', 'EYE', WinOnly, 'eye'), - 'csgo': SDK('HL2SDKCSGO', '2.csgo', '20', 'CSGO', WinLinuxMac, 'csgo'), - 'dota': SDK('HL2SDKDOTA', '2.dota', '21', 'DOTA', [], 'dota'), + 'csgo': SDK('HL2SDKCSGO', '2.csgo', '21', 'CSGO', WinLinuxMac, 'csgo'), 'portal2': SDK('HL2SDKPORTAL2', '2.portal2', '17', 'PORTAL2', [], 'portal2'), 'blade': SDK('HL2SDKBLADE', '2.blade', '18', 'BLADE', WinLinux, 'blade'), 'insurgency': SDK('HL2SDKINSURGENCY', '2.insurgency', '19', 'INSURGENCY', WinLinuxMac, 'insurgency'), 'contagion': SDK('HL2SDKCONTAGION', '2.contagion', '14', 'CONTAGION', WinOnly, 'contagion'), 'bms': SDK('HL2SDKBMS', '2.bms', '10', 'BMS', WinLinux, 'bms'), + 'doi': SDK('HL2SDKDOI', '2.doi', '20', 'DOI', WinLinuxMac, 'doi'), } def ResolveEnvPath(env, folder): @@ -342,10 +342,10 @@ class ExtensionConfig(object): # For everything after Swarm, this needs to be defined for entity networking # to work properly with sendprop value changes. - if sdk.name in ['blade', 'insurgency', 'csgo', 'dota']: + if sdk.name in ['blade', 'insurgency', 'doi', 'csgo']: compiler.defines += ['NETWORK_VARS_ENABLED'] - if sdk.name in ['css', 'hl2dm', 'dods', 'sdk2013', 'bms', 'tf2', 'l4d', 'nucleardawn', 'l4d2', 'dota']: + if sdk.name in ['css', 'hl2dm', 'dods', 'sdk2013', 'bms', 'tf2', 'l4d', 'nucleardawn', 'l4d2']: if builder.target_platform in ['linux', 'mac']: compiler.defines += ['NO_HOOK_MALLOC', 'NO_MALLOC_OVERRIDE'] @@ -380,14 +380,14 @@ class ExtensionConfig(object): compiler.Dep(os.path.join(lib_folder, 'mathlib_i486.a')) ] - if sdk.name in ['blade', 'insurgency', 'csgo', 'dota']: + if sdk.name in ['blade', 'insurgency', 'doi', 'csgo']: compiler.postlink += [compiler.Dep(os.path.join(lib_folder, 'interfaces_i486.a'))] dynamic_libs = [] if builder.target_platform == 'linux': - if sdk.name in ['css', 'hl2dm', 'dods', 'tf2', 'sdk2013', 'bms', 'nucleardawn', 'l4d2', 'insurgency']: + if sdk.name in ['css', 'hl2dm', 'dods', 'tf2', 'sdk2013', 'bms', 'nucleardawn', 'l4d2', 'insurgency', 'doi']: dynamic_libs = ['libtier0_srv.so', 'libvstdlib_srv.so'] - elif sdk.name in ['l4d', 'blade', 'insurgency', 'csgo', 'dota']: + elif sdk.name in ['l4d', 'blade', 'insurgency', 'doi', 'csgo']: dynamic_libs = ['libtier0.so', 'libvstdlib.so'] else: dynamic_libs = ['tier0_i486.so', 'vstdlib_i486.so'] @@ -396,7 +396,7 @@ class ExtensionConfig(object): dynamic_libs = ['libtier0.dylib', 'libvstdlib.dylib'] elif builder.target_platform == 'windows': libs = ['tier0', 'tier1', 'vstdlib', 'mathlib'] - if sdk.name in ['swarm', 'blade', 'insurgency', 'csgo', 'dota']: + if sdk.name in ['swarm', 'blade', 'insurgency', 'doi', 'csgo']: libs.append('interfaces') for lib in libs: lib_path = os.path.join(sdk.path, 'lib', 'public', lib) + '.lib'