Commit graph

60 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
Synsational Difference
94309edba5 completed issue #86 LMSOURCE Notecard Feature Enhancement
amended requested changes
2018-03-07 01:56:50 +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
Sei Lisa
cd6b338e85 Make [AV]sequence compile in OpenSim and include it in Makefile. 2017-11-23 16:35:38 +01:00
Sei Lisa
7a88429ccd Make [AV]object compile in OpenSim. 2017-11-23 16:35:38 +01:00
Sei Lisa
dea6153fec More OpenSim compilation fixes. 2017-11-23 16:35:38 +01:00
Sei Lisa
08263c921e Improve OpenSim-friendliness. 2017-11-23 16:35:38 +01:00
Sei Lisa
bf8f10bfe6 Fix several calls that had wraparound hazards.
llGetSubString("abc", 3, -1) gives "abc"; llList2List(L, 1, -1) gives L when L has length 1. In general, llGetSubString or llList2List return the whole thing when the starting index is grater than the last element in the list.

There were a number of spots with that hazard, so fix all we found.
2017-11-19 18:38:33 +01:00
Sei Lisa
aa9cba13a5 Add the script name at the top, with a one-line description
It should help ensuring that you have the right script contents when saving. It also provides a short description, to get a rough idea of what it's about.

The only code change is the product name in [AV]xcite! to add a TM symbol to Xcite!
2017-11-19 18:33:04 +01:00
Sei Lisa
f599fb8f85 Hand optimizations to some scripts.
Gains in bytes:

- [AV]sitA: 3584
- [AV]sitB: 2048
- [AV]adjuster: 1024
- [AV]faces: 1024
- [AV]Xcite!: 0
- [AV]root-security: 0
2017-10-31 22:36:23 +01:00
Sei Lisa
7a48f16349 Optimizations to [AV]faces.
Optimize IsInteger, optimize data memory usage through list item reuse, remove redundant statement.

See http://lsl.project.zone/lsl/types/list#data_memory_usage for more information on reusing of list elements.

See https://gist.github.com/Sei-Lisa/2250e59040a4d10c4b28998ac045fb7d for a demonstration of the mechanism as used in this patch.
2017-10-29 12:11:50 +01:00
Sei Lisa
6e8c23a858 Use strReplace where it simplifies reading and saves code. 2017-10-29 12:11:50 +01:00
Sei Lisa
b191988334 OSS: Use "\u007F" instead of assigning it at runtime. 2017-10-29 12:11:50 +01:00
Sei Lisa
8a10a36515 Fix [AV]faces issue with the timer not being stopped.
The problem has been observed in some items using [AV]faces.

So far the only way I've found to reproduce it was resetting one of the [AV]sit scripts while [AV]faces was reproducing a sequence. Other triggers may be possible.
2017-10-22 11:25:05 +02:00
codeviolet
e37f991801 Update [AV]LockGuard.lsl
A minor edit so [AV]lockGuard's example pose settings match those used in the inworld examples. Should ease future updates to the examples.
2017-09-19 18:16:24 +02:00
Sei Lisa
d23699fbe6 Change the strategy for the U+FFFD separator handling.
Use a global variable instead. In SL, the optimizer does the replacement automatically, therefore no memory penalty is incurred. In OpenSim, the variable is assigned at run time with llUnescapeURL. The OpenSim separator is also changed from U+001F to U+007F, because most control characters under U+0020 cause problems with exporting when present in script memory.

