diff options
author | Sergeanur <s.anureev@yandex.ua> | 2020-12-20 11:39:44 +0100 |
---|---|---|
committer | Sergeanur <s.anureev@yandex.ua> | 2020-12-20 11:39:44 +0100 |
commit | affd3c6baa9505328a804263434b14ee0aba1b3f (patch) | |
tree | 8c2bbbfd0d6e1c02740532662b93d99284f463b1 /src/buildings/Building.cpp | |
parent | fixes to last HUD commits (diff) | |
download | re3-affd3c6baa9505328a804263434b14ee0aba1b3f.tar re3-affd3c6baa9505328a804263434b14ee0aba1b3f.tar.gz re3-affd3c6baa9505328a804263434b14ee0aba1b3f.tar.bz2 re3-affd3c6baa9505328a804263434b14ee0aba1b3f.tar.lz re3-affd3c6baa9505328a804263434b14ee0aba1b3f.tar.xz re3-affd3c6baa9505328a804263434b14ee0aba1b3f.tar.zst re3-affd3c6baa9505328a804263434b14ee0aba1b3f.zip |
Diffstat (limited to 'src/buildings/Building.cpp')
-rw-r--r-- | src/buildings/Building.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/buildings/Building.cpp b/src/buildings/Building.cpp new file mode 100644 index 00000000..00bbb21e --- /dev/null +++ b/src/buildings/Building.cpp @@ -0,0 +1,22 @@ +#include "common.h" + +#include "Building.h" +#include "Streaming.h" +#include "Pools.h" + +void *CBuilding::operator new(size_t sz) { return CPools::GetBuildingPool()->New(); } +void CBuilding::operator delete(void *p, size_t sz) { CPools::GetBuildingPool()->Delete((CBuilding*)p); } + +void +CBuilding::ReplaceWithNewModel(int32 id) +{ + DeleteRwObject(); + + if (CModelInfo::GetModelInfo(m_modelIndex)->GetNumRefs() == 0) + CStreaming::RemoveModel(m_modelIndex); + m_modelIndex = id; + + if(bIsBIGBuilding) + if(m_level == LEVEL_GENERIC || m_level == CGame::currLevel) + CStreaming::RequestModel(id, STREAMFLAGS_DONT_REMOVE); +} |