From bf8e67153eca06f88cc6f86b0370d1d13a21c59a Mon Sep 17 00:00:00 2001 From: Adam Jensen Date: Fri, 3 May 2024 00:31:42 +0100 Subject: [PATCH] virtual dtor for IDrawable --- cdcScene/IDrawable.h | 1 + cdcWorld/InstanceDrawable.cpp | 4 ++++ cdcWorld/InstanceDrawable.h | 1 + 3 files changed, 6 insertions(+) diff --git a/cdcScene/IDrawable.h b/cdcScene/IDrawable.h index 489714d..f2ac6bb 100644 --- a/cdcScene/IDrawable.h +++ b/cdcScene/IDrawable.h @@ -12,6 +12,7 @@ public: virtual void draw(Matrix *, float) = 0; // 1C virtual bool GetBoundingSphere(Vector *pCenter, float *pRadius) { return false; } // 2C virtual bool GetBoundingBox(Vector *pMin, Vector *pMax) { return false; } // 30 + virtual ~IDrawable() = default; // 38 }; } diff --git a/cdcWorld/InstanceDrawable.cpp b/cdcWorld/InstanceDrawable.cpp index f6d07db..5d8aa99 100644 --- a/cdcWorld/InstanceDrawable.cpp +++ b/cdcWorld/InstanceDrawable.cpp @@ -179,6 +179,10 @@ bool InstanceDrawable::GetBoundingBox(Vector *pMin, Vector *pMax) { return rm->getBoundingBox(*(Vector3*)pMin, *(Vector3*)pMax); } +InstanceDrawable::~InstanceDrawable() { + RemoveFromDirtyList(); +} + void InstanceDrawable::PrepareMatrixState(Matrix *matrix, dtp::Model *model, RenderModelInstance *rmi, bool force) { // line 1880 if (true || force) { auto boneCount = rmi->GetRenderMesh()->getBoneCount(); diff --git a/cdcWorld/InstanceDrawable.h b/cdcWorld/InstanceDrawable.h index 8fcb95d..289e54c 100644 --- a/cdcWorld/InstanceDrawable.h +++ b/cdcWorld/InstanceDrawable.h @@ -63,6 +63,7 @@ public: void draw(cdc::Matrix *, float) override; bool GetBoundingSphere(Vector *pCenter, float *pRadius) override; bool GetBoundingBox(Vector *pMin, Vector *pMax) override; + ~InstanceDrawable(); void PrepareMatrixState(Matrix*, dtp::Model*, RenderModelInstance*, bool force); void AddToDirtyList();