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.
This commit is contained in:
Skye Deving 2021-01-10 06:24:10 -06:00
parent e65072f8f1
commit 4f2ac31456
2 changed files with 9 additions and 0 deletions

View File

@ -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) {

View File

@ -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();