diff --git a/src/CommandFormats.hh b/src/CommandFormats.hh index 0bc4e9eb..6fabd0b8 100644 --- a/src/CommandFormats.hh +++ b/src/CommandFormats.hh @@ -1304,7 +1304,11 @@ struct S_JoinGame_BB_64 : S_JoinGameT_DC_PC { 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 diff --git a/src/SendCommands.cc b/src/SendCommands.cc index 08f60496..098d595f 100644 --- a/src/SendCommands.cc +++ b/src/SendCommands.cc @@ -2048,7 +2048,7 @@ void send_join_game(shared_ptr c, shared_ptr 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; }