summaryrefslogtreecommitdiffhomepage
path: root/Stars45/Clock.cpp
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2022-04-01 21:23:39 +0200
committerAki <please@ignore.pl>2022-04-01 21:23:39 +0200
commit3c487c5cd69c53d6fea948643c0a76df03516605 (patch)
tree72730c7b8b26a5ef8fc9a987ec4c16129efd5aac /Stars45/Clock.cpp
parent8f353abd0bfe18baddd8a8250ab7c4f2d1c83a6e (diff)
downloadstarshatter-3c487c5cd69c53d6fea948643c0a76df03516605.zip
starshatter-3c487c5cd69c53d6fea948643c0a76df03516605.tar.gz
starshatter-3c487c5cd69c53d6fea948643c0a76df03516605.tar.bz2
Moved Stars45 to StarsEx
Diffstat (limited to 'Stars45/Clock.cpp')
-rw-r--r--Stars45/Clock.cpp143
1 files changed, 0 insertions, 143 deletions
diff --git a/Stars45/Clock.cpp b/Stars45/Clock.cpp
deleted file mode 100644
index e5db6c3..0000000
--- a/Stars45/Clock.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-/* Starshatter: The Open Source Project
- Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors
- Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors
- Copyright (c) 1997-2006, Destroyer Studios LLC.
-*/
-
-#include "Clock.h"
-
-#include <chrono>
-
-static constexpr double NO_COMPRESSION {1.0};
-static constexpr double STARTING_DELTA {1.0 / 60.0};
-
-Clock* Clock::instance = nullptr;
-
-
-Clock*
-Clock::GetInstance()
-{
- return instance;
-}
-
-
-bool
-Clock::Init()
-{
- if (instance == nullptr) {
- instance = new Clock();
- return instance != nullptr;
- }
- return false;
-}
-
-
-void
-Clock::Close()
-{
- if (instance != nullptr) {
- delete instance;
- instance = nullptr;
- }
-}
-
-
-Clock::Clock() :
- m_point {inner_clock::now()},
- m_game_elapsed {inner_clock::duration::zero()},
- m_real_elapsed {inner_clock::duration::zero()},
- m_compression {NO_COMPRESSION},
- m_delta {STARTING_DELTA},
- m_gui_delta {STARTING_DELTA},
- m_rate {0.0}
-{
-}
-
-
-void
-Clock::Set()
-{
- m_point = inner_clock::now();
- m_delta = STARTING_DELTA;
- m_gui_delta = STARTING_DELTA;
-}
-
-
-double
-Clock::Step()
-{
- const auto next = inner_clock::now();
- const auto delta = next - m_point;
- m_game_elapsed += std::chrono::duration_cast<inner_clock::duration>(delta * m_compression);
- m_real_elapsed += delta;
- const std::chrono::duration<double> seconds = delta;
- m_delta = seconds.count() * m_compression;
- m_gui_delta = seconds.count();
- m_point = next;
- m_rate = 1 / m_gui_delta;
- return m_delta;
-}
-
-
-void
-Clock::ResetGameTime()
-{
- m_game_elapsed = inner_clock::duration::zero();
-}
-
-
-void
-Clock::SkipGameTime(double seconds)
-{
- const std::chrono::duration<double> skip {seconds};
- m_game_elapsed += std::chrono::duration_cast<inner_clock::duration>(skip);
-}
-
-
-double
-Clock::Delta() const
-{
- return m_delta;
-}
-
-
-double
-Clock::GuiDelta() const
-{
- return m_gui_delta;
-}
-
-
-double
-Clock::Rate() const
-{
- return m_rate;
-}
-
-
-double
-Clock::TimeCompression() const
-{
- return m_compression;
-}
-
-
-Clock::count_type
-Clock::GameTime() const
-{
- return std::chrono::duration_cast<elapsed_duration>(m_game_elapsed).count();
-}
-
-
-Clock::count_type
-Clock::RealTime() const
-{
- return std::chrono::duration_cast<elapsed_duration>(m_real_elapsed).count();
-}
-
-
-void
-Clock::SetTimeCompression(double compression)
-{
- m_compression = compression;
-}