diff --git a/core/HalfLife2.cpp b/core/HalfLife2.cpp index 6e5507b84..7eaf0da52 100644 --- a/core/HalfLife2.cpp +++ b/core/HalfLife2.cpp @@ -503,6 +503,26 @@ bool CHalfLife2::FindDataMapInfo(datamap_t *pMap, const char *offset, sm_datatab return true; } +void CHalfLife2::ClearDataTableCache() +{ + m_Maps.clear(); +} + +void CHalfLife2::ClearDataTableCache(datamap_t *pMap) +{ + m_Maps.removeIfExists(pMap); +} + +void CHalfLife2::ClearSendPropCache() +{ + m_Classes.clear(); +} + +bool CHalfLife2::ClearSendPropCache(const char *classname) +{ + return m_Classes.remove(classname); +} + void CHalfLife2::SetEdictStateChanged(edict_t *pEdict, unsigned short offset) { #if SOURCE_ENGINE != SE_DARKMESSIAH diff --git a/core/HalfLife2.h b/core/HalfLife2.h index 4c1d90a26..c33144b08 100644 --- a/core/HalfLife2.h +++ b/core/HalfLife2.h @@ -257,6 +257,11 @@ private: private: void InitLogicalEntData(); void InitCommandLine(); +public: + void CHalfLife2::ClearDataTableCache(); + void CHalfLife2::ClearDataTableCache(datamap_t *pMap); + void CHalfLife2::ClearSendPropCache(); + bool CHalfLife2::ClearSendPropCache(const char *classname); private: typedef ke::HashMap > DataTableMap;