From 3277026f492d8ff74a53f542b4de96e33bf08d49 Mon Sep 17 00:00:00 2001 From: Erik Onarheim Date: Tue, 17 Dec 2024 19:07:37 -0600 Subject: [PATCH] fix: collision crash, guard invalid separation --- CHANGELOG.md | 2 +- src/engine/Collision/Colliders/CollisionJumpTable.ts | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 78eacd500..5f47356c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). ### Fixed -- +- Fixed CollidePolygonPolygon crash with some defense against invalid separation ### Updates diff --git a/src/engine/Collision/Colliders/CollisionJumpTable.ts b/src/engine/Collision/Colliders/CollisionJumpTable.ts index 72883930f..aec114017 100644 --- a/src/engine/Collision/Colliders/CollisionJumpTable.ts +++ b/src/engine/Collision/Colliders/CollisionJumpTable.ts @@ -253,6 +253,10 @@ export const CollisionJumpTable = { } } + if (!separation.localSide || !separation.localAxis || !separation.axis) { + return []; + } + // Clip incident side by the perpendicular lines at each end of the reference side // https://en.wikipedia.org/wiki/Sutherland%E2%80%93Hodgman_algorithm const referenceSide = separation.localSide.transform(toIncidentFrame);