From fbc5cd5967b3ac594ea150d873c6a73de381b0ec Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Fri, 2 Aug 2024 18:06:22 -0700 Subject: [PATCH] fix print_bank --- src/Client.cc | 14 +++++++++----- src/Client.hh | 1 + 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Client.cc b/src/Client.cc index ad92edd3..7183424b 100644 --- a/src/Client.cc +++ b/src/Client.cc @@ -1045,6 +1045,10 @@ PlayerBank200& Client::current_bank() { return this->character()->bank; } +const PlayerBank200& Client::current_bank() const { + return const_cast(this)->current_bank(); +} + std::shared_ptr Client::current_bank_character() { return this->external_bank_character ? this->external_bank_character : this->character(); } @@ -1134,11 +1138,11 @@ void Client::print_inventory(FILE* stream) const { void Client::print_bank(FILE* stream) const { auto s = this->require_server_state(); - auto p = this->character(); - fprintf(stream, "[PlayerBank] Meseta: %" PRIu32 "\n", p->bank.meseta.load()); - fprintf(stream, "[PlayerBank] %" PRIu32 " items\n", p->bank.num_items.load()); - for (size_t x = 0; x < p->bank.num_items; x++) { - const auto& item = p->bank.items[x]; + auto bank = this->current_bank(); + fprintf(stream, "[PlayerBank] Meseta: %" PRIu32 "\n", bank.meseta.load()); + fprintf(stream, "[PlayerBank] %" PRIu32 " items\n", bank.num_items.load()); + for (size_t x = 0; x < bank.num_items; x++) { + const auto& item = bank.items[x]; const char* present_token = item.present ? "" : " (missing present flag)"; auto hex = item.data.hex(); auto name = s->describe_item(this->version(), item.data, false); diff --git a/src/Client.hh b/src/Client.hh index dabbe334..e8bcd7a7 100644 --- a/src/Client.hh +++ b/src/Client.hh @@ -390,6 +390,7 @@ public: void save_and_unload_character(); PlayerBank200& current_bank(); + const PlayerBank200& current_bank() const; std::shared_ptr current_bank_character(); bool use_shared_bank(); // Returns true if the bank exists; false if it was created void use_character_bank(int8_t bb_character_index);