diff options
author | Kartic Krishnamurthy <drunkensufi@lindenlab.com> | 2007-08-08 00:55:57 +0000 |
---|---|---|
committer | Kartic Krishnamurthy <drunkensufi@lindenlab.com> | 2007-08-08 00:55:57 +0000 |
commit | 52cb2aea8667056671b67a3c70eeefd00a061751 (patch) | |
tree | f68af9fa643127dd4c026ec5c95b41241dd279f3 /indra/newview | |
parent | 057a5646c14d3a61a5743e7a0cb3d6276634619e (diff) |
svn merge -r67131:67483 svn+ssh://svn/svn/linden/branches/Branch_1-18-1
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/llhudmanager.cpp | 5 | ||||
-rw-r--r-- | indra/newview/llhudobject.cpp | 18 | ||||
-rw-r--r-- | indra/newview/llhudobject.h | 2 |
3 files changed, 21 insertions, 4 deletions
diff --git a/indra/newview/llhudmanager.cpp b/indra/newview/llhudmanager.cpp index b3e51de317..a3c6523b86 100644 --- a/indra/newview/llhudmanager.cpp +++ b/indra/newview/llhudmanager.cpp @@ -107,8 +107,8 @@ void LLHUDManager::cleanupEffects() LLHUDEffect *LLHUDManager::createViewerEffect(const U8 type, BOOL send_to_sim, BOOL originated_here) { - // Should assert that this is actually an LLHUDEffect - LLHUDEffect *hep = (LLHUDEffect *)LLHUDObject::addHUDObject(type); + // SJB: DO NOT USE addHUDObject!!! Not all LLHUDObjects are LLHUDEffects! + LLHUDEffect *hep = LLHUDObject::addHUDEffect(type); if (!hep) { return NULL; @@ -149,7 +149,6 @@ void LLHUDManager::processViewerEffect(LLMessageSystem *mesgsys, void **user_dat { effectp = NULL; LLHUDEffect::getIDType(mesgsys, k, effect_id, effect_type); - S32 i; for (i = 0; i < gHUDManager->mHUDEffects.count(); i++) { diff --git a/indra/newview/llhudobject.cpp b/indra/newview/llhudobject.cpp index 0bcbbbb140..b6a6f14fc9 100644 --- a/indra/newview/llhudobject.cpp +++ b/indra/newview/llhudobject.cpp @@ -135,6 +135,22 @@ LLHUDObject *LLHUDObject::addHUDObject(const U8 type) case LL_HUD_CONNECTOR: hud_objectp = new LLHUDConnector(type); break; + default: + llwarns << "Unknown type of hud object:" << (U32) type << llendl; + } + if (hud_objectp) + { + sHUDObjects.push_back(hud_objectp); + } + return hud_objectp; +} + +LLHUDEffect *LLHUDObject::addHUDEffect(const U8 type) +{ + LLHUDEffect *hud_objectp = NULL; + + switch (type) + { case LL_HUD_EFFECT_BEAM: hud_objectp = new LLHUDEffectSpiral(type); ((LLHUDEffectSpiral *)hud_objectp)->setDuration(0.7f); @@ -213,7 +229,7 @@ LLHUDObject *LLHUDObject::addHUDObject(const U8 type) hud_objectp = new LLHUDEffectPointAt(type); break; default: - llwarns << "Unknown type of hud object:" << (U32) type << llendl; + llwarns << "Unknown type of hud effect:" << (U32) type << llendl; } if (hud_objectp) diff --git a/indra/newview/llhudobject.h b/indra/newview/llhudobject.h index 3b5589c05b..828af5cf17 100644 --- a/indra/newview/llhudobject.h +++ b/indra/newview/llhudobject.h @@ -26,6 +26,7 @@ class LLViewerCamera; class LLFontGL; class LLFace; class LLViewerObject; +class LLHUDEffect; class LLHUDObject : public LLRefCount { @@ -45,6 +46,7 @@ public: U8 getType() const { return mType; } static LLHUDObject *addHUDObject(const U8 type); + static LLHUDEffect *addHUDEffect(const U8 type); static void updateAll(); static void renderAll(); static void renderAllForSelect(); |