FIRE-1765: Allow double-click walk/teleport action to scripted objects (as recently seen in Phoenix...)

meow-7.2.2
Ansariel 2020-10-27 19:13:46 +01:00
parent 72f3463ce8
commit 821000f47e
4 changed files with 35 additions and 4 deletions

View File

@ -25283,7 +25283,7 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Type</key>
<string>S32</string>
<key>Value</key>
<integer>10</integer>
<integer>15</integer>
</map>
<key>FSDynamicTextureMemoryGPUReserve</key>
<map>
@ -25294,7 +25294,7 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Type</key>
<string>S32</string>
<key>Value</key>
<integer>10</integer>
<integer>15</integer>
</map>
<key>FSDynamicTextureMemoryMinTextureMemory</key>
<map>
@ -25307,5 +25307,16 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Value</key>
<integer>512</integer>
</map>
<key>FSAllowDoubleClickOnScriptedObjects</key>
<map>
<key>Comment</key>
<string>If enabled, allows double-click movement action (walk/teleport) to scripted objects</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
</map>
</map>
</llsd>

View File

@ -947,8 +947,14 @@ BOOL LLToolPie::handleDoubleClick(S32 x, S32 y, MASK mask)
{
return TRUE;
}
// <FS:Ansariel> FIRE-1765: Allow double-click walk/teleport to scripted objects
bool allowDoubleClickOnScriptedObjects = gSavedSettings.getBOOL("FSAllowDoubleClickOnScriptedObjects");
if (!mDoubleClickTimer.getStarted() || (mDoubleClickTimer.getElapsedTimeF32() > 0.3f))
// <FS:Ansariel> FIRE-1765: Allow double-click walk/teleport to scripted objects
//if (!mDoubleClickTimer.getStarted() || (mDoubleClickTimer.getElapsedTimeF32() > 0.3f))
if (!allowDoubleClickOnScriptedObjects && (!mDoubleClickTimer.getStarted() || (mDoubleClickTimer.getElapsedTimeF32() > 0.3f)))
// </FS:Ansariel>
{
mDoubleClickTimer.stop();
return FALSE;
@ -1011,7 +1017,10 @@ BOOL LLToolPie::handleDoubleClick(S32 x, S32 y, MASK mask)
bool has_touch_handler = (objp && objp->flagHandleTouch()) || (parentp && parentp->flagHandleTouch());
bool has_click_action = final_click_action(objp);
if (pos_non_zero && (is_land || (is_in_world && !has_touch_handler && !has_click_action)))
// <FS:Ansariel> FIRE-1765: Allow double-click walk/teleport to scripted objects
//if (pos_non_zero && (is_land || (is_in_world && !has_touch_handler && !has_click_action)))
if (pos_non_zero && (is_land || (is_in_world && ((allowDoubleClickOnScriptedObjects && objp->getClickAction() != CLICK_ACTION_SIT) || (!has_touch_handler && !has_click_action)))))
// </FS:Ansariel>
{
LLVector3d pos = mPick.mPosGlobal;
pos.mdV[VZ] += gAgentAvatarp->getPelvisToFoot();

View File

@ -85,6 +85,7 @@
<combo_box.item label="Zur Position gehen" name="1"/>
<combo_box.item label="Zur Position teleportieren" name="2"/>
</combo_box>
<check_box label="Doppelklick-Aktion auf geskripteten Objekten zulassen" name="FSAllowDoubleClickOnScriptedObjects"/>
<button label="Joystick-Konfiguration" name="joystick_setup_button"/>
</panel>

View File

@ -684,6 +684,16 @@
<combo_box.commit_callback
function="Pref.ClickActionChange"/>
</combo_box>
<check_box
control_name="FSAllowDoubleClickOnScriptedObjects"
follows="left|top"
height="20"
label="Allow double-click action on scripted objects"
layout="topleft"
left="10"
name="FSAllowDoubleClickOnScriptedObjects"
width="500"
top_pad="3"/>
<button
follows="top|left"
height="23"