diff --git a/indra/newview/llmorphview.cpp b/indra/newview/llmorphview.cpp index 98117b0f04..fa71cf1e0f 100644 --- a/indra/newview/llmorphview.cpp +++ b/indra/newview/llmorphview.cpp @@ -61,7 +61,8 @@ LLMorphView::LLMorphView(const LLMorphView::Params& p) mOldCameraNearClip( 0.f ), mCameraPitch( 0.f ), mCameraYaw( 0.f ), - mCameraDrivenByKeys( FALSE ) + mCameraDrivenByKeys( FALSE ), + mEditAppearanceLightingConnection() // Optional Edit Appearance Lighting {} //----------------------------------------------------------------------------- @@ -80,33 +81,47 @@ void LLMorphView::initialize() gAgentAvatarp->stopMotion( ANIM_AGENT_BODY_NOISE ); - // ## Zi: Optional Edit Appearance Lighting -// gAgentAvatarp->mSpecialRenderMode = 3; - LLPointer special_render_mode_control=gSavedSettings.getControl("EditAppearanceLighting"); - special_render_mode_control->getCommitSignal()->connect(boost::bind(&LLMorphView::onSpecialRenderModeLightChanged, this)); + // Optional Edit Appearance Lighting + //gAgentAvatarp->mSpecialRenderMode = 3; + if (mEditAppearanceLightingConnection.connected()) + { + mEditAppearanceLightingConnection.disconnect(); + } + mEditAppearanceLightingConnection = gSavedSettings.getControl("EditAppearanceLighting")->getCommitSignal()->connect(boost::bind(&LLMorphView::onSpecialRenderModeLightChanged, this)); onSpecialRenderModeLightChanged(); - // ## Zi: Optional Edit Appearance Lighting + // Optional Edit Appearance Lighting // set up camera for close look at avatar mOldCameraNearClip = LLViewerCamera::getInstance()->getNear(); LLViewerCamera::getInstance()->setNear(MORPH_NEAR_CLIP); } -// ## Zi: Optional Edit Appearance Lighting +// Optional Edit Appearance Lighting void LLMorphView::onSpecialRenderModeLightChanged() { - if(gSavedSettings.getBOOL("EditAppearanceLighting")) + if (gSavedSettings.getBOOL("EditAppearanceLighting")) + { gAgentAvatarp->mSpecialRenderMode = 3; + } else + { gAgentAvatarp->mSpecialRenderMode = 0; + } } -// ## Zi: Optional Edit Appearance Lighting +// Optional Edit Appearance Lighting //----------------------------------------------------------------------------- // shutdown() //----------------------------------------------------------------------------- void LLMorphView::shutdown() { + // Optional Edit Appearance Lighting + if (mEditAppearanceLightingConnection.connected()) + { + mEditAppearanceLightingConnection.disconnect(); + } + // Optional Edit Appearance Lighting + if (isAgentAvatarValid()) { gAgentAvatarp->startMotion( ANIM_AGENT_BODY_NOISE ); diff --git a/indra/newview/llmorphview.h b/indra/newview/llmorphview.h index 449b5c4c4d..3f12a1647b 100644 --- a/indra/newview/llmorphview.h +++ b/indra/newview/llmorphview.h @@ -63,7 +63,7 @@ public: protected: void initialize(); - void onSpecialRenderModeLightChanged(); // ## Zi: Optional Edit Appearance Lighting + void onSpecialRenderModeLightChanged(); // Optional Edit Appearance Lighting LLJoint* mCameraTargetJoint; LLVector3d mCameraOffset; @@ -78,7 +78,7 @@ protected: F32 mCameraYaw; BOOL mCameraDrivenByKeys; - BOOL mSpecialRenderModeLight; // ## Zi: Optional Edit Appearance Lighting + boost::signals2::connection mEditAppearanceLightingConnection; // Optional Edit Appearance Lighting }; //