send map when arriving late

This commit is contained in:
2025-08-22 12:24:58 +02:00
parent 688b6e93ea
commit 5b6254c690
12 changed files with 52 additions and 16 deletions

View File

@@ -3,8 +3,8 @@
namespace td {
namespace client {
GameState::GameState(Client& a_Client, const std::shared_ptr<game::World>& a_World, std::uint64_t a_StepTime) :
ClientState(a_Client), m_World(a_World), m_Simulation(a_World, a_StepTime) {
GameState::GameState(Client& a_Client, const std::shared_ptr<game::World>& a_World, std::uint64_t a_StepTime, const std::vector<protocol::LockStep> a_FirstSteps) :
ClientState(a_Client), m_World(a_World), m_Simulation(a_World, a_StepTime, a_FirstSteps) {
m_Simulation.OnMissingLockSteps.Connect([this](const std::vector<td::StepTime>& a_MissingSteps) {
SendPacket(protocol::packets::LockStepRequestPacket(a_MissingSteps));
});

View File

@@ -15,7 +15,10 @@ void LobbyState::Handle(const protocol::packets::WorldHeaderPacket& a_Packet) {
void LobbyState::Handle(const protocol::packets::WorldDataPacket& a_Packet) {
m_World->LoadMap(*a_Packet);
ChangeState<GameState>(m_World, STEP_TIME);
}
void LobbyState::Handle(const protocol::packets::BeginGamePacket& a_Packet) {
ChangeState<GameState>(m_World, STEP_TIME, a_Packet->m_FirstLocksteps);
}
void LobbyState::Update(float a_Delta) {}