diff --git a/indra/newview/llviewerpartsource.cpp b/indra/newview/llviewerpartsource.cpp index 792fcb99eeb547cda5c37bfff70a3905f232faec..8e756d2d9eb3624af84674a565ee384e56326e3c 100644 --- a/indra/newview/llviewerpartsource.cpp +++ b/indra/newview/llviewerpartsource.cpp @@ -706,8 +706,6 @@ void LLViewerPartSourceBeam::setColor(const LLColor4 &color) void LLViewerPartSourceBeam::updatePart(LLViewerPart &part, const F32 dt) { - F32 frac = part.mLastUpdateTime/part.mMaxAge; - LLViewerPartSource *ps = (LLViewerPartSource*)part.mPartSourcep; LLViewerPartSourceBeam *psb = (LLViewerPartSourceBeam *)ps; if (psb->mSourceObjectp.isNull()) @@ -736,6 +734,7 @@ void LLViewerPartSourceBeam::updatePart(LLViewerPart &part, const F32 dt) target_pos_agent = psb->mTargetObjectp->getRenderPosition(); } + F32 frac = part.mLastUpdateTime / part.mMaxAge; part.mPosAgent = (1.f - frac) * source_pos_agent; if (psb->mTargetObjectp.isNull()) { @@ -796,7 +795,7 @@ void LLViewerPartSourceBeam::update(const F32 dt) } LLViewerPart* part = new LLViewerPart(); - part->init(this, mImagep, NULL); + part->init(this, mImagep, updatePart); part->mFlags = LLPartData::LL_PART_INTERP_COLOR_MASK | LLPartData::LL_PART_INTERP_SCALE_MASK |