summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorKartic Krishnamurthy <drunkensufi@lindenlab.com>2007-08-08 00:55:57 +0000
committerKartic Krishnamurthy <drunkensufi@lindenlab.com>2007-08-08 00:55:57 +0000
commit52cb2aea8667056671b67a3c70eeefd00a061751 (patch)
treef68af9fa643127dd4c026ec5c95b41241dd279f3 /indra/newview
parent057a5646c14d3a61a5743e7a0cb3d6276634619e (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.cpp5
-rw-r--r--indra/newview/llhudobject.cpp18
-rw-r--r--indra/newview/llhudobject.h2
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();