Commit graph

128 commits

Author SHA1 Message Date
Sei Lisa
0040fbea18 Update build system
- build-aux.py:
  - Remove commented line
  - Expose '-' for stdin/stdout in setvars (it was implemented but not exposed)

- Makefile:
  - Default to gcpp as preprocessor instead of mcpp.

- BUILD_GUIDE.md:
  - Now both Python 2 and 3 can be used, so remove the version requirement.
  - mcpp is not available in precompiled form for newer Mac processors, so indicate cpp instead.
  - Explain how to modify Makefile for mcpp.
  - Other minor changes
2021-12-20 19:09:02 +01:00
Sei Lisa
071b19d160 Changes in GitHub layout
The button is no longer called "Clone or Download"; it is now called "Code".
2021-12-20 18:34:58 +01:00
Sei Lisa
95a0b7a90e Security: to enter a menu via listen, check that there's a TOMENU 2021-08-04 00:01:45 +02:00
aglaia-resident
d5c63bf686 Fix issues when using KFM
I've got an issue reported several times by customers with furnitures moving with KFM. They get this error:
`Cannot use a script to move a linkset while it is playing an animation. Stop the animation first.`

Before this fix, the codes follow this workflow:
- it pause KFM
- it sleeps 0.15 seconds
- it updates the link position
- it sleeps 0.15 seconds
- it restarts KFM

I think you've put these 0.15 sleep before and after because both scripts `sitA` and `sitA 1` (and more if there 3 ore more sitters) can be slightly unsynched, so it is good to give a little delay to avoid that `sitA` restarts KFM while `sitA 1` hasn't changed the link position yet.

But it looks like the first llSleep is not only needless, but even increases the risk of error. Why sleeping 0.15 seconds between the KFM pause and the link position change? It makes the critical situation longer. The error occurs quite often. And it becomes alsmot systematic if both sitters select a pose roughly at the same time.

I did a test, sitting on a furniture with a friend. I asked her to click many times on all buttons. I was doing the same. In less than 20 seconds, i got the error 5 times!

Then i did the same test, remove the first llSleep, and keeping the second one, that i have increased a little bit to 0.2 seconds. Same test with this friend: 0 error.
2021-08-03 23:55:32 +02:00
Sei Lisa
1e40fe9c32 Reuse the position/rotation vectors when they occur multiple times
This change has the potential of saving memory when there are multiple poses with the same position or rotation.

Based on a suggestion by @ohhmye (thanks).
2021-01-10 16:27:10 +01:00
Sei Lisa
56fd9672a3 Simplify [AV]favs using message 90008 2020-10-11 14:23:45 +02:00
Sei Lisa
a780019993 Add [AV]favs - Favourite poses menu 2020-10-11 14:23:45 +02:00
Sei-Lisa
f6f6fb533a
Merge pull request #127 from Sei-Lisa/sei-add-versions
Add version code to most scripts
2020-09-11 13:18:28 +02:00
Sei Lisa
6a6b060fb8 The RLV status report channel should not be 0 2020-09-11 13:15:29 +02:00
Sei Lisa
913a273052 Modify [AV]sequence to allow 90008 as an alternative to 90000 2020-09-11 13:11:45 +02:00
Sei Lisa
edf88da354 Add message 90008 to play poses as if they were selected by menu 2020-09-11 13:11:45 +02:00
Sei Lisa
c57b64c812 Add note in 90005 message reference about AVmenu 2020-09-11 13:10:19 +02:00
Sei Lisa
4b5003294e Change the versioning scheme and add full version to all scripts
The new versioning scheme uses a letter instead of the dash. The letter is a p for a work-in-progress/pre-release version, or an r for a release version. For example:

2.2p04 - work in progress for version 2.2r04
2.2r04 - release version (2.2-04 with the previous scheme)

