Commit graph

116 commits

Author SHA1 Message Date
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
d36b812760 Hotfix for screwup in fc69221896
One 'mainscript' was not changed.
2017-10-30 19:38:42 +01:00
Sei Lisa
11489e2864 Fix problem with blank lines.
Lines that are empty after the diamond didn't work due to wraparound.
2017-10-29 12:43:55 +01:00
Sei Lisa
4b51b08c45 Simplify the math for better accuracy. 2017-10-29 12:43:55 +01:00
Sei Lisa
5f2acee9d3 Add instructions and chat message. 2017-10-29 12:43:55 +01:00
Sei Lisa
6ed9496177 Allow AVpos-shifter to modify position and rotation at once. 2017-10-29 12:43:55 +01:00
Sei Lisa
708f7fb2e1 Add .lslt target to Makefile for local testing.
Allows local testing of files that are not optimized.
2017-10-29 12:11:50 +01:00
Sei Lisa
1cd36752ed Add 'opensim' to phony targets. 2017-10-29 12:11:50 +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
37d39193c1 Corrected steps for people using the official viewer. 2017-10-29 12:11:50 +01:00
Sei Lisa
49c6a63074 Mention .lslo or .lsl; add preparation instructions for AVpos.
There is a .lsl file (the Lockguard plugin) and there may be more to come, so mention ".lslo or .lsl" instead of just ".lslo".

One user in the group had problems because the AVpos notecard had never been saved; to prevent that, add instructions on preparing an empty AVpos notecard that has been saved.
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
fc69221896 Change mainscript -> main_script for consistency with the others. 2017-10-29 12:11:50 +01:00
Sei Lisa
68a7477d5b Normalize spaces and remove tabs in link message reference. 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
Sei Lisa
71be6e1b4a Disable [BACK] button from [AV]root-security when not sat.
When no one is sitting, it's still possible to get a menu that has a [SECURITY] option, via RLV's ONTOUCH ASK. This breaks the assumption in the [BACK] button handler, which sent the [ADJUST] menu to an active sitter, and when there was no sitter, the menu was sent to all sitters instead, causing multiple dialogs to be generated. Repro details are in #35.

Fix by disabling the [BACK] button when no active sitter is set. The alternative of faking a click is not viable because we've lost the information of what prim was clicked, which is essential for RLV to know where to force-sit the victim.

Disabling [BACK] is a bit rude on the user, but it has the advantage that they have to click the desired prim again, therefore the information is recovered.

Fixes #35.
2017-10-19 23:45:56 +02:00
Sei Lisa
032e0369bf Provisional fix for OpenSim event timeouts during dumping.
This is a provisional fix for #45. As discussed there, a proper fix will come later.
2017-09-20 10:15:15 +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
codeviolet
dc8b6c8386 use timer to avoid event timeout in OpenSim (#40) 2017-09-09 18:56:10 +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
7d1afc7823 Makefile: Use a configurable variable for the zip program. 2017-09-02 09:45:52 +02:00
Sei Lisa
e57b703964 Add Noob-detector to the optimized scripts list in Makefile. 2017-09-02 09:45:52 +02:00
Sei Lisa
19b025f7c3 Fix Windows file deletion.
Under Windows, 'del' was causing problems with the forward slashes used for directories, as these are not accepted by the shell commands, even if they are accepted as paths in general. Fix it by adding 'rm' capabilities to build-aux.py and using it in Makefile instead of the $(RM) macro.
2017-09-02 09:45:52 +02:00
Sei Lisa
242a5e0017 Rename RELEASE to BUILD_GUIDE and prepare-for-oss to build-aux
BUILD_GUIDE is more future-proof, especially if we end up using the preprocessor.

The build-aux rename is preparatory work for the next changes.
2017-09-02 09:45:52 +02: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
d8069cd1a9 Fix embedded assignments for OpenSim in AVselect/root-security 2017-09-02 09:45:52 +02:00
Sei Lisa
29ec5d7dd1 Add the rest of core files to the OpenSim version 2017-09-02 09:45:52 +02:00
Sei Lisa
b7b329847f Port UUIDs to OpenSim 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
b71c5e4287 Allow the separating space between // and OSS to be omitted. 2017-09-02 09:45:52 +02:00
Sei Lisa
1d9717b16b Revert osReplaceString change.
osReplaceString requires a regular expression, causing problems with regex-reserved characters.
2017-09-02 09:45:52 +02:00
Sei Lisa
cbb82150db More optimizations. 2017-09-02 09:45:52 +02:00
Sei Lisa
90bd72e1ff Further fixes for OpenSim.
In OpenSim, llGetLinkNumber() returns 0 for single prims with a sitting avatar. On top of that, in older versions llGetLinkKey returns NULL_KEY for link number 0, and in newer ones it does so for link number 1.

The present changes try to make sure that under either situation, the code behaves correctly for the core scripts.
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
Sei Lisa
610890951d Undo some hand optimizations.
Many of them cause problems with OpenSim.

All of them are applied by the optimizer, except (str="")+str, which produces gains only in LSO, not in Mono, and doesn't work in OpenSim.

A few are undone only for clarity, relying on the fact that the optimizer will apply them again.
2017-09-02 09:45:52 +02:00
Sei Lisa
202b4503d1 Remove or add parentheses as necessary to improve clarity.
There should be no changes in the code compiled from source directly.
2017-09-02 09:45:52 +02:00
Sei Lisa
2488349a1b Comment and formatting changes; no actual code changes.
- Add spaces between functions.
- Add comments on numeric codes and a few others.
- Reformat lists and one function.
- Remove spaces at EOL.
- Use actual copyright symbol.
2017-09-02 09:45:52 +02:00
codeviolet
ef3adcce5e formatting fixes 2017-09-01 17:52:39 +02:00
codeviolet
199aec0ef5 Add IMPORT_GUIDE and edit README 2017-09-01 17:52:39 +02:00
Sei Lisa
f97f8c5a5b Whitespace-only changes.
- Remove CR before LF to allow Git to use system-specific line terminators.
- Expand tabs to spaces.
- Remove spaces at end of line.
2017-08-31 12:08:57 +02:00