summaryrefslogtreecommitdiffhomepage
path: root/StarsEx/Campaign.cpp
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2024-04-01 23:54:24 +0200
committerAki <please@ignore.pl>2024-04-01 23:54:24 +0200
commit068ebfe61d0ab59a7c2c58dcc19edcc2ddacf039 (patch)
tree0fee184235980fcbb2a7557d1a10b6e48143e9c4 /StarsEx/Campaign.cpp
parent3be3bfaa17773550a696ed2b756136debfe79ae2 (diff)
downloadstarshatter-068ebfe61d0ab59a7c2c58dcc19edcc2ddacf039.zip
starshatter-068ebfe61d0ab59a7c2c58dcc19edcc2ddacf039.tar.gz
starshatter-068ebfe61d0ab59a7c2c58dcc19edcc2ddacf039.tar.bz2
Each Campaign now has a specific start date and time
Diffstat (limited to 'StarsEx/Campaign.cpp')
-rw-r--r--StarsEx/Campaign.cpp23
1 files changed, 20 insertions, 3 deletions
diff --git a/StarsEx/Campaign.cpp b/StarsEx/Campaign.cpp
index b139787..3751db8 100644
--- a/StarsEx/Campaign.cpp
+++ b/StarsEx/Campaign.cpp
@@ -109,7 +109,7 @@ static Campaign* current_campaign = 0;
Campaign::Campaign(int id, const char* n)
: campaign_id(id), name(n), mission_id(-1), mission(0), net_mission(0),
- scripted(false), sequential(false), time(0), load_time(0),
+ scripted(false), sequential(false), time(0), load_time(0), start_time(0),
player_group(0), player_unit(0), status(CAMPAIGN_INIT), lockout(0),
loaded_from_savegame(false)
{
@@ -119,7 +119,7 @@ Campaign::Campaign(int id, const char* n)
Campaign::Campaign(int id, const char* n, const char* p)
: campaign_id(id), name(n), mission_id(-1), mission(0), net_mission(0),
- scripted(false), sequential(false), time(0), load_time(0),
+ scripted(false), sequential(false), time(0), load_time(0), start_time(0),
player_group(0), player_unit(0), status(CAMPAIGN_INIT), lockout(0),
loaded_from_savegame(false)
{
@@ -487,6 +487,9 @@ Campaign::LoadCampaign(DataLoader* loader, bool full)
orders = ContentBundle::GetInstance()->GetText(orders);
}
}
+ else if (def->name()->value() == "stardate") {
+ GetDefNumber(start_time, def, filename);
+ }
else if (def->name()->value() == "scripted") {
if (def->term() && def->term()->isBool()) {
scripted = def->term()->isBool()->value();
@@ -1880,7 +1883,7 @@ Campaign::Prep()
LoadCampaign(loader, true);
}
- starshatter::engine::SetOperationStart();
+ starshatter::engine::SetOperationStart(start_time);
starshatter::engine::SetMissionStart();
Clock::GetInstance()->ResetGameTime(load_time);
@@ -2083,6 +2086,20 @@ Campaign::SetLoadTime(long double value)
load_time = value;
}
+
+long double
+Campaign::StartTime() const
+{
+ return start_time;
+}
+
+
+void
+Campaign::SetStartTime(long double value)
+{
+ start_time = value;
+}
+
// +--------------------------------------------------------------------+
bool