fix team metadata in lobbies

This commit is contained in:
Martin Michelsen
2023-11-27 21:30:59 -08:00
parent 8e2a58ccaa
commit 1a5e56c0b2
3 changed files with 18 additions and 9 deletions
+5
View File
@@ -4627,6 +4627,11 @@ static void on_EA_BB(shared_ptr<Client> c, uint16_t command, uint32_t flag, stri
send_all_nearby_team_metadatas_to_client(c, true);
break;
case 0x14EA:
// On Sega's original servers, this command was likely used for requesting
// other players' team membership information (15EA) only when the player
// pressed Tab in lobbies to show players' team names. newserv instead
// sends team membership whenever any player joins the lobby, so we ignore
// the 14EA requests.
break;
case 0x18EA: // Ranking information
send_team_rank_info(c);
+13 -6
View File
@@ -677,12 +677,19 @@ static void on_set_player_visible(shared_ptr<Client> c, uint8_t command, uint8_t
forward_subcommand(c, command, flag, data, size, 0x1F, 0x21);
auto l = c->lobby.lock();
if (l && !l->is_game() && !is_v1(c->version())) {
send_arrow_update(l);
}
if (l && !l->is_game() && l->check_flag(Lobby::Flag::IS_OVERFLOW)) {
send_message_box(c, "$C6All lobbies are full.\n\n$C7You are in a private lobby. You can use the\nteleporter to join other lobbies if there is space\navailable.");
send_lobby_message_box(c, "");
if (l) {
if (!l->is_game()) {
if (!is_v1(c->version())) {
send_arrow_update(l);
}
if (l->check_flag(Lobby::Flag::IS_OVERFLOW)) {
send_message_box(c, "$C6All lobbies are full.\n\n$C7You are in a private lobby. You can use the\nteleporter to join other lobbies if there is space\navailable.");
send_lobby_message_box(c, "");
}
}
if (c->version() == Version::BB_V4) {
send_all_nearby_team_metadatas_to_client(c, false);
}
}
}
}
-3
View File
@@ -1802,9 +1802,6 @@ void send_join_lobby_t(shared_ptr<Client> c, shared_ptr<Lobby> l, shared_ptr<Cli
if (!is_v1(c->version())) {
send_player_records_t<RecordsT>(c, l, joining_client);
}
if (c->version() == Version::BB_V4) {
send_all_nearby_team_metadatas_to_client(c, false);
}
uint8_t lobby_type;
if (c->config.override_lobby_number != 0x80) {