Clean up ScriptCounter code more
This commit is contained in:
@@ -3019,17 +3019,7 @@ void pass_processObjectPropertiesFamily(LLMessageSystem *msg, void**)
|
||||
void process_script_running_reply(LLMessageSystem* msg, void** v)
|
||||
{
|
||||
LLLiveLSLEditor::processScriptRunningReply(msg, v);
|
||||
if (ScriptCounter::sCheckMap.size())
|
||||
{
|
||||
LLUUID item_id;
|
||||
msg->getUUIDFast(_PREHASH_Script, _PREHASH_ItemID, item_id);
|
||||
std::map<LLUUID,ScriptCounter*>::iterator it = ScriptCounter::sCheckMap.find(item_id);
|
||||
if (it != ScriptCounter::sCheckMap.end())
|
||||
{
|
||||
it->second->processRunningReply(msg);
|
||||
ScriptCounter::sCheckMap.erase(it);
|
||||
}
|
||||
}
|
||||
ScriptCounter::processScriptRunningReply(msg);
|
||||
}
|
||||
|
||||
void register_viewer_callbacks(LLMessageSystem* msg)
|
||||
|
||||
@@ -165,6 +165,21 @@ void ScriptCounter::inventoryChanged(LLViewerObject* obj, LLInventoryObject::obj
|
||||
summarize();
|
||||
}
|
||||
|
||||
void ScriptCounter::processScriptRunningReply(LLMessageSystem* msg)
|
||||
{
|
||||
if (!sCheckMap.empty())
|
||||
{
|
||||
LLUUID item_id;
|
||||
msg->getUUIDFast(_PREHASH_Script, _PREHASH_ItemID, item_id);
|
||||
auto it = sCheckMap.find(item_id);
|
||||
if (it != sCheckMap.end())
|
||||
{
|
||||
it->second->processRunningReply(msg);
|
||||
sCheckMap.erase(it);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ScriptCounter::processRunningReply(LLMessageSystem* msg)
|
||||
{
|
||||
BOOL is;
|
||||
|
||||
@@ -33,19 +33,19 @@
|
||||
|
||||
#include "llvoinventorylistener.h"
|
||||
|
||||
class ScriptCounter : public LLInstanceTracker<ScriptCounter, LLUUID>, public LLVOInventoryListener
|
||||
class ScriptCounter final : public LLInstanceTracker<ScriptCounter, LLUUID>, public LLVOInventoryListener
|
||||
{
|
||||
public:
|
||||
ScriptCounter(bool do_delete, LLViewerObject* object);
|
||||
~ScriptCounter();
|
||||
|
||||
/*virtual*/ void inventoryChanged(LLViewerObject* obj, LLInventoryObject::object_list_t* inv, S32, void*);
|
||||
void inventoryChanged(LLViewerObject* obj, LLInventoryObject::object_list_t* inv, S32, void*) override;
|
||||
void requestInventories();
|
||||
static void processScriptRunningReply(LLMessageSystem* msg);
|
||||
|
||||
private:
|
||||
void requestInventoriesFor(LLViewerObject* object);
|
||||
void requestInventoryFor(LLViewerObject* object);
|
||||
friend void process_script_running_reply(LLMessageSystem* msg, void**);
|
||||
void processRunningReply(LLMessageSystem* msg);
|
||||
void summarize(); // Check if finished, if so, output and destroy.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user