From 05b43a2f419485c2a2d0184d7a55f9844595162a Mon Sep 17 00:00:00 2001 From: kruland2607 Date: Tue, 26 Mar 2013 16:09:48 -0500 Subject: [PATCH] Change FIXME - compute deal size to a TODO. It would be nice but not necessary. Fixed FIXME to test for flight configurations while determining file format version. --- .../file/openrocket/OpenRocketSaver.java | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/core/src/net/sf/openrocket/file/openrocket/OpenRocketSaver.java b/core/src/net/sf/openrocket/file/openrocket/OpenRocketSaver.java index 0fe403c0a..f066ef31c 100644 --- a/core/src/net/sf/openrocket/file/openrocket/OpenRocketSaver.java +++ b/core/src/net/sf/openrocket/file/openrocket/OpenRocketSaver.java @@ -18,10 +18,12 @@ import net.sf.openrocket.file.RocketSaver; import net.sf.openrocket.logging.LogHelper; import net.sf.openrocket.rocketcomponent.DeploymentConfiguration.DeployEvent; import net.sf.openrocket.rocketcomponent.FinSet; +import net.sf.openrocket.rocketcomponent.FlightConfigurableComponent; import net.sf.openrocket.rocketcomponent.MotorMount; import net.sf.openrocket.rocketcomponent.RecoveryDevice; import net.sf.openrocket.rocketcomponent.Rocket; import net.sf.openrocket.rocketcomponent.RocketComponent; +import net.sf.openrocket.rocketcomponent.Stage; import net.sf.openrocket.rocketcomponent.TubeCoupler; import net.sf.openrocket.simulation.FlightData; import net.sf.openrocket.simulation.FlightDataBranch; @@ -155,7 +157,7 @@ public class OpenRocketSaver extends RocketSaver { long size = 0; - // FIXME - estimate decals + // TODO - estimate decals // Size per component int componentCount = 0; @@ -228,7 +230,26 @@ public class OpenRocketSaver extends RocketSaver { if (c.getAppearance() != null) { return FILE_VERSION_DIVISOR + 6; } - // FIXME - test for flight configurations + if (c instanceof FlightConfigurableComponent) { + if (c instanceof MotorMount) { + MotorMount mmt = (MotorMount) c; + if (mmt.getIgnitionConfiguration().size() > 0) { + return FILE_VERSION_DIVISOR + 6; + } + } + if (c instanceof RecoveryDevice) { + RecoveryDevice recovery = (RecoveryDevice) c; + if (recovery.getDeploymentConfiguration().size() > 0) { + return FILE_VERSION_DIVISOR + 6; + } + } + if (c instanceof Stage) { + Stage stage = (Stage) c; + if (stage.getStageSeparationConfiguration().size() > 0) { + return FILE_VERSION_DIVISOR + 6; + } + } + } } // Search the rocket for any ComponentPresets (version 1.5)