core/HalfLife2.cpp
changeset 1581 2562512b4a44
parent 1547 78abc407c8a3
child 1690 7cc4f79a0416
     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  }