Restrict Brutal Peeps rooms to matching client versions

This commit is contained in:
2026-06-07 15:54:21 -04:00
parent 7d609b6a40
commit 672a6575a7
2 changed files with 8 additions and 6 deletions
+4 -3
View File
@@ -618,10 +618,11 @@ Lobby::JoinError Lobby::join_error_for_client(std::shared_ptr<Client> 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;
}
+4 -3
View File
@@ -2120,10 +2120,11 @@ void send_game_menu_t(std::shared_ptr<Client> 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);