Skip to content

Commit 3077bec

Browse files
committed
Split CMapMigrations::OnEntitySpawned into pre/post
1 parent ed2c286 commit 3077bec

4 files changed

Lines changed: 12 additions & 8 deletions

File tree

src/cs2fixes.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1191,7 +1191,7 @@ void CS2Fixes::Hook_SetGameSpawnGroupMgr(IGameSpawnGroupMgr* pSpawnGroupMgr)
11911191
void CS2Fixes::Hook_Spawn(int nCount, const EntitySpawnInfo_t* pInfo)
11921192
{
11931193
for (int i = 0; i < nCount; i++)
1194-
g_pMapMigrations->OnEntitySpawned(pInfo[i].m_pEntity->m_pInstance, pInfo[i].m_pKeyValues);
1194+
g_pMapMigrations->OnEntitySpawned_Pre(reinterpret_cast<CBaseEntity*>(pInfo[i].m_pEntity->m_pInstance), pInfo[i].m_pKeyValues);
11951195
}
11961196

11971197
float g_fTeleportXAngle;

src/entitylistener.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include "entityclass.h"
2727
#include "entwatch.h"
2828
#include "gameconfig.h"
29+
#include "mapmigrations.h"
2930
#include "plat.h"
3031

3132
CEntityListener* g_pEntityListener = nullptr;
@@ -43,6 +44,7 @@ void CEntityListener::OnEntitySpawned(CEntityInstance* pEntity)
4344
reinterpret_cast<CBaseEntity*>(pEntity)->SetCollisionGroup(COLLISION_GROUP_DEBRIS);
4445

4546
EntityHandler_OnEntitySpawned(reinterpret_cast<CBaseEntity*>(pEntity));
47+
g_pMapMigrations->OnEntitySpawned_Post(reinterpret_cast<CBaseEntity*>(pEntity));
4648

4749
if (g_cvarEnableEntWatch.Get())
4850
EW_OnEntitySpawned(pEntity);

src/mapmigrations.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,17 @@ void CMapMigrations::OnRoundPrestart()
5050
m_vecEquippedWeapons.clear();
5151
}
5252

53-
void CMapMigrations::OnEntitySpawned(CEntityInstance* pEntity, const CEntityKeyValues* pKeyValues)
53+
void CMapMigrations::OnEntitySpawned_Pre(CBaseEntity* pEntity, const CEntityKeyValues* pKeyValues)
5454
{
55-
CBaseEntity* pBaseEntity = (CBaseEntity*)pEntity;
56-
5755
// Stupid workaround for CEntityKeyValues being inaccessible after entity spawn
5856
// We need access to this in 2026-01-21 rendermode migrations when called from UpdateMapUpdateTime
59-
if (pBaseEntity->AsBaseModelEntity() && V_StringToInt32(pKeyValues->GetString("rendermode"), -1, NULL, NULL, PARSING_FLAG_SKIP_WARNING) == -1)
60-
m_vecModelEntitiesUsingRendermodeEnum.push_back(pBaseEntity->GetHandle());
57+
if (pEntity->AsBaseModelEntity() && V_StringToInt32(pKeyValues->GetString("rendermode"), -1, NULL, NULL, PARSING_FLAG_SKIP_WARNING) == -1)
58+
m_vecModelEntitiesUsingRendermodeEnum.push_back(pEntity->GetHandle());
59+
}
6160

62-
RunMigrations(pBaseEntity);
61+
void CMapMigrations::OnEntitySpawned_Post(CBaseEntity* pEntity)
62+
{
63+
RunMigrations(pEntity);
6364
}
6465

6566
void CMapMigrations::OnEquipWeapon(CBasePlayerWeapon* pWeapon)

src/mapmigrations.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ class CMapMigrations
5454
public:
5555
void ApplyGameSettings(KeyValues* pKV);
5656
void OnRoundPrestart();
57-
void OnEntitySpawned(CEntityInstance* pEntity, const CEntityKeyValues* pKeyValues);
57+
void OnEntitySpawned_Pre(CBaseEntity* pEntity, const CEntityKeyValues* pKeyValues);
58+
void OnEntitySpawned_Post(CBaseEntity* pEntity);
5859
void OnEquipWeapon(CBasePlayerWeapon* pWeapon);
5960
void RunMigrations(CBaseEntity* pEntity);
6061
void Migrations_20260121(CBaseEntity* pEntity);

0 commit comments

Comments
 (0)