1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-19 13:03:11 +01:00

Fix game actions executing wrong callbacks.

This commit is contained in:
ZehMatt
2017-10-02 18:02:50 +02:00
committed by Michał Janiszewski
parent 9ff0e22aee
commit 3f93af11d6

View File

@@ -2133,12 +2133,17 @@ void Network::Client_Handle_GAME_ACTION(NetworkConnection& connection, NetworkPa
}
action->Serialise(ds);
auto itr = _gameActionCallbacks.find(action->GetNetworkId());
if (itr != _gameActionCallbacks.end())
if (player_id == action->GetPlayer())
{
action->SetCallback(itr->second);
// Only execute callbacks that belong to us,
// clients can have identical network ids assigned.
auto itr = _gameActionCallbacks.find(action->GetNetworkId());
if (itr != _gameActionCallbacks.end())
{
action->SetCallback(itr->second);
_gameActionCallbacks.erase(itr);
_gameActionCallbacks.erase(itr);
}
}
game_command_queue.emplace(tick, std::move(action), _commandId++);