Removed redundant double-click-teleport logic.
This commit is contained in:
@@ -779,38 +779,26 @@ BOOL LLToolPie::handleDoubleClick(S32 x, S32 y, MASK mask)
|
|||||||
llinfos << "LLToolPie handleDoubleClick (becoming mouseDown)" << llendl;
|
llinfos << "LLToolPie handleDoubleClick (becoming mouseDown)" << llendl;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gSavedSettings.getBOOL("DoubleClickAutoPilot") || gSavedSettings.getBOOL("DoubleClickTeleport"))
|
if (gSavedSettings.getBOOL("DoubleClickAutoPilot"))
|
||||||
{
|
{
|
||||||
if (mPick.mPickType == LLPickInfo::PICK_LAND
|
if ((mPick.mPickType == LLPickInfo::PICK_LAND && !mPick.mPosGlobal.isExactlyZero()) ||
|
||||||
&& !mPick.mPosGlobal.isExactlyZero())
|
(mPick.mObjectID.notNull() && !mPick.mPosGlobal.isExactlyZero()))
|
||||||
{
|
{
|
||||||
handle_go_to();
|
handle_go_to();
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
else if (mPick.mObjectID.notNull()
|
}
|
||||||
&& !mPick.mPosGlobal.isExactlyZero())
|
else if (gSavedSettings.getBOOL("DoubleClickTeleport"))
|
||||||
{
|
|
||||||
// Hit an object
|
|
||||||
// Do not go to attachments...
|
|
||||||
if (mPick.getObject() && !mPick.getObject()->isHUDAttachment())
|
|
||||||
{
|
|
||||||
// HACK: Call the last hit position the point we hit on the object
|
|
||||||
//gLastHitPosGlobal += gLastHitObjectOffset;
|
|
||||||
handle_go_to();
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
/* code added to support double click teleports */
|
|
||||||
if (gSavedSettings.getBOOL("DoubleClickTeleport"))
|
|
||||||
{
|
{
|
||||||
LLViewerObject* objp = mPick.getObject();
|
LLViewerObject* objp = mPick.getObject();
|
||||||
LLViewerObject* parentp = objp ? objp->getRootEdit() : NULL;
|
LLViewerObject* parentp = objp ? objp->getRootEdit() : NULL;
|
||||||
|
|
||||||
bool is_in_world = mPick.mObjectID.notNull() && objp && !objp->isHUDAttachment();
|
bool is_in_world = mPick.mObjectID.notNull() && objp && !objp->isHUDAttachment();
|
||||||
bool is_land = mPick.mPickType == LLPickInfo::PICK_LAND;
|
bool is_land = mPick.mPickType == LLPickInfo::PICK_LAND;
|
||||||
bool pos_non_zero = !mPick.mPosGlobal.isExactlyZero();
|
bool pos_non_zero = !mPick.mPosGlobal.isExactlyZero();
|
||||||
bool has_touch_handler = (objp && objp->flagHandleTouch()) || (parentp && parentp->flagHandleTouch());
|
bool has_touch_handler = (objp && objp->flagHandleTouch()) || (parentp && parentp->flagHandleTouch());
|
||||||
bool has_click_action = final_click_action(objp);
|
bool has_click_action = final_click_action(objp);
|
||||||
|
|
||||||
if (pos_non_zero && (is_land || (is_in_world && !has_touch_handler && !has_click_action)))
|
if (pos_non_zero && (is_land || (is_in_world && !has_touch_handler && !has_click_action)))
|
||||||
{
|
{
|
||||||
LLVector3d pos = mPick.mPosGlobal;
|
LLVector3d pos = mPick.mPosGlobal;
|
||||||
@@ -821,30 +809,6 @@ BOOL LLToolPie::handleDoubleClick(S32 x, S32 y, MASK mask)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
/* JC - don't do go-there, because then double-clicking on physical
|
|
||||||
objects gets you into trouble.
|
|
||||||
|
|
||||||
// If double-click on object or land, go there.
|
|
||||||
LLViewerObject *object = gViewerWindow->getLastPick().getObject();
|
|
||||||
if (object)
|
|
||||||
{
|
|
||||||
if (object->isAvatar())
|
|
||||||
{
|
|
||||||
LLFloaterAvatarInfo::showFromAvatar(object->getID());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
handle_go_to(NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (!gLastHitPosGlobal.isExactlyZero())
|
|
||||||
{
|
|
||||||
handle_go_to(NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2751,44 +2751,32 @@ bool handle_go_to()
|
|||||||
*/
|
*/
|
||||||
// [/RLVa:KB]
|
// [/RLVa:KB]
|
||||||
|
|
||||||
// JAMESDEBUG try simulator autopilot
|
// try simulator autopilot
|
||||||
std::vector<std::string> strings;
|
std::vector<std::string> strings;
|
||||||
std::string val;
|
std::string val;
|
||||||
LLVector3d pos = LLToolPie::getInstance()->getPick().mPosGlobal;
|
LLVector3d pos = LLToolPie::getInstance()->getPick().mPosGlobal;
|
||||||
if (gSavedSettings.getBOOL("DoubleClickTeleport")
|
val = llformat("%g", pos.mdV[VX]);
|
||||||
)
|
strings.push_back(val);
|
||||||
|
val = llformat("%g", pos.mdV[VY]);
|
||||||
|
strings.push_back(val);
|
||||||
|
val = llformat("%g", pos.mdV[VZ]);
|
||||||
|
strings.push_back(val);
|
||||||
|
send_generic_message("autopilot", strings);
|
||||||
|
|
||||||
|
LLViewerParcelMgr::getInstance()->deselectLand();
|
||||||
|
|
||||||
|
if (isAgentAvatarValid() && !gSavedSettings.getBOOL("AutoPilotLocksCamera"))
|
||||||
{
|
{
|
||||||
LLVector3d hips_offset(0.0f, 0.0f, 1.2f);
|
gAgentCamera.setFocusGlobal(gAgentCamera.getFocusTargetGlobal(), gAgentAvatarp->getID());
|
||||||
gAgent.teleportViaLocation(pos + hips_offset);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// JAMESDEBUG try simulator autopilot
|
// Snap camera back to behind avatar
|
||||||
std::vector<std::string> strings;
|
gAgentCamera.setFocusOnAvatar(TRUE, ANIMATE);
|
||||||
std::string val;
|
|
||||||
val = llformat("%g", pos.mdV[VX]);
|
|
||||||
strings.push_back(val);
|
|
||||||
val = llformat("%g", pos.mdV[VY]);
|
|
||||||
strings.push_back(val);
|
|
||||||
val = llformat("%g", pos.mdV[VZ]);
|
|
||||||
strings.push_back(val);
|
|
||||||
send_generic_message("autopilot", strings);
|
|
||||||
|
|
||||||
LLViewerParcelMgr::getInstance()->deselectLand();
|
|
||||||
|
|
||||||
if (gAgentAvatarp && !gSavedSettings.getBOOL("AutoPilotLocksCamera"))
|
|
||||||
{
|
|
||||||
gAgentCamera.setFocusGlobal(gAgentCamera.getFocusTargetGlobal(), gAgentAvatarp->getID());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Snap camera back to behind avatar
|
|
||||||
gAgentCamera.setFocusOnAvatar(TRUE, ANIMATE);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Could be first use
|
|
||||||
LLFirstUse::useGoTo();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Could be first use
|
||||||
|
LLFirstUse::useGoTo();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user