diff --git a/Source/Engine/Level/Actors/StaticModel.cpp b/Source/Engine/Level/Actors/StaticModel.cpp index 07ff609bd..d85088a69 100644 --- a/Source/Engine/Level/Actors/StaticModel.cpp +++ b/Source/Engine/Level/Actors/StaticModel.cpp @@ -400,13 +400,13 @@ void StaticModel::Draw(RenderContextBatch& renderContextBatch) bool StaticModel::IntersectsItself(const Ray& ray, Real& distance, Vector3& normal) { bool result = false; - if (Model != nullptr && Model->IsLoaded()) { Mesh* mesh; - result = Model->Intersects(ray, _transform, distance, normal, &mesh); + Matrix world; + GetLocalToWorldMatrix(world); + result = Model->Intersects(ray, world, distance, normal, &mesh); } - return result; } diff --git a/Source/Engine/Utilities/RectPack.h b/Source/Engine/Utilities/RectPack.h index 5bef82c14..974295c0a 100644 --- a/Source/Engine/Utilities/RectPack.h +++ b/Source/Engine/Utilities/RectPack.h @@ -142,7 +142,8 @@ struct RectPack template void Free(Args&&...args) { - ASSERT(IsUsed); + if (!IsUsed) + return; IsUsed = false; ((NodeType*)this)->OnFree(Forward(args)...); }