diff options
Diffstat (limited to 'indra/newview/llviewerobject.cpp')
-rw-r--r-- | indra/newview/llviewerobject.cpp | 51 |
1 files changed, 23 insertions, 28 deletions
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index ee8bb50e4e..61dc66065c 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -788,7 +788,7 @@ BOOL LLViewerObject::setDrawableParent(LLDrawable* parentp) } LLDrawable* old_parent = mDrawable->mParent; mDrawable->mParent = parentp; - + if (parentp && mDrawable->isActive()) { parentp->makeActive(); @@ -1235,11 +1235,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, mText->setColor(LLColor4(coloru)); mText->setString(temp_string); - if (mDrawable.notNull()) - { - setChanged(MOVED | SILHOUETTE); - gPipeline.markMoved(mDrawable, FALSE); // undamped - } + setChanged(MOVED | SILHOUETTE); } else if (mText.notNull()) { @@ -2048,12 +2044,12 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, || (new_angv != old_angv)) { if (new_rot != mPreviousRotation) - { + { resetRot(); } else if (new_angv != old_angv) { - if (flagUsePhysics() || new_angv.isExactlyZero()) + if (flagUsePhysics()) { resetRot(); } @@ -2071,7 +2067,6 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys, setChanged(ROTATED | SILHOUETTE); } - if ( gShowObjectUpdates ) { LLColor4 color; @@ -2172,28 +2167,28 @@ void LLViewerObject::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time) if (!mDead) { - // CRO - don't velocity interp linked objects! - // Leviathan - but DO velocity interp joints - if (!mStatic && sVelocityInterpolate && !isSelected()) - { - // calculate dt from last update - F32 dt_raw = (F32)(time - mLastInterpUpdateSecs); - F32 dt = mTimeDilation * dt_raw; + // CRO - don't velocity interp linked objects! + // Leviathan - but DO velocity interp joints + if (!mStatic && sVelocityInterpolate && !isSelected()) + { + // calculate dt from last update + F32 dt_raw = (F32)(time - mLastInterpUpdateSecs); + F32 dt = mTimeDilation * dt_raw; applyAngularVelocity(dt); - + if (isAttachment()) - { - mLastInterpUpdateSecs = time; + { + mLastInterpUpdateSecs = time; return; - } - else - { // Move object based on it's velocity and rotation - interpolateLinearMotion(time, dt); - } } + else + { // Move object based on it's velocity and rotation + interpolateLinearMotion(time, dt); + } + } - updateDrawable(FALSE); + updateDrawable(FALSE); } } @@ -5364,9 +5359,9 @@ void LLViewerObject::setPhysicsShapeType(U8 type) mPhysicsShapeUnknown = false; if (type != mPhysicsShapeType) { - mPhysicsShapeType = type; - mCostStale = true; - } + mPhysicsShapeType = type; + mCostStale = true; +} } void LLViewerObject::setPhysicsGravity(F32 gravity) |