From d8a91edcf52c7a84f4527b3cf6c1419bae2857a2 Mon Sep 17 00:00:00 2001 From: otavepto Date: Sat, 30 Mar 2024 09:04:30 +0200 Subject: [PATCH] only accept leaderboards updates from the same appid --- dll/net.proto | 5 +++-- dll/steam_user_stats.cpp | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dll/net.proto b/dll/net.proto index 18595ca8..4a1beefc 100644 --- a/dll/net.proto +++ b/dll/net.proto @@ -287,9 +287,10 @@ message Leaderboards_Messages { } Types type = 1; - LeaderboardInfo leaderboard_info = 2; + uint32 appid = 2; + LeaderboardInfo leaderboard_info = 3; oneof data_messages { - UserScoreEntry user_score_entry = 3; + UserScoreEntry user_score_entry = 4; } } diff --git a/dll/steam_user_stats.cpp b/dll/steam_user_stats.cpp index d4f88d56..ee858667 100644 --- a/dll/steam_user_stats.cpp +++ b/dll/steam_user_stats.cpp @@ -288,6 +288,7 @@ void Steam_User_Stats::send_my_leaderboard_score(const Steam_Leaderboard &board, auto board_msg = new Leaderboards_Messages(); if (want_scores_back) board_msg->set_type(Leaderboards_Messages::UpdateUserScoreMutual); else board_msg->set_type(Leaderboards_Messages::UpdateUserScore); + board_msg->set_appid(settings->get_local_game_id().AppID()); board_msg->set_allocated_leaderboard_info(board_info_msg); board_msg->set_allocated_user_score_entry(score_entry_msg); @@ -309,6 +310,7 @@ void Steam_User_Stats::request_user_leaderboard_entry(const Steam_Leaderboard &b auto board_msg = new Leaderboards_Messages(); board_msg->set_type(Leaderboards_Messages::RequestUserScore); + board_msg->set_appid(settings->get_local_game_id().AppID()); board_msg->set_allocated_leaderboard_info(board_info_msg); auto common_msg = new Common_Message(); @@ -1863,6 +1865,7 @@ void Steam_User_Stats::network_callback_leaderboards(Common_Message *msg) { // network->sendToAll() sends to current user also if (msg->source_id() == settings->get_local_steam_id().ConvertToUint64()) return; + if (settings->get_local_game_id().AppID() != msg->leaderboards_messages().appid()) return; if (!msg->leaderboards_messages().has_leaderboard_info()) { PRINT_DEBUG("Steam_User_Stats::network_callback_leaderboards error empty leaderboard msg\n");