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