Merge remote-tracking branch 'Liru/master'

This commit is contained in:
Damian Zhaoying
2014-10-30 14:47:32 -03:00
6 changed files with 42 additions and 35 deletions

View File

@@ -182,16 +182,22 @@ THIRD_PERSON Q CTL_ALT_SHIFT pan_left
THIRD_PERSON D CTL_ALT_SHIFT pan_right THIRD_PERSON D CTL_ALT_SHIFT pan_right
THIRD_PERSON Z CTL_ALT_SHIFT pan_up THIRD_PERSON Z CTL_ALT_SHIFT pan_up
THIRD_PERSON S CTL_ALT_SHIFT pan_down THIRD_PERSON S CTL_ALT_SHIFT pan_down
THIRD_PERSON E CTL_ALT_SHIFT pan_in
THIRD_PERSON C CTL_ALT_SHIFT pan_out
THIRD_PERSON LEFT CTL_ALT_SHIFT pan_left THIRD_PERSON LEFT CTL_ALT_SHIFT pan_left
THIRD_PERSON RIGHT CTL_ALT_SHIFT pan_right THIRD_PERSON RIGHT CTL_ALT_SHIFT pan_right
THIRD_PERSON UP CTL_ALT_SHIFT pan_up THIRD_PERSON UP CTL_ALT_SHIFT pan_up
THIRD_PERSON DOWN CTL_ALT_SHIFT pan_down THIRD_PERSON DOWN CTL_ALT_SHIFT pan_down
THIRD_PERSON PGUP CTL_ALT_SHIFT pan_in
THIRD_PERSON PGDN CTL_ALT_SHIFT pan_out
THIRD_PERSON PAD_LEFT CTL_ALT_SHIFT pan_left THIRD_PERSON PAD_LEFT CTL_ALT_SHIFT pan_left
THIRD_PERSON PAD_RIGHT CTL_ALT_SHIFT pan_right THIRD_PERSON PAD_RIGHT CTL_ALT_SHIFT pan_right
THIRD_PERSON PAD_UP CTL_ALT_SHIFT pan_up THIRD_PERSON PAD_UP CTL_ALT_SHIFT pan_up
THIRD_PERSON PAD_DOWN CTL_ALT_SHIFT pan_down THIRD_PERSON PAD_DOWN CTL_ALT_SHIFT pan_down
THIRD_PERSON PAD_PGUP CTL_ALT_SHIFT pan_in
THIRD_PERSON PAD_PGDN CTL_ALT_SHIFT pan_out
THIRD_PERSON PAD_ENTER CTL_ALT_SHIFT start_chat THIRD_PERSON PAD_ENTER CTL_ALT_SHIFT start_chat
THIRD_PERSON PAD_DIVIDE CTL_ALT_SHIFT start_gesture THIRD_PERSON PAD_DIVIDE CTL_ALT_SHIFT start_gesture
@@ -319,16 +325,22 @@ SITTING Q CTL_ALT_SHIFT pan_left
SITTING D CTL_ALT_SHIFT pan_right SITTING D CTL_ALT_SHIFT pan_right
SITTING Z CTL_ALT_SHIFT pan_up SITTING Z CTL_ALT_SHIFT pan_up
SITTING S CTL_ALT_SHIFT pan_down SITTING S CTL_ALT_SHIFT pan_down
SITTING E CTL_ALT_SHIFT pan_in
SITTING C CTL_ALT_SHIFT pan_out
SITTING LEFT CTL_ALT_SHIFT pan_left SITTING LEFT CTL_ALT_SHIFT pan_left
SITTING RIGHT CTL_ALT_SHIFT pan_right SITTING RIGHT CTL_ALT_SHIFT pan_right
SITTING UP CTL_ALT_SHIFT pan_up SITTING UP CTL_ALT_SHIFT pan_up
SITTING DOWN CTL_ALT_SHIFT pan_down SITTING DOWN CTL_ALT_SHIFT pan_down
SITTING PGUP CTL_ALT_SHIFT pan_in
SITTING PGDN CTL_ALT_SHIFT pan_out
SITTING PAD_LEFT CTL_ALT_SHIFT pan_left SITTING PAD_LEFT CTL_ALT_SHIFT pan_left
SITTING PAD_RIGHT CTL_ALT_SHIFT pan_right SITTING PAD_RIGHT CTL_ALT_SHIFT pan_right
SITTING PAD_UP CTL_ALT_SHIFT pan_up SITTING PAD_UP CTL_ALT_SHIFT pan_up
SITTING PAD_DOWN CTL_ALT_SHIFT pan_down SITTING PAD_DOWN CTL_ALT_SHIFT pan_down
SITTING PAD_PGUP CTL_ALT_SHIFT pan_in
SITTING PAD_PGDN CTL_ALT_SHIFT pan_out
SITTING PAD_ENTER CTL_ALT_SHIFT start_chat SITTING PAD_ENTER CTL_ALT_SHIFT start_chat
SITTING PAD_DIVIDE CTL_ALT_SHIFT start_gesture SITTING PAD_DIVIDE CTL_ALT_SHIFT start_gesture

