fix team metadata in lobbies
This commit is contained in:
@@ -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);
|
send_all_nearby_team_metadatas_to_client(c, true);
|
||||||
break;
|
break;
|
||||||
case 0x14EA:
|
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;
|
break;
|
||||||
case 0x18EA: // Ranking information
|
case 0x18EA: // Ranking information
|
||||||
send_team_rank_info(c);
|
send_team_rank_info(c);
|
||||||
|
|||||||
@@ -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);
|
forward_subcommand(c, command, flag, data, size, 0x1F, 0x21);
|
||||||
|
|
||||||
auto l = c->lobby.lock();
|
auto l = c->lobby.lock();
|
||||||
if (l && !l->is_game() && !is_v1(c->version())) {
|
if (l) {
|
||||||
send_arrow_update(l);
|
if (!l->is_game()) {
|
||||||
}
|
if (!is_v1(c->version())) {
|
||||||
if (l && !l->is_game() && l->check_flag(Lobby::Flag::IS_OVERFLOW)) {
|
send_arrow_update(l);
|
||||||
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->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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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())) {
|
if (!is_v1(c->version())) {
|
||||||
send_player_records_t<RecordsT>(c, l, joining_client);
|
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;
|
uint8_t lobby_type;
|
||||||
if (c->config.override_lobby_number != 0x80) {
|
if (c->config.override_lobby_number != 0x80) {
|
||||||
|
|||||||
Reference in New Issue
Block a user