diff --git a/core/resources/l10n/messages.properties b/core/resources/l10n/messages.properties
index c770f3471..9c07ea077 100644
--- a/core/resources/l10n/messages.properties
+++ b/core/resources/l10n/messages.properties
@@ -387,7 +387,7 @@ simedtdlg.checkbox.ttip.Intowind2 = A zero launchrod angle will point directly u
simedtdlg.checkbox.ttip.Intowind3 = A negative launchrod angle will launch with the wind.
If you uncheck this box you can point the launchrod any direction you please.
simedtdlg.checkbox.ttip.Intowind4 = If you uncheck this box you can point the launchrod any direction you please.
simedtdlg.lbl.Angle = Angle:
-simedtdlg.lbl.ttip.Angle = The angle of the launch rod from vertical.
Positive angles point upwind.
+simedtdlg.lbl.ttip.Angle = The angle of the launch rod from vertical.
Positive angles point North of launch.
simedtdlg.lbl.Direction = Direction:
simedtdlg.lbl.ttip.Direction1 = Direction of the launch rod relative to the wind.
simedtdlg.lbl.ttip.Direction2 = -
@@ -1643,6 +1643,7 @@ FlightDataType.TYPE_VELOCITY_TOTAL = Total velocity
FlightDataType.TYPE_ACCELERATION_TOTAL = Total acceleration
FlightDataType.TYPE_POSITION_X = Position East of launch
FlightDataType.TYPE_POSITION_Y = Position North of launch
+FlightDataType.TYPE_UPWIND = Position upwind
FlightDataType.TYPE_POSITION_XY = Lateral distance
FlightDataType.TYPE_POSITION_DIRECTION = Lateral direction
FlightDataType.TYPE_VELOCITY_XY = Lateral velocity
diff --git a/core/resources/l10n/messages_cs.properties b/core/resources/l10n/messages_cs.properties
index 535fe403d..e6b4bd9c1 100644
--- a/core/resources/l10n/messages_cs.properties
+++ b/core/resources/l10n/messages_cs.properties
@@ -1253,9 +1253,10 @@ FlightDataType.TYPE_VELOCITY_Z = Svisl
FlightDataType.TYPE_ACCELERATION_Z = Svislé zrychlení
FlightDataType.TYPE_VELOCITY_TOTAL = Celková rychlost
FlightDataType.TYPE_ACCELERATION_TOTAL = Celkové zrychlení
-FlightDataType.TYPE_POSITION_X = Pozice proti vetru
-FlightDataType.TYPE_POSITION_Y = Pozice po vetru
+FlightDataType.TYPE_POSITION_X = Pozice v\u00fdchodn\u011b od startu
+FlightDataType.TYPE_POSITION_Y = Pozice severn\u011b od startu
FlightDataType.TYPE_POSITION_XY = Bocní vzdálenost
+FlightDataType.TYPE_UPWIND = Pozice proti vetru
FlightDataType.TYPE_POSITION_DIRECTION = Bocní smer
FlightDataType.TYPE_VELOCITY_XY = Bocní rychlost
FlightDataType.TYPE_ACCELERATION_XY = Bocní zrychlení
diff --git a/core/resources/l10n/messages_de.properties b/core/resources/l10n/messages_de.properties
index 93456531b..1a19e171a 100644
--- a/core/resources/l10n/messages_de.properties
+++ b/core/resources/l10n/messages_de.properties
@@ -1312,8 +1312,9 @@ FlightDataType.TYPE_VELOCITY_Z = Vertikalgeschwindigkeit
FlightDataType.TYPE_ACCELERATION_Z = Vertikalbeschleunigung
FlightDataType.TYPE_VELOCITY_TOTAL = Gesamtgeschwindigkeit
FlightDataType.TYPE_ACCELERATION_TOTAL = Gesamtbeschleunigung
-FlightDataType.TYPE_POSITION_X = Position upwind
-FlightDataType.TYPE_POSITION_Y = Position parallel to wind
+FlightDataType.TYPE_POSITION_X = Position East of launch
+FlightDataType.TYPE_POSITION_Y = Position North of launch
+FlightDataType.TYPE_UPWIND = Position upwind
FlightDataType.TYPE_POSITION_XY = Lateral distance
FlightDataType.TYPE_POSITION_DIRECTION = Lateral direction
FlightDataType.TYPE_VELOCITY_XY = Lateral velocity
diff --git a/core/resources/l10n/messages_es.properties b/core/resources/l10n/messages_es.properties
index 15416c61d..854454004 100644
--- a/core/resources/l10n/messages_es.properties
+++ b/core/resources/l10n/messages_es.properties
@@ -310,9 +310,10 @@ FlightDataType.TYPE_PITCH_DAMPING_MOMENT_COEFF = Coeficiente de amortiguaci\u00f
FlightDataType.TYPE_PITCH_MOMENT_COEFF = Coeficiente del momento del cabeceo
FlightDataType.TYPE_PITCH_RATE = Tasa de cabeceo
FlightDataType.TYPE_POSITION_DIRECTION = Direcci\u00f3n lateral
-FlightDataType.TYPE_POSITION_X = Posici\u00f3n contra el viento
+FlightDataType.TYPE_POSITION_X = Posici\u00f3n al este del lanzamiento
FlightDataType.TYPE_POSITION_XY = Distancia lateral
-FlightDataType.TYPE_POSITION_Y = Posici\u00f3n a favor del viento
+FlightDataType.TYPE_POSITION_Y = Posici\u00f3n al norte del lanzamiento
+FlightDataType.TYPE_UPWIND = Posici\u00f3n contra el viento
FlightDataType.TYPE_PRESSURE_DRAG_COEFF = Presi\u00f3n del Coeficiente de rozamiento
FlightDataType.TYPE_MOTOR_MASS = Masa del propulsor
FlightDataType.TYPE_REFERENCE_AREA = \u00c1rea de referencia
diff --git a/core/resources/l10n/messages_fr.properties b/core/resources/l10n/messages_fr.properties
index 181838f72..ff7e21f78 100644
--- a/core/resources/l10n/messages_fr.properties
+++ b/core/resources/l10n/messages_fr.properties
@@ -301,9 +301,10 @@ FlightDataType.TYPE_PITCH_DAMPING_MOMENT_COEFF = Coefficient d'amortissement de
FlightDataType.TYPE_PITCH_MOMENT_COEFF = Coefficient de moment de tangage
FlightDataType.TYPE_PITCH_RATE = Taux de tangage
FlightDataType.TYPE_POSITION_DIRECTION = Direction lat\u00E9rale
-FlightDataType.TYPE_POSITION_X = Position contre le vent
+FlightDataType.TYPE_POSITION_X = Position \u00e0 l'est du lancement
FlightDataType.TYPE_POSITION_XY = Distance lat\u00E9rale
-FlightDataType.TYPE_POSITION_Y = Position parall\u00E8le au vent
+FlightDataType.TYPE_POSITION_Y = Position au nord du lancement
+FlightDataType.TYPE_UPWIND = Position contre le vent
FlightDataType.TYPE_PRESSURE_DRAG_COEFF = Coefficient de tra\u00EEn\u00E9e de pression
FlightDataType.TYPE_MOTOR_MASS = Masse du propergol
FlightDataType.TYPE_REFERENCE_AREA = Surface de r\u00E9f\u00E9rence
diff --git a/core/resources/l10n/messages_it.properties b/core/resources/l10n/messages_it.properties
index 99c664f0d..3b3480173 100644
--- a/core/resources/l10n/messages_it.properties
+++ b/core/resources/l10n/messages_it.properties
@@ -1316,9 +1316,10 @@ FlightDataType.TYPE_VELOCITY_Z = Velocita' verticale
FlightDataType.TYPE_ACCELERATION_Z = Accelerazione verticale
FlightDataType.TYPE_VELOCITY_TOTAL = Velocita' totale
FlightDataType.TYPE_ACCELERATION_TOTAL = Accelerazione totale
-FlightDataType.TYPE_POSITION_X = Posizione sopravento
-FlightDataType.TYPE_POSITION_Y = Posizione parallela al vento
+FlightDataType.TYPE_POSITION_X = Posizione a est del lancio
+FlightDataType.TYPE_POSITION_Y = Posizione a nord di lancio
FlightDataType.TYPE_POSITION_XY = Distanza laterale
+FlightDataType.TYPE_UPWIND = Posizione sopravento
FlightDataType.TYPE_POSITION_DIRECTION = Direzione laterale
FlightDataType.TYPE_VELOCITY_XY = Velocita' laterale
FlightDataType.TYPE_ACCELERATION_XY = Accelerazione laterale
diff --git a/core/resources/l10n/messages_ja.properties b/core/resources/l10n/messages_ja.properties
index 09c788dc7..361172b3b 100644
--- a/core/resources/l10n/messages_ja.properties
+++ b/core/resources/l10n/messages_ja.properties
@@ -1374,8 +1374,9 @@ FlightDataType.TYPE_VELOCITY_Z = \u5782\u76F4\u65B9\u5411\u901F\u5EA6
FlightDataType.TYPE_ACCELERATION_Z = \u5782\u76F4\u65B9\u5411\u52A0\u901F\u5EA6
FlightDataType.TYPE_VELOCITY_TOTAL = Total \u901F\u5EA6
FlightDataType.TYPE_ACCELERATION_TOTAL = Total \u52A0\u901F\u5EA6
-FlightDataType.TYPE_POSITION_X = \u98A8\u4E0A\u65B9\u5411\u4F4D\u7F6E
-FlightDataType.TYPE_POSITION_Y = \u98A8\u3068\u5782\u76F4\u65B9\u5411\u4F4D\u7F6E
+FlightDataType.TYPE_POSITION_Y = \u98A8\u4E0A\u65B9\u5411\u4F4D\u7F6E
+FlightDataType.TYPE_POSITION_X = \u98A8\u3068\u5782\u76F4\u65B9\u5411\u4F4D\u7F6E
+FlightDataType.TYPE_UPWIND = \u98A8\u4E0A\u65B9\u5411\u4F4D\u7F6E
FlightDataType.TYPE_POSITION_XY = \u6C34\u5E73\u65B9\u5411\u8DDD\u96E2
FlightDataType.TYPE_POSITION_DIRECTION = \u6C34\u5E73\u65B9\u5411\u5411\u304D
FlightDataType.TYPE_VELOCITY_XY = \u901F\u5EA6\uFF08\u5074\u9762\uFF09
diff --git a/core/resources/l10n/messages_pl.properties b/core/resources/l10n/messages_pl.properties
index ac5384fa1..5c2c9a552 100644
--- a/core/resources/l10n/messages_pl.properties
+++ b/core/resources/l10n/messages_pl.properties
@@ -1257,8 +1257,9 @@
FlightDataType.TYPE_ACCELERATION_Z = Przyspieszenie pionowe
FlightDataType.TYPE_VELOCITY_TOTAL = Pr\u0119dko\u015B\u0107 ca\u0142kowita
FlightDataType.TYPE_ACCELERATION_TOTAL = Przyspieszenie ca\u0142kowite
- FlightDataType.TYPE_POSITION_X = Pozycja do nawietrznej
- FlightDataType.TYPE_POSITION_Y = Pozycja równoleg\u0142a do wiatru
+ FlightDataType.TYPE_POSITION_X = Pozycja na wsch\u00f3d od startu
+ FlightDataType.TYPE_POSITION_Y = Pozycja na p\u00f3\u0142noc od startu
+ FlightDataType.TYPE_UPWIND = Pozycja do nawietrznej
FlightDataType.TYPE_POSITION_XY = Odleg\u0142o\u015B\u0107 boczna
FlightDataType.TYPE_POSITION_DIRECTION = Kierunek boczny
FlightDataType.TYPE_VELOCITY_XY = Pr\u0119dko\u015B\u0107 boczna
diff --git a/core/resources/l10n/messages_pt.properties b/core/resources/l10n/messages_pt.properties
index fc1d3e0d4..f83bbda35 100644
--- a/core/resources/l10n/messages_pt.properties
+++ b/core/resources/l10n/messages_pt.properties
@@ -290,9 +290,10 @@ FlightDataType.TYPE_PITCH_DAMPING_MOMENT_COEFF = Coeficiente de arremesso de amo
FlightDataType.TYPE_PITCH_MOMENT_COEFF = Coeficiente de momento de Pitch
FlightDataType.TYPE_PITCH_RATE = Taxa de arremesso
FlightDataType.TYPE_POSITION_DIRECTION = Dire\u00e7\u00e3o lateral
-FlightDataType.TYPE_POSITION_X = Posi\u00e7\u00e3o a favor do vento
+FlightDataType.TYPE_POSITION_X = Posi\u00e7\u00e3o a Este do lan\u00e7amento
FlightDataType.TYPE_POSITION_XY = Dist\u00e2ncia lateral
-FlightDataType.TYPE_POSITION_Y = Posi\u00e7\u00e3o paralela ao vento
+FlightDataType.TYPE_POSITION_Y = Posi\u00e7\u00e3o Norte do lan\u00e7amento
+FlightDataType.TYPE_UPWIND = Posi\u00e7\u00e3o a favor do vento
FlightDataType.TYPE_PRESSURE_DRAG_COEFF = Coeficiente de arrasto de press\u00e3o
FlightDataType.TYPE_MOTOR_MASS = Massa do propelente
FlightDataType.TYPE_REFERENCE_AREA = \u00c1rea de refer\u00eancia
diff --git a/core/resources/l10n/messages_ru.properties b/core/resources/l10n/messages_ru.properties
index a60b361d5..7d10419b0 100644
--- a/core/resources/l10n/messages_ru.properties
+++ b/core/resources/l10n/messages_ru.properties
@@ -1466,8 +1466,9 @@ FlightDataType.TYPE_VELOCITY_Z = \u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043
FlightDataType.TYPE_ACCELERATION_Z = \u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435
FlightDataType.TYPE_VELOCITY_TOTAL = \u041e\u0431\u0449\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c
FlightDataType.TYPE_ACCELERATION_TOTAL = \u041e\u0431\u0449\u0435\u0435 \u0443\u0441\u043a\u043e\u0440\u0435\u043d\u0438\u0435
-FlightDataType.TYPE_POSITION_X = \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u0438\u0432 \u0432\u0435\u0442\u0440\u0430
-FlightDataType.TYPE_POSITION_Y = \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e \u0432\u0435\u0442\u0440\u0443
+FlightDataType.TYPE_POSITION_Y = \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u0438\u0432 \u0432\u0435\u0442\u0440\u0430
+FlightDataType.TYPE_POSITION_X = \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e \u0432\u0435\u0442\u0440\u0443
+FlightDataType.TYPE_UPWIND = \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0442\u0438\u0432 \u0432\u0435\u0442\u0440\u0430
FlightDataType.TYPE_POSITION_XY = \u0411\u043e\u043a\u043e\u0432\u0430\u044f \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u044f
FlightDataType.TYPE_POSITION_DIRECTION = \u0411\u043e\u043a\u043e\u0432\u043e\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435
FlightDataType.TYPE_VELOCITY_XY = \u0411\u043e\u043a\u043e\u0432\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c
diff --git a/core/resources/l10n/messages_uk_UA.properties b/core/resources/l10n/messages_uk_UA.properties
index ed4b301c9..d333269b7 100644
--- a/core/resources/l10n/messages_uk_UA.properties
+++ b/core/resources/l10n/messages_uk_UA.properties
@@ -1472,8 +1472,9 @@ FlightDataType.TYPE_VELOCITY_Z = Vertical velocity
FlightDataType.TYPE_ACCELERATION_Z = Vertical acceleration
FlightDataType.TYPE_VELOCITY_TOTAL = Total velocity
FlightDataType.TYPE_ACCELERATION_TOTAL = Total acceleration
-FlightDataType.TYPE_POSITION_X = Position upwind
-FlightDataType.TYPE_POSITION_Y = Position parallel to wind
+FlightDataType.TYPE_POSITION_X = Position East of launch
+FlightDataType.TYPE_POSITION_Y = Position North of launch
+FlightDataType.TYPE_UPWIND = Position upwind
FlightDataType.TYPE_POSITION_XY = Lateral distance
FlightDataType.TYPE_POSITION_DIRECTION = Lateral direction
FlightDataType.TYPE_VELOCITY_XY = Lateral velocity
diff --git a/core/resources/l10n/messages_zh_CN.properties b/core/resources/l10n/messages_zh_CN.properties
index 26b7181a4..1c11bcd99 100644
--- a/core/resources/l10n/messages_zh_CN.properties
+++ b/core/resources/l10n/messages_zh_CN.properties
@@ -326,9 +326,10 @@ FlightDataType.TYPE_PITCH_DAMPING_MOMENT_COEFF = \u4FEF\u4EF0\u963B\u5C3C\u7CFB\
FlightDataType.TYPE_PITCH_MOMENT_COEFF = \u4FEF\u4EF0\u529B\u77E9\u7CFB\u6570
FlightDataType.TYPE_PITCH_RATE = \u4FEF\u4EF0\u89D2\u901F\u5EA6
FlightDataType.TYPE_POSITION_DIRECTION = \u6C34\u5E73\u65B9\u5411
-FlightDataType.TYPE_POSITION_X = \u8FCE\u98CE\u4F4D\u7F6E
+FlightDataType.TYPE_POSITION_Y = \u8FCE\u98CE\u4F4D\u7F6E
FlightDataType.TYPE_POSITION_XY = \u6A2A\u5411\u8DE8\u8DDD
-FlightDataType.TYPE_POSITION_Y = \u5E73\u884C\u98CE\u4F4D\u7F6E
+FlightDataType.TYPE_POSITION_X = \u5E73\u884C\u98CE\u4F4D\u7F6E
+FlightDataType.TYPE_UPWIND = \u8FCE\u98CE\u4F4D\u7F6E
FlightDataType.TYPE_PRESSURE_DRAG_COEFF = \u538B\u5DEE\u963B\u529B\u7CFB\u6570
FlightDataType.TYPE_MOTOR_MASS = \u63A8\u8FDB\u5242\u8D28\u91CF
FlightDataType.TYPE_REFERENCE_AREA = \u53C2\u8003\u9762\u79EF
diff --git a/core/src/net/sf/openrocket/file/openrocket/importt/FlightDataBranchHandler.java b/core/src/net/sf/openrocket/file/openrocket/importt/FlightDataBranchHandler.java
index e8ea6b80f..88f90516e 100644
--- a/core/src/net/sf/openrocket/file/openrocket/importt/FlightDataBranchHandler.java
+++ b/core/src/net/sf/openrocket/file/openrocket/importt/FlightDataBranchHandler.java
@@ -7,11 +7,13 @@ import net.sf.openrocket.file.DocumentLoadingContext;
import net.sf.openrocket.file.simplesax.AbstractElementHandler;
import net.sf.openrocket.file.simplesax.ElementHandler;
import net.sf.openrocket.file.simplesax.PlainTextHandler;
+import net.sf.openrocket.l10n.Translator;
import net.sf.openrocket.simulation.FlightDataBranch;
import net.sf.openrocket.simulation.FlightDataType;
import net.sf.openrocket.simulation.FlightEvent;
import net.sf.openrocket.simulation.FlightEvent.Type;
import net.sf.openrocket.simulation.customexpression.CustomExpression;
+import net.sf.openrocket.startup.Application;
import net.sf.openrocket.unit.UnitGroup;
import org.slf4j.Logger;
@@ -25,6 +27,7 @@ class FlightDataBranchHandler extends AbstractElementHandler {
private static final Logger log = LoggerFactory.getLogger(FlightDataBranchHandler.class);
private final SingleSimulationHandler simHandler;
+ private static final Translator trans = Application.getTranslator();
public FlightDataBranchHandler(String name, String typeList, SingleSimulationHandler simHandler, DocumentLoadingContext context) {
this.simHandler = simHandler;
@@ -80,6 +83,11 @@ class FlightDataBranchHandler extends AbstractElementHandler {
return t;
}
}
+
+ // Replace deprecated 'Position upwind' with new 'Position North of launch' option
+ if (name.equals(trans.get("FlightDataType.TYPE_UPWIND"))) {
+ return FlightDataType.TYPE_POSITION_Y;
+ }
// Look in custom expressions
for (CustomExpression exp : simHandler.getDocument().getCustomExpressions()) {
diff --git a/core/src/net/sf/openrocket/simulation/FlightDataType.java b/core/src/net/sf/openrocket/simulation/FlightDataType.java
index 55240861e..ed561400f 100644
--- a/core/src/net/sf/openrocket/simulation/FlightDataType.java
+++ b/core/src/net/sf/openrocket/simulation/FlightDataType.java
@@ -57,9 +57,9 @@ public class FlightDataType implements Comparable {
//// Lateral position and motion
- //// Position upwind
+ //// Position East of launch
public static final FlightDataType TYPE_POSITION_X = newType(trans.get("FlightDataType.TYPE_POSITION_X"), "Px", UnitGroup.UNITS_DISTANCE, 30);
- //// Position parallel to wind
+ //// Position North of launch
public static final FlightDataType TYPE_POSITION_Y = newType(trans.get("FlightDataType.TYPE_POSITION_Y"), "Py", UnitGroup.UNITS_DISTANCE, 31);
//// Lateral distance
public static final FlightDataType TYPE_POSITION_XY = newType(trans.get("FlightDataType.TYPE_POSITION_XY"), "Pl", UnitGroup.UNITS_DISTANCE, 32);
diff --git a/core/test-writing/asimple.ork b/core/test-writing/asimple.ork
index a1305234f..34bce5c90 100644
--- a/core/test-writing/asimple.ork
+++ b/core/test-writing/asimple.ork
@@ -233,7 +233,7 @@
0.05
-
+
@@ -311,7 +311,7 @@
0.05
-
+
@@ -436,7 +436,7 @@
Recovery device deployment at high speed (24.1 m/s).
-
+
@@ -633,7 +633,7 @@
0.05
-
+
@@ -850,7 +850,7 @@
0.05
-
+
diff --git a/swing/src/net/sf/openrocket/gui/plot/SimulationPlot.java b/swing/src/net/sf/openrocket/gui/plot/SimulationPlot.java
index 76bb6a75c..00f6f0eee 100644
--- a/swing/src/net/sf/openrocket/gui/plot/SimulationPlot.java
+++ b/swing/src/net/sf/openrocket/gui/plot/SimulationPlot.java
@@ -157,6 +157,9 @@ public class SimulationPlot {
for (int i = 0; i < typeCount; i++) {
// Get info
FlightDataType type = filled.getType(i);
+ if (Objects.equals(type.getName(), "Position upwind")) {
+ type = FlightDataType.TYPE_POSITION_Y;
+ }
Unit unit = filled.getUnit(i);
int axis = filled.getAxis(i);
String name = getLabel(type, unit);