The two digit number will be increasing even for minor changes. The last minor changes indicator is dropped.
2020-09-07 22:42:58 +02:00
Sei Lisa
04c008db42 Add automatic version numbering to the build system.
Closes avsitter/avsitter.github.io#46
2020-09-07 22:42:47 +02:00
Kyrah Abattoir
63c1c6b27b Adds a LockMeister-compatible chaining plugin. The full protocol specification can be found in the LSL wiki at: http://wiki.secondlife.com/wiki/LSL_Protocol/LockMeister_System 2020-07-22 08:01:40 +02:00
Sei Lisa
fec2ba1ff5 Reset the menu page when message 90004 is received
Fixes an issue reported by Arsone.Danick; it happens e.g. when the menu was left in a page other than the first, and another avatar takes control.
2020-04-04 00:10:01 +02:00
Sei Lisa
879677e401 Rename [AV]helper to [AV]helperscript to prevent confusion 2020-04-03 01:30:10 +02:00
Sei Lisa
7b0c49ffaa Never ever use llRezObject 2020-02-22 00:10:35 +01:00
Sei Lisa
f8296a0a38 Check permissions before starting/stopping overlay animations
This partially solves a race condition when avatars revoke animation permissions on stand, but the message needs to travel through several scripts and, in case of extreme lag conditions, can attempt to stop animations after the revocation arrives, resulting in an error.

It still suffers a TOCTTOU race, as demonstrated by the reporter. That race is probably unsolvable.

Fixes #119. Big thanks to @ohhmye for reporting and investigating this bug.
2020-01-25 04:27:40 +01:00
Sei Lisa
6c2d285c04 Fix check for empty.
Forgot to remove it it from a previous version of the patch.
2019-02-28 23:33:24 +01:00
Sei Lisa
795b89e242 Remove props by group correctly when using [AV]menu
Fixes #113.
2019-02-28 23:33:24 +01:00
Sei Lisa
855fa85ac1 Split the RLV_RESTRICTIONS list of [AV]root-RLV-extra into strides
That makes it easier to edit.
2018-12-15 20:02:18 +01:00
Sei Lisa
a5637b2e0a Update IMPORT_GUIDE.md
- Add a Quick Summary for the impatient / tl;dr.
- Try to refer to both SL and OpenSim without discriminating.
- Clarify when to save to a box (step 5). A user was confused by this step.
- Make emphasis in "Compile successful/Save complete" to ensure they don't get an error, especially now that it will err if not saving in Mono.
- Add misc. notes.
2018-10-10 13:50:07 +02:00
Sei Lisa
f1ec6bde26 Add code that forces an error if compiled in LSO to all scripts
This should prevent accidents when saving in inventory in the official viewer.
2018-10-10 13:50:07 +02:00
Sei Lisa
9c84243390 Makefile: Don't optimize AVpos-shifter or Noob-detector 2018-10-10 13:50:07 +02:00
Sei Lisa
ffb4f73550 Change \u007F to \x7F, as the former gives error in the preprocessor
Problem reported by BraylaSana in #107.
2018-10-10 13:29:24 +02:00
Sei Lisa
f957c39745 Don't generate garbage for 90001 and 90002
Minor change that moves the assignment of `data` because it's not needed in these messages.
2018-08-23 19:39:07 +02:00
Sei Lisa
c13b14df07 Optimizations to rez_prop()
Compensate for the code added in the previous commit, by removing a bunch of locals and forcing long common substrings to appear once.
2018-08-18 17:34:44 +02:00
Sei Lisa
aea700fc3f Add support for WARN 3 to completely disable warnings 2018-08-18 17:34:44 +02:00
Sei Lisa
9936f50cc5 Allow passing single IDs when calling external scripts
BUTTON is documented to pass the UUIDs of the controller *and* the sitter when they are different, separated by a "|".

ADJUST is not documented to do that (yet), but it behaves that way.

Both behaviours are undesirable for generic scripts that respond to a link message without being specifically designed for AVsitter, because they don't expect the extra UUID. This can be seen as an AVsitter shortcoming, therefore we implement backwards-compatible workarounds.

For ADJUST, the AMENU argument's range has been extended:

  0, 1 and 2 behave the same as before.
  4, 5 and 6 behave as 0, 1 and 2 respectively, but also inhibit sending the second UUID.

