diff --git a/core/src/net/sf/openrocket/file/openrocket/savers/FinSetSaver.java b/core/src/net/sf/openrocket/file/openrocket/savers/FinSetSaver.java index ef6c25212..5da1cd877 100644 --- a/core/src/net/sf/openrocket/file/openrocket/savers/FinSetSaver.java +++ b/core/src/net/sf/openrocket/file/openrocket/savers/FinSetSaver.java @@ -3,6 +3,8 @@ package net.sf.openrocket.file.openrocket.savers; import java.util.List; import java.util.Locale; +import net.sf.openrocket.rocketcomponent.FinSet; +import net.sf.openrocket.rocketcomponent.position.AxialMethod; import net.sf.openrocket.util.MathUtil; public class FinSetSaver extends ExternalComponentSaver { @@ -28,6 +30,22 @@ public class FinSetSaver extends ExternalComponentSaver { elements.add("" + fins.getTabHeight() + ""); elements.add("" + fins.getTabLength() + ""); + // TODO: delete this when no backward compatibility with OR 15.03 is needed anymore + String offset = "center"; + double offsetVal = fins.getTabOffset(); + switch (fins.getTabOffsetMethod()) { + case TOP: + offset = "front"; + break; + case BOTTOM: + offset = "end"; + break; + case MIDDLE: + offset = "center"; + break; + } + elements.add("" + + offsetVal + ""); elements.add("" + fins.getTabOffset() + ""); diff --git a/core/src/net/sf/openrocket/file/openrocket/savers/RocketComponentSaver.java b/core/src/net/sf/openrocket/file/openrocket/savers/RocketComponentSaver.java index 176993f18..97dfd97eb 100644 --- a/core/src/net/sf/openrocket/file/openrocket/savers/RocketComponentSaver.java +++ b/core/src/net/sf/openrocket/file/openrocket/savers/RocketComponentSaver.java @@ -83,6 +83,10 @@ public class RocketComponentSaver { // no-op. Instance counts are set via named cluster configurations } else { emitInteger(elements, "instancecount", c.getInstanceCount()); + // TODO: delete this when no backward compatibility with OR 15.03 is needed anymore + if (c instanceof FinSet || c instanceof TubeFinSet) { + emitInteger(elements, "fincount", c.getInstanceCount()); + } } if (c instanceof LineInstanceable) { @@ -103,6 +107,13 @@ public class RocketComponentSaver { final String angleMethod = anglePos.getAngleMethod().name().toLowerCase(Locale.ENGLISH); final double angleOffset = anglePos.getAngleOffset()*180.0/Math.PI; elements.add("" + angleOffset + ""); + // TODO: delete this when no backward compatibility with OR 15.03 is needed anymore + if (c instanceof FinSet || c instanceof TubeFinSet) { + elements.add("" + angleOffset + ""); + } + else if (!(c instanceof RailButton)) { + elements.add("" + angleOffset + ""); + } } // Save position unless "AFTER" @@ -110,6 +121,8 @@ public class RocketComponentSaver { // The type names are currently equivalent to the enum names except for case. String axialMethod = c.getAxialMethod().name().toLowerCase(Locale.ENGLISH); elements.add("" + c.getAxialOffset() + ""); + // TODO: delete this when no backward compatibility with OR 15.03 is needed anymore + elements.add("" + c.getAxialOffset() + ""); } // Overrides