diff --git a/src/aoclient.h b/src/aoclient.h index b66f8d1..6513989 100755 --- a/src/aoclient.h +++ b/src/aoclient.h @@ -602,6 +602,8 @@ class AOClient : public QObject */ const int SPECTATOR_ID = -1; + void toggleDeskHide(bool hide, AreaData* area, bool any); + public slots: /** * @brief Handles an incoming packet, checking for authorisation and minimum argument count. diff --git a/src/area_data.cpp b/src/area_data.cpp index 4d25f6d..dde582e 100755 --- a/src/area_data.cpp +++ b/src/area_data.cpp @@ -334,6 +334,7 @@ AreaData::Status AreaData::status() const bool AreaData::changeStatus(const QString &f_newStatus_r) { if (AreaData::map_statuses.contains(f_newStatus_r)) { + if (m_status == AreaData::map_statuses[f_newStatus_r]) return false; m_status = AreaData::map_statuses[f_newStatus_r]; return true; } diff --git a/src/commands/area.cpp b/src/commands/area.cpp index 0c04628..50236d1 100755 --- a/src/commands/area.cpp +++ b/src/commands/area.cpp @@ -376,10 +376,16 @@ void AOClient::cmdStatus(int argc, QStringList argv) if (l_area->changeStatus(l_arg)) { arup(ARUPType::STATUS, true); server->broadcast(PacketFactory::createPacket("CT", {ConfigManager::serverTag(), character() + " changed status to " + l_arg.toUpper(), "1"}), areaId()); + if (l_area->status() == AreaData::Status::IDLE) { + toggleDeskHide(true, l_area, false); + } + else if (l_area->status() == AreaData::Status::CASING) { + toggleDeskHide(false, l_area, true); + } } else { const QStringList keys = AreaData::map_statuses.keys(); - sendServerMessage("That does not look like a valid status. Valid statuses are " + keys.join(", ")); + sendServerMessage("That does not look like a valid status or the area is already in that status. Valid statuses are " + keys.join(", ")); } } @@ -487,4 +493,14 @@ void AOClient::cmdWebfiles(int argc, QStringList argv) } } sendServerMessage("Character files:\n" + l_weblinks.join("\n")); +} + +void AOClient::toggleDeskHide(bool hide, AreaData* l_area, bool any) { + QVector joinedPlayerIDs = l_area->joinedIDs(); // Get the list of joined player IDs + for (int id : joinedPlayerIDs) { + AOClient* client = server->getClientByID(id); // Get each client by ID + if (client->m_pos == "wit" || any) { + client->hide_desk = hide; // Set hide_desk if the client is a "wit" + } + } } \ No newline at end of file diff --git a/tests/unittest_acl_roles_handler/target_wrapper.sh b/tests/unittest_acl_roles_handler/target_wrapper.sh index 58b6a30..3543fff 100755 --- a/tests/unittest_acl_roles_handler/target_wrapper.sh +++ b/tests/unittest_acl_roles_handler/target_wrapper.sh @@ -1,6 +1,6 @@ #!/bin/sh -LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} +LD_LIBRARY_PATH=/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} export LD_LIBRARY_PATH -QT_PLUGIN_PATH=/usr/lib/aarch64-linux-gnu/qt5/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} +QT_PLUGIN_PATH=/usr/lib/qt/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} export QT_PLUGIN_PATH exec "$@" diff --git a/tests/unittest_akashi_utils/target_wrapper.sh b/tests/unittest_akashi_utils/target_wrapper.sh index 58b6a30..3543fff 100755 --- a/tests/unittest_akashi_utils/target_wrapper.sh +++ b/tests/unittest_akashi_utils/target_wrapper.sh @@ -1,6 +1,6 @@ #!/bin/sh -LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} +LD_LIBRARY_PATH=/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} export LD_LIBRARY_PATH -QT_PLUGIN_PATH=/usr/lib/aarch64-linux-gnu/qt5/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} +QT_PLUGIN_PATH=/usr/lib/qt/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} export QT_PLUGIN_PATH exec "$@" diff --git a/tests/unittest_aopacket/target_wrapper.sh b/tests/unittest_aopacket/target_wrapper.sh index 58b6a30..3543fff 100755 --- a/tests/unittest_aopacket/target_wrapper.sh +++ b/tests/unittest_aopacket/target_wrapper.sh @@ -1,6 +1,6 @@ #!/bin/sh -LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} +LD_LIBRARY_PATH=/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} export LD_LIBRARY_PATH -QT_PLUGIN_PATH=/usr/lib/aarch64-linux-gnu/qt5/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} +QT_PLUGIN_PATH=/usr/lib/qt/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} export QT_PLUGIN_PATH exec "$@" diff --git a/tests/unittest_area/target_wrapper.sh b/tests/unittest_area/target_wrapper.sh index 58b6a30..3543fff 100755 --- a/tests/unittest_area/target_wrapper.sh +++ b/tests/unittest_area/target_wrapper.sh @@ -1,6 +1,6 @@ #!/bin/sh -LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} +LD_LIBRARY_PATH=/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} export LD_LIBRARY_PATH -QT_PLUGIN_PATH=/usr/lib/aarch64-linux-gnu/qt5/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} +QT_PLUGIN_PATH=/usr/lib/qt/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} export QT_PLUGIN_PATH exec "$@" diff --git a/tests/unittest_command_extension/target_wrapper.sh b/tests/unittest_command_extension/target_wrapper.sh index 58b6a30..3543fff 100755 --- a/tests/unittest_command_extension/target_wrapper.sh +++ b/tests/unittest_command_extension/target_wrapper.sh @@ -1,6 +1,6 @@ #!/bin/sh -LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} +LD_LIBRARY_PATH=/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} export LD_LIBRARY_PATH -QT_PLUGIN_PATH=/usr/lib/aarch64-linux-gnu/qt5/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} +QT_PLUGIN_PATH=/usr/lib/qt/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} export QT_PLUGIN_PATH exec "$@" diff --git a/tests/unittest_config_manager/target_wrapper.sh b/tests/unittest_config_manager/target_wrapper.sh index 58b6a30..3543fff 100755 --- a/tests/unittest_config_manager/target_wrapper.sh +++ b/tests/unittest_config_manager/target_wrapper.sh @@ -1,6 +1,6 @@ #!/bin/sh -LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} +LD_LIBRARY_PATH=/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} export LD_LIBRARY_PATH -QT_PLUGIN_PATH=/usr/lib/aarch64-linux-gnu/qt5/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} +QT_PLUGIN_PATH=/usr/lib/qt/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} export QT_PLUGIN_PATH exec "$@" diff --git a/tests/unittest_crypto/target_wrapper.sh b/tests/unittest_crypto/target_wrapper.sh index 58b6a30..3543fff 100755 --- a/tests/unittest_crypto/target_wrapper.sh +++ b/tests/unittest_crypto/target_wrapper.sh @@ -1,6 +1,6 @@ #!/bin/sh -LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} +LD_LIBRARY_PATH=/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} export LD_LIBRARY_PATH -QT_PLUGIN_PATH=/usr/lib/aarch64-linux-gnu/qt5/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} +QT_PLUGIN_PATH=/usr/lib/qt/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} export QT_PLUGIN_PATH exec "$@" diff --git a/tests/unittest_music_manager/target_wrapper.sh b/tests/unittest_music_manager/target_wrapper.sh index 58b6a30..3543fff 100755 --- a/tests/unittest_music_manager/target_wrapper.sh +++ b/tests/unittest_music_manager/target_wrapper.sh @@ -1,6 +1,6 @@ #!/bin/sh -LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} +LD_LIBRARY_PATH=/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} export LD_LIBRARY_PATH -QT_PLUGIN_PATH=/usr/lib/aarch64-linux-gnu/qt5/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} +QT_PLUGIN_PATH=/usr/lib/qt/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH} export QT_PLUGIN_PATH exec "$@"