View File

@@ -2272,6 +2272,7 @@ void LLAgentCamera::changeCameraToFollow(BOOL animate)
if (mCameraMode == CAMERA_MODE_MOUSELOOK) if (mCameraMode == CAMERA_MODE_MOUSELOOK)
{ {
animate = FALSE; animate = FALSE;
if (gViewerWindow->getRightMouseDown()) LLViewerCamera::instance().loadDefaultFOV(); // <singu/> We could be zoomed in
} }
startCameraAnimation(); startCameraAnimation();
@@ -2361,6 +2362,7 @@ void LLAgentCamera::changeCameraToThirdPerson(BOOL animate)
mCurrentCameraDistance = MIN_CAMERA_DISTANCE; mCurrentCameraDistance = MIN_CAMERA_DISTANCE;
mTargetCameraDistance = MIN_CAMERA_DISTANCE; mTargetCameraDistance = MIN_CAMERA_DISTANCE;
animate = FALSE; animate = FALSE;
if (gViewerWindow->getRightMouseDown()) LLViewerCamera::instance().loadDefaultFOV(); // <singu/> We could be zoomed in
} }
updateLastCamera(); updateLastCamera();
mCameraMode = CAMERA_MODE_THIRD_PERSON; mCameraMode = CAMERA_MODE_THIRD_PERSON;

View File

