summaryrefslogtreecommitdiff
path: root/game/environment.cpp
diff options
context:
space:
mode:
authorDan Goodliffe <dan.goodliffe@octal.co.uk>2026-03-27 17:40:05 +0000
committerDan Goodliffe <dan.goodliffe@octal.co.uk>2026-03-27 17:40:05 +0000
commit135402168801035c38be600fa64702c1ba63b9fe (patch)
tree36f13d91fc08b0f0cb395fa648bde777c8c76773 /game/environment.cpp
parentAdd wrapper for ImGui::TextEx for any contiguous char range (diff)
downloadilt-135402168801035c38be600fa64702c1ba63b9fe.tar.bz2
ilt-135402168801035c38be600fa64702c1ba63b9fe.tar.xz
ilt-135402168801035c38be600fa64702c1ba63b9fe.zip
Use std::chrono for worldTimeHEADmain
Defines a world time type alias, a game time scale factor (the rate at which world time progresses compare to real time) and display the world time on the status bar.
Diffstat (limited to 'game/environment.cpp')
-rw-r--r--game/environment.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/game/environment.cpp b/game/environment.cpp
index f8da316..58a5b53 100644
--- a/game/environment.cpp
+++ b/game/environment.cpp
@@ -5,15 +5,17 @@
constexpr Direction2D DONCASTER = {-1.1_degrees, 53.5_degrees};
-Environment::Environment() : worldTime {"2026-06-01T12:00:00"_time_t}, earthPos {DONCASTER} { }
+Environment::Environment() : worldTime {"2026-06-01T12:00:00"_seconds}, gameTimeScaleFactor {1440}, earthPos {DONCASTER}
+{
+}
void
-Environment::tick(TickDuration)
+Environment::tick(TickDuration elapsed)
{
- worldTime += 50;
+ worldTime += std::chrono::duration_cast<WorldTime::duration>(elapsed * gameTimeScaleFactor);
}
-time_t
+Environment::WorldTime
Environment::getWorldTime() const
{
return worldTime;
@@ -22,7 +24,7 @@ Environment::getWorldTime() const
Direction2D
Environment::getSunPos() const
{
- return getSunPos(earthPos, worldTime);
+ return getSunPos(earthPos, worldTime.time_since_epoch().count());
}
void