From 189b4f5a18ac70ed9b65fff71c986b787f339359 Mon Sep 17 00:00:00 2001 From: RandomityGuy <31925790+RandomityGuy@users.noreply.github.com> Date: Sat, 2 Nov 2024 14:20:31 +0530 Subject: [PATCH] hunt: respawn camera fixes --- src/modes/HuntMode.hx | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/modes/HuntMode.hx b/src/modes/HuntMode.hx index 8876de84..a692e681 100644 --- a/src/modes/HuntMode.hx +++ b/src/modes/HuntMode.hx @@ -527,6 +527,27 @@ class HuntMode extends NullMode { return level.mission.qualifyTime; } + override function onRespawn(marble:Marble) { + if (marble.controllable && activeGemSpawnGroup.length != 0) { + var gemAvg = new Vector(); + for (gi in activeGemSpawnGroup) { + var g = gemSpawnPoints[gi]; + gemAvg = gemAvg.add(g.boundingBox.getCenter().toVector()); + } + gemAvg.scale(1 / activeGemSpawnGroup.length); + var delta = gemAvg.sub(marble.getAbsPos().getPosition()); + var gravFrame = level.getOrientationQuat(0).toMatrix(); + var v1 = gravFrame.front(); + var v2 = gravFrame.right(); + var deltaRot = new Vector(delta.dot(v2), delta.dot(v1)); + if (deltaRot.length() >= 0.001) { + var ang = Math.atan2(deltaRot.x, deltaRot.y); + marble.camera.CameraYaw = ang; + marble.camera.nextCameraYaw = ang; + } + } + } + override function onRestart() { setupGems(); points = 0;