Files
Tower-Defense2/include/td/simulation/RealTimeSimulation.h
2025-07-18 18:56:49 +02:00

36 lines
618 B
C++

#pragma once
#include <td/game/World.h>
namespace td {
namespace sim {
using GameHistory = std::vector<td::protocol::LockStep>;
class RealTimeSimulation {
private:
std::uint64_t m_StepTime;
game::World& m_World;
GameHistory m_History;
std::uint64_t m_CurrentTime;
std::uint64_t m_LastTime;
std::size_t m_CurrentStep;
public:
/**
* \param a_StepTime in ms
*/
RealTimeSimulation(game::World& a_World, GameHistory&& a_History, std::uint64_t a_StepTime);
/**
* \return the progress [0-1] between two steps
*/
float Update();
private:
void Step();
};
} // namespace sim
} // namespace td