From 4f2ac31456c41d5146728bce7b7041237aa9f222 Mon Sep 17 00:00:00 2001 From: Skye Deving <76892045+skyedeving@users.noreply.github.com> Date: Sun, 10 Jan 2021 06:24:10 -0600 Subject: [PATCH] Add arup_clear() and clear arup when fetching new areas Theoretically fixes #313 The "FA" packet from the server invalidates the client's previous area list so it makes sense for the arup information tied to that list to be invalidated as well (especially seeing that the area and arup share the same index). As we repopulate the client's area list, we do the same for the arup list. --- include/courtroom.h | 7 +++++++ src/packet_distribution.cpp | 2 ++ 2 files changed, 9 insertions(+) diff --git a/include/courtroom.h b/include/courtroom.h index cb1c458..a4245a7 100644 --- a/include/courtroom.h +++ b/include/courtroom.h @@ -92,6 +92,13 @@ public: arup_locks.append(locked); } + void arup_clear() { + arup_players.clear(); + arup_statuses.clear(); + arup_cms.clear(); + arup_locks.clear(); + } + void arup_modify(int type, int place, QString value) { if (type == 0) { diff --git a/src/packet_distribution.cpp b/src/packet_distribution.cpp index 7146e6e..15cb31b 100644 --- a/src/packet_distribution.cpp +++ b/src/packet_distribution.cpp @@ -413,9 +413,11 @@ void AOApplication::server_packet_received(AOPacket *p_packet) goto end; w_courtroom->clear_areas(); + w_courtroom->arup_clear(); for (int n_element = 0; n_element < f_contents.size(); ++n_element) { w_courtroom->append_area(f_contents.at(n_element)); + w_courtroom->arup_append(0, "Unknown", "Unknown", "Unknown"); } w_courtroom->list_areas();