1
0
mirror of https://github.com/alliedmodders/metamod-source.git synced 2025-01-18 07:52:32 +01:00

Added separate build for Orange Box Valve engine (bug 4084, r=dvander).

Also extended MetamodVersionInfo with a game_dir member for getting the game name/directory.
And bumped METAMOD_PLAPI_VERSION to 15 for the above.
This commit is contained in:
Scott Ehlert 2009-10-29 16:23:25 -05:00
parent 562da82efe
commit 9408b525ac
11 changed files with 248 additions and 24 deletions

View File

@ -41,9 +41,10 @@
#define SOURCE_ENGINE_ORANGEBOX 3 /**< Orange Box Source Engine (third major SDK) */
#define SOURCE_ENGINE_LEFT4DEAD 4 /**< Left 4 Dead */
#define SOURCE_ENGINE_DARKMESSIAH 5 /**< Dark Messiah Multiplayer (based on original engine) */
#define SOURCE_ENGINE_ORANGEBOXVALVE 6 /**< Orange Box Source Engine for Valve games (TF2/DOD:S) */
#define SOURCE_ENGINE_LEFT4DEAD2 7 /**< Left 4 Dead 2 */
#define METAMOD_PLAPI_VERSION 14 /**< Version of this header file */
#define METAMOD_PLAPI_VERSION 15 /**< Version of this header file */
#define METAMOD_PLAPI_NAME "ISmmPlugin" /**< Name of the plugin interface */
namespace SourceMM
@ -110,6 +111,7 @@ struct MetamodVersionInfo
int pl_min; /**< Plugin API minimum version */
int pl_max; /**< Plugin API maximum version */
int source_engine; /**< Source Engine version (SOURCE_* constants) */
const char *game_dir; /**< Game directory name */
};
/**

View File

@ -3,6 +3,7 @@
SRCDS_BASE = ~/srcds
HL2SDK_OB = ../../hl2sdk-ob
HL2SDK_OB_VALVE = ../../hl2sdk-ob-valve
HL2SDK_L4D = ../../hl2sdk-l4d
HL2SDK_L4D2 = ../../hl2sdk-l4d2
@ -44,6 +45,16 @@ ifeq "$(ENGINE)" "orangebox"
BINARY = metamod.2.ep2.so
override ENGSET = true
endif
ifeq "$(ENGINE)" "orangeboxvalve"
HL2SDK = $(HL2SDK_OB_VALVE)
HL2PUB = $(HL2SDK)/public
HL2LIB = $(HL2SDK)/lib/linux
CFLAGS += -DSOURCE_ENGINE=4
INCLUDE += -I$(HL2SDK)/public/game/server
SRCDS = $(SRCDS_BASE)/orangebox
BINARY = metamod.2.ep2v.so
override ENGSET = true
endif
ifeq "$(ENGINE)" "left4dead"
HL2SDK = $(HL2SDK_L4D)
HL2PUB = $(HL2SDK)/public
@ -65,7 +76,7 @@ ifeq "$(ENGINE)" "left4dead2"
override ENGSET = true
endif
CFLAGS += -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_LEFT4DEAD=5 -DSE_LEFT4DEAD2=6
CFLAGS += -DSE_DARKMESSIAH=2 -DSE_ORANGEBOX=3 -DSE_ORANGEBOXVALVE=4 -DSE_LEFT4DEAD=5 -DSE_LEFT4DEAD2=6
ifeq "$(ENGINE)" "left4dead2"
LINK += $(HL2LIB)/tier1_i486.a vstdlib_linux.so tier0_linux.so -static-libgcc
@ -123,7 +134,8 @@ all: check
check:
if [ "$(ENGSET)" = "false" ]; then \
echo "You must supply one of the following values for ENGINE: left4dead2, left4dead or orangebox"; \
echo "You must supply one of the following values for ENGINE:"; \
echo "left4dead2, left4dead, orangeboxvalve or orangebox"; \
exit 1; \
fi

View File

@ -117,6 +117,8 @@ bool Command_Meta(IMetamodSourceCommandInfo *info)
CONMSG(" Engine: Left 4 Dead (2008)\n");
#elif SOURCE_ENGINE == SE_ORANGEBOX
CONMSG(" Engine: Episode 2 (Orange Box, 2007)\n");
#elif SOURCE_ENGINE == SE_ORANGEBOXVALVE
CONMSG(" Engine: Episode 2 (Valve Orange Box, 2009)\n");
#elif SOURCE_ENGINE == SE_DARKMESSIAH
CONMSG(" Engine: Dark Messiah (2006)\n");
#else

View File

@ -1,8 +1,8 @@
/**
* vim: set ts=4 :
* vim: set ts=4 sw=4 tw=99 noet :
* ======================================================
* Metamod:Source
* Copyright (C) 2004-2008 AlliedModders LLC and authors.
* Copyright (C) 2004-2009 AlliedModders LLC and authors.
* All rights reserved.
* ======================================================
*
@ -21,8 +21,6 @@
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*
* Version: $Id$
*/
#include <stdio.h>
@ -62,7 +60,8 @@ MetamodVersionInfo GlobVersionInfo =
SH_IMPL_VERSION,
PLAPI_MIN_VERSION,
METAMOD_PLAPI_VERSION,
SOURCE_ENGINE_UNKNOWN
SOURCE_ENGINE_UNKNOWN,
NULL
};
CPluginManager::CPluginManager()
@ -437,6 +436,11 @@ CPluginManager::CPlugin *CPluginManager::_Load(const char *file, PluginId source
{
GlobVersionInfo.source_engine = g_Metamod.GetSourceEngineBuild();
}
if (GlobVersionInfo.game_dir == NULL)
{
GlobVersionInfo.game_dir = strrchr(g_Metamod.GetBaseDir(), PATH_SEP_CHAR) + 1;
Msg("OH MY GIDDY AUNT: %s\n", GlobVersionInfo.game_dir);
}
/* Build path information */
char file_path[256];
@ -456,6 +460,14 @@ CPluginManager::CPlugin *CPluginManager::_Load(const char *file, PluginId source
info.pl_path = file_path;
pl->m_API = fnLoad(&GlobVersionInfo, &info);
#if SOURCE_ENGINE == SE_ORANGEBOXVALVE
/* For plugin compat - try loading again using original OB if OB-Valve has failed */
if (pl->m_API == NULL)
{
GlobVersionInfo.source_engine = SOURCE_ENGINE_ORANGEBOX;
pl->m_API = fnLoad(&GlobVersionInfo, &info);
}
#endif
pl->m_UnloadFn = (METAMOD_FN_UNLOAD)dlsym(pl->m_Lib, "UnloadInterface_MMS");
}

View File

@ -9,10 +9,12 @@ Global
Debug - Left 4 Dead 2|Win32 = Debug - Left 4 Dead 2|Win32
Debug - Left 4 Dead|Win32 = Debug - Left 4 Dead|Win32
Debug - Orange Box|Win32 = Debug - Orange Box|Win32
Debug - Orange Box Valve|Win32 = Debug - Orange Box Valve|Win32
Release - Dark Messiah|Win32 = Release - Dark Messiah|Win32
Release - Left 4 Dead 2|Win32 = Release - Left 4 Dead 2|Win32
Release - Left 4 Dead|Win32 = Release - Left 4 Dead|Win32
Release - Orange Box|Win32 = Release - Orange Box|Win32
Release - Orange Box Valve|Win32 = Release - Orange Box Valve|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F7D47743-73B3-49B5-9D76-2333C5DFD565}.Debug - Dark Messiah|Win32.ActiveCfg = Debug - Dark Messiah|Win32
@ -23,6 +25,8 @@ Global
{F7D47743-73B3-49B5-9D76-2333C5DFD565}.Debug - Left 4 Dead|Win32.Build.0 = Debug - Left 4 Dead|Win32
{F7D47743-73B3-49B5-9D76-2333C5DFD565}.Debug - Orange Box|Win32.ActiveCfg = Debug - Orange Box|Win32
{F7D47743-73B3-49B5-9D76-2333C5DFD565}.Debug - Orange Box|Win32.Build.0 = Debug - Orange Box|Win32
{F7D47743-73B3-49B5-9D76-2333C5DFD565}.Debug - Orange Box Valve|Win32.ActiveCfg = Debug - Orange Box Valve|Win32
{F7D47743-73B3-49B5-9D76-2333C5DFD565}.Debug - Orange Box Valve|Win32.Build.0 = Debug - Orange Box Valve|Win32
{F7D47743-73B3-49B5-9D76-2333C5DFD565}.Release - Dark Messiah|Win32.ActiveCfg = Release - Dark Messiah|Win32
{F7D47743-73B3-49B5-9D76-2333C5DFD565}.Release - Dark Messiah|Win32.Build.0 = Release - Dark Messiah|Win32
{F7D47743-73B3-49B5-9D76-2333C5DFD565}.Release - Left 4 Dead 2|Win32.ActiveCfg = Release - Left 4 Dead 2|Win32
@ -31,6 +35,8 @@ Global
{F7D47743-73B3-49B5-9D76-2333C5DFD565}.Release - Left 4 Dead|Win32.Build.0 = Release - Left 4 Dead|Win32
{F7D47743-73B3-49B5-9D76-2333C5DFD565}.Release - Orange Box|Win32.ActiveCfg = Release - Orange Box|Win32
{F7D47743-73B3-49B5-9D76-2333C5DFD565}.Release - Orange Box|Win32.Build.0 = Release - Orange Box|Win32
{F7D47743-73B3-49B5-9D76-2333C5DFD565}.Release - Orange Box Valve|Win32.ActiveCfg = Release - Orange Box Valve|Win32
{F7D47743-73B3-49B5-9D76-2333C5DFD565}.Release - Orange Box Valve|Win32.Build.0 = Release - Orange Box Valve|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -40,7 +40,7 @@
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D SE_DARKMESSIAH=2 /D SE_ORANGEBOX=3 /D SE_LEFT4DEAD=5 /D SE_LEFT4DEAD2=6"
AdditionalOptions="/D SE_DARKMESSIAH=2 /D SE_ORANGEBOX=3 /D SE_ORANGEBOXVALVE=4 /D SE_LEFT4DEAD=5 /D SE_LEFT4DEAD2=6"
Optimization="0"
AdditionalIncludeDirectories="..;..\..\loader;..\sourcehook;&quot;$(HL2SDKOB)\public&quot;;&quot;$(HL2SDKOB)\public\engine&quot;;&quot;$(HL2SDKOB)\public\game\server&quot;;&quot;$(HL2SDKOB)\public\tier0&quot;;&quot;$(HL2SDKOB)\public\tier1&quot;;&quot;$(HL2SDKOB)\public\vstdlib&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SOURCEMM_EXPORTS;_CRT_SECURE_NO_DEPRECATE;SOURCE_ENGINE=3"
@ -124,7 +124,7 @@
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D SE_DARKMESSIAH=2 /D SE_ORANGEBOX=3 /D SE_LEFT4DEAD=5 /D SE_LEFT4DEAD2=6"
AdditionalOptions="/D SE_DARKMESSIAH=2 /D SE_ORANGEBOX=3 /D SE_ORANGEBOXVALVE=4 /D SE_LEFT4DEAD=5 /D SE_LEFT4DEAD2=6"
Optimization="3"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
@ -187,6 +187,177 @@
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug - Orange Box Valve|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D SE_DARKMESSIAH=2 /D SE_ORANGEBOX=3 /D SE_ORANGEBOXVALVE=4 /D SE_LEFT4DEAD=5 /D SE_LEFT4DEAD2=6"
Optimization="0"
AdditionalIncludeDirectories="..;..\..\loader;..\sourcehook;&quot;$(HL2SDKOBVALVE)\public&quot;;&quot;$(HL2SDKOBVALVE)\public\engine&quot;;&quot;$(HL2SDKOBVALVE)\public\game\server&quot;;&quot;$(HL2SDKOBVALVE)\public\tier0&quot;;&quot;$(HL2SDKOBVALVE)\public\tier1&quot;;&quot;$(HL2SDKOBVALVE)\public\vstdlib&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SOURCEMM_EXPORTS;_CRT_SECURE_NO_DEPRECATE;SOURCE_ENGINE=4"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
RuntimeTypeInfo="false"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="BINARY_NAME=\&quot;$(TargetFileName)\&quot;"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="&quot;$(HL2SDKOBVALVE)\lib\public\tier0.lib&quot; &quot;$(HL2SDKOBVALVE)\lib\public\tier1.lib&quot; &quot;$(HL2SDKOBVALVE)\lib\public\vstdlib.lib&quot;"
OutputFile="$(OutDir)/metamod.2.ep2v.dll"
LinkIncremental="2"
IgnoreDefaultLibraryNames="libc.lib;libcd.lib;libcmt.lib"
GenerateDebugInformation="true"
ProgramDatabaseFile="$(OutDir)/sourcemm.pdb"
SubSystem="2"
EnableCOMDATFolding="1"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
ImportLibrary="$(OutDir)/sourcemm.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release - Orange Box Valve|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D SE_DARKMESSIAH=2 /D SE_ORANGEBOX=3 /D SE_ORANGEBOXVALVE=4 /D SE_LEFT4DEAD=5 /D SE_LEFT4DEAD2=6"
Optimization="3"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
AdditionalIncludeDirectories="..;..\..\loader;..\sourcehook;&quot;$(HL2SDKOBVALVE)\public&quot;;&quot;$(HL2SDKOBVALVE)\public\engine&quot;;&quot;$(HL2SDKOBVALVE)\public\game\server&quot;;&quot;$(HL2SDKOBVALVE)\public\tier0&quot;;&quot;$(HL2SDKOBVALVE)\public\tier1&quot;;&quot;$(HL2SDKOBVALVE)\public\vstdlib&quot;"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SOURCEMM_EXPORTS;_CRT_SECURE_NO_DEPRECATE;SOURCE_ENGINE=4"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="0"
BufferSecurityCheck="false"
RuntimeTypeInfo="false"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="BINARY_NAME=\&quot;$(TargetFileName)\&quot;"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="&quot;$(HL2SDKOBVALVE)\lib\public\tier0.lib&quot; &quot;$(HL2SDKOBVALVE)\lib\public\tier1.lib&quot; &quot;$(HL2SDKOBVALVE)\lib\public\vstdlib.lib&quot;"
OutputFile="$(OutDir)/metamod.2.ep2v.dll"
LinkIncremental="1"
IgnoreDefaultLibraryNames="libc.lib;libcd.lib;libcmtd.lib"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
ImportLibrary="$(OutDir)/sourcemm.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug - Left 4 Dead|Win32"
OutputDirectory="$(ConfigurationName)"
@ -211,7 +382,7 @@
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D SE_DARKMESSIAH=2 /D SE_ORANGEBOX=3 /D SE_LEFT4DEAD=5 /D SE_LEFT4DEAD2=6"
AdditionalOptions="/D SE_DARKMESSIAH=2 /D SE_ORANGEBOX=3 /D SE_ORANGEBOXVALVE=4 /D SE_LEFT4DEAD=5 /D SE_LEFT4DEAD2=6"
Optimization="0"
AdditionalIncludeDirectories="..;..\..\loader;..\sourcehook;&quot;$(HL2SDKL4D)\public&quot;;&quot;$(HL2SDKL4D)\public\engine&quot;;&quot;$(HL2SDKL4D)\public\game\server&quot;;&quot;$(HL2SDKL4D)\public\tier0&quot;;&quot;$(HL2SDKL4D)\public\tier1&quot;;&quot;$(HL2SDKL4D)\public\vstdlib&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SOURCEMM_EXPORTS;_CRT_SECURE_NO_DEPRECATE;SOURCE_ENGINE=5"
@ -295,7 +466,7 @@
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D SE_DARKMESSIAH=2 /D SE_ORANGEBOX=3 /D SE_LEFT4DEAD=5 /D SE_LEFT4DEAD2=6"
AdditionalOptions="/D SE_DARKMESSIAH=2 /D SE_ORANGEBOX=3 /D SE_ORANGEBOXVALVE=4 /D SE_LEFT4DEAD=5 /D SE_LEFT4DEAD2=6"
Optimization="3"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
@ -382,7 +553,7 @@
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D SE_DARKMESSIAH=2 /D SE_ORANGEBOX=3 /D SE_LEFT4DEAD=5 /D SE_LEFT4DEAD2=6"
AdditionalOptions="/D SE_DARKMESSIAH=2 /D SE_ORANGEBOX=3 /D SE_ORANGEBOXVALVE=4 /D SE_LEFT4DEAD=5 /D SE_LEFT4DEAD2=6"
Optimization="0"
AdditionalIncludeDirectories="..;..\..\loader;..\sourcehook;&quot;$(HL2SDKL4D2)\public&quot;;&quot;$(HL2SDKL4D2)\public\engine&quot;;&quot;$(HL2SDKL4D2)\public\game\server&quot;;&quot;$(HL2SDKL4D2)\public\tier0&quot;;&quot;$(HL2SDKL4D2)\public\tier1&quot;;&quot;$(HL2SDKL4D2)\public\vstdlib&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SOURCEMM_EXPORTS;_CRT_SECURE_NO_DEPRECATE;SOURCE_ENGINE=6"
@ -466,7 +637,7 @@
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D SE_DARKMESSIAH=2 /D SE_ORANGEBOX=3 /D SE_LEFT4DEAD=5 /D SE_LEFT4DEAD2=6"
AdditionalOptions="/D SE_DARKMESSIAH=2 /D SE_ORANGEBOX=3 /D SE_ORANGEBOXVALVE=4 /D SE_LEFT4DEAD=5 /D SE_LEFT4DEAD2=6"
Optimization="3"
FavorSizeOrSpeed="1"
OmitFramePointers="true"
@ -553,7 +724,7 @@
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D SE_DARKMESSIAH=2 /D SE_ORANGEBOX=3 /D SE_LEFT4DEAD=5 /D SE_LEFT4DEAD2=6"
AdditionalOptions="/D SE_DARKMESSIAH=2 /D SE_ORANGEBOX=3 /D SE_ORANGEBOXVALVE=4 /D SE_LEFT4DEAD=5 /D SE_LEFT4DEAD2=6"
Optimization="0"
AdditionalIncludeDirectories="..;..\..\loader;..\sourcehook;&quot;$(HL2SDK-DARKM)\public&quot;;&quot;$(HL2SDK-DARKM)\public\engine&quot;;&quot;$(HL2SDK-DARKM)\public\dlls&quot;;&quot;$(HL2SDK-DARKM)\public\tier0&quot;;&quot;$(HL2SDK-DARKM)\public\tier1&quot;;&quot;$(HL2SDK-DARKM)\public\vstdlib&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SOURCEMM_EXPORTS;_CRT_SECURE_NO_DEPRECATE;SOURCE_ENGINE=2"
@ -637,7 +808,7 @@
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/D SE_DARKMESSIAH=2 /D SE_ORANGEBOX=3 /D SE_LEFT4DEAD=5 /D SE_LEFT4DEAD2=6"
AdditionalOptions="/D SE_DARKMESSIAH=2 /D SE_ORANGEBOX=3 /D SE_ORANGEBOXVALVE=4 /D SE_LEFT4DEAD=5 /D SE_LEFT4DEAD2=6"
Optimization="3"
FavorSizeOrSpeed="1"
OmitFramePointers="true"

