aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSkye Deving <76892045+skyedeving@users.noreply.github.com>2021-01-10 06:24:10 -0600
committerSkye Deving <76892045+skyedeving@users.noreply.github.com>2021-01-10 06:38:26 -0600
commit4f2ac31456c41d5146728bce7b7041237aa9f222 (patch)
tree0a84fdc070e09acde294076e2ee978a6b7880e16
parente65072f8f1e885f7bbade9e9d84fbeea2ef8a097 (diff)
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.
-rw-r--r--include/courtroom.h7
-rw-r--r--src/packet_distribution.cpp2
2 files changed, 9 insertions, 0 deletions
diff --git a/include/courtroom.h b/include/courtroom.h
index cb1c4583..a4245a7d 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 7146e6ed..15cb31b0 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();