mirror of
https://gitlab.com/Mr_Goldberg/goldberg_emulator.git
synced 2024-11-27 14:08:39 +01:00
lobby dataupdate is called even when the value does not change.
This commit is contained in:
parent
7e136bba14
commit
767fee6840
1 changed files with 10 additions and 9 deletions
|
@ -113,7 +113,7 @@ void send_lobby_data()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void trigger_lobby_dataupdate(CSteamID lobby, CSteamID member, bool success, double cb_timeout=0.0)
|
void trigger_lobby_dataupdate(CSteamID lobby, CSteamID member, bool success, double cb_timeout=0.0, bool send_changed_lobby=true)
|
||||||
{
|
{
|
||||||
PRINT_DEBUG("Lobby dataupdate %llu %llu\n", lobby.ConvertToUint64(), member.ConvertToUint64());
|
PRINT_DEBUG("Lobby dataupdate %llu %llu\n", lobby.ConvertToUint64(), member.ConvertToUint64());
|
||||||
LobbyDataUpdate_t data;
|
LobbyDataUpdate_t data;
|
||||||
|
@ -132,12 +132,14 @@ void trigger_lobby_dataupdate(CSteamID lobby, CSteamID member, bool success, dou
|
||||||
|
|
||||||
Lobby *l = get_lobby(lobby);
|
Lobby *l = get_lobby(lobby);
|
||||||
if (l && l->owner() == settings->get_local_steam_id().ConvertToUint64()) {
|
if (l && l->owner() == settings->get_local_steam_id().ConvertToUint64()) {
|
||||||
|
if (send_changed_lobby) {
|
||||||
Common_Message msg = Common_Message();
|
Common_Message msg = Common_Message();
|
||||||
msg.set_source_id(settings->get_local_steam_id().ConvertToUint64());
|
msg.set_source_id(settings->get_local_steam_id().ConvertToUint64());
|
||||||
msg.set_allocated_lobby(new Lobby(*l));
|
msg.set_allocated_lobby(new Lobby(*l));
|
||||||
network->sendToAllIndividuals(&msg, true);
|
network->sendToAllIndividuals(&msg, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void trigger_lobby_member_join_leave(CSteamID lobby, CSteamID member, bool leaving, bool success, double cb_timeout=0.0)
|
void trigger_lobby_member_join_leave(CSteamID lobby, CSteamID member, bool leaving, bool success, double cb_timeout=0.0)
|
||||||
{
|
{
|
||||||
|
@ -774,10 +776,9 @@ bool SetLobbyData( CSteamID steamIDLobby, const char *pchKey, const char *pchVal
|
||||||
}
|
}
|
||||||
|
|
||||||
auto result = lobby->values().find(pchKey);
|
auto result = lobby->values().find(pchKey);
|
||||||
if (result == lobby->values().end() || result->second != std::string(pchValue)) {
|
bool changed = (result == lobby->values().end()) || (result->second != std::string(pchValue));
|
||||||
(*lobby->mutable_values())[pchKey] = pchValue;
|
(*lobby->mutable_values())[pchKey] = pchValue;
|
||||||
trigger_lobby_dataupdate(steamIDLobby, steamIDLobby, true);
|
trigger_lobby_dataupdate(steamIDLobby, steamIDLobby, true, 0.0, changed);
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue