//static void LLHUDManager::processViewerEffect(LLMessageSystem *mesgsys, void **user_data) { if (gNoRender) { return; } LLHUDEffect *effectp = NULL; LLUUID effect_id; U8 effect_type = 0; S32 number_blocks = mesgsys->getNumberOfBlocksFast(_PREHASH_Effect); S32 k; for (k = 0; k < number_blocks; k++) { effectp = NULL; LLHUDEffect::getIDType(mesgsys, k, effect_id, effect_type); S32 i; for (i = 0; i < LLHUDManager::getInstance()->mHUDEffects.count(); i++) { LLHUDEffect *cur_effectp = LLHUDManager::getInstance()->mHUDEffects[i]; if (!cur_effectp) { llwarns << "Null effect in effect manager, skipping" << llendl; LLHUDManager::getInstance()->mHUDEffects.remove(i); i--; continue; } if (cur_effectp->isDead()) { // llwarns << "Dead effect in effect manager, removing" << llendl; LLHUDManager::getInstance()->mHUDEffects.remove(i); i--; continue; } if (cur_effectp->getID() == effect_id) { if (cur_effectp->getType() != effect_type) { llwarns << "Viewer effect update doesn't match old type!" << llendl; } effectp = cur_effectp; break; } } if (effect_type) { if (!effectp) { effectp = LLHUDManager::getInstance()->createViewerEffect(effect_type, FALSE, FALSE); } if (effectp) { effectp->unpackData(mesgsys, k); } } else { llwarns << "Received viewer effect of type " << effect_type << " which isn't really an effect!" << llendl; } } //llinfos << "Got viewer effect: " << effect_id << llendl; }