For BUTTON, two special values have been added for the ID field: <C> and <S>, which will be replaced with CONTROLLER and SITTER respectively. For example:

    BUTTON text|num|str

behaves the same as before, sending both CONTROLLER and SITTER in the UUID field when they differ; however:

    BUTTON text|num|str|<C>

always passes only the UUID of the person who controls the menu. Similarly for <S>.
2018-08-18 10:39:55 +02:00
ft
799a557091 adjust RLV plugin to be acceptable for OpenSim's limitations on where to place the assignment operator 2018-08-18 10:31:11 +02:00
Sei Lisa
31b8538e51 Check that M: is at the start and other minor changes. 2018-05-17 00:44:07 +02:00
Sei Lisa
367cea2212 Fix BUTTON link message
Follow-up to a65d7cd, which failed for the main menu. That's because current_menu is -1 for the main menu.

Since current menu is either -1 or points to a MENU entry, it's safe to add 1 to it and bring it to a correct range.

While on it, remove redundant `if`.

Per bug report by RiderDavis.

Fixes #95.
2018-04-22 00:29:51 +02:00
Sei Lisa
897507e679 Allow "-1" in description to be after "#" character, take 2.
This is a safer way to implement #66, as that fix broke [AV]select.
2018-03-26 12:15:50 +02:00
Sei Lisa
bb1cf35948 Revert "Allow "-1" in description to be after "#" character"
This reverts commit e4064605a1.
2018-03-26 12:15:50 +02:00
codeviolet
57c8176afa Update Missing-anim-finder.lsl
addresses https://github.com/AVsitter/AVsitter/pull/84#discussion_r173986549
2018-03-20 17:32:33 +01:00
codeviolet
31622ceb9b remove unnecessary code
the removed code is not needed as anims are only considered var-speed if basename was used in a var-speed submenu
2018-03-20 17:32:33 +01:00
codeviolet
87266b2f79 var-speed only if basename used in a var-speed submenu 2018-03-20 17:32:33 +01:00
codeviolet
103d9611d9 Update Missing-anim-finder.lsl 2018-03-20 17:32:33 +01:00
Synsational Difference
94309edba5 completed issue #86 LMSOURCE Notecard Feature Enhancement
amended requested changes
2018-03-07 01:56:50 +01:00
codeviolet
2d44d1d006
fix issue with ignoring variable speed anims 2018-02-13 20:24:32 +11:00
Sei Lisa
a65d7cdc82 Fix distinguishing BUTTON by submenu
When the same BUTTON appears in different submenus, with different parameters, pressing it always picked the one that appeared first in the notecard.

Fix that by making the search start at the current menu.

Per bug report by AceyXx.
2018-01-25 12:17:14 +01:00
Sei Lisa
e4064605a1 Allow "-1" in description to be after "#" character
Closes #66.
2018-01-01 09:47:04 +01:00
Sei Lisa
467cbf8b6b Fix OpenSim compilation of [AV]root-RLV 2017-12-24 11:59:16 +01:00
Sei Lisa
a32c8496ba Add new ONSIT CAPIFSUB to RLV
It captures only when the automatically assigned sitter number corresponds to the role of a sub.
2017-12-24 11:59:16 +01:00
Sei Lisa
6e8a228b3f Pre-optimization prior to making the changes 2017-12-24 11:59:16 +01:00
Sei Lisa
4852d0373e Fix typo in variable name: ASKROLE_CHANEL -> ASKROLE_CHANNEL 2017-12-15 00:37:34 +01:00
Sei Lisa
4c0cfe68f7 Add main script name at the top 2017-12-14 12:26:53 +01:00
Sei Lisa
356355da84 Follow-up fix for 137c31b
At some points, the initials of "Dominant" and "Submissive" were used to identify the role. That needed to be fixed.
2017-12-14 11:50:16 +01:00
Sei Lisa
137c31b1da Place "Dominant" and "Submissive" names in variables at the top
The optimized code remains the same, therefore this change incurs no memory penalty.
2017-12-13 20:10:48 +01:00