diff --git a/src/ChatCommands.cc b/src/ChatCommands.cc index a1e142fe..c10521af 100644 --- a/src/ChatCommands.cc +++ b/src/ChatCommands.cc @@ -955,7 +955,7 @@ static void server_command_what(shared_ptr, shared_ptr l, return; } if (!(l->flags & Lobby::Flag::ITEM_TRACKING_ENABLED)) { - send_text_message(c, u"$C4Item tracking is off"); + send_text_message(c, u"$C4Item tracking is\nnot available"); } else { float min_dist2 = 0.0f; uint32_t nearest_item_id = 0xFFFFFFFF; diff --git a/src/ReceiveCommands.cc b/src/ReceiveCommands.cc index da445cdf..f1d430ef 100644 --- a/src/ReceiveCommands.cc +++ b/src/ReceiveCommands.cc @@ -3101,7 +3101,14 @@ shared_ptr create_game_generic( return nullptr; } - bool item_tracking_enabled = (c->version() == GameVersion::BB) | s->item_tracking_enabled; + // TODO: We disable item tracking for battle and challenge mode because + // players' inventories are reset when they start the quests, and the server + // is not notified when this happens. We'll have to implement this anyway for + // BB, but for now we ignore it. + bool item_tracking_enabled = + (c->version() == GameVersion::BB) | + (s->item_tracking_enabled && + !(flags & (Lobby::Flag::BATTLE_MODE | Lobby::Flag::CHALLENGE_MODE))); shared_ptr game = s->create_lobby(); game->name = name; diff --git a/src/ReceiveSubcommands.cc b/src/ReceiveSubcommands.cc index 3c0b51f9..5cbc0eec 100644 --- a/src/ReceiveSubcommands.cc +++ b/src/ReceiveSubcommands.cc @@ -1405,7 +1405,7 @@ subcommand_handler_t subcommand_handlers[0x100] = { /* 87 */ nullptr, /* 88 */ on_subcommand_forward_check_size_game, /* 89 */ on_subcommand_forward_check_size_game, - /* 8A */ nullptr, + /* 8A */ on_subcommand_forward_check_size_game, /* 8B */ nullptr, /* 8C */ nullptr, /* 8D */ on_subcommand_forward_check_size_client,