Loading relayserver/TcpProtocol.cpp +9 −3 Original line number Diff line number Diff line Loading @@ -95,8 +95,11 @@ void TcpProtocol::OnMessageReceived(const char* data, size_t count) break; case MsgPackProtocol::MESSAGE_TYPE_TICK: OnTickReceived(obj.get().as<MsgPackProtocol::TickMessage>()); { auto msg = std::make_unique<MsgPackProtocol::TickMessage>(); OnTickReceived(std::move(msg)); break; } case MsgPackProtocol::MESSAGE_TYPE_BOT_SPAWN: OnBotSpawnReceived(obj.get().as<MsgPackProtocol::BotSpawnMessage>()); Loading Loading @@ -172,9 +175,11 @@ void TcpProtocol::OnWorldUpdateReceived(const MsgPackProtocol::WorldUpdateMessag } } void TcpProtocol::OnTickReceived(const MsgPackProtocol::TickMessage &msg) void TcpProtocol::OnTickReceived(std::unique_ptr<MsgPackProtocol::TickMessage> msg) { _frameCompleteCallback(msg.frame_id); auto frame_id = msg->frame_id; _pendingMessages.push_back(std::move(msg)); _frameCompleteCallback(frame_id); _pendingMessages.clear(); } Loading Loading @@ -246,6 +251,7 @@ void TcpProtocol::OnBotLogReceived(std::unique_ptr<MsgPackProtocol::BotLogMessag void TcpProtocol::OnBotStatsReceived(std::unique_ptr<MsgPackProtocol::BotStatsMessage> msg) { _botStats = *msg; _pendingMessages.push_back(std::move(msg)); } Loading relayserver/TcpProtocol.h +2 −1 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ class TcpProtocol FrameCompleteCallback _frameCompleteCallback; MsgPackProtocol::GameInfoMessage _gameInfo; MsgPackProtocol::BotStatsMessage _botStats; std::map<guid_t,FoodItem> _foodMap; std::map<guid_t,BotItem> _botsMap; std::vector<std::unique_ptr<MsgPackProtocol::Message>> _pendingMessages; Loading @@ -47,7 +48,7 @@ class TcpProtocol void OnGameInfoReceived(const MsgPackProtocol::GameInfoMessage& msg); void OnWorldUpdateReceived(const MsgPackProtocol::WorldUpdateMessage& msg); void OnTickReceived(const MsgPackProtocol::TickMessage& msg); void OnTickReceived(std::unique_ptr<MsgPackProtocol::TickMessage> msg); void OnFoodSpawnReceived(const MsgPackProtocol::FoodSpawnMessage& msg); void OnFoodConsumedReceived(const MsgPackProtocol::FoodConsumeMessage& msg); Loading Loading
relayserver/TcpProtocol.cpp +9 −3 Original line number Diff line number Diff line Loading @@ -95,8 +95,11 @@ void TcpProtocol::OnMessageReceived(const char* data, size_t count) break; case MsgPackProtocol::MESSAGE_TYPE_TICK: OnTickReceived(obj.get().as<MsgPackProtocol::TickMessage>()); { auto msg = std::make_unique<MsgPackProtocol::TickMessage>(); OnTickReceived(std::move(msg)); break; } case MsgPackProtocol::MESSAGE_TYPE_BOT_SPAWN: OnBotSpawnReceived(obj.get().as<MsgPackProtocol::BotSpawnMessage>()); Loading Loading @@ -172,9 +175,11 @@ void TcpProtocol::OnWorldUpdateReceived(const MsgPackProtocol::WorldUpdateMessag } } void TcpProtocol::OnTickReceived(const MsgPackProtocol::TickMessage &msg) void TcpProtocol::OnTickReceived(std::unique_ptr<MsgPackProtocol::TickMessage> msg) { _frameCompleteCallback(msg.frame_id); auto frame_id = msg->frame_id; _pendingMessages.push_back(std::move(msg)); _frameCompleteCallback(frame_id); _pendingMessages.clear(); } Loading Loading @@ -246,6 +251,7 @@ void TcpProtocol::OnBotLogReceived(std::unique_ptr<MsgPackProtocol::BotLogMessag void TcpProtocol::OnBotStatsReceived(std::unique_ptr<MsgPackProtocol::BotStatsMessage> msg) { _botStats = *msg; _pendingMessages.push_back(std::move(msg)); } Loading
relayserver/TcpProtocol.h +2 −1 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ class TcpProtocol FrameCompleteCallback _frameCompleteCallback; MsgPackProtocol::GameInfoMessage _gameInfo; MsgPackProtocol::BotStatsMessage _botStats; std::map<guid_t,FoodItem> _foodMap; std::map<guid_t,BotItem> _botsMap; std::vector<std::unique_ptr<MsgPackProtocol::Message>> _pendingMessages; Loading @@ -47,7 +48,7 @@ class TcpProtocol void OnGameInfoReceived(const MsgPackProtocol::GameInfoMessage& msg); void OnWorldUpdateReceived(const MsgPackProtocol::WorldUpdateMessage& msg); void OnTickReceived(const MsgPackProtocol::TickMessage& msg); void OnTickReceived(std::unique_ptr<MsgPackProtocol::TickMessage> msg); void OnFoodSpawnReceived(const MsgPackProtocol::FoodSpawnMessage& msg); void OnFoodConsumedReceived(const MsgPackProtocol::FoodConsumeMessage& msg); Loading