From 5a2d59c5305742180eae75e6be600e575a5beee3 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 15 Jul 2015 15:07:34 -0700 Subject: [PATCH] fix ScriptEngine cleanup for Agent --- assignment-client/src/Agent.cpp | 3 ++- libraries/script-engine/src/ScriptEngine.cpp | 3 ++- libraries/script-engine/src/ScriptEngine.h | 5 ++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/assignment-client/src/Agent.cpp b/assignment-client/src/Agent.cpp index d57d4ba663..97ef85681a 100644 --- a/assignment-client/src/Agent.cpp +++ b/assignment-client/src/Agent.cpp @@ -42,7 +42,8 @@ Agent::Agent(NLPacket& packet) : { // be the parent of the script engine so it gets moved when we do _scriptEngine.setParent(this); - + _scriptEngine.setIsAgent(true); + DependencyManager::get()->setPacketSender(&_entityEditSender); DependencyManager::set(); diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index 9050b44065..e99072de71 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -721,7 +721,8 @@ void ScriptEngine::run() { } // If we were on a thread, then wait till it's done - if (thread()) { + // Unless we're an assignment-client, in which case that's handled for us + if (thread() && !_isAgent) { thread()->quit(); } diff --git a/libraries/script-engine/src/ScriptEngine.h b/libraries/script-engine/src/ScriptEngine.h index a96042184d..65644dceb9 100644 --- a/libraries/script-engine/src/ScriptEngine.h +++ b/libraries/script-engine/src/ScriptEngine.h @@ -88,6 +88,8 @@ public: void setUserLoaded(bool isUserLoaded) { _isUserLoaded = isUserLoaded; } bool isUserLoaded() const { return _isUserLoaded; } + + void setIsAgent(bool isAgent) { _isAgent = isAgent; } void setParentURL(const QString& parentURL) { _parentURL = parentURL; } @@ -149,7 +151,8 @@ protected: bool _isListeningToAudioStream; Sound* _avatarSound; int _numAvatarSoundSentBytes; - + bool _isAgent = false; + private: void stopAllTimers(); void sendAvatarIdentityPacket();