summaryrefslogtreecommitdiffhomepage
path: root/StarsEx/Sim.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'StarsEx/Sim.cpp')
-rw-r--r--StarsEx/Sim.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/StarsEx/Sim.cpp b/StarsEx/Sim.cpp
index bdf843b..f938b7a 100644
--- a/StarsEx/Sim.cpp
+++ b/StarsEx/Sim.cpp
@@ -71,6 +71,7 @@
#include "Solid.h"
#include "Sound.h"
#include "Sprite.h"
+#include "Stardate.h"
#include "Starshatter.h"
#include "StarSystem.h"
#include "Terrain.h"
@@ -122,8 +123,7 @@ Sim* Sim::sim = 0;
Sim::Sim(MotionController* c)
: ctrl(c), test_mode(false), grid_shown(false), dust(0),
- star_system(0), active_region(0), mission(0), netgame(0),
- start_time(0)
+ star_system(0), active_region(0), mission(0), netgame(0)
{
Drive::Initialize();
Explosion::Initialize();
@@ -206,7 +206,7 @@ Sim::CommitMission()
if (s->IsPlayer()) {
Player* p = Player::GetCurrentPlayer();
- p->ProcessStats(s, start_time);
+ p->ProcessStats(s, starshatter::engine::MissionTime());
if (mission && mission->Type() == Mission::TRAINING &&
s->GetDeaths() == 0 && s->GetColls() == 0)
@@ -368,8 +368,10 @@ Sim::ExecMission()
if (cam_dir)
cam_dir->Reset();
- if (mission->Stardate() > 0)
- StarSystem::SetBaseTime(mission->Stardate(), true);
+ if (mission->Stardate() > 0.0l)
+ starshatter::engine::SetOperationStart(mission->Stardate());
+ starshatter::engine::SetMissionStart(mission->Start());
+ Clock::GetInstance()->ResetGameTime();
star_system = mission->GetStarSystem();
star_system->Activate(scene);
@@ -395,7 +397,6 @@ Sim::ExecMission()
}
first_frame = true;
- start_time = Clock::GetInstance()->GameTime();
AudioConfig::SetTraining(mission->Type() == Mission::TRAINING);
}
@@ -1896,7 +1897,7 @@ Sim::ProcessEventTrigger(int type, int event_id, const char* ship, int param)
double
Sim::MissionClock() const
{
- return (Clock::GetInstance()->GameTime() - start_time) / 1000.0;
+ return starshatter::engine::MissionTime();
}
// +--------------------------------------------------------------------+
@@ -1931,7 +1932,7 @@ Sim::SkipCutscene()
}
}
- double skip_time = end_time - MissionClock();
+ const auto skip_time = end_time - MissionClock();
if (skip_time > 0) {
Clock::GetInstance()->SkipGameTime(skip_time);
}