From 2da78d80e580f1459bf6275abbb063cb87621178 Mon Sep 17 00:00:00 2001 From: Lorantine Date: Wed, 8 May 2024 22:43:14 +0200 Subject: [PATCH] Added support for system departure --- source/SystemEditor.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/source/SystemEditor.cpp b/source/SystemEditor.cpp index d1d1b8f..c113b74 100644 --- a/source/SystemEditor.cpp +++ b/source/SystemEditor.cpp @@ -438,6 +438,12 @@ void SystemEditor::RenderSystem() object->extraHyperArrivalDistance = arrival[0]; object->extraJumpArrivalDistance = fabs(arrival[1]); + double departure[2] = { object->hyperDepartureDistance, object->jumpDepartureDistance}; + if (ImGui::InputDouble2Ex("departure", departure)) + SetDirty(); + object->hyperDepartureDistance = departure[0]; + object->jumpDepartureDistance = fabs(departure[1]); + if(ImGui::TreeNode("attributes")) { set toAdd; @@ -1127,6 +1133,23 @@ void SystemEditor::WriteToFile(DataWriter &writer, const System *system) const writer.EndChild(); } } + if (!diff || system->hyperDepartureDistance != diff->hyperDepartureDistance + || system->jumpDepartureDistance != diff->jumpDepartureDistance) + { + if (system->hyperDepartureDistance == system->jumpDepartureDistance + && (diff || system->hyperDepartureDistance)) + writer.Write("departure", system->hyperDepartureDistance); + else if (system->hyperDepartureDistance != system->jumpDepartureDistance) + { + writer.Write("departure"); + writer.BeginChild(); + if ((!diff && system->hyperDepartureDistance) || system->hyperDepartureDistance != diff->hyperDepartureDistance) + writer.Write("link", system->hyperDepartureDistance); + if ((!diff && system->jumpDepartureDistance) || system->jumpDepartureDistance != diff->jumpDepartureDistance) + writer.Write("jump", system->jumpDepartureDistance); + writer.EndChild(); + } + } if((!diff && system->habitable != 1000.) || (diff && system->habitable != diff->habitable)) writer.Write("habitable", system->habitable);