From 672a6575a7ad8b922f5ca55babbdaea4317936af Mon Sep 17 00:00:00 2001 From: James Osborne Date: Sun, 7 Jun 2026 15:54:21 -0400 Subject: [PATCH] Restrict Brutal Peeps rooms to matching client versions --- src/Lobby.cc | 7 ++++--- src/SendCommands.cc | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Lobby.cc b/src/Lobby.cc index d1d84ca8..d82c7930 100644 --- a/src/Lobby.cc +++ b/src/Lobby.cc @@ -618,10 +618,11 @@ Lobby::JoinError Lobby::join_error_for_client(std::shared_ptr c, const s return JoinError::VERSION_CONFLICT; } if (this->is_game()) { - // Brutal Peeps PC rooms rely on PC-only BattleParam runtime patching, so don't allow DC V2 clients to join them. + // Brutal Peeps rooms rely on version-specific BattleParam patching. + // BB Brutal rooms are BB-only; PC Brutal rooms are PC V2-only. if ((this->brutal_peeps_tier >= 1) && - this->version_is_allowed(Version::PC_V2) && - (c->version() != Version::PC_V2)) { + ((this->version_is_allowed(Version::BB_V4) && (c->version() != Version::BB_V4)) || + (this->version_is_allowed(Version::PC_V2) && (c->version() != Version::PC_V2)))) { return JoinError::VERSION_CONFLICT; } diff --git a/src/SendCommands.cc b/src/SendCommands.cc index 0a276db1..78bd52f7 100644 --- a/src/SendCommands.cc +++ b/src/SendCommands.cc @@ -2120,10 +2120,11 @@ void send_game_menu_t(std::shared_ptr c, bool is_spectator_team_list, bo (client_has_debug || (l->check_flag(Lobby::Flag::IS_CLIENT_CUSTOMIZATION) == c->check_flag(Client::Flag::IS_CLIENT_CUSTOMIZATION))) && (l->check_flag(Lobby::Flag::IS_SPECTATOR_TEAM) == is_spectator_team_list) && (!show_tournaments_only || l->tournament_match)) { - // Brutal Peeps PC rooms rely on PC-only BattleParam runtime patching, so don't show them to DC V2 clients. + // Brutal Peeps rooms rely on version-specific BattleParam patching. + // BB Brutal rooms are BB-only; PC Brutal rooms are PC V2-only. if ((l->brutal_peeps_tier >= 1) && - l->version_is_allowed(Version::PC_V2) && - (c->version() != Version::PC_V2)) { + ((l->version_is_allowed(Version::BB_V4) && (c->version() != Version::BB_V4)) || + (l->version_is_allowed(Version::PC_V2) && (c->version() != Version::PC_V2)))) { continue; } games.emplace(l);