diff options
| author | Cerapter <cerap@protonmail.com> | 2018-12-17 11:08:20 +0100 |
|---|---|---|
| committer | Cerapter <cerap@protonmail.com> | 2018-12-17 11:08:20 +0100 |
| commit | 73b6e72ab90934eea7118793a1b71b9b53d508c8 (patch) | |
| tree | e9d7178ee4334145388745e0d60d635c871f6fed /aoapplication.cpp | |
| parent | 144a5bb64b5dab98d9fa631d8bf627c650d242b1 (diff) | |
Fix judge buttons not appearing & crash if MS goes down during play.
The former was caused by the position dropdown simply not having code to
make the judge buttons appear. Alongside that, the issue(?) where `/pos
judddd` (or variations) would not put the user in the judge position,
but gave them the buttons anyway.
The latter was caused by a simple mistake. We deleted the Lobby (and the
Courtroom) frequently, however, we never did set its (their) pointer(s)
back to null -- so they pointer to trash data, and the `if (w_lobby !=
nullptr)` part never failed.
This is also now fixed, and deletion of the Lobby or the Courtroom also
brings about the nulling of their pointers.
Diffstat (limited to 'aoapplication.cpp')
| -rw-r--r-- | aoapplication.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/aoapplication.cpp b/aoapplication.cpp index cb98aef7..d7c3e662 100644 --- a/aoapplication.cpp +++ b/aoapplication.cpp @@ -57,6 +57,7 @@ void AOApplication::destruct_lobby() } delete w_lobby; + w_lobby = nullptr; lobby_constructed = false; } @@ -86,6 +87,7 @@ void AOApplication::destruct_courtroom() } delete w_courtroom; + w_courtroom = nullptr; courtroom_constructed = false; } @@ -157,7 +159,7 @@ void AOApplication::ms_connect_finished(bool connected, bool will_retry) { if (will_retry) { - if (w_lobby != nullptr) + if (lobby_constructed) w_lobby->append_error("Error connecting to master server. Will try again in " + QString::number(net_manager->ms_reconnect_delay_ms / 1000.f) + " seconds."); } |
