diff options
author | David Walter Seikel | 2011-12-03 17:52:09 +1000 |
---|---|---|
committer | David Walter Seikel | 2011-12-03 17:52:09 +1000 |
commit | a1f82acebab97347d49a941f67a6df0ce78c29a6 (patch) | |
tree | fe5fed4cfd272195072961e883a0e360a279c1b7 /linden/indra | |
parent | /me grins. (diff) | |
download | meta-impy-a1f82acebab97347d49a941f67a6df0ce78c29a6.zip meta-impy-a1f82acebab97347d49a941f67a6df0ce78c29a6.tar.gz meta-impy-a1f82acebab97347d49a941f67a6df0ce78c29a6.tar.bz2 meta-impy-a1f82acebab97347d49a941f67a6df0ce78c29a6.tar.xz |
Another possible fix for misplaced HUDs?
From singularity commit 69e733ea86ebd7cd5a4acb40ef87735e5c428c53 by Shyotl.
From singularity commit 080407d92f2846397472be1ab533a9da7f8b66cb by Shyotl.
From singularity commit 88df12ddb6cecf7d46d64531123e4adc23862db1 by Shyotl.
Plus some extra fom singularity, but not sure where it came from.
Diffstat (limited to 'linden/indra')
-rw-r--r-- | linden/indra/newview/lldrawable.cpp | 35 | ||||
-rw-r--r-- | linden/indra/newview/lltoolpie.cpp | 7 | ||||
-rw-r--r-- | linden/indra/newview/llviewerobjectlist.cpp | 3 |
3 files changed, 40 insertions, 5 deletions
diff --git a/linden/indra/newview/lldrawable.cpp b/linden/indra/newview/lldrawable.cpp index 5a383bc..7ab5ade 100644 --- a/linden/indra/newview/lldrawable.cpp +++ b/linden/indra/newview/lldrawable.cpp | |||
@@ -1225,6 +1225,12 @@ void LLSpatialBridge::setVisible(LLCamera& camera_in, std::vector<LLDrawable*>* | |||
1225 | return; | 1225 | return; |
1226 | } | 1226 | } |
1227 | } | 1227 | } |
1228 | // From singularity commit 69e733ea86ebd7cd5a4acb40ef87735e5c428c53 by Shyotl. | ||
1229 | // TODO: Is THIS what is causing HUD monsters? | ||
1230 | else | ||
1231 | { | ||
1232 | return; | ||
1233 | } | ||
1228 | } | 1234 | } |
1229 | 1235 | ||
1230 | 1236 | ||
@@ -1278,12 +1284,33 @@ void LLSpatialBridge::updateDistance(LLCamera& camera_in, bool force_update) | |||
1278 | return; | 1284 | return; |
1279 | } | 1285 | } |
1280 | 1286 | ||
1281 | LLCamera camera = transformCamera(camera_in); | ||
1282 | |||
1283 | mDrawable->updateDistance(camera, force_update); | ||
1284 | |||
1285 | if (mDrawable->getVObj()) | 1287 | if (mDrawable->getVObj()) |
1286 | { | 1288 | { |
1289 | |||
1290 | // Some more taken from singularity, but not sure of the origin. | ||
1291 | if (mDrawable->getVObj()->isAttachment()) | ||
1292 | { | ||
1293 | LLDrawable* parent = mDrawable->getParent(); | ||
1294 | if (parent) | ||
1295 | { | ||
1296 | LLViewerObject *obj = parent->getVObj(); | ||
1297 | if (obj && obj->isAvatar() && ((LLVOAvatar*)obj)->isImpostor()) | ||
1298 | { | ||
1299 | return; | ||
1300 | } | ||
1301 | } | ||
1302 | // From singularity commit 69e733ea86ebd7cd5a4acb40ef87735e5c428c53 by Shyotl. | ||
1303 | // TODO: Is THIS what is causing HUD monsters? | ||
1304 | else | ||
1305 | { | ||
1306 | return; | ||
1307 | } | ||
1308 | } | ||
1309 | |||
1310 | LLCamera camera = transformCamera(camera_in); | ||
1311 | |||
1312 | mDrawable->updateDistance(camera, force_update); | ||
1313 | |||
1287 | LLViewerObject::const_child_list_t& child_list = mDrawable->getVObj()->getChildren(); | 1314 | LLViewerObject::const_child_list_t& child_list = mDrawable->getVObj()->getChildren(); |
1288 | for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin(); | 1315 | for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin(); |
1289 | iter != child_list.end(); iter++) | 1316 | iter != child_list.end(); iter++) |
diff --git a/linden/indra/newview/lltoolpie.cpp b/linden/indra/newview/lltoolpie.cpp index 429b9d4..7cab0eb 100644 --- a/linden/indra/newview/lltoolpie.cpp +++ b/linden/indra/newview/lltoolpie.cpp | |||
@@ -394,6 +394,13 @@ BOOL LLToolPie::pickAndShowMenu(BOOL always_show) | |||
394 | object = (LLViewerObject*)object->getParent(); | 394 | object = (LLViewerObject*)object->getParent(); |
395 | } | 395 | } |
396 | 396 | ||
397 | // From singularity commit 080407d92f2846397472be1ab533a9da7f8b66cb by Shyotl. | ||
398 | // TODO: Is THIS what is causing HUD monsters to cause crashes? | ||
399 | if (!object) | ||
400 | { | ||
401 | return TRUE; // unexpected, but escape | ||
402 | } | ||
403 | |||
397 | // Object is an avatar, so check for mute by id. | 404 | // Object is an avatar, so check for mute by id. |
398 | LLVOAvatar* avatar = (LLVOAvatar*)object; | 405 | LLVOAvatar* avatar = (LLVOAvatar*)object; |
399 | std::string name = avatar->getFullname(); | 406 | std::string name = avatar->getFullname(); |
diff --git a/linden/indra/newview/llviewerobjectlist.cpp b/linden/indra/newview/llviewerobjectlist.cpp index ad92fe3..ea6ecd8 100644 --- a/linden/indra/newview/llviewerobjectlist.cpp +++ b/linden/indra/newview/llviewerobjectlist.cpp | |||
@@ -464,7 +464,8 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys, | |||
464 | 464 | ||
465 | if (objectp->getRegion() != regionp) | 465 | if (objectp->getRegion() != regionp) |
466 | { // Object changed region, so update it | 466 | { // Object changed region, so update it |
467 | objectp->setRegion(regionp); | 467 | // From singularity commit 88df12ddb6cecf7d46d64531123e4adc23862db1 by Shyotl. |
468 | // TODO: Is THIS what is causing HUD monsters? objectp->setRegion(regionp); | ||
468 | objectp->updateRegion(regionp); // for LLVOAvatar | 469 | objectp->updateRegion(regionp); // for LLVOAvatar |
469 | } | 470 | } |
470 | } | 471 | } |