diff options
Diffstat (limited to 'indra/newview/lltoolgun.cpp')
-rw-r--r-- | indra/newview/lltoolgun.cpp | 150 |
1 files changed, 75 insertions, 75 deletions
diff --git a/indra/newview/lltoolgun.cpp b/indra/newview/lltoolgun.cpp index 9539081f30..a79f287503 100644 --- a/indra/newview/lltoolgun.cpp +++ b/indra/newview/lltoolgun.cpp @@ -1,25 +1,25 @@ -/** +/** * @file lltoolgun.cpp * @brief LLToolGun class implementation * * $LicenseInfo:firstyear=2001&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ @@ -44,105 +44,105 @@ #include "lltoolgrab.h" #include "lluiimage.h" // Linden library includes -#include "llwindow.h" // setMouseClipping() +#include "llwindow.h" // setMouseClipping() LLToolGun::LLToolGun( LLToolComposite* composite ) -: LLTool( std::string("gun"), composite ), - mIsSelected(FALSE) +: LLTool( std::string("gun"), composite ), + mIsSelected(FALSE) { } void LLToolGun::handleSelect() { - gViewerWindow->hideCursor(); - gViewerWindow->moveCursorToCenter(); - gViewerWindow->getWindow()->setMouseClipping(TRUE); - mIsSelected = TRUE; + gViewerWindow->hideCursor(); + gViewerWindow->moveCursorToCenter(); + gViewerWindow->getWindow()->setMouseClipping(TRUE); + mIsSelected = TRUE; } void LLToolGun::handleDeselect() { - gViewerWindow->moveCursorToCenter(); - gViewerWindow->showCursor(); - gViewerWindow->getWindow()->setMouseClipping(FALSE); - mIsSelected = FALSE; + gViewerWindow->moveCursorToCenter(); + gViewerWindow->showCursor(); + gViewerWindow->getWindow()->setMouseClipping(FALSE); + mIsSelected = FALSE; } BOOL LLToolGun::handleMouseDown(S32 x, S32 y, MASK mask) { - gGrabTransientTool = this; - LLToolMgr::getInstance()->getCurrentToolset()->selectTool( LLToolGrab::getInstance() ); + gGrabTransientTool = this; + LLToolMgr::getInstance()->getCurrentToolset()->selectTool( LLToolGrab::getInstance() ); - return LLToolGrab::getInstance()->handleMouseDown(x, y, mask); + return LLToolGrab::getInstance()->handleMouseDown(x, y, mask); } -BOOL LLToolGun::handleHover(S32 x, S32 y, MASK mask) +BOOL LLToolGun::handleHover(S32 x, S32 y, MASK mask) { - if( gAgentCamera.cameraMouselook() && mIsSelected ) - { - const F32 NOMINAL_MOUSE_SENSITIVITY = 0.0025f; - - F32 mouse_sensitivity = gSavedSettings.getF32("MouseSensitivity"); - mouse_sensitivity = clamp_rescale(mouse_sensitivity, 0.f, 15.f, 0.5f, 2.75f) * NOMINAL_MOUSE_SENSITIVITY; - - // ...move the view with the mouse - - // get mouse movement delta - S32 dx = -gViewerWindow->getCurrentMouseDX(); - S32 dy = -gViewerWindow->getCurrentMouseDY(); - - if (dx != 0 || dy != 0) - { - // ...actually moved off center - if (gSavedSettings.getBOOL("InvertMouse")) - { - gAgent.pitch(mouse_sensitivity * -dy); - } - else - { - gAgent.pitch(mouse_sensitivity * dy); - } - LLVector3 skyward = gAgent.getReferenceUpVector(); - gAgent.rotate(mouse_sensitivity * dx, skyward.mV[VX], skyward.mV[VY], skyward.mV[VZ]); - - if (gSavedSettings.getBOOL("MouseSun")) - { + if( gAgentCamera.cameraMouselook() && mIsSelected ) + { + const F32 NOMINAL_MOUSE_SENSITIVITY = 0.0025f; + + F32 mouse_sensitivity = gSavedSettings.getF32("MouseSensitivity"); + mouse_sensitivity = clamp_rescale(mouse_sensitivity, 0.f, 15.f, 0.5f, 2.75f) * NOMINAL_MOUSE_SENSITIVITY; + + // ...move the view with the mouse + + // get mouse movement delta + S32 dx = -gViewerWindow->getCurrentMouseDX(); + S32 dy = -gViewerWindow->getCurrentMouseDY(); + + if (dx != 0 || dy != 0) + { + // ...actually moved off center + if (gSavedSettings.getBOOL("InvertMouse")) + { + gAgent.pitch(mouse_sensitivity * -dy); + } + else + { + gAgent.pitch(mouse_sensitivity * dy); + } + LLVector3 skyward = gAgent.getReferenceUpVector(); + gAgent.rotate(mouse_sensitivity * dx, skyward.mV[VX], skyward.mV[VY], skyward.mV[VZ]); + + if (gSavedSettings.getBOOL("MouseSun")) + { LLVector3 sunpos = LLViewerCamera::getInstance()->getAtAxis(); - gSky.setSunDirectionCFR(sunpos); - gSavedSettings.setVector3("SkySunDefaultPosition", LLViewerCamera::getInstance()->getAtAxis()); - } + gSky.setSunDirectionCFR(sunpos); + gSavedSettings.setVector3("SkySunDefaultPosition", LLViewerCamera::getInstance()->getAtAxis()); + } if (gSavedSettings.getBOOL("MouseMoon")) - { + { LLVector3 moonpos = LLViewerCamera::getInstance()->getAtAxis(); - gSky.setMoonDirectionCFR(moonpos); - gSavedSettings.setVector3("SkyMoonDefaultPosition", LLViewerCamera::getInstance()->getAtAxis()); - } + gSky.setMoonDirectionCFR(moonpos); + gSavedSettings.setVector3("SkyMoonDefaultPosition", LLViewerCamera::getInstance()->getAtAxis()); + } - gViewerWindow->moveCursorToCenter(); - gViewerWindow->hideCursor(); - } + gViewerWindow->moveCursorToCenter(); + gViewerWindow->hideCursor(); + } - LL_DEBUGS("UserInput") << "hover handled by LLToolGun (mouselook)" << LL_ENDL; - } - else - { - LL_DEBUGS("UserInput") << "hover handled by LLToolGun (not mouselook)" << LL_ENDL; - } + LL_DEBUGS("UserInput") << "hover handled by LLToolGun (mouselook)" << LL_ENDL; + } + else + { + LL_DEBUGS("UserInput") << "hover handled by LLToolGun (not mouselook)" << LL_ENDL; + } - // HACK to avoid assert: error checking system makes sure that the cursor is set during every handleHover. This is actually a no-op since the cursor is hidden. - gViewerWindow->setCursor(UI_CURSOR_ARROW); + // HACK to avoid assert: error checking system makes sure that the cursor is set during every handleHover. This is actually a no-op since the cursor is hidden. + gViewerWindow->setCursor(UI_CURSOR_ARROW); - return TRUE; + return TRUE; } void LLToolGun::draw() { - if( gSavedSettings.getBOOL("ShowCrosshairs") ) - { - LLUIImagePtr crosshair = LLUI::getUIImage("crosshairs.tga"); - crosshair->draw( - ( gViewerWindow->getWorldViewRectScaled().getWidth() - crosshair->getWidth() ) / 2, - ( gViewerWindow->getWorldViewRectScaled().getHeight() - crosshair->getHeight() ) / 2); - } + if( gSavedSettings.getBOOL("ShowCrosshairs") ) + { + LLUIImagePtr crosshair = LLUI::getUIImage("crosshairs.tga"); + crosshair->draw( + ( gViewerWindow->getWorldViewRectScaled().getWidth() - crosshair->getWidth() ) / 2, + ( gViewerWindow->getWorldViewRectScaled().getHeight() - crosshair->getHeight() ) / 2); + } } |