ConvexFeature: Fix collision list object references

Turns out ConvexFeature::collide assumes the second round of testVertex calls will only add one entry to the collision list at a time and was erroneously only changing the last object and material reference.
This commit is contained in:
vitawrap 2025-12-28 17:46:46 +01:00 committed by GitHub
parent e3df069570
commit f394db4b36
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -111,13 +111,14 @@ bool ConvexFeature::collide(ConvexFeature& cf,CollisionList* cList, F32 tol)
U32 storeCount = cList->getCount();
testVertex(*vert,cList,true, tol);
// Fix up last reference. material and object are copied from this rather
// Fix up added references. material and object are copied from this rather
// than the object we're colliding against.
if (storeCount != cList->getCount())
while (storeCount < cList->getCount())
{
Collision &col = (*cList)[cList->getCount() - 1];
Collision &col = (*cList)[storeCount];
col.material = cf.material;
col.object = cf.mObject;
++storeCount;
}
vert++;
}