Eliminate need for s_pTempEnts gamedata on sdk2013 and soon css/dods/hl2dm (already on tf2).
This commit is contained in:
parent
0d69ce8b9a
commit
b8e4510f7e
@ -285,36 +285,46 @@ void TempEntityManager::Initialize()
|
|||||||
int offset;
|
int offset;
|
||||||
m_Loaded = false;
|
m_Loaded = false;
|
||||||
|
|
||||||
#if SOURCE_ENGINE == SE_TF2
|
#if SOURCE_ENGINE == SE_TF2 \
|
||||||
m_ListHead = servertools->GetTempEntList();
|
|| SOURCE_ENGINE == SE_DODS \
|
||||||
#else
|
|| SOURCE_ENGINE == SE_HL2DM \
|
||||||
/*
|
|| SOURCE_ENGINE == SE_CSS \
|
||||||
* First try to lookup s_pTempEntities directly for platforms with symbols.
|
|| SOURCE_ENGINE == SE_SDK2013
|
||||||
* If symbols aren't present (Windows or stripped Linux/Mac),
|
|
||||||
* attempt find via CBaseTempEntity ctor + offset
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Read our sigs and offsets from the config file */
|
if (g_SMAPI->GetServerFactory(false)("VSERVERTOOLS003", nullptr))
|
||||||
if (g_pGameConf->GetMemSig("s_pTempEntities", &addr) && addr)
|
|
||||||
{
|
{
|
||||||
|
m_ListHead = servertools->GetTempEntList();
|
||||||
/* Store the head of the TE linked list */
|
|
||||||
m_ListHead = *(void **)addr;
|
|
||||||
}
|
}
|
||||||
else if (g_pGameConf->GetMemSig("CBaseTempEntity", &addr) && addr)
|
else
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
if (!g_pGameConf->GetOffset("s_pTempEntities", &offset))
|
/*
|
||||||
|
* First try to lookup s_pTempEntities directly for platforms with symbols.
|
||||||
|
* If symbols aren't present (Windows or stripped Linux/Mac),
|
||||||
|
* attempt find via CBaseTempEntity ctor + offset
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Read our sigs and offsets from the config file */
|
||||||
|
if (g_pGameConf->GetMemSig("s_pTempEntities", &addr) && addr)
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Store the head of the TE linked list */
|
||||||
|
m_ListHead = *(void **) addr;
|
||||||
|
}
|
||||||
|
else if (g_pGameConf->GetMemSig("CBaseTempEntity", &addr) && addr)
|
||||||
|
{
|
||||||
|
if (!g_pGameConf->GetOffset("s_pTempEntities", &offset))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
/* Store the head of the TE linked list */
|
||||||
|
m_ListHead = **(void ***) ((unsigned char *) addr + offset);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/* Store the head of the TE linked list */
|
|
||||||
m_ListHead = **(void ***)((unsigned char *)addr + offset);
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#endif // == TF2
|
|
||||||
|
|
||||||
if (!g_pGameConf->GetOffset("GetTEName", &m_NameOffs))
|
if (!g_pGameConf->GetOffset("GetTEName", &m_NameOffs))
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user