summaryrefslogtreecommitdiffhomepage
path: root/StarsEx/CampaignSaveGame.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'StarsEx/CampaignSaveGame.cpp')
-rw-r--r--StarsEx/CampaignSaveGame.cpp34
1 files changed, 16 insertions, 18 deletions
diff --git a/StarsEx/CampaignSaveGame.cpp b/StarsEx/CampaignSaveGame.cpp
index b959f01..62f8438 100644
--- a/StarsEx/CampaignSaveGame.cpp
+++ b/StarsEx/CampaignSaveGame.cpp
@@ -13,22 +13,24 @@
*/
#include "CampaignSaveGame.h"
+
#include "Campaign.h"
-#include "Combatant.h"
+#include "Clock.h"
#include "CombatAction.h"
+#include "Combatant.h"
#include "CombatEvent.h"
#include "CombatGroup.h"
#include "CombatUnit.h"
#include "CombatZone.h"
+#include "DataLoader.h"
+#include "FormatUtil.h"
#include "Galaxy.h"
-#include "Mission.h"
-#include "StarSystem.h"
-#include "Player.h"
-
#include "Game.h"
-#include "DataLoader.h"
+#include "Mission.h"
#include "ParseUtil.h"
-#include "FormatUtil.h"
+#include "Player.h"
+#include "Stardate.h"
+#include "StarSystem.h"
static const char* SAVE_DIR = "SaveGame";
@@ -190,8 +192,8 @@ CampaignSaveGame::Load(const char* filename)
int grp_type = 0;
int grp_id = 0;
int status = 0;
- double baseTime = 0;
- double time = 0;
+ long double baseTime = 0;
+ long double time = 0;
Text unit;
Text sitrep;
Text orders;
@@ -470,8 +472,7 @@ CampaignSaveGame::Load(const char* filename)
campaign->SetStatus(status);
if (sitrep.length()) campaign->SetSituation(sitrep);
if (orders.length()) campaign->SetOrders(orders);
- campaign->SetStartTime(baseTime);
- campaign->SetLoadTime(baseTime + time);
+ campaign->SetLoadTime(time);
campaign->LockoutEvents(3600);
campaign->Start();
@@ -567,9 +568,6 @@ CampaignSaveGame::Save(const char* name)
fopen_s(&f, s, "wb");
if (f) {
- char timestr[32];
- FormatDayTime(timestr, campaign->GetTime());
-
CombatGroup* player_group = campaign->GetPlayerGroup();
CombatUnit* player_unit = campaign->GetPlayerUnit();
@@ -582,10 +580,10 @@ CampaignSaveGame::Save(const char* name)
fprintf(f, "unit: \"%s\"\n", player_unit->Name().data());
fprintf(f, "status: %d\n", (int) campaign->GetStatus());
- fprintf(f, "basetime: %Lf\n", campaign->GetStartTime());
- fprintf(f, "time: %Lf // %s\n\n",
- campaign->GetTime(),
- timestr);
+ fprintf(f, "basetime: %.1Lf\n", starshatter::engine::OperationStart());
+ const auto operation_time = starshatter::engine::OperationTime();
+ const auto formatted_time = operation_time.Format();
+ fprintf(f, "time: %.1Lf // %s\n\n", operation_time.value, formatted_time.data());
fprintf(f, "sitrep: \"%s\"\n", campaign->Situation());
fprintf(f, "orders: \"%s\"\n\n", campaign->Orders());