From affd3c6baa9505328a804263434b14ee0aba1b3f Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Sun, 20 Dec 2020 12:39:44 +0200 Subject: buildings directory --- src/buildings/Building.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/buildings/Building.cpp (limited to 'src/buildings/Building.cpp') 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); +} -- cgit v1.2.3