View File

@ -389,6 +389,8 @@ int BaseProvider::DetermineSourceEngine(const char *game)
return SOURCE_ENGINE_LEFT4DEAD;
#elif SOURCE_ENGINE == SE_ORANGEBOX
return SOURCE_ENGINE_ORANGEBOX;
#elif SOURCE_ENGINE == SE_ORANGEBOXVALVE
return SOURCE_ENGINE_ORANGEBOXVALVE;
#elif SOURCE_ENGINE == SE_DARKMESSIAH
return SOURCE_ENGINE_DARKMESSIAH;
#else

View File

@ -72,6 +72,7 @@ static const char *backend_names[] =
"1.ep1",
"2.darkm",
"2.ep2",
"2.ep2v",
"2.l4d",
"2.l4d2"
};
@ -255,6 +256,10 @@ mm_DetermineBackend(QueryValveInterface engineFactory, const char *game_name)
if (engineFactory("VEngineCvar004", NULL) != NULL &&
engineFactory("VModelInfoServer002", NULL) != NULL)
{
if (strcmp(game_name, "tf") == 0 || strcmp(game_name, "dod") == 0)
{
return MMBackend_Episode2Valve;
}
return MMBackend_Episode2;
}
/* Check for Episode One/Old Engine */

View File

@ -62,6 +62,7 @@ enum MetamodBackend
MMBackend_Episode1 = 0,
MMBackend_DarkMessiah,
MMBackend_Episode2,
MMBackend_Episode2Valve,
MMBackend_Left4Dead,
MMBackend_Left4Dead2,
MMBackend_UNKNOWN

