aboutsummaryrefslogtreecommitdiff
path: root/src/common/Collision/Models/ModelInstance.h
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-07-05 21:20:25 +0200
committerOvahlord <dreadkiller@gmx.de>2024-07-06 15:36:10 +0200
commitcaf4c02da82e868f7f77f4967d2cee2a5780828a (patch)
tree5c084c4301e0473f199712ba73056bb93ac8e7f3 /src/common/Collision/Models/ModelInstance.h
parent5acd3085501fb7ad4ad76ccec4f727e20869cacd (diff)
Core/Vmaps: Optimize loading vmaps
* Changed spawn id to BIH tree index mapping from generated on load to baked in tile files * Remove map holding model load counts and moved that to ModelInstance instead (cherry picked from commit 35a2d49971984bcab96ac64fc52b30a9a4e06ce3)
Diffstat (limited to 'src/common/Collision/Models/ModelInstance.h')
-rw-r--r--src/common/Collision/Models/ModelInstance.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/common/Collision/Models/ModelInstance.h b/src/common/Collision/Models/ModelInstance.h
index 78b07f11f4b..1621e1d052e 100644
--- a/src/common/Collision/Models/ModelInstance.h
+++ b/src/common/Collision/Models/ModelInstance.h
@@ -69,7 +69,7 @@ namespace VMAP
class TC_COMMON_API ModelInstance : public ModelMinimalData
{
public:
- ModelInstance() : iInvScale(0.0f), iModel(nullptr) { }
+ ModelInstance() : iInvScale(0.0f), iModel(nullptr), referencingTiles(0) { }
ModelInstance(ModelSpawn const& spawn, std::shared_ptr<WorldModel> model);
void setUnloaded() { iModel = nullptr; }
bool intersectRay(G3D::Ray const& pRay, float& pMaxDist, bool pStopAtFirstHit, ModelIgnoreFlags ignoreFlags) const;
@@ -77,10 +77,13 @@ namespace VMAP
bool GetLiquidLevel(G3D::Vector3 const& p, LocationInfo& info, float& liqHeight) const;
G3D::Matrix3 const& GetInvRot() const { return iInvRot; }
WorldModel const* getWorldModel() const { return iModel.get(); }
+ void AddTileReference() { ++referencingTiles; }
+ uint32 RemoveTileReference() { return --referencingTiles; }
protected:
G3D::Matrix3 iInvRot;
float iInvScale;
std::shared_ptr<WorldModel> iModel;
+ uint32 referencingTiles;
};
} // namespace VMAP