From e4039cc16ce463b2c50509d783fb179ca0bd226a Mon Sep 17 00:00:00 2001 From: RandomityGuy <31925790+RandomityGuy@users.noreply.github.com> Date: Sun, 29 Mar 2026 18:08:55 +0100 Subject: [PATCH] attempt fix camera --- src/CameraController.hx | 5 +++-- src/Marble.hx | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/CameraController.hx b/src/CameraController.hx index 0632ae0e..89e59022 100644 --- a/src/CameraController.hx +++ b/src/CameraController.hx @@ -626,9 +626,10 @@ class CameraController extends Object { && (firstHit == null || (rayCastOrigin.distance(result.point) < firstHitDistance))) { firstHit = result; firstHitDistance = rayCastOrigin.distance(result.point); - processedShapes.push(result.object); } } + if (firstHit != null) + processedShapes.push(firstHit.object); if (firstHit != null) { if (firstHitDistance < CameraDistance) { @@ -641,7 +642,7 @@ class CameraController extends Object { var dist = plane.distance(camera.pos.toPoint()); if (dist >= closeness) - break; + continue; camera.pos = projected.toVector().add(normal.multiply(-closeness)); diff --git a/src/Marble.hx b/src/Marble.hx index 0b750a49..4794b376 100644 --- a/src/Marble.hx +++ b/src/Marble.hx @@ -1380,7 +1380,8 @@ class Marble extends GameObject { var currentFinalPos = position.add(relVel.multiply(finalT)); // localpos.add(relLocalVel.multiply(finalT)); surfaceScratch.resize(0); - @:privateAccess obj.grid.boundingSearch(boundThing, surfaceScratch); + if (@:privateAccess obj.grid != null) + @:privateAccess obj.grid.boundingSearch(boundThing, surfaceScratch); var surfaces = surfaceScratch; for (surf in surfaces) {