@@ -638,7 +638,7 @@ void LLToolCompRotate::render()
LLToolCompGun::LLToolCompGun() LLToolCompGun::LLToolCompGun()
: LLToolComposite(std::string("Mouselook")) : LLToolComposite(std::string("Mouselook"))
, mRightMouseButton(false), mMenuShown(false), mTimerFOV(), mOriginalFOV(), mStartFOV(), mTargetFOV() // <exodus/> , mMenuShown(false), mTimerFOV(), mOriginalFOV(), mStartFOV(), mTargetFOV() // <exodus/>
{ {
mGun = new LLToolGun(this); mGun = new LLToolGun(this);
mGrab = new LLToolGrab(this); mGrab = new LLToolGrab(this);
@@ -764,10 +764,9 @@ void LLToolCompGun::handleSelect()
void LLToolCompGun::handleDeselect() void LLToolCompGun::handleDeselect()
{ {
LLToolComposite::handleDeselect(); LLToolComposite::handleDeselect();
if (mRightMouseButton || mTimerFOV.getStarted()) // Singu Note: Load Default FOV if we were zoomed in if (mTimerFOV.getStarted()) // <singu/> Note: Load Default FOV if we were zooming in
{ {
LLViewerCamera::getInstance()->loadDefaultFOV(); LLViewerCamera::getInstance()->loadDefaultFOV();
mRightMouseButton = false;
} }
setMouseCapture(FALSE); setMouseCapture(FALSE);
} }
@@ -777,22 +776,18 @@ void LLToolCompGun::handleDeselect()
BOOL LLToolCompGun::handleRightMouseUp(S32 x, S32 y, MASK mask) BOOL LLToolCompGun::handleRightMouseUp(S32 x, S32 y, MASK mask)
{ {
// Singu Note: Beware the alt-click menu // Singu Note: Beware the alt-click menu
if (mRightMouseButton)
{
mRightMouseButton = false;
mStartFOV = LLViewerCamera::getInstance()->getDefaultFOV();
mTargetFOV = mOriginalFOV;
gSavedSettings.getBOOL("LiruMouselookInstantZoom") ? LLViewerCamera::getInstance()->setDefaultFOV(mTargetFOV) :
mTimerFOV.start();
}
if (mMenuShown) if (mMenuShown)
{ {
mMenuShown = false; mMenuShown = false;
return LLToolComposite::handleRightMouseUp(x, y, mask); return LLToolComposite::handleRightMouseUp(x, y, mask);
} }
LLViewerCamera& cam(LLViewerCamera::instance());
mStartFOV = cam.getDefaultFOV();
mTargetFOV = mOriginalFOV;
gSavedSettings.getBOOL("LiruMouselookInstantZoom") ? cam.setDefaultFOV(mTargetFOV) : mTimerFOV.start();
cam.mSavedFOVLoaded = false;
return TRUE; return TRUE;
} }
@@ -805,27 +800,27 @@ BOOL LLToolCompGun::handleRightMouseDown(S32 x, S32 y, MASK mask)
return false; return false;
} }
mRightMouseButton = true; LLViewerCamera& cam(LLViewerCamera::instance());
if (!mTimerFOV.getStarted())
if(!mTimerFOV.getStarted())
{ {
mStartFOV = LLViewerCamera::getInstance()->getAndSaveDefaultFOV(); mStartFOV = cam.getAndSaveDefaultFOV();
mOriginalFOV = mStartFOV; mOriginalFOV = mStartFOV;
} }
else mStartFOV = LLViewerCamera::getInstance()->getDefaultFOV(); else mStartFOV = cam.getDefaultFOV();
mTargetFOV = gSavedSettings.getF32("ExodusAlternativeFOV"); mTargetFOV = gSavedSettings.getF32("ExodusAlternativeFOV");
gSavedSettings.getBOOL("LiruMouselookInstantZoom") ? LLViewerCamera::getInstance()->setDefaultFOV(mTargetFOV) : gSavedSettings.getBOOL("LiruMouselookInstantZoom") ? cam.setDefaultFOV(mTargetFOV) : mTimerFOV.start();
mTimerFOV.start(); cam.mSavedFOVLoaded = false;
return TRUE; return TRUE;
} }
BOOL LLToolCompGun::handleScrollWheel(S32 x, S32 y, S32 clicks) BOOL LLToolCompGun::handleScrollWheel(S32 x, S32 y, S32 clicks)
{ {
if (mRightMouseButton) if (gViewerWindow->getRightMouseDown())
{ {
mStartFOV = LLViewerCamera::getInstance()->getDefaultFOV(); LLViewerCamera& cam(LLViewerCamera::instance());
mStartFOV = cam.getDefaultFOV();
gSavedSettings.setF32( gSavedSettings.setF32(
"ExodusAlternativeFOV", "ExodusAlternativeFOV",
@@ -834,8 +829,8 @@ BOOL LLToolCompGun::handleScrollWheel(S32 x, S32 y, S32 clicks)
llclamp(mTargetFOV -= (0.05f * -clicks), 0.1f, 3.0f) llclamp(mTargetFOV -= (0.05f * -clicks), 0.1f, 3.0f)
); );
gSavedSettings.getBOOL("LiruMouselookInstantZoom") ? LLViewerCamera::getInstance()->setDefaultFOV(mTargetFOV) : gSavedSettings.getBOOL("LiruMouselookInstantZoom") ? cam.setDefaultFOV(mTargetFOV) : mTimerFOV.start();
mTimerFOV.start(); cam.mSavedFOVLoaded = false;
} }
else if (clicks > 0) gAgentCamera.changeCameraToDefault(); else if (clicks > 0) gAgentCamera.changeCameraToDefault();
@@ -848,16 +843,17 @@ void LLToolCompGun::draw()
{ {
if (mTimerFOV.getStarted()) if (mTimerFOV.getStarted())
{ {
if (!LLViewerCamera::getInstance()->mSavedFOVLoaded && mStartFOV != mTargetFOV) LLViewerCamera& cam(LLViewerCamera::instance());
if (!cam.mSavedFOVLoaded && mStartFOV != mTargetFOV)
{ {
F32 timer = mTimerFOV.getElapsedTimeF32(); F32 timer = mTimerFOV.getElapsedTimeF32();
if (timer > 0.15f) if (timer > 0.15f)
{ {
LLViewerCamera::getInstance()->setDefaultFOV(mTargetFOV); cam.setDefaultFOV(mTargetFOV);
mTimerFOV.stop(); mTimerFOV.stop();
} }
else LLViewerCamera::getInstance()->setDefaultFOV(lerp(mStartFOV, mTargetFOV, timer * 6.66f)); else cam.setDefaultFOV(lerp(mStartFOV, mTargetFOV, timer * 6.66f));
} }
else mTimerFOV.stop(); else mTimerFOV.stop();
} }

View File

@@ -235,7 +235,7 @@ protected:
// <exodus> // <exodus>
private: private:
bool mRightMouseButton, mMenuShown; bool mMenuShown;
LLTimer mTimerFOV; LLTimer mTimerFOV;
F32 mOriginalFOV, mStartFOV, mTargetFOV; F32 mOriginalFOV, mStartFOV, mTargetFOV;
// </exodus> // </exodus>

View File

@@ -313,11 +313,9 @@ BOOL LLToolCamera::handleMouseUp(S32 x, S32 y, MASK mask)
return TRUE; return TRUE;
} }
static bool right_hold_mouse_walk=false;
BOOL LLToolCamera::handleHover(S32 x, S32 y, MASK mask) BOOL LLToolCamera::handleHover(S32 x, S32 y, MASK mask)
{ {
if(right_hold_mouse_walk) if (gViewerWindow->getRightMouseDown())
{ {
agent_push_forward(KEYSTATE_LEVEL); agent_push_forward(KEYSTATE_LEVEL);
} }
@@ -461,7 +459,6 @@ BOOL LLToolCamera::handleRightMouseDown(S32 x, S32 y, MASK mask)
if(mMouseSteering) if(mMouseSteering)
{ {
agent_push_forward(KEYSTATE_DOWN); agent_push_forward(KEYSTATE_DOWN);
right_hold_mouse_walk = true;
return TRUE; return TRUE;
} }
else else
@@ -472,10 +469,9 @@ BOOL LLToolCamera::handleRightMouseDown(S32 x, S32 y, MASK mask)
BOOL LLToolCamera::handleRightMouseUp(S32 x, S32 y, MASK mask) BOOL LLToolCamera::handleRightMouseUp(S32 x, S32 y, MASK mask)
{ {
if(mMouseSteering || right_hold_mouse_walk) if (mMouseSteering)
{ {
agent_push_forward(KEYSTATE_UP); agent_push_forward(KEYSTATE_UP);
right_hold_mouse_walk = false;
return TRUE; return TRUE;
} }
else else
@@ -487,5 +483,5 @@ BOOL LLToolCamera::handleRightMouseUp(S32 x, S32 y, MASK mask)
void LLToolCamera::onMouseCaptureLost() void LLToolCamera::onMouseCaptureLost()
{ {
releaseMouse(); releaseMouse();
handleRightMouseUp(0,0,0); if (gViewerWindow->getRightMouseDown()) agent_push_forward(KEYSTATE_UP);
} }

View File

@@ -751,6 +751,7 @@ void LLViewerCamera::setDefaultFOV(F32 vertical_fov_rads)
// <exodus> // <exodus>
void LLViewerCamera::loadDefaultFOV() void LLViewerCamera::loadDefaultFOV()
{ {
if (mSavedFOVLoaded) return;
setView(mSavedFOVDefault); setView(mSavedFOVDefault);
mSavedFOVLoaded = true; mSavedFOVLoaded = true;
mCameraFOVDefault = mSavedFOVDefault; mCameraFOVDefault = mSavedFOVDefault;