*waves*
Emerald just released so that means the test phase for RLVa-1.1.0 is finished as well
.
—
The lists below aren’t exhaustive but highlight additions/changes/fixes that “most people” might care about (see the release notes for the full change log).
New additions:
1) Auto-create folder for “no modify” attachments under #RLV when worn
If you “Wear” (or “Attach To”) a “no modify” item somewhere under the shared #RLV folder the viewer will automatically create the appropriate “.(attachpt)” folder and move the item into it (if it doesn’t already exist).
This should hopefully make creating shared folders easier since – as long as you have “Enable Wear” – all you have to do is move the items to a folder under #RLV and then pick “Add to Outfit” and you’re done
.
(If for any reason you *don’t* want items under the #RLV to be auto-renamed – or auto-moved – you can uncheck “Advanced / RLVa / Debug / Rename Shared Items on Wear”)
2) “Unable to open [TYPE] due to RLV restrictions”
When you double-click a notecard/texture/script when @viewnote/viewtexture/viewscript restricted (or when trying to edit a script inside of a non-detachable attachment) it can be frustrating when it doesn’t open up and it might take a minute before you realize that it’s due to a currently enforced restriction.
So to complement greying out “Open” on the context menu you’ll now see an “Unable to open texture due to RLV restrictions” if you double-click a texture when @viewtexture restricted.
(Depending on the like/don’t like I’ll add similar ones for other “silently blocked” things like teleporting)
3) “Force wear” will activate/deactivate gestures
Nothing earth-shattering but some people might find this one useful.
4) Hardcoded strings now live in rlva_strings.xml
This isn’t really something most people will care about but it does have some side-effects that might appeal to a few people:
- If anyone wants to help and translate the strings into one of the languages the viewer supports that would definitely be appreciated
- You could change the text that gets sent out when someone IMs while you’re @recvim blocked for instance
- The list of “anonyms” that @shownames uses is customizable (you can replace existing ones or extend the list by adding your own custom ones)
5) Avatar-to-avatar “Give to #RLV”
A few people suggested this one: if they @showinv=n restrict someone they wanted the ability to “force wear” something on that person without first unlocking that person’s inventory and then asking them to move the folder they just received to their #RLV.
6) UI tweaks
- “Teleport Home” is now visually disabled when @tplm=n restricted to make it more obvious that it’s blocked
- “Sit” and “Stand Up” weren’t visually disabled on the pie-menu when @sit=n/sittp=n/fartouch=n and @unsit=n restricted
- The cursor no longer changes to indicate a “special action” if it’s something that’s blocked anyway (ie if you hover the mouse over a touchable object that’s >1.5m away under @fartouch=n the mouse cursor won’t change away from the default pointer)
7) Showing a custom notification when X restricted
This is actually a scaled down version of something else I wanted to put in that didn’t quite work out in the end but since it’s only a handful of lines I thought I might add it in anyway and see if it’s of any use to anyone (so please do let me know if you’re using it or it might go *poof* at some point).
Practical example: if you want to know when you’re @recvim restricted you could add a notification with the text “Unable to still receive IMs” and “Able to receive IMs again” and you’d see the first notification on the *first* (but not subsequent) @recvim=n restriction and the second notification on the very *last* @recvim=y restriction.
Take a peek at rlva_strings.xml if you want to play with it (there’s a commented out example for @defaultwear there)
8 ) Better command handling feedback when RestrainedLifeDebug is TRUE
First of all “unset” behaviours (ie @detach=y without a preceding @detach=n) and “duplicate” behaviours (ie @detach=n followed by another @detach=n) no longer show as “failed”.
Instead you’ll see: “Object executes: @detach=y (unset), detach=n, detach=n (duplicate)”
All commands perform validation as well which clears up several personal pet-peeve bugs and hopefully makes it easier for script creators to catch errors as well.
Examples:
- Object failed: @detachme=n (invalid param)
-> only @detachme=force has any meaning
-> note that if you issue @getstatus on the object it *will* still report /detachme so it doesn’t break being able to set nonsensical behaviours
- Object failed: @detachme:spine=force (invalid option)
-> “spine” isn’t a valid option to supply to “detachme”
- Object failed: @detach:test=force (invalid option)
-> in this specific case “invalid option” means “no such folder exists” (I might make that clearer if anyone cares about it strongly)
- Object failed: @attach:test=force (missing #RLV)
-> command failed because the user has no shared #RLV folder
- Object failed: @foo=bar (syntax error)
-> should be fairly obvious
- Object failed: @setenv=n (command disabled)
-> user set RestrainedLifeNoSetEnv to TRUE
- Object failed: @showminmap=n (unknown command)
-> helps finds typos
9) “Composite folders”
This really deserves its own blog post. I just added it here so people can poke me to explain what it does :p.
—
Fixes:
1) @version and @versionum execute at regular intervals throughout the log-on
The old behaviour was that all commands were retained until about the time the log-on screen disappears but it seems there are a few scripted items out there with a very short time-out (and some people who take a long time logging on) so hopefully responding to @version and @versionnum at regular intervals will fix things.
2) @setrot:<angle>=force rotates clockwise while regular RLV rotates counter-clockwise
(This one was actually fixed “early” in Emerald and Imprudence but I’m not sure if either released since it was fixed)
3) “folded” folders should inherit “nostrip” from their parent folder(s)
(ie #RLV/Test (nostrip)/.(spine) should be “nostrip” since it folds in under “Test (nostrip)”)
—
“Enable Shared Wear” (the ability to do away with having to specify attachment point names for shared inventory folders for non-D/s use) unfortunately had to be removed due to SVC-5383 :(.
The “experimental” commands are present in the code but are *not* available unless you #define RLV_EXPERIMENTAL_CMDS (see rlvdefines.h). (I’ll update the preview viewer soon to reflect RLVa-1.1.0 and Snowglobe 1.3 RC1)
—
For people already using the patch: I moved the #include’s for rlv*.h from llagent.h to each individual *.cpp file so that might result in quite a lot of rejects. It’s not something I did very lightly but it drastically reduced the amount of time it took me to do a rebuild of the viewer.
I also don’t think there are still any viewers using SL-1.22.11? If I’m wrong please just ask for a patch and I’ll make one
.
I also have a patch for Snowglobe-1.2.4 if anyone’s specifically interested in that one, but it seemed that with an imment Snowglobe-1.3 it might not be needed/desired.
If there are any problems with any of the patches please do let me know and I’ll try my best to help
.
Code downloads:
RLVa-1.1.0o_20100218_SL-1.23.5-full.patch – SL-1.23.5
RLVa-1.1.0o_20100218_Snowglobe-1.3.1-full.patch – Snowglobe-1.3.1
RLVa-1.1.0o_20100218_SL-1.23.5-diff.patch – From 1.0.5e to 1.1.0o (SL-1.23.5)
Release notes:
release_notes_RLVa-1.1.0.txt