Fixes #41.
2017-09-15 17:43:48 +02:00
Sei Lisa
8bd8b19e2f Add caveat on the use of -1 for all sitters. 2017-09-10 19:45:55 +02:00
Sei Lisa
997ea85236 Allow -1 to mean all sitters.
Suggested by Natsagan in the Unofficial AVsitter group.
2017-09-10 19:45:55 +02:00
Sei Lisa
70b737145e Allow "*" as pose name to mean all poses.
Suggested by Natsagan in the Unofficial AVsitter group.
2017-09-10 19:45:55 +02:00
Sei Lisa
da833a59a0 Revert last squashed commit, to push it as separate commits. 2017-09-10 19:42:31 +02:00
Sei-Lisa
0ed4903ada Allow * to mean all poses, and -1 to mean all sitters (#34)
* Allow "*" as pose name to mean all poses.

Suggested by Natsagan in the Unofficial AVsitter group.

* Allow -1 to mean all sitters.

Suggested by Natsagan in the Unofficial AVsitter group.

* Add caveat on the use of -1 for all sitters.
2017-09-09 23:55:23 +10:00
Sei-Lisa
2e7202e8a1 Fix bug where chains didn't detach on standup. (#33)
This was introduced in commit 5c4f5b3.
2017-09-08 00:33:16 +10:00
Sei Lisa
4ed043d823 Fix precedence of the "!" logical NOT operator.
We knew that in OpenSim, the bitwise NOT "~" operator's precedence was broken (see <http://opensimulator.org/mantis/view.php?id=3268>), but it appears that the same bug affects the logical NOT operator "!" as well, so it needs parentheses when followed by more expressions.
2017-09-02 09:45:52 +02:00
Sei Lisa
7bf262c61e Fix llDialog with empty buttons list for OpenSim.
The optimizer removes the extra "OK" for SL.
2017-09-02 09:45:52 +02:00
Sei Lisa
e77bddec30 Unindent blocks that were left indented for clarity in the previous commit.
Only space changes, no code changes.
2017-09-02 09:45:52 +02:00
Sei Lisa
7482550bef Some micro-optimizations.
- [AV]sitA: Compute loading progress percentage without converting to float. Remove some 'else' clauses, adding 'return' where appropriate. That required moving the retrieval of the next notecard line near the top. A block has been left indented for clarity, and will be unindented in the next commit.
- [AV]prop: Remove some 'else' clauses, adding 'return' where appropriate. A block has been left indented for clarity, and will be unindented in the next commit.
- [AV]Xcite!: Change (string)llList2Integer to llList2String, after verifying that the elements in the list are always integers, and therefore this can't cause problems.
- [AV]root-RLV-extra: Remove unused event.
- [AV]faces: Change llListReplaceList with a replacement of [] to llDeleteSubList, to save one argument. Remove unnecessary 'else'.
- [AV]sequence: Comment out unused condition. It would be removed by the optimizer anyway, but this will hopefully help with clarity.
- AVpos-shifter: Change var++ to ++var (the optimizer would also do this anyway).
2017-09-02 09:45:52 +02:00
Sei Lisa
65c067cc30 Prepare the core scripts for OpenSim.
- Add Makefile and release creation instructions.
- Add a simple Python program to automate the OpenSim conversion based on markings in the code.
- Add .gitignore entries for the generated files.
- Add parentheses around assignments as required by OpenSim. This is done only to the core scripts.
- OpenSim isn't compatible with SL when there are conditions of type key. Those are all converted. Conditions of other types, except integer, are expanded for clarity and optimization, as they generate the same or better code that way, and currently the optimizer can do a better job when they are expanded.
- Floats in scientific notation need a dot.
- llParseStringXXXX doesn't work the same in OpenSim as in SL, when the separator is an Unicode codepoint that doesn't represent a character. For that reason, the internal separator, which is U+FFFD ("Replacement Character") is changed automatically by the Python program to U+001F (Unit Separator control character). For further safety, function strReplace is altered to use osReplaceString instead of llParseStringKeepNulls/llDumpList2String.

Furthermore, the ~ operator has the wrong precedence in OpenSim, but that was handled by a previous commit. Note that appearances of the ~ operator that were not preceded by a ! have only been replaced in the core scripts.
2017-09-02 09:45:52 +02:00
Sei Lisa
4278710ce8 Fix some marginal bugs, and the version of [AV]faces.
- Bump version of [AV]faces to 2.2.
- With very bad luck, some channel numbers could overflow the range of an integer due to float rounding, and produce DEBUG_CHANNEL or PUBLIC_CHANNEL as output.
- If both CHANGED_INVENTORY and CHANGED_LINK came at the same time, [AV]prop would fail to handle both.
- There was code that did nothing in [AV]faces. While it caused no bug per se, if it was reused in future then it could be affected by the same problem as that in [AV]prop.
2017-09-02 09:45:52 +02:00