From 5c8d995e7f50f74570b968f7a771df2e5772b776 Mon Sep 17 00:00:00 2001 From: JoePfeiffer Date: Mon, 24 Oct 2022 10:11:26 -0600 Subject: [PATCH] restore apogeeAltitude member variable to keep track of apogee. It turns out this wasn't quite redundant before; setting it included a call to MathUtil.max() to make sure it wasn't 0. --- .../sf/openrocket/gui/simulation/SimulationRunDialog.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/swing/src/net/sf/openrocket/gui/simulation/SimulationRunDialog.java b/swing/src/net/sf/openrocket/gui/simulation/SimulationRunDialog.java index ba7aee53d..44416bf24 100644 --- a/swing/src/net/sf/openrocket/gui/simulation/SimulationRunDialog.java +++ b/swing/src/net/sf/openrocket/gui/simulation/SimulationRunDialog.java @@ -270,6 +270,7 @@ public class SimulationRunDialog extends JDialog { private final int index; private final double burnoutTimeEstimate; private volatile double burnoutVelocity; + private volatile double apogeeAltitude; private final CustomExpressionSimulationListener exprListener; @@ -368,13 +369,14 @@ public class SimulationRunDialog extends JDialog { // Past apogee, switch to landing if (simulationStage == -1 && status.getRocketVelocity().z < 0) { simulationStage++; - log.debug("CHANGING to simulationStage " + simulationStage + ", apogee=" + simulationMaxAltitude[index]); + apogeeAltitude = MathUtil.max(simulationMaxAltitude[index], 1); + log.debug("CHANGING to simulationStage " + simulationStage + ", apogee=" + apogeeAltitude); } // >= 0 Landing. z-position from apogee to zero // TODO: MEDIUM: several stages - log.debug("simulationStage landing (" + simulationStage + "): alt=" + status.getRocketPosition().z + " apogee=" + simulationMaxAltitude[index]); - setSimulationProgress(MathUtil.map(status.getRocketPosition().z, simulationMaxAltitude[index], 0, APOGEE_PROGRESS, 1.0)); + log.debug("simulationStage landing (" + simulationStage + "): alt=" + status.getRocketPosition().z + " apogee=" + apogeeAltitude); + setSimulationProgress(MathUtil.map(status.getRocketPosition().z, apogeeAltitude, 0, APOGEE_PROGRESS, 1.0)); updateProgress(); }