From 16d7ce7f1fbb8eb43417294fc52faa6f59a94faa Mon Sep 17 00:00:00 2001 From: JoePfeiffer Date: Mon, 27 Jul 2020 11:59:25 -0600 Subject: [PATCH] Fixes Issue #718 Reset rocket's relative position when its absolute position is reset. Make sure rocket has lifted off before setting launch rod as cleared. --- .../sf/openrocket/simulation/BasicEventSimulationEngine.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/src/net/sf/openrocket/simulation/BasicEventSimulationEngine.java b/core/src/net/sf/openrocket/simulation/BasicEventSimulationEngine.java index da54cc483..f952404ae 100644 --- a/core/src/net/sf/openrocket/simulation/BasicEventSimulationEngine.java +++ b/core/src/net/sf/openrocket/simulation/BasicEventSimulationEngine.java @@ -162,6 +162,7 @@ public class BasicEventSimulationEngine implements SimulationEngine { // Avoid sinking into ground before liftoff if (relativePosition.z < 0) { currentStatus.setRocketPosition(origin); + relativePosition = Coordinate.ZERO; currentStatus.setRocketVelocity(originVelocity); } // Detect lift-off @@ -181,7 +182,8 @@ public class BasicEventSimulationEngine implements SimulationEngine { } // Check for launch guide clearance - if (!currentStatus.isLaunchRodCleared() && + if (currentStatus.isLiftoff() && + !currentStatus.isLaunchRodCleared() && relativePosition.length() > currentStatus.getSimulationConditions().getLaunchRodLength()) { addEvent(new FlightEvent(FlightEvent.Type.LAUNCHROD, currentStatus.getSimulationTime(), null)); }