1.1 --- a/core/HalfLife2.cpp Mon Oct 15 21:12:52 2007 +0000
1.2 +++ b/core/HalfLife2.cpp Mon Oct 15 22:15:22 2007 +0000
1.3 @@ -38,7 +38,6 @@
1.4 #include <compat_wrappers.h>
1.5
1.6 CHalfLife2 g_HL2;
1.7 -bool g_IsOriginalEngine = false;
1.8 ConVar *sv_lan = NULL;
1.9
1.10 namespace SourceHook
1.11 @@ -90,15 +89,21 @@
1.12 }
1.13
1.14 CSharedEdictChangeInfo *g_pSharedChangeInfo = NULL;
1.15 +bool is_original_engine = false;
1.16
1.17 void CHalfLife2::OnSourceModStartup(bool late)
1.18 {
1.19 /* The Ship currently is the only known game to use an older version of the engine */
1.20 +#if defined METAMOD_PLAPI_VERSION
1.21 + if (g_SMAPI->GetSourceEngineBuild() == SOURCE_ENGINE_ORIGINAL)
1.22 +#else
1.23 if (strcasecmp(g_SourceMod.GetGameFolderName(), "ship") == 0)
1.24 +#endif
1.25 {
1.26 - /* :TODO: Better engine versioning - perhaps something added to SourceMM? */
1.27 - g_IsOriginalEngine = true;
1.28 - } else if (!g_pSharedChangeInfo) {
1.29 + is_original_engine = true;
1.30 + }
1.31 + else if (g_pSharedChangeInfo == NULL)
1.32 + {
1.33 g_pSharedChangeInfo = engine->GetSharedEdictChangeInfo();
1.34 }
1.35 }
1.36 @@ -111,6 +116,13 @@
1.37 g_ShareSys.AddInterface(NULL, this);
1.38 }
1.39
1.40 +#if !defined METAMOD_PLAPI_VERSION
1.41 +bool CHalfLife2::IsOriginalEngine()
1.42 +{
1.43 + return is_original_engine;
1.44 +}
1.45 +#endif
1.46 +
1.47 IChangeInfoAccessor *CBaseEdict::GetChangeAccessor()
1.48 {
1.49 return engine->GetChangeAccessor( (const edict_t *)this );
1.50 @@ -254,7 +266,7 @@
1.51
1.52 void CHalfLife2::SetEdictStateChanged(edict_t *pEdict, unsigned short offset)
1.53 {
1.54 - if (!g_IsOriginalEngine)
1.55 + if (g_pSharedChangeInfo != NULL)
1.56 {
1.57 if (offset)
1.58 {
1.59 @@ -262,7 +274,9 @@
1.60 } else {
1.61 pEdict->StateChanged();
1.62 }
1.63 - } else {
1.64 + }
1.65 + else
1.66 + {
1.67 pEdict->m_fStateFlags |= FL_EDICT_CHANGED;
1.68 }
1.69 }