View File

@ -17,6 +17,7 @@ Build('loader', 'mm_loader', '', 'server', 'full', 'both');
Build('loader', 'mm_loader', 'Left4Dead2', 'server_linux', '', 'linux');
Build('core-legacy', 'mm_core-legacy', '', 'metamod.1.ep1', '', 'both');
Build('core', 'mm_core', 'OrangeBox', 'metamod.2.ep2', '', 'both');
Build('core', 'mm_core', 'OrangeBoxValve', 'metamod.2.ep2v', '', 'both');
Build('core', 'mm_core', 'Left4Dead', 'metamod.2.l4d', '', 'both');
Build('core', 'mm_core', 'Left4Dead2', 'metamod.2.l4d2', '', 'both');
Build('core', 'mm_core', 'DarkMessiah', 'metamod.2.darkm', '', 'windows');
@ -92,6 +93,10 @@ sub BuildWindows
{
$param = "Release - Orange Box";
}
if ($build eq "OrangeBoxValve")
{
$param = "Release - Orange Box Valve";
}
elsif ($build eq "Left4Dead")
{
$param = "Release - Left 4 Dead";
@ -136,6 +141,11 @@ sub BuildLinux
$param = "ENGINE=orangebox";
$file .= '.orangebox';
}
if ($build eq "OrangeBoxValve")
{
$param = "ENGINE=orangeboxvalve";
$file .= '.orangeboxvalve';
}
elsif ($build eq "Left4Dead")
{
$param = "ENGINE=left4dead";

View File

@ -24,6 +24,7 @@ symstore("loader\\msvc9\\server.*", $version);
symstore("core-legacy\\msvc9\\Release\\metamod.1.ep1.*", $version);
symstore("core\\msvc9\\Release - Dark Messiah\\metamod.2.darkm.*", $version);
symstore("core\\msvc9\\Release - Orange Box\\metamod.2.ep2.*", $version);
symstore("core\\msvc9\\Release - Orange Box Valve\\metamod.2.ep2v.*", $version);
symstore("core\\msvc9\\Release - Left 4 Dead\\metamod.2.l4d.*", $version);
symstore("core\\msvc9\\Release - Left 4 Dead 2\\metamod.2.l4d2.*", $version);