From 1b29f2054150425a272a66f091986db32f7dc27b Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Wed, 15 Nov 2023 20:01:45 -0800 Subject: [PATCH] fix incorrect object lists in quest --- src/Map.cc | 1 + src/ReceiveCommands.cc | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Map.cc b/src/Map.cc index 7f8161da..f86ba357 100644 --- a/src/Map.cc +++ b/src/Map.cc @@ -45,6 +45,7 @@ string Map::Object::str(shared_ptr name_index) const { } void Map::clear() { + this->objects.clear(); this->enemies.clear(); this->rare_enemy_indexes.clear(); } diff --git a/src/ReceiveCommands.cc b/src/ReceiveCommands.cc index 0b218f8a..9f16aadf 100644 --- a/src/ReceiveCommands.cc +++ b/src/ReceiveCommands.cc @@ -2621,6 +2621,7 @@ static void on_AC_V3_BB(shared_ptr c, uint16_t, uint32_t, string& data) (l->base_version == GameVersion::BB) && l->map && l->quest) { + auto s = l->require_server_state(); auto vq = l->quest->version(QuestScriptVersion::BB_V4, c->language()); @@ -2636,13 +2637,17 @@ static void on_AC_V3_BB(shared_ptr c, uint16_t, uint32_t, string& data) (l->mode == GameMode::CHALLENGE) ? Map::NO_RARE_ENEMIES : Map::DEFAULT_RARE_ENEMIES); l->item_creator->clear_destroyed_entities(); + l->log.info("Replaced objects list with quest layout (%zu entries)", l->map->objects.size()); + for (size_t z = 0; z < l->map->objects.size(); z++) { + string o_str = l->map->objects[z].str(s->item_name_index); + l->log.info("(K-%zX) %s", z, o_str.c_str()); + } l->log.info("Replaced enemies list with quest layout (%zu entries)", l->map->enemies.size()); for (size_t z = 0; z < l->map->enemies.size(); z++) { string e_str = l->map->enemies[z].str(); - l->log.info("(Entry %zX) %s", z, e_str.c_str()); + l->log.info("(E-%zX) %s", z, e_str.c_str()); } - auto s = l->require_server_state(); for (auto& lc : l->clients) { if (!lc) { continue;