Skip to content
This repository has been archived by the owner on Mar 28, 2024. It is now read-only.

[BUG-233853] Scripts failing to receive rapid touch_start events under LL viewer #10882

Closed
2 tasks
sl-service-account opened this issue May 9, 2023 · 8 comments
Closed
2 tasks

Comments

@sl-service-account
Copy link

sl-service-account commented May 9, 2023

What just happened?

This bug is a re-submission of https://jira.secondlife.com/browse/BUG-233384, which is now locked, and which was listed as "resolved" in https://releasenotes.secondlife.com/viewer/6.6.10.578972.html and other viewer releases. However, the behaviour is unchanged. Rider Linden recommended re-submitting it.

An existing game that's been running over a year has an element that simulates support of mouse double-clicks so users can manipualte an in-HUD puzzle. That doubleclick action no longer works in the LL viewer, but continues to work in some third-party viewers like Firestorm. This suggests something has changed with touch_start() event handling or generation that breaks existing content.

Here's a test script illustrating the issue:

 

default
{
    touch_start(integer n)
    {
        while (n--)
        { 
          float daTime = llGetTime();
          string msg = (string)daTime;
          if (daTime < 0.5)
              msg += " doubleclick!";

          llOwnerSay(msg);
          llResetTime(); 
        }
    }
}
 

 

Just put it in a cube. In the LL viewer, this is the output to a typical double click action:


[11:34] Object: 1.114410

Notice only one line of output.

Here's the output of the same script to a doubleclick action in the Firestorm viewer:


[11:41] Object: 5.445979
[11:41] Object: 0.156621 doubleclick!

The Firestorm behaviour seems to match what was happening then these games were designed: we were able to simulate double-click actions using llGetTime() and measuring the delay between touch_start events. Now, that behaviour has significantly changed.

Note that we're using this in a HUD; if you use it on an inworld object and have double-click teleports enabled, you may experience a surprise TP.

What were you doing when it happened?

Attempting to play a game that's been out on the grid over a year and that has had thousands of plays. Same technique has been used in a number of other games that have been available for several years.

What were you expecting to happen instead?

I was expecting the double-click action I scripted would continue to behave as it did when the game was developed and tested.

Other information

At a guess, this breaks quite a lot of existing content that attempts to simulate actions for double-click. That's at least half a dozen things of my own, and untold more across the grid.

Links

Related

