fix telepipe desync during BB joinable quest load

This commit is contained in:
Martin Michelsen
2025-01-21 23:46:46 -08:00
parent 5c807fa655
commit 4038221d8c
2 changed files with 6 additions and 2 deletions
+5 -1
View File
@@ -1304,7 +1304,11 @@ struct S_JoinGame_BB_64 : S_JoinGameT_DC_PC<PlayerLobbyDataBB> {
uint8_t episode = 0;
uint8_t unused = 0; // Corresponds to xb_enable_voice_chat; unused on BB
uint8_t solo_mode = 0;
uint8_t unused2 = 0;
// This flag should be nonzero if the joining client will load a quest
// immediately after joining. The only tangible effect of this flag being
// enabled is that the game won't delete all active telepipes during quest
// loading.
uint8_t is_in_quest = 0;
} __packed_ws__(S_JoinGame_BB_64, 0x1A0);
// 65 (S->C): Add player to game
+1 -1
View File
@@ -2048,7 +2048,7 @@ void send_join_game(shared_ptr<Client> c, shared_ptr<Lobby> l) {
S_JoinGame_BB_64 cmd;
size_t player_count = populate_v3_cmd(cmd);
cmd.solo_mode = (l->mode == GameMode::SOLO) ? 1 : 0;
cmd.unused2 = 0;
cmd.is_in_quest = !!l->quest;
send_command_t(c, 0x64, player_count, cmd);
break;
}