Original Jira Fields
Field Value
Issue BUG-233853
Summary Scripts failing to receive rapid touch_start events under LL viewer
Type Bug
Priority Unset
Status Closed
Resolution Triaged
Reporter Lou Netizen (lou.netizen)
Created at 2023-05-09T20:19:20Z
Updated at 2023-08-23T18:43:24Z
{
  'Build Id': 'unset',
  'Business Unit': ['Platform'],
  'Date of First Response': '2023-05-10T12:13:29.859-0500',
  "Is there anything you'd like to add?": "At a guess, this breaks quite a lot of existing content that attempts to simulate actions for double-click. That's at least half a dozen things of my own, and untold more across the grid.",
  'ReOpened Count': 0.0,
  'Severity': 'Unset',
  'System': 'SL Viewer',
  'Target Viewer Version': 'viewer-development',
  'What just happened?': 'This bug is a re-submission of https://jira.secondlife.com/browse/BUG-233384, which is now locked, and which was listed as "resolved" in https://releasenotes.secondlife.com/viewer/6.6.10.578972.html and other viewer releases. However, the behaviour is unchanged.\r\n\r\nAn existing game that\'s been running over a year has an element that simulates support of mouse double-clicks so users can manipualte an in-HUD puzzle. That doubleclick action no longer works in the LL viewer, but continues to work in some third-party viewers like Firestorm. This suggests something has changed with touch_start() event handling or generation that breaks existing content.\r\n\r\nHere\'s a test script illustrating the issue:\r\n\r\ndefault\r\n{\r\n  \xa0 touch_start(integer n)\r\n  \xa0 {\r\n \xa0 \xa0    while (n--)\r\n        { \r\n  \xa0 \xa0     float daTime = llGetTime();\r\n  \xa0 \xa0\xa0    string msg = (string)daTime;\r\n  \xa0 \xa0     if (daTime < 0.5)\r\n              msg += " doubleclick!";\r\n          llOwnerSay(msg);\r\n          llResetTime(); \r\n        }\r\n    }\r\n}\r\n\r\n\r\n\r\n\r\n\r\nJust put it in a cube. In the LL viewer, this is the output to a typical double click action:\r\n\r\n[11:34] Object: 1.114410\r\n\r\n\r\n\r\n\r\nNotice only one line of output.\r\n\r\nHere\'s the output of the same script to a doubelclick action in the Firestorm viewer:\r\n\r\n[11:41] Object: 5.445979\r\n[11:41] Object: 0.156621 doubleclick!\r\n\r\n\r\n\r\n\r\nThe Firestorm behaviour seems to match what was happening then these games were designed: we were able to simulate double-click actions using llGetTime() and measuring the delay between touch_start events. Now, that behaviour has significantly changed.\r\n\r\nNote that we\'re using this in a HUD; if you use it on an inworld object and have double-click teleports enabled, you may experience a surprise TP.',
  'What were you doing when it happened?': "Attempting to play a game that's been out on the grid over a year and that has had thousands of plays. Same technique has been used in a number of other games that have been available for several years.",
  'What were you expecting to happen instead?': 'I was expecting the double-click action I scripted would continue to behave as it did when the game was developed and tested.',
}
@sl-service-account
Copy link
Author

Whirly Fizzle commented at 2023-05-10T17:13:30Z

Firestorm merged in this bug too :(

  • Firestorm Release: Firestorm 6.6.8 (68380) Jan 3 2023 19:59:43 (64bit / SSE2) (Firestorm-Releasex64) with Havok support
    Bug does not reproduce
  • Firestorm Beta: Firestorm 6.6.12 (69276) May 9 2023 17:33:08 (64bit / SSE2) (Firestorm-Betax64) with Havok support
    Bug does reproduce

@sl-service-account
Copy link
Author

JIRAUSER341268 commented at 2023-05-10T17:15:40Z

Thanks for re-reporting this one Lou!

I can see that the original bug still reproduces.

@sl-service-account
Copy link
Author

Lou Netizen commented at 2023-07-10T20:52:19Z

This is listed as "resolved" in release notes for Viewer 6.6.13.580918, but the behaviour is (once again) unchanged.

https://releasenotes.secondlife.com/viewer/6.6.13.580918.html

@sl-service-account
Copy link
Author

JIRAUSER341268 commented at 2023-07-11T21:45:26Z

Thanks for the update Lou.

The imported issue has been reopened.

Some new odd behaviour noticed with the latest fix: if you double click the ground first, the script will work correctly. This then resets if you click a UI element (floater or menu item).

@sl-service-account
Copy link
Author

Lou Netizen commented at 2023-07-12T20:17:42Z

Thank you!

@sl-service-account
Copy link
Author

JIRAUSER341268 commented at 2023-07-19T16:58:57Z

Hi Lou,

This should now be fixed in the Maint U viewer that was recently released.

https://releasenotes.secondlife.com/viewer/6.6.14.581066.html 

Please let us know if the issue persists.

@sl-service-account
Copy link
Author

Lou Netizen commented at 2023-08-11T16:56:27Z

I am almost entirely out-of-world for some weeks. I will check when I can get back.

@sl-service-account
Copy link
Author

Lou Netizen commented at 2023-08-22T19:39:08Z

At first glance, the issue seems to be corrected in the current Maint U Viewer: Second Life Release 6.6.14.581101 (64bit)

Thank you!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant