<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>RLVa</title>
	<atom:link href="http://rlva.catznip.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://rlva.catznip.com/blog</link>
	<description></description>
	<lastBuildDate>Thu, 29 Apr 2010 00:21:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Preview: RLVa-1.2.0f</title>
		<link>http://rlva.catznip.com/blog/2010/04/preview-rlva-1-2-0f/</link>
		<comments>http://rlva.catznip.com/blog/2010/04/preview-rlva-1-2-0f/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 00:21:04 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=204</guid>
		<description><![CDATA[*waves*
With my connectivity issues, the failed hard disk and the fact that the end of the month is always the most stressful time at work it seemed like I wouldn&#8217;t have much time to actually do anything for another week or so, so I decided to do a &#8220;preview release&#8221; of RLVa-1.2.0 for those who [...]]]></description>
			<content:encoded><![CDATA[<p>*waves*</p>
<p>With my connectivity issues, the failed hard disk and the fact that the end of the month is always the most stressful time at work it seemed like I wouldn&#8217;t have much time to actually do anything for another week or so, so I decided to do a &#8220;preview release&#8221; of RLVa-1.2.0 for those who want to help test and/or want a peek. All one or two of you reading this anyway <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Most of everything should work, notable exceptions are @showloc=n and @shownames=n though&#8230; they&#8217;ll work in some places but not across the board yet (they&#8217;re exceptionally tedious to implement and 2.0 made it a whole lot more complicated and added a great many more places to hide names and/or location from).</p>
<p>For the moment my &#8220;still to do&#8221; list is along the lines of:</p>
<ul>
<li>finish everything up (ie @shownames=n, @showloc=n and probably some random things I&#8217;ve forgotten about)</li>
<li>re-test everything from scratch again</li>
<li>find some way to make the &#8220;composites&#8221; feature play nice with inventory links (they&#8217;re non-functional at the moment, sowwies)</li>
<li>when Marine releases re-verify that my idea of what should be blocked by which restriction matches up since we&#8217;ve very likely gotten out of sync there</li>
</ul>
<p>So still quite a bit of work left <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .</p>
<p>&#8212;</p>
<p>I&#8217;ll blog about this more (and it&#8217;s subject to change until everything&#8217;s all done), but some 2.0 vs RLV API clashes to watch out for that I can think of straight away:</p>
<ul>
<li>if you use inventory links in your #RLV shared folder then @getpath (and as a result all of the @*this commands) will not return a path (on the plus side I&#8217;m not sure if any/many scripts actually use that command)</li>
<li>if you use inventory links in your #RLV shared folder then @getinvworn will return less useful information (ie since every link is worn if the link target is worn you&#8217;ll see a lot of folders that are partially worn which might confuse some existing scripts)</li>
<li>@detach=n from an attachment on (as an example) &#8220;spine&#8221; is no longer a synonym for @remattach:spine=n due to the upcoming &#8220;multiple attachments per attachment point&#8221;. The former &#8220;locks&#8221; an attachment *object* while the latter &#8220;locks&#8221; an attachment *point* (you can execute both commands and then look at the RLVa / Debug / Locks&#8230; floater to see the difference)</li>
<li>the tattoo and alpha layer are part of what gets stripped due to @remoutfit=n which may lead to undesirable results (ie an alpha wearable to work in tandem with a prim corset) so use &#8220;nostrip&#8221; for those if need be</li>
</ul>
<p>&#8212;</p>
<p>Changelog (now even more boring than usual :p): <a href="http://rlva.catznip.com/downloads/RLVa-1.2/release_notes_RLVa-1.2.txt">release_notes_RLVa-1.2.txt</a></p>
<p>I&#8217;m keeping the &#8220;Catznip viewer&#8221; and this blog separated, if only because this one is supposed to be about the &#8220;RLVa patch&#8221; and not a viewer so (and it keeps this blog free of TPV policy legalese and related hoops)&#8230;</p>
<p>While it would certainly help me to have other people test it before it becomes part of Emerald or any other viewer I&#8217;m not trying to convince anyone to use it. You either feel comfortable with it, or you don&#8217;t <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>And now the actual link: <a href="http://catznip.com/blog/">Catznip blog</a></p>
<p>&#8212;</p>
<p>(Sorry if this blog seems rushed and inconsistent but it&#8217;s 2:20am here now and this little Kitty really hears her bed calling! <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2010/04/preview-rlva-1-2-0f/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Release: RLVa-1.1.1</title>
		<link>http://rlva.catznip.com/blog/2010/04/release-rlva-1-1-1/</link>
		<comments>http://rlva.catznip.com/blog/2010/04/release-rlva-1-1-1/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 20:54:54 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=198</guid>
		<description><![CDATA[*waves*
I&#8217;ll be blogging about SL-2.0 / RLVa-1.2.0 in a few days but I just wanted to list the changelog for RLVa-1.1.1:

fixed : the first teleport after log-on can&#8217;t be cancelled
    -&#62; fixed in Emerald but was never fixed in the main branch
    -&#62; backported from RLVa-1.2.0a
fixed : @redirchat:&#60;channel&#62;=add filters emotes (thankies Toy and Chloe)
    -&#62; see release notes for RLVa-1.0.0f: [...]]]></description>
			<content:encoded><![CDATA[<p>*waves*</p>
<p>I&#8217;ll be blogging about SL-2.0 / RLVa-1.2.0 in a few days but I just wanted to list the changelog for RLVa-1.1.1:</p>
<ul>
<li>fixed : the first teleport after log-on can&#8217;t be cancelled<br />
    -&gt; fixed in Emerald but was never fixed in the main branch<br />
    -&gt; backported from RLVa-1.2.0a</li>
<li>fixed : @redirchat:&lt;channel&gt;=add filters emotes (thankies Toy and Chloe)<br />
    -&gt; see release notes for RLVa-1.0.0f: decoupled @recvchat=n&#8217;s emote filtering from @emote=add due to @recvemote=n<br />
    -&gt; broken in RLVa-1.1.0h due to: @redirchat and @rediremote now use exceptions to store the redirection channels<br />
    -&gt; backported from RLVa-1.2.0a</li>
<li>fixed : @tpto:&lt;option&gt;=force teleports should not be abortable (thankies Satomi)<br />
    -&gt; backported from RLVa-1.2.0a</li>
<li>fixed : chat animation isn&#8217;t inhibited for emotes when @rediremote restricted<br />
    -&gt; backported from RLVa-1.2.0b</li>
<li>fixed : @sit=n doesn&#8217;t block sitting on land<br />
    -&gt; backported from RLVa-1.2.0c</li>
<li>fixed : &#8220;A person&#8221; anonym in rlva_strings.xml has a stray quote (thankies Satomi and Tammy)<br />
    -&gt; backported from RLVa-1.2.0c</li>
<li>fixed : @recvim=n sends a busy message when the sender is muted<br />
    -&gt; backported from RLVa-1.2.0e</li>
<li>fixed : @detach=n,remattach=n,remattach=y results in a detachable attachment<br />
    -&gt; attachment point locks were using a map instead of a multimap&#8230; eep!<br />
    -&gt; created a complex bug where only the first lock for any specific attachment point is active</li>
<li>fixed : @acceptpermission doesn&#8217;t auto-grant PERMISSION_TAKE_CONTROLS to objects with a different owner (thankies Dahlia)</li>
</ul>
<p>Emerald specific:</p>
<ul>
<li>fixed : &#8220;Edit Attachment&#8221; doesn&#8217;t respect @edit=n (forgot who told me about this one, sowwies <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> )</li>
</ul>
<p>(It looks like some silly Kitty forgot to actually update the version number in Emerald so it&#8217;s still saying 1.1.0 while it&#8217;s actually 1.1.1&#8230; this is what happens when you commit code at 4am <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> )</p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2010/04/release-rlva-1-1-1/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Feature: Composite folders</title>
		<link>http://rlva.catznip.com/blog/2010/03/feature-composite-folders/</link>
		<comments>http://rlva.catznip.com/blog/2010/03/feature-composite-folders/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 01:20:00 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[features]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=187</guid>
		<description><![CDATA[(Thankies to Satomi for originally suggesting the feature and for putting up with me telling her that “I’m going to have to kill off composite folders because&#8230;” every other version :p&#8230; And while we’re on the subject: &#8220;I’m likely going to have to remove composites for 2.0 because they don&#8217;t play nice with item links&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p><em>(Thankies to Satomi for originally suggesting the feature and for putting up with me telling her that “I’m going to have to kill off composite folders because&#8230;” every other version :p&#8230; And while we’re on the subject: &#8220;I’m likely going to have to remove composites for 2.0 because they don&#8217;t play nice with item links&#8221; *ducks quickly*)</em></p>
<p>A few people keep nudging me to talk about the elusive “composite folders” that are part of RLVa-1.1.0&#8230; I’ve actually tried to write this blog post at least half a dozen times already but it always get so terribly convoluted and complicated by the third paragraph that I doubt it would still make sense to many people, so&#8230; brace yourself <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>&#8212;</p>
<p>If you’re wearing a pair of shoes in SL then they’ll likely consist of at least a shoe base and left/right foot attachments; or possibly left/right lower leg attachments as well; or even left/right upper leg attachments (thigh high boots for instance).</p>
<p>Similarly a dress is usually at least a shirt (and/or jacket), plus pants, plus a prim skirt. Or some extra frills on chest, and sleeves on left/right upper arm, etc.</p>
<p>Regardless of what individual items actually compose it we just refer to it as “shoes” (or “dress”) and that’s more or less the idea behind “composite folders”: grouping multiple inventory items together and treating them as “belong together”.</p>
<p>&#8212;</p>
<p><strong>Practical example</strong>: a playboy bunny outfit</p>
<p><a href="http://rlva.catznip.com/blog/wp-content/uploads/2010/03/compositePlaybunny.png"><img class="size-full wp-image-186 aligncenter" title="compositePlaybunny" src="http://rlva.catznip.com/blog/wp-content/uploads/2010/03/compositePlaybunny.png" alt="Inventory view of outfit" width="400" height="480" /></a></p>
<p>If you ignore the unusual “.[something]” naming scheme for a moment you’ll notice that I’ve divided the outfit into different parts:</p>
<ul>
<li>the leotard: comes on shirt and pants layer, plus the bunnie tail (which goes on pelvis)</li>
<li>the tights: come on underpants and socks layer</li>
<li>the shoes: shoes layer plus left/right foot attachments</li>
<li>my prim nails: gloves layer plus left/right hand attachments</li>
</ul>
<p>So what’s the big fuss?</p>
<p>Imagine that someone’s feeling playful and suddenly *yoinks* my bunny tail off (@remattach:pelvis=force): normally that would remove only the tail but instead the viewer will actually strip off the tail, the shirt layer and the pants layer because I told it to treat all three items as one whole (by grouping them under a &#8220;composite folder&#8221;) so if one of them gets removed then all the others should be removed as well.</p>
<p><em>(Including the tail as part of the leotard was a quirk on my part: if the tail was located where the ears and collar are then it wouldn’t belong to a “composite folder” and wouldn’t result in anything else being taken off)</em></p>
<p>Similarly if something now executes @remoutfit:shoes=force then that will strip the shoe base *and* the left foot attachment *and* the right foot attachment.</p>
<p>&#8212;</p>
<p><em>Q: what happens when another folder is force-attached and it replaces part – but not all – of a composite?</em></p>
<p>For instance imagine that the new folder contains stockings instead of tights: normally that would mean that you have to Take Off &gt; Underpants on your own.</p>
<p>However since the tights are marked as a composite as soon as one piece of it is replaced the viewer will take off the rest as well so in this case replacing the socks layer means that the underpants layer will automatically come off as well.</p>
<p>As an another example: if the new folder contains actual gloves on the glove layer then that would cause the left/right hand prim nails to get detached since the gloves replaced their tinting layer.</p>
<p>&#8212;</p>
<p><em>Q: what happens if part of a composite is locked and another part is force-stripped?<br />
A: nothing, the strip command fails</em></p>
<p>When a pair of shoes is marked as a “composite” for instance then a @remoutfit:shoes=n to lock the shoe base will automatically extend to the left/right foot attachment as well.</p>
<p><em>(Note that it doesn’t prevent *you* from still right-clicking and detaching them, all the “composite logic” applies to *scripts* only)</em></p>
<p><em>&#8212;</em></p>
<p><em>Q: what happens if a composite is force attached and parts of it specify layers or attachments that are currently locked?</em></p>
<p>That might not make much sense so consider the previous example of having the shoe base locked as part of @remoutfit=n but not having the left/right foot attachment locked.</p>
<p>Now imagine that someone is trying to force-attach a pair of boots on you: the previous paragraph tells you that since the shoe base is locked the left/right foot attachment are considered to be “locked” as well so that leaves only the left/right lower leg attachments.</p>
<p>Which as you might have guessed will not attach at all because if even one item of a composite can not be attached then none of it will get attached (or in other words composites are always an “all or nothing” deal).</p>
<p>&#8212;</p>
<p>Some closing comments:</p>
<p><strong>Naming</strong> - in the example I used “.[something]” for the simple reason that I always want my shared outfit folders to be attachable through a simple @attach:&lt;path&gt;=force (do note that regular RLV will treat this kind of composite folder as a regular hidden folder so if you switch then you want to stay away from this one).</p>
<p>If you prefer you can just use “[Something]” as well in which case it would take an @attachall:&lt;path&gt;=force to attach the entire outfit (and of course the folder would be visible to @getinv).</p>
<p>I also realize this isn’t the best naming scheming in the world and will likely conflict with the way some people have already set their folders up and this will likely change at some point soon (ie the next version).</p>
<p>Additionally keep in mind that only shared folders (any folder somewhere under #RLV) can be composite folders. Every folder anywhere else in your inventory that happens to be named &#8220;[Something]&#8221; will just be a normal, plain folder.</p>
<p><strong>Bugs &#8211; </strong>I have to honest and point out that I didn’t really bother testing composites all that much after implementing them since I wanted to spend more time making sure that they didn’t break “normal” force wearing.</p>
<p>That said the very few people (three in all I think) who knew what they were about and have used them to some extent haven’t reported any bugs so they should be fine to play with. Just don’t do any crazy things like nesting composites inside of another composite <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p><strong>Enabling -</strong> once turned on *any* folder under #RLV that’s named “[blah]” or “.[abc]” will be treated as a composite folder so please make sure you never named any folders like that or they’ll suddenly start acting peculiar <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>If the above didn’t scare you off then you just flip <em>RLVaEnableCompositeFolders</em> from the default <em>FALSE</em> to <em>TRUE</em> under &#8220;<em>Advanced / Debug Settings</em>&#8221; and you’re all set (applies to RLVa-1.1.0).</p>
<p>&#8212;</p>
<p>*breathes* I actually made it all the way to the end! <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2010/03/feature-composite-folders/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Release: RLVa-1.1.0</title>
		<link>http://rlva.catznip.com/blog/2010/02/release-rlva-1-1-0/</link>
		<comments>http://rlva.catznip.com/blog/2010/02/release-rlva-1-1-0/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 10:00:44 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=179</guid>
		<description><![CDATA[*waves*
Emerald just released so that means the test phase for RLVa-1.1.0 is finished as well  .
&#8212;
The lists below aren&#8217;t exhaustive but highlight additions/changes/fixes that &#8220;most people&#8221; 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 &#8220;Wear&#8221; (or &#8220;Attach To&#8221;) a &#8220;no [...]]]></description>
			<content:encoded><![CDATA[<p>*waves*</p>
<p>Emerald just released so that means the test phase for RLVa-1.1.0 is finished as well <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>&#8212;</p>
<p>The lists below aren&#8217;t exhaustive but highlight additions/changes/fixes that &#8220;most people&#8221; might care about (see the release notes for the full change log).</p>
<p>New additions:</p>
<p><strong>1) Auto-create folder for “no modify” attachments under #RLV when worn</strong></p>
<p>If you &#8220;Wear&#8221; (or &#8220;Attach To&#8221;) a &#8220;no modify&#8221; item somewhere under the shared #RLV folder the viewer will automatically create the appropriate &#8220;.(attachpt)&#8221; folder and move the item into it (if it doesn&#8217;t already exist).</p>
<p>This should hopefully make creating shared folders easier since &#8211; as long as you have &#8220;Enable Wear&#8221; &#8211; all you have to do is move the items to a folder under #RLV and then pick &#8220;Add to Outfit&#8221; and you&#8217;re done <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>(If for any reason you *don&#8217;t* want items under the #RLV to be auto-renamed &#8211; or auto-moved &#8211; you can uncheck &#8220;Advanced / RLVa / Debug / Rename Shared Items on Wear&#8221;)</p>
<p><strong>2) &#8220;Unable to open [TYPE] due to RLV restrictions</strong>”</p>
<p>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.</p>
<p>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.</p>
<p>(Depending on the like/don&#8217;t like I&#8217;ll add similar ones for other &#8220;silently blocked&#8221; things like teleporting)</p>
<p><strong>3) &#8220;Force wear” will activate/deactivate gestures</strong></p>
<p>Nothing earth-shattering but some people might find this one useful.</p>
<p><strong>4) Hardcoded strings now live in rlva_strings.xml</strong></p>
<p>This isn’t really something most people will care about but it does have some side-effects that might appeal to a few people:</p>
<ul>
<li>If anyone wants to help and translate the strings into one of the languages the viewer supports that would definitely be appreciated <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>You could change the text that gets sent out when someone IMs while you’re @recvim blocked for instance</li>
<li>The list of “anonyms” that @shownames uses is customizable (you can replace existing ones or extend the list by adding your own custom ones)</li>
</ul>
<p><strong>5) Avatar-to-avatar &#8220;Give to #RLV&#8221;</strong></p>
<p>A few people suggested this one: if they @showinv=n restrict someone they wanted the ability to &#8220;force wear&#8221; something on that person without first unlocking that person&#8217;s inventory and then asking them to move the folder they just received to their #RLV.</p>
<p><strong>6) UI tweaks</strong></p>
<ul>
<li>“Teleport Home” is now visually disabled when @tplm=n restricted to make it more obvious that it’s blocked</li>
<li>“Sit” and “Stand Up” weren’t visually disabled on the pie-menu when @sit=n/sittp=n/fartouch=n and @unsit=n restricted</li>
<li>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 &gt;1.5m away under @fartouch=n the mouse cursor won’t change away from the default pointer)</li>
</ul>
<p><strong>7) Showing a custom notification when X restricted </strong></p>
<p>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).</p>
<p>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.</p>
<p>Take a peek at rlva_strings.xml if you want to play with it (there’s a commented out example for @defaultwear there)</p>
<p><strong>8 ) Better command handling feedback when RestrainedLifeDebug is TRUE</strong></p>
<p>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”.</p>
<p>Instead you’ll see: “Object executes: @detach=y (unset), detach=n, detach=n (duplicate)”</p>
<p>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.</p>
<p>Examples:</p>
<ul>
<li>Object failed: @detachme=n (invalid  param)<br />
-&gt; only @detachme=force has any meaning<br />
-&gt; 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</li>
<li>Object failed: @detachme:spine=force (invalid option)<br />
-&gt; “spine” isn’t a valid option to supply to “detachme”</li>
<li>Object failed: @detach:test=force (invalid option)<br />
-&gt; in this specific case “invalid option” means “no such folder exists” (I might make that clearer if anyone cares about it strongly)</li>
<li>Object failed: @attach:test=force (missing #RLV)<br />
-&gt; command failed because the user has no shared #RLV folder</li>
<li>Object failed: @foo=bar (syntax error)<br />
-&gt; should be fairly obvious</li>
<li>Object failed: @setenv=n (command disabled)<br />
-&gt; user set RestrainedLifeNoSetEnv to TRUE</li>
<li>Object failed: @showminmap=n (unknown command)<br />
-&gt; helps finds typos</li>
</ul>
<p><strong>9) &#8220;Composite folders&#8221;</strong></p>
<p>This really deserves its own blog post. I just added it here so people can poke me to explain what it does :p.</p>
<p>&#8212;</p>
<p>Fixes:</p>
<p><strong>1) @version and @versionum execute at regular intervals throughout the log-on </strong></p>
<p>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.</p>
<p><strong>2) @setrot:&lt;angle&gt;=force rotates clockwise while regular RLV rotates counter-clockwise</strong></p>
<p>(This one was actually fixed &#8220;early&#8221; in Emerald and Imprudence but I&#8217;m not sure if either released since it was fixed)</p>
<p><strong>3) &#8220;folded&#8221; folders should inherit &#8220;nostrip&#8221; from their parent folder(s)</strong></p>
<p>(ie #RLV/Test (nostrip)/.(spine) should be &#8220;nostrip&#8221; since it folds in under &#8220;Test (nostrip)&#8221;)</p>
<p>&#8212;</p>
<p>&#8220;Enable Shared Wear&#8221; (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 <a href="http://jira.secondlife.com/browse/SVC-5383">SVC-5383</a> :(.</p>
<p>The &#8220;experimental&#8221; commands are present in the code but are *not* available unless you #define RLV_EXPERIMENTAL_CMDS (see rlvdefines.h). (I&#8217;ll update the preview viewer soon to reflect RLVa-1.1.0 and Snowglobe 1.3 RC1)</p>
<p>&#8212;</p>
<p>For people already using the patch: I moved the #include&#8217;s for rlv*.h from llagent.h to each individual *.cpp file so that might result in quite a lot of rejects. It&#8217;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.</p>
<p>I also don&#8217;t think there are still any viewers using SL-1.22.11? If I&#8217;m wrong please just ask for a patch and I&#8217;ll make one <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>I also have a patch for Snowglobe-1.2.4 if anyone&#8217;s specifically interested in that one, but it seemed that with an imment Snowglobe-1.3 it might not be needed/desired.</p>
<p>If there are any problems with any of the patches please do let me know and I&#8217;ll try my best to help <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Code downloads:<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.1/RLVa-1.1.0o_20100218_SL-1.23.5-full.patch">RLVa-1.1.0o_20100218_SL-1.23.5-full.patch</a> – SL-1.23.5<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.1/RLVa-1.1.0o_20100218_Snowglobe-1.3.1-full.patch">RLVa-1.1.0o_20100218_Snowglobe-1.3.1-full.patch</a> – Snowglobe-1.3.1</p>
<p><a href="http://rlva.catznip.com/downloads/RLVa-1.1/RLVa-1.1.0o_20100218_SL-1.23.5-diff.patch">RLVa-1.1.0o_20100218_SL-1.23.5-diff.patch</a> – From 1.0.5e to 1.1.0o (SL-1.23.5)</p>
<p>Release notes:<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.1/release_notes_RLVa-1.1.0.txt">release_notes_RLVa-1.1.0.txt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2010/02/release-rlva-1-1-0/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Preview: RLVa-1.1.0 (11)</title>
		<link>http://rlva.catznip.com/blog/2010/01/preview-rlva-1-1-0-11/</link>
		<comments>http://rlva.catznip.com/blog/2010/01/preview-rlva-1-1-0-11/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 15:13:13 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=164</guid>
		<description><![CDATA[I&#8217;ve had to deal with some medical problems for the past week and a half and I probably have some surgery to look forward to as well in the near future so my schedule has changed a bit since the last post  .
As announced I&#8217;m releasing a preview viewer but will also move on to merging RLVa-1.1.0 [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had to deal with some medical problems for the past week and a half and I probably have some surgery to look forward to as well in the near future so my schedule has changed a bit since the last post <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .</p>
<p>As announced I&#8217;m releasing a preview viewer but will also move on to merging RLVa-1.1.0 with Emerald and Imprudence and sorting out viewer-specific RLVa-related issues today and hopefully have that done by the end of the week.</p>
<p>About the preview: on the one end it would be helpful to get some early feedback about any bugs or issues relating to RLVa-1.1 (particularly things that currently work fine in RLVa-1.0.5) since there have been a lot of &#8220;under the hood&#8221; changes (see <a href="http://rlva.catznip.com/blog/2009/12/happy-holidays/">Happy holidays</a> post). On the other hand there are a limited few &#8220;experimental commands&#8221; in RLVa-1.1.0 as well that I can&#8217;t really make a part of the normal release so the preview is a way for those people who are interested in them to actually try them out, give feedback and to refine or adjust their feature proposal.</p>
<p>About the name: I can&#8217;t keep the Snowglobe name for the viewer and an &#8220;RLVa viewer&#8221; is much too close to Marine&#8217;s &#8220;RLV viewer&#8221; so I just went with &#8220;Catznip&#8221; instead to avoid any confusion. Since the only purpose for the viewer is to hopefully get some early feedback on &#8211; obvious &#8211; bugs or on the experimental commands that won&#8217;t be part of the normal release it should work fine <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Condensed installation instructions (Windows only):</p>
<ul>
<li>download and install the Snowglobe-1.3.0 test build from LL (<a href="http://secondlife.com/developers/opensource/downloads/2009/trunk/3064/Snowglobe_1-3-0-3064_Setup.exe">http://secondlife.com/developers/opensource/downloads/2009/trunk/3064/Snowglobe_1-3-0-3064_Setup.exe</a>)</li>
<li>download the preview and extract everything into the folder where you installed Snowglobe-1.3.0 (<a href="http://rlva.catznip.com/downloads/Catznip/Catznip-1.1.0.11.zip">http://rlva.catznip.com/downloads/Catznip/Catznip-1.1.0.11.zip</a>)</li>
<li>double-click the Catznip-1.1.0.11.exe and change the cache folder to something specific for this viewer. Using the same cache folder for different viewers seems to cause some issues so please don&#8217;t skip this step</li>
</ul>
<p>Notes:</p>
<ul>
<li>RestrainedLife setting is set to TRUE by default</li>
<li>The viewer will use settings_catznip.xml by default so it won&#8217;t interfere with your regular user settings (although it does mean you&#8217;ll have to reset your preferences)</li>
<li>There might be a few silly idiosyncrasies related to changing the branding on the viewer (ie during yesterday&#8217;s inventory server outage I noticed that the error stated &#8220;Couldn&#8217;t connect to Catznip&#8221; instead of &#8220;Couldn&#8217;t connect to Second Life&#8221; )</li>
</ul>
<p>Source:</p>
<ul>
<li>the base build is Snowglobe-1.3.0 (=trunk) revision <span style="text-decoration: line-through;">3064</span> 3065 which you can get from LL&#8217;s svn</li>
<li>after you checked that out (as well as extracted the art and libs file) download <a href="http://rlva.catznip.com/downloads/Catznip/Catznip-1.1.0.11_src.zip">http://rlva.catznip.com/downloads/Catznip/Catznip-1.1.0.11_src.zip</a> and just extract it on top</li>
</ul>
<p>(If someone really wants a patch file instead just let me know and I&#8217;ll put one up but I didn&#8217;t want anyone confusing this with the actual release)</p>
<p>(The source also hasn&#8217;t been compiled by someone using Linux or a Mac yet so there&#8217;s likekly to be some GCC-specific warnings/errors and if so please do pass those on)</p>
<p>Release notes (tentative): <a href="http://rlva.catznip.com/downloads/Catznip/release_notes_RLVa-1.1.txt">release_notes_RLVa-1.1.txt</a></p>
<p>Experimental commands:</p>
<ul>
<li>General outline (or just click the &#8220;Request for Comments&#8221; link at the top): <a href="http://rlva.catznip.com/blog/request-for-comments/">http://rlva.catznip.com/blog/request-for-comments/</a></li>
<li>@allowidle=n: <a href="http://rlva.catznip.com/blog/request-for-comments/rfc-allowidlen/">http://rlva.catznip.com/blog/request-for-comments/rfc-allowidlen/</a></li>
<li>@touchXXX=n: <a href="http://rlva.catznip.com/blog/request-for-comments/rfc-touchxxxn/">http://rlva.catznip.com/blog/request-for-comments/rfc-touchxxxn/</a></li>
<li>@interact=n: <a href="http://rlva.catznip.com/blog/request-for-comments/rfc-interactn/">http://rlva.catznip.com/blog/request-for-comments/rfc-interactn/</a></li>
<li>@findfolders: <a href="http://rlva.catznip.com/blog/request-for-comments/rfc-findfolders/">http://rlva.catznip.com/blog/request-for-comments/rfc-findfolders/</a></li>
<li>@getXXXnames: <a href="http://rlva.catznip.com/blog/request-for-comments/rfc-getxxxnames/">http://rlva.catznip.com/blog/request-for-comments/rfc-getxxxnames/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2010/01/preview-rlva-1-1-0-11/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Happy holidays!</title>
		<link>http://rlva.catznip.com/blog/2009/12/happy-holidays/</link>
		<comments>http://rlva.catznip.com/blog/2009/12/happy-holidays/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 13:26:09 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=143</guid>
		<description><![CDATA[*waves*
I just woke up from my hibernation to wish everyone a merry Christmas and a happy new year!  
(Please don’t tie up Santa when he comes down the chimney and hog him all to yourself. The rest of us want our prezzies too!)
 &#8212;
On a more serious note there’s finally light at the end of [...]]]></description>
			<content:encoded><![CDATA[<p>*waves*</p>
<p>I just woke up from my hibernation to wish everyone a merry Christmas and a happy new year! <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>(Please don’t tie up Santa when he comes down the chimney and hog him all to yourself. The rest of us want our prezzies too!)</p>
<p> &#8212;</p>
<p>On a more serious note there’s finally light at the end of the tunnel for RLVa-1.1 (woohoo!).</p>
<p>Since a lot of the changes are internal only (moving code around to where it makes more sense and completely rewriting other portions) I’d rather do an “interim release” where I release a (Windows only though, sowwies) viewer in the next few days and hopefully can get some feedback (and quick bug fixes if necessary) before I do a normal release and move on to integrate it into Emerald and Imprudence (where the release cycle is at least several weeks).</p>
<p> &#8212;</p>
<p>I’ll put up the actual change list when I actually release but in the meanwhile:</p>
<p> 1) “Enable Shared Wear”</p>
<p>This feature is aimed primarily at those who are using the “force wear” functionality of RLV but aren’t using the attachment locking functionality: when enabled it removes the requirement for shared inventory attachments to specify which attachment point they should get attached to.</p>
<p>If at least one attachment point is non-detachable or non-attachable then “Shared Wear” will automatically be disabled.</p>
<p>(Note that “Enable Shared Wear” disables the auto-renaming that normally happens when wearing an attachment that resides under #RLV)</p>
<p> 2) Auto-move “no modify” attachments under #RLV when worn</p>
<p>Example: “Wear” on a “no modify” attachment called “Collar” that attaches to “chest”<br />
Result: the viewer will create a new folder called “.(chest)” under the current folder and move the “Collar” inventory item into it</p>
<p>This complements the existing auto-rename for modify attachments and makes setting up a shared folder as easy as right-clicking it and picking “Add to Outfit” (as long as “Enable (Default) Wear” is enabled).</p>
<p>Hopefully this makes up for the fact that “Shared Wear” is disabled as soon as at least one attachment is locked <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p> 3) “Unable to open [TYPE] due to RLV restrictions”</p>
<p>When you double-click a notecard/texture/script when @viewnote/viewtexture/viewscript restricted 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.</p>
<p>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.</p>
<p>(Keep in mind that you also can’t open notecards or scripts inside of non-detachable attachments even if you’re not @viewxxx restricted)</p>
<p> 4) Hardcoded strings now live in rlva_strings.xml</p>
<p>This isn’t really a feature or something most people will care about but it does have some side-effects that might appeal to a few people:</p>
<ul>
<li>If anyone wants to help and translate the strings into one of the languages the viewer supports that would definitely be appreciated <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>You could change the text that gets sent out when someone IMs while you’re @recvim blocked for instance</li>
<li>The list of “anonyms” that @shownames uses is customizable (you can replace existing ones or extend the list by adding your own custom ones)</li>
</ul>
<p> 5) “Force wear” will activate/deactivate gestures</p>
<p>Nothing earth-shattering but someone might find it useful.</p>
<p> 6) Better command handling feedback when RestrainedLifeDebug is TRUE</p>
<p>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”.</p>
<p>Instead you’ll see: “Object executes: @detach=y (unset), detach=n, detach=n (duplicate)”</p>
<p>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.</p>
<p>Examples:</p>
<ul>
<li>Object failed: @detachme=n (invalid  param)<br />
-&gt; only @detachme=force has any meaning<br />
-&gt; 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</li>
<li>Object failed: @detachme:spine=force (invalid option)<br />
-&gt; “spine” isn’t a valid option to supply to “detachme”</li>
<li>Object failed: @detach:test=force (invalid option)<br />
-&gt; in this specific case “invalid option” means “no such folder exists” (I might make that clearer if anyone cares about it strongly)</li>
<li>Object failed: @attach:test=force (missing #RLV)<br />
-&gt; command failed because the user has no shared #RLV folder</li>
<li>Object failed: @foo=bar (syntax error)<br />
-&gt; should be fairly obvious</li>
<li>Object failed: @setenv=n (command disabled)<br />
-&gt; user set RestrainedLifeNoSetEnv to TRUE</li>
<li>Object failed: @showminmap=n (unknown command)<br />
-&gt; helps finds typos</li>
</ul>
<p> 7) @version and @versionum execute at regular intervals throughout the logon</p>
<p>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.</p>
<p> 8) UI tweaks</p>
<ul>
<li>“Teleport Home” is now visually disabled when @tplm=n restricted to make it more obvious that it’s blocked</li>
<li>“Sit” and “Stand Up” weren’t visually disabled on the pie-menu when @sit=n/sittp=n/fartouch=n and @unsit=n restricted</li>
<li>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 &gt;1.5m away under @fartouch=n the mouse cursor won’t change away from the default pointer)</li>
</ul>
<p> 9) Showing a custom notification when X restricted</p>
<p>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).</p>
<p>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.</p>
<p>(You could accomplish more or less the same thing with @notify and @getstatus I guess)</p>
<p>Take a peek at rlva_strings.xml if you want to play with it (there’s a commented out example for @defaultwear there)</p>
<p> &#8212;</p>
<p>There are some additional “experimental” features as well that I didn’t mention here because depending on feedback they may or may not make the actual release so I’ll highlight those when I put up the RC in the next few days.</p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/12/happy-holidays/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Random: Renaming &#8220;no modify&#8221; items</title>
		<link>http://rlva.catznip.com/blog/2009/10/random-renaming-no-modify-items/</link>
		<comments>http://rlva.catznip.com/blog/2009/10/random-renaming-no-modify-items/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 18:46:13 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=140</guid>
		<description><![CDATA[*waves*
While poking at the inventory code this morning I found a work-around for renaming &#8220;no modify&#8221; inventory items.
Aside from being a godsend for inventory organization it would make #RLV folders a whole lot easier to explain, create and maintain (no more having to create separate folders for &#8220;no modify&#8221; items).
Since it&#8217;s technically a bug (the sim/inventory server should [...]]]></description>
			<content:encoded><![CDATA[<p>*waves*</p>
<p>While poking at the inventory code this morning I found a work-around for renaming &#8220;no modify&#8221; inventory items.</p>
<p>Aside from being a godsend for inventory organization it would make #RLV folders a whole lot easier to explain, create and maintain (no more having to create separate folders for &#8220;no modify&#8221; items).</p>
<p>Since it&#8217;s technically a bug (the sim/inventory server should be checking that the item is &#8220;modify&#8221; to match the current viewer behaviour) I&#8217;m not going to even consider using it; but it does mean that since LL has to fix one or the other anyway it might be possible to nudge them to &#8220;fix&#8221; the current default behaviour (which doesn&#8217;t allow renaming of &#8220;no modify&#8221; inventory items) for the better.</p>
<p><a href="https://jira.secondlife.com/browse/SVC-3675">https://jira.secondlife.com/browse/SVC-3675</a> &lt;- vote, vote! :)&#8230; Or if you agree with the current behaviour you can voice that</p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/10/random-renaming-no-modify-items/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Proposal: @getattachnames</title>
		<link>http://rlva.catznip.com/blog/2009/10/proposal-getattachnames/</link>
		<comments>http://rlva.catznip.com/blog/2009/10/proposal-getattachnames/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 13:02:17 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=137</guid>
		<description><![CDATA[There’s been some buzz about the extra attachment points that are now included in Emerald by default, particularly in how they relate to “force stripping”.
Personally I don’t think they’ll ever get all that much use since they’ll look wrong/silly to everyone who isn’t using Emerald and as soon as people figure that out the appeal [...]]]></description>
			<content:encoded><![CDATA[<p>There’s been some buzz about the extra attachment points that are now included in Emerald by default, particularly in how they relate to “force stripping”.</p>
<p>Personally I don’t think they’ll ever get all that much use since they’ll look wrong/silly to everyone who isn’t using Emerald and as soon as people figure that out the appeal of them drops significantly.</p>
<p>Whether or not people will end up using them doesn’t really matter though: at some point or another LL might officially add more attachment points (or clothing layers for that matter) and all the same problems will crop up then anyway so it would be better to try and figure out a way in which scripts can make themselves more “future-proof” now.</p>
<p>After peeking at several “force strip” dialogs most seem to fall into three categories:</p>
<ul>
<li>A list of all worn attachment point names spread across different dialogs</li>
<li>A list of all worn attachment point names divided into categories</li>
<li>A list of custom grouped attachment points (i.e. clicking “shoes” will force-detach l/r upper leg, l/r lower leg and l/r foot)</li>
</ul>
<p>So a hypothetical @getattachnames[:&lt;option&gt;] would return a comma-separated list of attachment point names:</p>
<ul>
<li>Without  an option it would return all worn  attachment point names</li>
<li>&lt;option&gt; could specify one of the pre-defined body areas (head, torso, arms, legs  and HUD) and return all worn attachment point names on that area</li>
<li>&lt;option&gt; could specify the joint name and return all worn attachment point names on that joint</li>
</ul>
<p>(the “body areas” weren’t really chosen arbitrarily; they’re the same ones you see in the “Attach To” pie menu when you right-click on a rezzed linkset)</p>
<p>(&lt;joint name&gt; wouldn’t be particularly accurate in some cases – “r upper leg” is attached to the “mHipRight” joint along with “right hip” for instance – so it may or may not be a good idea to add that)</p>
<p>Practical example:</p>
<ul>
<li>@getattachnames=1<br />
Skull,Left Foot,Right Foot,Spine,Left Ear,Right Ear,R Forearm,L Forearm,R Lower Leg,L Lower Leg,Top,Top Left,Center,Bottom Left,Bottom,Bottom Right</li>
<li>@getattachnames:head=1<br />
Skull,Left Ear,Right Ear</li>
<li>@getattachnames:torso=1<br />
Spine</li>
<li>@getattachnames:arms=1<br />
R Forearm,L Forearm</li>
<li>@getattachnames:legs=1<br />
Left Foot,Right Foot,R Lower Leg,L Lower Leg</li>
<li>@getattachnames:hud=1<br />
Top,Top Left,Center,Bottom Left,Bottom,Bottom Right</li>
</ul>
<p>&#8212;</p>
<p>Additionally @getattachnameswearable and @getattachnamesremovable could be added:</p>
<ul>
<li>@getattachnames returns the list of attachment point names that are worn</li>
<li>@getattachnameswearable returns the list of attachment point names that can be attached to (which is any attachment point that doesn’t have a @remattach=n locked attachment *and* isn’t @addattach=n locked)</li>
<li>@getattachnamesremovable returns the list of attachment point names that can be removed by the issuing prim (which is any worn attachment point that isn’t @remattach=n locked)</li>
</ul>
<p>The reasoning for @getattachnamesremovable: it’s more intuitive for a “force strip” dialog to only show attachment points that can actually be force-detached by the script.</p>
<p>Practical examples (same as above – l/r forearm and l/r lower leg are @detach=n locked; Top and Bottom Right are “nostrip”):</p>
<ul>
<li>@getattachnamesremovable=1<br />
Skull,Left Foot,Right Foot,Spine,Left Ear,Right Ear,Top Left,Center,Bottom Left,Bottom</li>
<li>@getattachnamesremovable:head=1<br />
Skull,Left Ear,Right Ear</li>
</ul>
<p>&#8212;</p>
<p>Finally: there’s the question of whether the script should be responsible for clearing its attachment locks or whether the viewer should just ignore them (the latter is how “Hide Locked Attachments” works).</p>
<p>Example:</p>
<ul>
<li>Collar executes: @detach=n,remattach=n</li>
<li>Collar executes: @getattachnamesremovable=1<br />
&lt;empty response&gt; since there isn’t a single attachment point that can be @detach[:&lt;attachpt&gt;]=force’d and actually end up detached</li>
<li>What the collar should have done was:<br />
@remattach=y, getattachnamesremovable=1,remattach=n</li>
<li>And then later on:<br />
@remattach=y, remattach:pelvis=force,remattach=n</li>
</ul>
<p>It would be easy for the viewer to ignore any @detach[:&lt;attachpt&gt;] and @add/remattach[:&lt;attachpt&gt;] locks though which means it could just go:</p>
<ul>
<li>Collar executes: @detach=n,remattach=n</li>
<li>Collar executes: @getattachnamesremovable=1<br />
&lt;full list of attachment points that be force-detached by the collar&gt;</li>
<li>Collar executes: @remattach=y, remattach:pelvis=force,remattach=n</li>
</ul>
<p>The collar script still needs to know that it should release its @remattach restriction when actually force-detaching but it’s a step in the right direction.</p>
<p>(Personally I think it would make the most sense for @remattach[:&lt;attachpt&gt;]=force to just only check *other* prims’ attachment locks which would mean that @remattach=n,remattach:pelvis=force would “just work” – on the condition that no other prim has “pelvis” locked obviously. It would certainly save scripts a whole lot of hassle)</p>
<p>&#8212;</p>
<p>In closing: this is a *proposal* rather than an announcement. Yes the code has already been written, but simply because it’s a lot easier for me to propose something when I know it’ll actually work <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Even if LL decides to block non-standard attachment points with the next rolling restart there will still come a time when we either get new attachment points and/or get multiple attachments per attachment point index so it’s probably best to figure out a solution everyone is – relatively – happy with.</p>
<p>Even if we never get new attachment points it would relieve scripts from having to translate @getattach into a list of attachment point names (less code and no hard coded look-up list should free up some script memory)</p>
<p>Additionally the entire post can be done over for clothing layers: LL supposedly was/is working on extra tattoo layers so when/if we get those all existing scripts that rely on @getoutfit and their hard-coded list of layer names won’t be able to deal with those new layers without an update.</p>
<p>&#8212;</p>
<p>Additional thoughts:</p>
<ul>
<li>I personally prefer @getattachnames[:[&lt;option&gt;;][wearable|removable]=&lt;channel&gt; over three separate commands (basically making the suffix an additional and optional parameter)</li>
<li>It might be preferable to fold attachment points together (i.e. Chest and Chest (2) and Chest 2 would all simply report as &#8220;Chest&#8221; one single time)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/10/proposal-getattachnames/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Release: RLVa-1.0.5</title>
		<link>http://rlva.catznip.com/blog/2009/10/release-rlva-1-0-5/</link>
		<comments>http://rlva.catznip.com/blog/2009/10/release-rlva-1-0-5/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 01:15:19 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=135</guid>
		<description><![CDATA[I should be in bed already so this is going to be short  .
Most notable changes:

added @add/remattach, @viewscript and @viewtexture (RLV-1.22)
@detach:&#60;attachpt&#62;=n and @addattach[:&#60;attachpt&#62;]=n no longer run the risk of detaching attachments on relog which is a much needed fix
non-scripted attachments will now reattach properly when accidentally detached (technically it&#8217;s any attachment which didn&#8217;t change [...]]]></description>
			<content:encoded><![CDATA[<p>I should be in bed already so this is going to be short <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Most notable changes:</p>
<ul>
<li>added @add/remattach, @viewscript and @viewtexture (RLV-1.22)</li>
<li>@detach:&lt;attachpt&gt;=n and @addattach[:&lt;attachpt&gt;]=n no longer run the risk of detaching attachments on relog which is a much needed fix</li>
<li>non-scripted attachments will now reattach properly when accidentally detached (technically it&#8217;s any attachment which didn&#8217;t change while attached and hence won&#8217;t cause a new asset to be created when detached)</li>
<li>added a convenience feature for &#8220;Enable Wear&#8221; combined with @addattach: if a &#8220;Wear&#8221; ends up detaching something on an &#8220;addattach locked&#8221; attachment point then the old attachment will reattach itself (this is needed since you wouldn&#8217;t be able to wear again yourself)</li>
<li>&#8220;Enable Wear&#8221; will disable itself when you&#8217;re @addattach=n restricted since in that case there isn&#8217;t any attachment point that you could wear something on</li>
<li>reenabled &#8220;Copy and Wear&#8221; (should have happened in 0.2.2 but I forgot): as with &#8220;Add to/Replace Outfit&#8221; it&#8217;ll work regardless of &#8220;Enable Wear&#8221; but of course if &#8220;Enable Wear&#8221; is disabled then it&#8217;ll only actually do something if the attachments inside of the object are named properly</li>
<li>changed &#8220;A/This/That human being&#8221; to &#8220;A/This/That being&#8221; (some people felt the former was ill suited for non-human avies)</li>
<li>&#8220;Hide locked attachments&#8221; was changed to report from the issuing object&#8217;s point of view rather than a global view (see example in release notes)</li>
</ul>
<p>—</p>
<p>Code downloads:<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.5e_20091014_SL-1.23.4-full.patch">RLVa-1.0.5e_20091014_SL-1.23.4-full.patch</a> – SL-1.23.4<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.5e_20091014_SL-1.22.11-full.patch">RLVa-1.0.5e_20091014_SL-1.22.11-full.patch</a> – SL-1.22.11<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.5e_20091014_Snowglobe-1.1.2-full.patch">RLVa-1.0.5e_20091014_Snowglobe-1.1.2-full.patch</a> – Snowglobe-1.1.2</p>
<p><a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.5e_20091014_SL-1.23.4-diff.patch">RLVa-1.0.5e_20091014_SL-1.23.4-diff.patch</a> – From 1.0.4e to 1.0.5e (SL-1.23.4)<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.5e_20091014_SL-1.22.11-diff.patch">RLVa-1.0.5e_20091014_SL-1.22.11-diff.patch</a> – From 1.0.4e to 1.0.5e (SL-1.22.11)<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.5e_20091014_Snowglobe-1.1.2-diff.patch">RLVa-1.0.5e_20091014_Snowglobe-1.1.2-diff.patch</a> – From 1.0.4e to 1.0.5e (Snowglobe-1.1.2)</p>
<p>Release notes:<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/release_notes_RLVa-1.0.5.txt">release_notes_RLVa-1.0.5.txt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/10/release-rlva-1-0-5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Release: RLVa-1.0.4</title>
		<link>http://rlva.catznip.com/blog/2009/10/release-rlva-1-0-4/</link>
		<comments>http://rlva.catznip.com/blog/2009/10/release-rlva-1-0-4/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 13:35:59 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=128</guid>
		<description><![CDATA[*waves*
This isn&#8217;t as polished as I would like it to be but since Emerald and Imprudence will be doing a new release &#8220;very soon&#8221; it seemed more important to push this out now rather than hold out.
The primary change is adding the new RLV-1.21 commands (@permissive, the @XXX_sec ones, @versionnum and @defaultwear).
&#8220;Enable Wear&#8221; remains a [...]]]></description>
			<content:encoded><![CDATA[<p>*waves*</p>
<p>This isn&#8217;t as polished as I would like it to be but since Emerald and Imprudence will be doing a new release &#8220;very soon&#8221; it seemed more important to push this out now rather than hold out.</p>
<p>The primary change is adding the new RLV-1.21 commands (@permissive, the @XXX_sec ones, @versionnum and @defaultwear).</p>
<p>&#8220;Enable Wear&#8221; remains a user setting (although it is turned on by default now), except when you&#8217;re @defaultwear=n restricted obviously in which case the &#8220;Enable Wear&#8221; option will be grayed out to indicate that it&#8217;s being overridden.</p>
<p>One (undocumented) change in RLV-1.21 is that restrictions will be carried over in case of a reattach-on-detach (i.e. if an attachment issues @detach=n,fartouch=n, becomes detached and gets reattached then it will still have @detach=n,fartouch=n set).</p>
<p>I didn&#8217;t add this in RLVa though for a number of reasons: every RLV script will already be reinforcing its restrictions in its on_rez()/attach() events to handle relogs so I can&#8217;t really see any good reason for it (feel free to poke me if I&#8217;m missing something though <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ). Additionally, scripts that explicitly don&#8217;t reinforce their restrictions on attach (because they penalize or automatically unlock on detach for instance) will not be expecting anything but a clean slate in their on_rez()/attach() events so they wouldn&#8217;t think to issue @clear on attach and in those cases the user is forced to relog to get rid of stray permissions.</p>
<p>(Sowwies if the above sounds disjointed but I&#8217;m sick at the moment <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> )</p>
<p>—</p>
<p>Code downloads:<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.4e_20091010_SL-1.23.4-full.patch">RLVa-1.0.4e_20091010_SL-1.23.4-full.patch</a> – SL-1.23.4<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.4e_20091010_SL-1.22.11-full.patch">RLVa-1.0.4e_20091010_SL-1.22.11-full.patch</a> – SL-1.22.11<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.4e_20091010_Snowglobe-1.1.2-full.patch">RLVa-1.0.4e_20091010_Snowglobe-1.1.2-full.patch</a> – Snowglobe-1.1.2</p>
<p><a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.4e_20091010_SL-1.23.4-diff.patch">RLVa-1.0.4e_20091010_SL-1.23.4-diff.patch</a>– From 1.0.3e to 1.0.4e (SL-1.23.4)<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.4e_20091010_SL-1.22.11-diff.patch">RLVa-1.0.4e_20091010_SL-1.22.11-diff.patch</a>– From 1.0.3e to 1.0.4e (SL-1.22.11)<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.4e_20091010_Snowglobe-1.1.2-diff.patch">RLVa-1.0.4e_20091010_Snowglobe-1.1.2-diff.patch</a> – From 1.0.3e to 1.0.4e (Snowglobe-1.1.2)</p>
<p>Release notes:<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/release_notes_RLVa-1.0.4.txt">release_notes_RLVa-1.0.4.txt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/10/release-rlva-1-0-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Release: RLVa-1.0.3</title>
		<link>http://rlva.catznip.com/blog/2009/10/release-rlva-1-0-3/</link>
		<comments>http://rlva.catznip.com/blog/2009/10/release-rlva-1-0-3/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 13:30:00 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=122</guid>
		<description><![CDATA[*waves*
This one has been gathering dust for a while now but I never did seem to get around to releasing it. Bad Kitty, I know  .
—
Code downloads:
RLVa-1.0.3e_20091003_SL-1.23.4-full.patch – SL-1.23.4
RLVa-1.0.3e_20091003_SL-1.22.11-full.patch – SL-1.22.11
RLVa-1.0.3e_20091003_Snowglobe-1.1.2-full.patch – Snowglobe-1.1.2
RLVa-1.0.3e_20091003_SL-1.23.4-diff.patch – From 1.0.2c to 1.0.3e (SL-1.23.4)
RLVa-1.0.3e_20091003_SL-1.22.11-diff.patch – From 1.0.2c to 1.0.3e (SL-1.22.11)
RLVa-1.0.3e_20091003_Snowglobe-1.1.2-diff.patch – From 1.0.2c to 1.0.3e (Snowglobe-1.1.2)
Release notes:
release_notes_RLVa-1.0.3.txt
]]></description>
			<content:encoded><![CDATA[<p>*waves*</p>
<p>This one has been gathering dust for a while now but I never did seem to get around to releasing it. Bad Kitty, I know <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .</p>
<p>—</p>
<p>Code downloads:<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.3e_20091003_SL-1.23.4-full.patch">RLVa-1.0.3e_20091003_SL-1.23.4-full.patch</a> – SL-1.23.4<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.3e_20091003_SL-1.22.11-full.patch">RLVa-1.0.3e_20091003_SL-1.22.11-full.patch</a> – SL-1.22.11<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.3e_20091003_Snowglobe-1.1.2-full.patch">RLVa-1.0.3e_20091003_Snowglobe-1.1.2-full.patch</a> – Snowglobe-1.1.2</p>
<p><a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.3e_20091003_SL-1.23.4-diff.patch">RLVa-1.0.3e_20091003_SL-1.23.4-diff.patch</a> – From 1.0.2c to 1.0.3e (SL-1.23.4)<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.3e_20091003_SL-1.22.11-diff.patch">RLVa-1.0.3e_20091003_SL-1.22.11-diff.patch</a> – From 1.0.2c to 1.0.3e (SL-1.22.11)<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.3e_20091003_Snowglobe-1.1.2-diff.patch">RLVa-1.0.3e_20091003_Snowglobe-1.1.2-diff.patch</a> – From 1.0.2c to 1.0.3e (Snowglobe-1.1.2)</p>
<p>Release notes:<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/release_notes_RLVa-1.0.3.txt">release_notes_RLVa-1.0.3.txt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/10/release-rlva-1-0-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Outfit snapshotting</title>
		<link>http://rlva.catznip.com/blog/2009/09/outfit-snapshotting/</link>
		<comments>http://rlva.catznip.com/blog/2009/09/outfit-snapshotting/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 21:29:57 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=116</guid>
		<description><![CDATA[I promised I&#8217;d write about some RLVa features that never did made it into a release :). These posts (there will probably be three of them) aren&#8217;t an announcement that they will get added but rather to describe the original intent or idea behind the feature, what prevented it from being included and to sollicit feedback on whether anyone actually [...]]]></description>
			<content:encoded><![CDATA[<p>I promised I&#8217;d write about some RLVa features that never did made it into a release :). These posts (there will probably be three of them) aren&#8217;t an announcement that they will get added but rather to describe the original intent or idea behind the feature, what prevented it from being included and to sollicit feedback on whether anyone actually wants it/them first of all, and how they&#8217;d like them to work if that&#8217;s the case.</p>
<p>“Outfit snapshotting” is maybe best compared to SL’s native “Create Outfit” feature: when you create an “outfit snapshot” the viewer iterates over every layer and attachment point and stores what item is currently worn there (if any at all) so that you can instantly change back at a later time, but without the inconvenience of needing to have everything in one folder.</p>
<p>I created it back when I was testing all the force stripping and force dressing commands since I was becoming increasingly frustrated with having to constantly change back to what I was wearing before after each test.</p>
<p>As you might guess the feature is primarily one of convenience: if you just went shopping you could “snapshot” your current outfit and just try things on and just instantly snap back to what you were wearing before if you’d want to. Or if an object just offered you an #RLV/~ folder (or if you’re trying one of the vexation curses) you could quickly “snapshot” what you’re currently wearing and change back later if it turned you into something weird (or replaced your skin/shape/clothes/etc).</p>
<p>One of the reasons why I never turned this into an actual feature is because I never did really come up with a good way to make this available in the general case. Should “outfits snapshots” be created from a menu, a keyboard shortcut, or would it just be easiest to expose it to scripts so they can worry about how to solve that problem?</p>
<p>Another problem was one of storage: storing them on your puter would mean that you wouldn’t be able to access them from a different one (or worse they would become out of sync) which is clearly not desirable which means they have to be stored in your inventory *somehow*.</p>
<p>The fact that LL seems to be working on inventory hardlinks (an inventory item that acts as a shortcut to another inventory item or a folder) means that the best solution is probably a folder hierarchy since then the viewer can take advantage of the new asset types when they’re available (in the meanwhile empty notecards would serve the same function, primarily because as far as I know an empty notecard inventory item doesn’t result in creating a new asset so it wouldn’t unnecessarily tax the asset system).</p>
<p>With all that said the following two questions still remain:</p>
<ol>
<li>While I’m fond of the feature is it actually something anyone else would find useful to have?</li>
<li>If so then how would you prefer to both create and restore an outfit snapshot? (ie a menu option somewhere, a new floater, keyboard shortcuts, etc)</li>
</ol>
<p>(Or there might be additional things I never even thought of <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/09/outfit-snapshotting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First Use</title>
		<link>http://rlva.catznip.com/blog/2009/09/first-use/</link>
		<comments>http://rlva.catznip.com/blog/2009/09/first-use/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 20:27:55 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[features]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=108</guid>
		<description><![CDATA[Every now and then I’ll spot a question or problem along the lines of:
“I cannot get changed: the ‘Wear’ option is grayed out when I try to wear something”
“When I look at the owner of a prim it says ‘Someone’ or ‘Some People’ instead of an actual name. What is going on?”
“I can’t left-click or [...]]]></description>
			<content:encoded><![CDATA[<p>Every now and then I’ll spot a question or problem along the lines of:</p>
<p>“I cannot get changed: the ‘Wear’ option is grayed out when I try to wear something”<br />
“When I look at the owner of a prim it says ‘Someone’ or ‘Some People’ instead of an actual name. What is going on?”<br />
“I can’t left-click or select anything anymore and it’s driving me crazy!”<br />
…</p>
<p>Given the context of the blog it’s clear that an RLV restriction is the cause of what’s happening but what makes these questions so peculiar is that there’s never any mention of RLV, nor are they even asked in places where there’s a high chance of someone being able to properly identify it as being RLV-related (a general group in-world, the forums or even on JIRA).</p>
<p>While the problems above will very likely be obvious to anyone who’s had RLV enabled for some time even long-time users might stumble across something they won’t instantly attribute to RLV. As an example: how many RLV users will realize that the reason their teleport offer to a friend is silently failing is because they’re currently @showloc=n restricted which means that they can only offer a teleport to someone who’s a @tplure exception?</p>
<p>The topic of this blog post (and the aim of the proposed feature) is some way to try to make it more obvious to someone when a certain behaviour is due to some restriction rather than an actual bug or general “SL borkiness”.</p>
<p>It would probably also be very helpful to a lot of people if someone (or a group of people) could find the time to create a section on the SL wiki that explains some of the common pitfalls or even just an up-to-date tutorial on how set up the shared inventory (or how to name attachments so that they’ll be “Wear”’able).</p>
<p>If I had more time – or was any better at explaining things in a way that makes sense to other people – I’d try to at least lay the foundation but I’m just not terribly good at that kind of writing <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .</p>
<p>What I can do and what I thought might be equally helpful is to add a number of “first use” popups that on the one hand provide a clue that something “unusual” just happened and on the other hand would refer to the wiki pages for more (detailed) information.</p>
<div id="attachment_109" class="wp-caption aligncenter" style="width: 360px"><img class="size-full wp-image-109    " title="firstusePopup" src="http://rlva.catznip.com/blog/wp-content/uploads/2009/09/firstusePopup.PNG" alt="firstusePopup" width="350" height="178" /><p class="wp-caption-text">@fartouch=n &quot;First use&quot; popup</p></div>
<p>It’s obviously not the intention to bombard RLV users with popups for every single command but to limit it to those cases which are either the most unintuitive (no longer having “Wear” when something is locked on) or which cause the most confusion (@fartouch=n).</p>
<p>So far the list includes:</p>
<ul>
<li>The first time an attachment is locked (highlights that the “Wear” option on attachments will no longer work unless they’ve been named properly)</li>
<li>The first time someone is fartouch restricted (short explanation along with a tip on how to tell when something is too far away)</li>
<li>The first time someone receives an #RLV/~ folder (offers to enable the “Give to #RLV” feature or keep it disabled)</li>
</ul>
<p>Other suggestions:</p>
<ul>
<li>A popup offering to go o a page on the wiki that contains a short summary of what a new RLV user can expect along with a FAQ that covers most of the stumbling blocks</li>
<li>When an #RLV folder is created there could be a popup offering to go to a page on the wiki that contains a tutorial and some “best practices” for shared inventory</li>
</ul>
<p>If you have any related comments (whether it’s an “I like it” or “I hate it” or “maybe also have a popup when….”) please do make them either here or in IM or a notecard in-world <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Without feedback it’s always hard to know whether something might indeed be useful, or whether there even is a large enough portion of people who would actually benefit to make the time spent on it worthwhile.</p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/09/first-use/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Release: RLVa-1.0.2</title>
		<link>http://rlva.catznip.com/blog/2009/09/release-rlva-1-0-2/</link>
		<comments>http://rlva.catznip.com/blog/2009/09/release-rlva-1-0-2/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 12:25:25 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=102</guid>
		<description><![CDATA[*waves*
Nothing special about this one other than a few bug fixes so there really isn&#8217;t much to say  .
At this point 1.1 is mostly some code refactoring that noone is really going to care about so I&#8217;ll write another blog post sometime this week about some features that never did make it into a public release [...]]]></description>
			<content:encoded><![CDATA[<p>*waves*</p>
<p>Nothing special about this one other than a few bug fixes so there really isn&#8217;t much to say <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>At this point 1.1 is mostly some code refactoring that noone is really going to care about so I&#8217;ll write another blog post sometime this week about some features that never did make it into a public release and ask whether anyone sees anything they&#8217;d really like to see merged back in.</p>
<p>—</p>
<p>Code downloads:<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.2c_20090909_SL-1.23.4-full.patch">RLVa-1.0.2c_20090909_SL-1.23.4-full.patch</a> – SL-1.23.4<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.2c_20090909_SL-1.22.11-full.patch">RLVa-1.0.2c_20090909_SL-1.22.11-full.patch</a>– SL-1.22.11<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.2c_20090909_Snowglobe-1.1.2-full.patch">RLVa-1.0.2c_20090909_Snowglobe-1.1.2-full.patch</a>– Snowglobe-1.1.2</p>
<p><a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.2c_20090909_SL-1.23.4-diff.patch">RLVa-1.0.2c_20090909_SL-1.23.4-diff.patch</a> – From 1.0.1h to 1.0.2c (SL-1.23.4)<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.2c_20090909_SL-1.22.11-diff.patch">RLVa-1.0.2c_20090909_SL-1.22.11-diff.patch</a> – From 1.0.1h to 1.0.2c (SL-1.22.11)<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.2c_20090909_Snowglobe-1.1.2-diff.patch">RLVa-1.0.2c_20090909_Snowglobe-1.1.2-diff.patch</a> – From 1.0.1h to 1.0.2c (Snowglobe-1.1.2)</p>
<p>Release notes:<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/release_notes_RLVa-1.0.2.txt">release_notes_RLVa-1.0.2.txt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/09/release-rlva-1-0-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Release: RLVa-1.0.1</title>
		<link>http://rlva.catznip.com/blog/2009/08/release-rlva-1-0-1/</link>
		<comments>http://rlva.catznip.com/blog/2009/08/release-rlva-1-0-1/#comments</comments>
		<pubDate>Sat, 15 Aug 2009 22:10:05 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=95</guid>
		<description><![CDATA[I *finally* got around to writing this blog post (and uploading the source for RLVa-1.0.1)  .
There isn’t anything new compared to RLVa-1.0.0 since I really did want to focus on bug reports only (and there really wasn’t all that much RL time to work on anything else either  ) so I’ll just do [...]]]></description>
			<content:encoded><![CDATA[<p>I *finally* got around to writing this blog post (and uploading the source for RLVa-1.0.1) <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>There isn’t anything new compared to RLVa-1.0.0 since I really did want to focus on bug reports only (and there really wasn’t all that much RL time to work on anything else either <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> ) so I’ll just do a quick overview; you can read the change notes if you really want all the boring details <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>&#8212;</p>
<p>Support for “legacy naming” of folders was added (see the two relevant blog posts for the long winded explanation) which means that in addition to “.(attachpt)” the following folder names will now work as well:</p>
<ul>
<li>(attachpt)</li>
<li>attachpt</li>
<li>.attachpt</li>
<li>Something (attachpt)</li>
</ul>
<p>In addition those folders will be hidden from @getinv and @getinvworn even if they don’t specifically start with a dot which should cause less confusion for scripts and people alike.</p>
<p>Hopefully this change will be a better compromise between being unambiguous and being compatible with how some people named all their folders already.</p>
<p>(If all your folders are already “strictly named” then you can just set RLVaEnableLegacyNaming to FALSE)</p>
<p>And of course a big thankies to Sei for bringing up the issue in the first place and then being patient enough to go through several iterations of suggestions <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>&#8212;</p>
<p>@attach:&lt;folder&gt;=force was only performing a “starts with” match as opposed to a “contains” match which caused problems for at least one “force wear” script.</p>
<p>Thankies to Shuggi for reporting this.</p>
<p>&#8212;</p>
<p>Add, remove and force commands are no longer held pending execution until the object finally rezzes. While this didn’t actually lead to breaking any scripts, there was one specific restraint that would “spam” the wearer incessantly until the attachment finally rezzed (due to @getstatus being empty since the restrictions were &#8220;pending&#8221;).</p>
<p>Thankies Garvin for reporting this.</p>
<p>&#8212;</p>
<p>Script offered “#RLV/~Something” inventory would sometimes seemingly fail (depending on the number of the items that were being offered) to rename the folder and that’s been fixed as well.</p>
<p>Thankies to Eglan for first reporting the bug and thankies to Tammy for having a solid repro.</p>
<p>&#8212;</p>
<p>When @shownames=n restricted the name tags wouldn’t be hidden but would just show the – filtered – name of each avie. This was intended to be helpful to people who didn’t know they could just hover their mouse over someone to see which name corresponds to which avie (or situations where mouse hovering wasn’t possible, ie blocked by a HUD).</p>
<p>However it turned out that some people do enjoy the “guessing game” and felt cheated out of having the choice to see which anonym corresponds to which avie or not.</p>
<p>As a compromise name tags will no longer show when @shownames=n restricted by default but they can be toggled back on by setting RLVaShowNameTags to TRUE (which makes showing name tags subject to the default Edit / Preferences / General – Show Names preferences).</p>
<p>(If chat bubbles are enabled then the filtered name will appear in the bubble though, regardless of RLVaShowNameTags)</p>
<p>Thankies to Tammy for bringing this up.</p>
<p>&#8212;</p>
<p>All worn items will be fetched from inventory at log-on which means that “nostrip” will no correctly work regardless of whether your inventory is fetched or not (was one of my major pet peeves so I’m happy I got this one fixed <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).</p>
<p>(If you’re using a viewer with a “Worn” inventory tab you’ll have the side-benefit that it will be instantly populated even if you just did a “clear cache relog”)</p>
<p>&#8212;</p>
<p>@detach:&lt;attachpt&gt;=n and @notify:&lt;option&gt;=add were added as new commands due to RLV-1.20.</p>
<p>The former can still cause an attachment on “attachpt” to be forcefully detached at logon if there is particularly bad lag (or if you’re connecting from a low bandwidth connection) but hopefully it shouldn’t be quite that common.</p>
<p>(I should point out that the opposite is possible too: at log-on you have a “small” window where you can attach something to an attachment point that’s supposed to be locked empty. If people run into that accidentally then I might disable wearing anything until the window has passed but only time will tell)</p>
<p>Additionally I think I addressed all conflicts that can occur between @detach=n and @detach:&lt;attachpt&gt;=n (you can look at the test cases in the release notes in case I missed something).</p>
<p>&#8212;</p>
<p>Code downloads:<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.1h_20090812_SL-1.23.4-full.patch">RLVa-1.0.1h_20090812_SL-1.23.4-full.patch</a> &#8211; SL-1.23.4<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.1h_20090812_SL-1.22.11-full.patch">RLVa-1.0.1h_20090812_SL-1.22.11-full.patch</a> &#8211; SL-1.22.11<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.1h_20090812_Snowglobe-1.1.2-full.patch">RLVa-1.0.1h_20090812_Snowglobe-1.1.2-full.patch</a> &#8211; Snowglobe-1.1.2</p>
<p><a href="http://rlva.catznip.com/downloads/RLVa-1.0/RLVa-1.0.1h_20090812_SL-1.23.4-diff.patch">RLVa-1.0.1h_20090812_SL-1.23.4-diff.patch</a> &#8211; From 1.0.0h to 1.0.1h (for SL-1.23.4)</p>
<p>Release notes:<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0/release_notes_RLVa-1.0.1.txt">release_notes_RLVa-1.0.1.txt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/08/release-rlva-1-0-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Reattach-on-detach</title>
		<link>http://rlva.catznip.com/blog/2009/08/reattach-on-detach/</link>
		<comments>http://rlva.catznip.com/blog/2009/08/reattach-on-detach/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 19:28:31 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=91</guid>
		<description><![CDATA[(Quick RLVa-1.0.1 update: everything has been written and tested but I just haven’t been able to get myself to write the blog post for it due to limited time in RL)
I also kept getting sporadic reports of reattach-on-detach failing to reattach a locked item (or reattaching some but not others) and spent a lot of [...]]]></description>
			<content:encoded><![CDATA[<p>(Quick RLVa-1.0.1 update: everything has been written and tested but I just haven’t been able to get myself to write the blog post for it due to limited time in RL)</p>
<p>I also kept getting sporadic reports of reattach-on-detach failing to reattach a locked item (or reattaching some but not others) and spent a lot of time in the past week trying to repro it since it really is something that really needs to be reliable and while I did find two related bugs (one which has been fixed and one that will be fixed) it’s extremely unlikely that anyone was running into those.</p>
<p>It wasn’t until I took a little break to clear my head that I finally realized what was happening… The problem isn’t the viewer at all, but it’s because some scripts issue “@clear” when detached (and of course none of the ones I was testing with did that) which results in the following sequence of events:</p>
<ol>
<li>Attachment becomes detached (due to llAttachToAvatar() for example)</li>
<li>The script’s “attach(key kId)” event fires with “kId == NULL_KEY”</li>
<li>The script issues “@clear”</li>
<li>The viewer receives “@clear” and clears *all* of the attachment’s restrictions</li>
<li>The viewer receives a “KillObject” message for the attachment and kills the object</li>
<li>The viewer checks whether the attachment was locked when it got detached and doesn’t find a “@detach=n” restriction – @clear removed it in (4) – so it isn’t going to reattach it</li>
</ol>
<p>I realize that the specification/API page specifically tells script creators that issuing @clear on detach is something they should always do but it completely disables the reattach-on-detach feature in both RLVa *and* RLV for that attachment.</p>
<p>I’ve had enough people pass me several freebies that will “force-detach” any locked attachment (and there are stores that sell gadgets like it as well) to know that pretty anyone who wants to has easy access to an llAttachToAvatar() script so even leaving “Enable Wear” aside reattach-on-detach really isn’t something that scripts should be disabling for themselves.</p>
<p>All in all there really isn’t that much that can be done about the problem from the viewer’s side: the script needs to be updated to not issue @clear on detach (or only issue @clear on detach when it’s not locked) in order for reattach-on-detach to work.</p>
<p>Technically there’s no real need for @clear on detach either:</p>
<ul>
<li>RLVa will issue @clear on behalf of the object as soon as it becomes detached</li>
<li>Both RLVa and RLV regularly clean up restrictions that were issued by objects that no longer exist (on RLVa that happens every 30 seconds, on RLV it happens every 600 frames)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/08/reattach-on-detach/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>RLVa-1.0.1 update</title>
		<link>http://rlva.catznip.com/blog/2009/08/rlva-1-0-1-update/</link>
		<comments>http://rlva.catznip.com/blog/2009/08/rlva-1-0-1-update/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 21:50:53 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=86</guid>
		<description><![CDATA[I’ve been quiet for a little while (mostly due to horribly long hours at work  ) so I thought I would give a little update…
The good news is that all the issues that were brought up have been fixed and the new RLV-1.20 commands have been implemented as well. 
The bad news is that I [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been quiet for a little while (mostly due to horribly long hours at work <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> ) so I thought I would give a little update…</p>
<p>The good news is that all the issues that were brought up have been fixed and the new RLV-1.20 commands have been implemented as well. </p>
<p>The bad news is that I haven’t had the time to thoroughly test the former and that the latter introduces a showstopper bug due to the way @detach:&lt;attachpt&gt;=n was defined (note that this isn’t specific to RLVa).</p>
<p>Specifically “<em>If the point is empty it will stay that way, no item will be able to be attached there, and llAttachToAvatar() calls will fail (the object will be attached, then detached right away).”</em> (quoted from the RLV API wiki page) introduces a race condition.</p>
<p>An example:</p>
<ol>
<li>Object A (attached anywhere but spine) locks the spine attachment point with @detach:spine=n and reinstates that command on every log-on</li>
<li>Object B is a random object that’s attached to spine (could be a collar for instance)</li>
</ol>
<p>When you log on:</p>
<ul>
<li>Time A: Object A issues @detach:spine=n</li>
<li>Time B: the viewer receives the message that there’s an Object B that should be attached to spine</li>
</ul>
<p>As long as B occurs before A there is no problem, but if A occurs before B the following happens:</p>
<ol>
<li>Viewer receives @detach:spine=n (Time A)</li>
<li>Viewer attaches Object B to spine</li>
<li>Viewer detaches Object B because spine is “locked empty” by Object A in (1)</li>
</ol>
<p>Or in other words: if there’s the slightest bit of lag when you’re relogging there’s a decent chance that instead of locking the attachment point @detach:&lt;attachpt&gt;=n will actually end up *detaching* the attachment you wanted to make undetachable with no way to get it reattached (relogging with the regular viewer isn’t much of a help either since on the next RLV-enabled relog the same thing could happen).</p>
<p>I *think* I have a workable solution right now but I won’t have time to thoroughly test it until Friday so there won’t be an RLVa update until late in the weekend most likely, sowwies <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/08/rlva-1-0-1-update/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Attachment point naming &#8211; Part 2</title>
		<link>http://rlva.catznip.com/blog/2009/07/attachment-point-naming-part-2/</link>
		<comments>http://rlva.catznip.com/blog/2009/07/attachment-point-naming-part-2/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 19:26:42 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=75</guid>
		<description><![CDATA[The solution in the last post seemed like a good one but unfortunately it just opened a new can of worms:
▼ #RLV
  ▼ &#62;Gags
    ▼ Ball Gag
      ▼ .(mouth)
        &#124;-&#62; Ball gag
    ▼ Duster Gag
      ▼ Duster Gag (mouth)
        &#124;-&#62; Duster gag
    ▼ Ring Gag (mouth)
      &#124;-&#62; Ring gag
There are a few assumptions we can [...]]]></description>
			<content:encoded><![CDATA[<p>The solution in the last post seemed like a good one but unfortunately it just opened a new can of worms:</p>
<pre>▼ #RLV
  ▼ &gt;Gags
    ▼ Ball Gag
      ▼ .(mouth)
        |-&gt; Ball gag
    ▼ Duster Gag
      ▼ Duster Gag (mouth)
        |-&gt; Duster gag
    ▼ Ring Gag (mouth)
      |-&gt; Ring gag</pre>
<p>There are a few assumptions we can make about the above folder layout:</p>
<ul>
<li>the &#8220;&gt;Gags&#8221; folder is clearly a category folder with no other purpose than to keep things tidy and sorted</li>
<li>as such the &#8220;&gt;Gags&#8221; folder has no direct child items (the first number of @getinvworn should be &#8216;0&#8242;)</li>
<li>but it does have three child folders (@getinv should return &#8220;Ball Gag, Duster Gag, Ring Gag (mouth)&#8221;)</li>
<li>all three &#8220;XXX Gag&#8221; folders should look the same to scripts since even though they each use a different naming scheme they&#8217;re all essentially the same (one no modify indirect child item that happens to be in a folder that specifies its attachment point)Or in other words:
<ul>
<li>@getinvworn:&gt;Gags/XXX Gag=1 should return |10 (assuming everything is unworn)</li>
<li>@getinv:&gt;Gags/XXX Gag=1 should always return an empty response (no gag folder has a real child folder, they&#8217;re all attachment indication ones)</li>
<li>@attach:&gt;Gags/XXX Gag=force should force attach the gag</li>
</ul>
</li>
</ul>
<p>If you&#8217;re nodding along with a &#8220;that&#8217;s correct&#8221;: it *should* be correct, but unfortunately there is no way I can see that you&#8217;d be able to get that behaviour since in the above example the &#8220;Folder name (attachpt)&#8221; convention is used twice in completely different ways.</p>
<p>You can create the above structure in &#8220;RLV proper&#8221; and try it for yourself and follow along if you want:</p>
<p><strong>1) @getinvworn:&gt;Gags=1<br />
</strong>Expectation: |01,Ball Gag|10,Duster Gag|10,Ring Gag (mouth)|10<br />
Actual result is: |11,Ball Gag|10,Duster Gag|10,Ring Gag (mouth)|n</p>
<p>What&#8217;s happening:<br />
- since the &#8220;Ring Gag (mouth)&#8221; folder specifies an attachment point name the item it contains is folded under the parent instead (the &#8220;&gt;Gags&#8221; folder)<br />
- &#8220;Ring Gag (mouth)&#8221; is empty as far as RLV is concerned and shouldn&#8217;t be exposed to scripts which is why it&#8217;s returning the invalid &#8216;n&#8217; value (seems to be &#8216;N&#8217; when the item under that folder is actually worn)</p>
<p><strong>2) @attach:&gt;Gags=force<br />
</strong>Expectation: nothing, it&#8217;s just an organizational folder<br />
Actual result: the ring gag gets attached</p>
<p>What&#8217;s happening:<br />
- the explanation above covers it: RLV is treating the ring gag attachment as belonging directly to the &gt;Gags folder</p>
<p><strong>3) @getinvworn:&gt;Gags/XXX Gag=1<br />
</strong>Expectation for all three: |10<br />
Actual result:<br />
@getinvworn:&gt;Gags/Ball Gag=1<br />
|10<br />
@getinvworn:&gt;Gags/Duster Gag=1<br />
|10,Duster Gag (mouth)|n<br />
@getinvworn:&gt;Gags/Ring Gag=1<br />
|n</p>
<p>Only the &#8220;Ball Gag&#8221; returned the expected result (the subfolder in Duster Gag should not have been visible and even if it is it should have indicated |00 and Ring Gag just returned an entirely invalid result).</p>
<p><strong>4) @attach:&gt;Gags/XXX Gag=force<br />
</strong>Expectation for all three: the gag contained in that folder should attach<br />
Actual result:<br />
@attach:&gt;Gags/Ball Gag=force &lt;- attaches the gag<br />
@attach:&gt;Gags/Duster Gag=force &lt;- attaches the gag<br />
@attach:&gt;Gags/Ring Gag (mouth)=force &lt;- does nothing</p>
<p>However, since the &#8220;Ball Gag (mouth)&#8221; folder is exposed to scripts (in both @getinv and @getinvworn) it&#8217;s likely that if someone is browsing through the folders that they&#8217;d enter that folder and that the script would issue:<br />
@attach:&gt;Gags/Duster Gag/Duster Gag (mouth)=force &lt;- does nothing</p>
<p>Out of the 5 assumptions we started out with only one actually holds true (&#8220;&gt;Gags has three subfolders&#8221;), but all the others either always broken or half broken (it will work on some occassions but not others).</p>
<p>&#8220;Folder name (attachpt)&#8221; is clearly *not* the way to go when it comes to the #RLV shared folder and scripts, but unfortunately is how the first &#8220;Object Sharing&#8221; tutorial is telling people to name their folders that way.</p>
<p>Which leaves an almost &#8220;no win&#8221; situation, something gets broken no matter what:<br />
- if it&#8217;s allowed, RLVa would exhibit similarly broken behaviour as described above<br />
- if it&#8217;s not allowed then people need to rename all their folders</p>
<p>So with that in mind:<br />
- anything named *exactly* like the first &#8220;Object Sharing&#8221; tutorial tells you (Item name follwed by a space followed by the attachment point name in parenthesis) to will silently act if that folder was called &#8220;.(attachpt)&#8221;<br />
- anything not named like that will act like a visible folder that happens to contain the attachment point name of where the item(s) inside of it should attach to</p>
<p>&#8212;</p>
<p>An alternate solution (which is looking very tempting right now):<br />
- instead of merely acting as if that folder was called the proper way (ie &#8220;.(attachpt)&#8221;) the viewer could actually rename it that way</p>
<p>Ie:</p>
<pre>▼ #RLV
  ▼ &gt;Gags
    ▼ Ball Gag
      ▼ .(mouth)
        |-&gt; Ball gag
    ▼ Duster Gag
      ▼ Duster Gag (mouth)
        |-&gt; Duster gag
    ▼ Ring Gag (mouth)
      |-&gt; Ring gag</pre>
<p>would be auto-renamed to:</p>
<pre>▼ #RLV
  ▼ &gt;Gags
    ▼ Ball Gag
      ▼ .(mouth)
        |-&gt; Ball gag
    ▼ Duster Gag
      ▼ .(mouth)
        |-&gt; Duster gag
    ▼ .(mouth)
      |-&gt; Ring gag</pre>
<p>While this clearly &#8220;breaks&#8221; the name of the ring gag folder, that folder was already hopelessly broken (its name unintentionally happened to follow the outdated naming convention). The change would hopefully make it clear to the user that *something* is wrong.</p>
<p>(The main advantage is that is it&#8217;s far less code to write and in an entirely different place so the chance of inadvertingly creating new bugs is quite low. The main disadvantage is that some people might feel the viewer is messing up their folder names)</p>
<p>&#8212;</p>
<p>Hopefully this concludes this &#8220;series&#8221; of blog posts where page upon page was written &#8211; here and on the thread &#8211; over what amounts to a mere 10 lines of actual code <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/07/attachment-point-naming-part-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Attachment point &#8220;naming convention&#8221;</title>
		<link>http://rlva.catznip.com/blog/2009/07/attachment-point-naming-convention/</link>
		<comments>http://rlva.catznip.com/blog/2009/07/attachment-point-naming-convention/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 23:27:04 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=69</guid>
		<description><![CDATA[(I know this post is insanely long but it does help to painfully write things out step-by-step, not only for others but primarily for myself as well)
When I originally looked into shared folders (3 seasons ago now) the tutorials on Marine’s blog seemed relatively straightforward to me:

If the item is “modify” then append “(attachment point)” [...]]]></description>
			<content:encoded><![CDATA[<p>(I know this post is insanely long but it does help to painfully write things out step-by-step, not only for others but primarily for myself as well)</p>
<p>When I originally looked into shared folders (3 seasons ago now) the tutorials on Marine’s blog seemed relatively straightforward to me:</p>
<ul>
<li>If the item is “modify” then append “(attachment point)” to its name, ie: “Collar (chest)</li>
<li>If the item is “no modify”, place it under a new folder with the name “.(attachment point)”</li>
</ul>
<p>RLV does actually accept variations that are much looser than that and it seems that (some) people either took advantage of that, or took the tutorials’ text to mean that neither the parenthesis (nor the prefixed dot for folders) were part of the convention and that anything that the viewer would accept was “legal”.</p>
<p>(At this point I should point out that I’m quite obviously biased on my personal interpretation so if I end up phrasing things in a way that reads like I’m doing a “I’m right and you’re wrong” please don’t take it as such. I do respect everyone’s differing interpretation or I wouldn’t be putting nearly as much time into this as I am/have/will)</p>
<p>One of the major advantages of observing the (what I’ll dub “strict”) convention shown in the screenshots is that it’s almost completely unambiguous and is very unlikely to lead to false positives.</p>
<p>The reason why false positives are even a problem is: if the viewer ends up attaching something to the wrong attachment point then the positioning is irrevocably lost. Reattaching it to where it’s supposed to go means you have to adjust the attachment (something which a great many people seem to have an incredibly hard time with). The 1.23 viewer also removed the fail-safe ability to copy/paste the item to avoid having to reposition it (although some third-party viewers re-enabled that it can no longer be counted on to work for everyone).</p>
<p>While I can only hope that people will shy away from the “loose” convention in favour of the “strict” naming convention (regardless of which RLV implementation they use), the primary purpose of this post is how to handle the case where people currently have folders that don’t mean the “strict” requirement.</p>
<p>&#8212;</p>
<p><strong>“</strong>No rules of any kind” (= “the RLV default):</p>
<ul>
<li>the name is searched left-to-right</li>
<li>*and* attachments with a lower attachment ID take precedence (you can find those at <a href="http://wiki.secondlife.com/wiki/Llattachtoavatar">http://wiki.secondlife.com/wiki/Llattachtoavatar</a> )</li>
</ul>
<p>Practically:</p>
<ul>
<li>“Keri &#8211; <strong>Chest</strong>nut (skull)” will attach to “<strong>chest</strong>” (1) rather than the expected “skull” (2)</li>
<li>“<strong>Skull </strong>Necklace (spine)” will attach to “<strong>skull</strong>” (2) rather than the expected “spine” (9)</li>
<li>“(spine) <strong>Skull</strong> Necklace” will still attach to “<strong>skull</strong>” (see the IDs above)</li>
</ul>
<p> </p>
<p>“Search right-to-left” and “ignore the attachment id precedence”:</p>
<ul>
<li>“Keri &#8211; Chestnut (<strong>skull</strong>)” will attach “skull” as expected</li>
<li>“Skull Necklace (<strong>spine</strong>)” will attach “spine” as expected</li>
<li>“(spine) <strong>Skull</strong> Necklace” will still attach to “<strong>skull</strong>”</li>
</ul>
<p>A lot better already, but also consider the following example:</p>
<ul>
<li>“drawma<strong>chin</strong>e overknees small L foot” will attach to “<strong>chin</strong>”</li>
</ul>
<p> </p>
<p>“Search at the word boundary”:</p>
<p>Better still, alas:</p>
<ul>
<li>“[PM] Posh Boots Leather- Black &#8211; Upper <strong>Left Foot</strong>” will attach to “<strong>left foot</strong>” even though I’d realize that “upper left foot” really means “l lower leg”</li>
<li>“Emotional Warfare &#8211; Longsleeve <strong>Top</strong> (Upper R)” will attach to “HUD Top” (dependant on your own inventory but having “Top” in the item name is incredibly common)</li>
<li>“*Le Vixen Coat Bottom” (as is “Bottom”)</li>
</ul>
<p> </p>
<p>“Specify the attachment point in between ()”:</p>
<p>And we’ve reached the “strict” convention as far as item names are concerned.</p>
<p>&#8212;</p>
<p>If you do the same exercise over for folder names you end up at the same conclusion: append the attachment point at the end and in between parenthesis.</p>
<p>In a lot of cases though the above doesn’t really work folders because you’d only need to rename them for a no modify item and in that case there can only be one item under that folder so you end up with “(attachpt)”. (I should point out that some people use “attachpt” as well, and others use “.attachpt”)</p>
<p>All in all we end up with five different ways to name a folder that are good candidates for not being too ambiguous on where the items inside of them should go:</p>
<ol>
<li>.(attachpt)</li>
<li>(attachpt)</li>
<li>.attachpt</li>
<li>attachpt</li>
<li>Whatever you want here (attachpt)</li>
</ol>
<p>Folders can also be used in one of two ways:</p>
<ul>
<li>a) Anywhere random in your inventory (named primarily for your convenience)</li>
<li>b) Under your #RLV shared folder (named primarily for the convenience of script usage)</li>
</ul>
<p>So let’s look at each of them separately (since they unfortunately both have different requirements):</p>
<p>a) For your convenience: in this case the name is what you see and what you’ll have to work with yourself so you want it to be practical and ideally look pretty (ok, fine, it’s what I want from my folders, play along <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).</p>
<p>Some practical examples (assume everything we create a folder for is no-modify):<br />
▼ Themed<br />
    ▼ Playboy Bunny &#8211; Black<br />
        ▼ .(chin)<br />
             -&gt; ears<br />
        ▼ .(pelvis)<br />
             -&gt; bunny tail<br />
         -&gt; clothing layers</p>
<p>▼ Gags<br />
     ▼ Duster Gag<br />
          ▼ .(mouth)<br />
           -&gt; actual gag</p>
<p>Trying to looking at it from someone else’s point of view the “duster gag” layout is probably “impractical”, “complicated” and/or “ugly”.</p>
<p>There’s probably no real good reason not to allow (5) from above to make:</p>
<p>▼ Gags<br />
     ▼ Duster Gag (mouth)<br />
      -&gt; actual gag</p>
<p>With the bunny outfit there’s no way around creating subfolders but again there’s probably no good reason to insist on (1). “(chin)”, “.chin”, “chin” and “Bunny Ears (chin)” are all unambiguous too.</p>
<p>So in the specific case of folders for “personal use” the following variations are probably safe:</p>
<ul>
<li>appending the attachment point to the name of the folder</li>
<li>the name of the folder exactly matches an attachment point name (after discarding any pre-pended ‘.’ or surrounding parenthesis)</li>
</ul>
<p>Personally I would still only recommend people use (1) and just silently have (2), (3) and (4) for “backwards compatibility/convenience to people who already named their folders that way”</p>
<p>b) When it comes to folders that exist under your #RLV things are – unfortunately – slightly different. The names of them should chosen primarily to be friendly for scripts (who are stuck with a limited llDialog) and not clutter things up unnecessarily (avoid showing folders that the script doesn’t need to know about).</p>
<p>Let’s look at some “over the knee” boots (with each attachment point differently named):</p>
<p>▼ Overknees<br />
    ▼ .(left foot)<br />
    ▼ (right foot)<br />
    ▼ .l lower leg<br />
    ▼ r lower leg<br />
    ▼ wear on (l upper leg)<br />
    ▼ wear on r upper leg</p>
<p>Please note that the last one (“wear on r upper leg”) is still going to be illegal since it has neither parenthesis, nor is the entire name an attachment point (scroll up if you need a reminder why ‘we’ decided that “partial matching” is a bad idea).</p>
<p>Anything but (1) and (3) really aren’t “script-friendly”. If a script browses your inventory it would learn that the folder “Overknees” has 4 sub-folders “(right foot)”, “r lower leg”, “wear on (l upper leg)” and “wear on r upper leg).</p>
<p>To be fair RLVa *could* be changed so that it won’t report any of those since they’re not really subfolders but “attachment point labels”, but it’s still not good practice (RLV does report them which causes bugs of its own when it comes to @getinvworn).</p>
<p>Personally, I don’t like (3) “.l lower leg” because it makes the definition of a “hidden folder” more complicated: “any folder that starts with a dot and doesn’t specify an attachment point name either in parenthesis or without them”. While that might seem “no big deal”, it’s less obvious on a folder called “.Top” or “.Bottom” for instance.</p>
<p>Which technically leaves us with just (1) and we’ve arrived at the “strict” convention for folders too.</p>
<p>&#8212;</p>
<p>So all of that to explain why – in my personal opinion – the “strict” naming convention is really the only one I can think of that doesn’t introduce “undesirables” of some kind.</p>
<p>Obviously that doesn&#8217;t help people having &#8220;non-conforming&#8221; folder names, so I would like to propose:</p>
<ul>
<li>For items I can’t see any workable solution other than “strict”. Any deviation leads to some bad side-effects. Luckily I think the overwhelming majority of people does follow the parenthesis convention here (if you don’t, please, please speak up)</li>
<li>For folders allow (1) through (5) which should hopefully cover most of everyone</li>
</ul>
<p>So what it wouldn’t cover is for instance an item (or folder) called “Something (worn on l forearm)” or “Something l forearm”.</p>
<p>Lastly I would really like to thank Sei Lisa for bringing up the issue in the first place and for spending all the time she has so far reading and responding to posts on that thread ( <a href="http://modularsystems.sl/index.php?option=com_agora&amp;task=topic&amp;id=298">http://modularsystems.sl/index.php?option=com_agora&amp;task=topic&amp;id=298</a> – registration required, sowwies).</p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/07/attachment-point-naming-convention/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Random: JIRAs</title>
		<link>http://rlva.catznip.com/blog/2009/07/random-jiras/</link>
		<comments>http://rlva.catznip.com/blog/2009/07/random-jiras/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 13:59:24 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=54</guid>
		<description><![CDATA[[Edit: please "Watch" the JIRA if you happen to take the patch from it in case something turns up that didn't turn up when I tested the patch]
Work has been particularly bad the last week (work and me seem to have a very different idea of what &#8220;flexible hours&#8221; actually means) so nothing new RLVa-wise.
Since [...]]]></description>
			<content:encoded><![CDATA[<p><em>[Edit: please "Watch" the JIRA if you happen to take the patch from it in case something turns up that didn't turn up when I tested the patch]</em></p>
<p>Work has been particularly bad the last week (work and me seem to have a very different idea of what &#8220;flexible hours&#8221; actually means) so nothing new RLVa-wise.</p>
<p>Since I only had about an hour each day I thought it could be a good opportunity to fix some minor/trivial SL bugs that had been annoying me for a while (ironically making all the diffs and submitting them took more time than fixing it in the first place and was definitely not &#8220;fun&#8221;).</p>
<p>Minor does actually mean minor, but here&#8217;s the list in case anyone sees something they want to vote on (patch was attached to the issue as VWR-xxx.diff in each case):</p>
<ul>
<li><a href="http://jira.secondlife.com/browse/VWR-14765">VWR-14765</a> - Viewer crashes when quitting from the login screen while the focus is on the grid selection combobox</li>
<li><a href="http://jira.secondlife.com/browse/VWR-10780">VWR-10780</a> - Take off Items inventory folder option removes eyes<br />
(This one is actually in RLVa already but it seemed like a good time to actually drop it on JIRA as well)</li>
<li><a href="http://jira.secondlife.com/browse/VWR-14766">VWR-14766</a> - Separators aren&#8217;t skipped when navigating a menu with the up arrow</li>
<li><a href="http://jira.secondlife.com/browse/VWR-5063">VWR-5063</a> - Cannot attach multiple objects via wear<br />
(Patch will need some additional work if you include it in an RLV/RLVa viewer)</li>
<li><a href="http://jira.secondlife.com/browse/VWR-7241">VWR-7241</a> - Communication window is not keeping its minimized state after going into Mouselook</li>
<li><a href="http://jira.secondlife.com/browse/VWR-2485">VWR-2485</a> - Pie menu remains after switch to Mouselook</li>
<li><a href="https://jira.secondlife.com/browse/VWR-14767">VWR-14767</a> - Closing the build floater in mouselook doesn&#8217;t select the proper toolset</li>
<li><a href="http://jira.secondlife.com/browse/VWR-4212">VWR-4212</a> - Cannot drop object onto land if group-only object create/object entry is enabled (reopened because this wasn&#8217;t fixed for group-owned land)</li>
<li><a href="http://jira.secondlife.com/browse/VWR-14666">VWR-14666</a> - Mouselook gets stuck in an intermediate state when switching away and back from full-screen</li>
<li><a href="http://jira.secondlife.com/browse/SVC-4128">SVC-4128</a> - llTakeControls(*,FALSE,TRUE) prevents left clicks from mouselook.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/07/random-jiras/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Of success and failure</title>
		<link>http://rlva.catznip.com/blog/2009/07/of-success-and-failure/</link>
		<comments>http://rlva.catznip.com/blog/2009/07/of-success-and-failure/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 18:21:44 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=48</guid>
		<description><![CDATA[If you set the RestrainedLifeDebug debug setting to TRUE you’ll see some limited feedback on issued RLV commands. Since my perspective differs from other people’s I wanted to elaborate a bit on why you might be seeing “XXX failed: @yyy”when you wouldn’t expect it to “fail” or might take it to mean that RLVa isn’t [...]]]></description>
			<content:encoded><![CDATA[<p>If you set the <em>RestrainedLifeDebug</em> debug setting to <em>TRUE</em> you’ll see some limited feedback on issued RLV commands. Since my perspective differs from other people’s I wanted to elaborate a bit on why you might be seeing “<em>XXX failed: @yyy</em>”when you wouldn’t expect it to “fail” or might take it to mean that RLVa isn’t working/has a bug since it’s reporting a seemingly valid command as a “failure”.</p>
<p><strong>1) Unset restrictions</strong></p>
<ol>
<li>Object failed: @clear</li>
<li>Object failed: @showinv=y,showminimap=y,showworldmap=y</li>
</ol>
<p>(The first one in particular seems to cause confusion)</p>
<p>When a “remove” command (=y or =rem) is received the issuing object is looked up and if it exists it will have the corresponding restriction lifted.</p>
<p>If the issuing object doesn’t exist as far as RLVa is concerned (because it never set any restrictions for example) then @clear would get reported as “failed” because there is nothing to be cleared.</p>
<p>Similarly, the commands in (2) would all fail if the object never did set those restrictions in the first place (or it set them, unset them and then tried to unset them once more).</p>
<p>From my point of view it’s expected behaviour, primarily because if command processing didn’t out bail out at that point then undesirable things would start happening.</p>
<p>Ironically it’s that “failsafe” that leads to “oh ok, but really it’s a harmless command so why report it as a failure?”.</p>
<p><strong>2) Duplicate restrictions</strong></p>
<p>A prim can only ever hold a restriction once, so if a script issues @detach=n and then later – for whatever reason – issues another @detach=n then the second will be reported as a failure because that particular restriction is already held by that prim.</p>
<p>From my point of view a failure is once again expected behaviour since if it didn’t fail then “detach” would be set twice for the same prim and it would take two @detach=y to clear it rather than the one that’s expected.</p>
<p>I do realize that from someone else’s point of view the second @detach=n might just be seen as harmless and nothing that should be complained about.</p>
<p>&#8212;-</p>
<p>I don’t actually have any personal preference on what it should be reporting to other people though. I can keep it the way it is for personal debugging, and report something else that is more meaningful (to scripters for instance) on a release build <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>There do however seem to be some varying opinions on what would be “the right way” to report on command processing so if someone wants to provide any feedback please indicate what you would you expect (or prefer) to see in the following cases:</p>
<ol>
<li>unset (ie @showinv=y without a previous @showinv=n)</li>
<li>duplicates (ie @detach=n,detach=n)</li>
<li>misspellings or non-existant commands (ie @remouftit=n or @abcdef=n)</li>
<li>blocked commands (ie @remoutfit:shirt=force while a different object has @remoutfit=n set</li>
<li>undefined commands (subtle variation on 3), ie @redirchat=n or @sittp:&lt;uuid&gt;=add</li>
<li>invalid parameters (ie @redirchat:a=add or @tpto:Ahern/128/128/20=force)</li>
<li>anything else I might have missed</li>
</ol>
<p>(If you&#8217;d rather drop me a notecard in world that&#8217;s fine too <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . I know I never like giving my email addie to &#8220;some random blog&#8221; just to comment, but I&#8217;m not actually sure how to turn that off <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> )</p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/07/of-success-and-failure/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Release: RLVa-1.0.0</title>
		<link>http://rlva.catznip.com/blog/2009/07/release-rlva-1-0-0/</link>
		<comments>http://rlva.catznip.com/blog/2009/07/release-rlva-1-0-0/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 11:04:47 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=43</guid>
		<description><![CDATA[I’m only a week late :p.
To be fair, sometime between that Friday and Sunday I made the decision that for the big “1.0” I wanted to at the very least verify all RLVa code that lives outside of the rlv* h/cpp files to reduce future merge conflicts and that ate up quite a bit of [...]]]></description>
			<content:encoded><![CDATA[<p>I’m only a week late :p.</p>
<p>To be fair, sometime between that Friday and Sunday I made the decision that for the big “1.0” I wanted to at the very least verify all RLVa code that lives outside of the rlv* h/cpp files to reduce future merge conflicts and that ate up quite a bit of time <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> .</p>
<p>The end result is a lot of (relatively minor) bug fixes and a few notable changes (check the release notes for the full boring list of changes):</p>
<ul>
<li>The occasional “phantom wearing” bug that kept me from re-enabling “Add to Outfit” and “Replace Outfit” is fixed so “Add to Outfit”, “Replace Outfit” and “Take Off Items” are available regardless of whether you currently have any locked attachment(s)</li>
<li>As a side-benefit drag/dropping a folder (= “Replace Outfit”) and “Copy and Wear” (= “Add to Outfit”) are re-enabled as well</li>
<li>Drag/dropping an attachment from inventory onto your avie is re-enabled as well. If “Enable Wear” isn’t checked it will only attach if the name (or the name of its parent folder) specifies an attachment point name</li>
<li>Re-enabling the “Start Location” is fixed as well (weird things happen when you mix up TRUE and FALSE <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</li>
<li>RLVa specific options (under the Advanced / RLVa sub-menu) will persist across relogs</li>
</ul>
<p>Changes to RLV functionality (compared to RLVa-0.2.2):</p>
<ul>
<li>@showloc=n will replace any occurance of surrounding region names as well</li>
<li>@recvchat=n will no longer truncate emotes depending on whether @emote=add is set or not, and neither will “special characters” discard the entire emote. This was done primarily because this behaviour was never documented anywhere, and no one I ever asked either knew about it or expected @emote=add to influence how @recvchat=n worked</li>
<li>@setrot:<option></option>=force is “fixed” to conform to the RLV spec. For all of SL a rotation of 0.0 around the Z-axis ends you facing East (positive X) but the RLV spec defines a rotation of 0.0 as facing North (positive Y) for some reason</li>
<li>@fartouch=n will no longer show a pie menu if you can’t use any of the options anyway (was a big pet peeve of mine <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</li>
<li>@shownames=n was extended to cover a few more SL features that expose the names of nearby avies</li>
</ul>
<p>I do still need to go over some code in the rlv* h/cpp files (mostly inventory related commands) and I’ll release another update once that’s done, but – crosses fingers – hopefully nothing major will turn up in that review.</p>
<p>Moving forward, I’ll take special care to provide each new update as both a full diff against the official viewer source and a partial diff against the last released version so that keeping up with updates will hopefully become a lot less time-consuming and frustrating.</p>
<p>To the extent possible I’ll keep providing RLVa against the current main viewer (currently 1.23.4), the previous one (1.22.11) and an upcoming one (1.24 RC when it comes out).</p>
<p>And last but not least, a big bag of choc-chip cookies and huge huggles to Satomi for poking and prodding me for the past few months, for offering suggestions and feedback, providing me with “yet another thing GCC doesn’t like”, and most of all for listening to me ramble away. She also makes a far better RLVa-evangelist than I do so: thankies Satomi!</p>
<p>Special thankies to Eglan as well for taking the time to figure out how to compile the viewer on his Mac and subsequently testing RLVa on that platform as well <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Code downloads:<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0.0h_20090712_SL-1.23.4-full.patch">RLVa-1.0.0h_20090712_SL-1.23.4-full.patch</a> - SL-1.23.4<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0.0h_20090712_Snowglobe-1.0.2-full.patch">RLVa-1.0.0h_20090712_Snowglobe-1.0.2-full.patch</a> - Snowglobe-1.0.2<br />
<a href="http://rlva.catznip.com/downloads/RLVa-1.0.0h_20090712_SL-1.22.11-full.patch">RLVa-1.0.0h_20090712_SL-1.22.11-full.patch</a> - SL-1.22.11</p>
<p>Release notes:<br />
<a href="http://rlva.catznip.com/downloads/release_notes_RLV-1.0.0.txt">release_notes_RLV-1.0.0.txt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/07/release-rlva-1-0-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Green Emerald Viewer</title>
		<link>http://rlva.catznip.com/blog/2009/07/green-emerald-viewer/</link>
		<comments>http://rlva.catznip.com/blog/2009/07/green-emerald-viewer/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 19:38:33 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=39</guid>
		<description><![CDATA[One of the reasons why I prefer people poke me when they want to use or try RLVa is because I can offer to make – and maintain – a specific patch just for them.
Of course they’re free to want to do it themselves, but certainly at this point plenty of silly little things get [...]]]></description>
			<content:encoded><![CDATA[<p>One of the reasons why I prefer people poke me when they want to use or try RLVa is because I can offer to make – and maintain – a specific patch just for them.</p>
<p>Of course they’re free to want to do it themselves, but certainly at this point plenty of silly little things get changed around in the code and having to spend time resolving rejects of tidbits of code you didn’t write (or know the bigger context of) each time I update something can get tedious very quickly.</p>
<p>On the other hand if I’m maintaining a viewer-specific patch I can incrementally merge in smaller changes which is something I have to do for SL-1.22, Snowglobe-1.0 and the “experimental” RLVa branch anyway so one more or less isn’t going to make that much of a difference <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>I did a Green Emerald specific patch today which should patch cleanly against the “206 version”. Since I haven’t ever used that particular viewer before it’s hard to know whether every feature it has that might impact RLV functionality has been made “RLV-aware” and I would like a bit more time with it to “sign off”, but it’s definitely useable as-is.</p>
<p><strong>List of feature-specific changes (ie not just resolving a reject):</strong></p>
<p>Double click wear (due to @detach=n on any attachment)</p>
<ul>
<li>no changes needed, works as-is</li>
</ul>
<p>Double click teleport</p>
<ul>
<li>no changes needed, works as-is<br />
(double click teleport will be tied to @tploc=n due to LLAgent::teleportViaLocation())</li>
<li>preferred: tie double click teleport to @sittp=n (to do)</li>
</ul>
<p>Avatar List Feature (due to @shownames=n)</p>
<ul>
<li>floater closes if currently open</li>
<li>toolbar button disables as a visual cue</li>
<li>menu option doesn&#8217;t have an enabler function to visually disable</li>
<li>chat announcements are disabled (could re-enable with &#8220;anonyms&#8221; but seems silly?)</li>
</ul>
<p>Teleport History Floater (due to @showloc=n)</p>
<ul>
<li>populates new entry with &#8220;(Hidden)&#8221; fields</li>
<li>relevant buttons disable when a &#8220;filtered&#8221; entry is selected to avoid confusion</li>
</ul>
<p>IM auto response (due to @sendim=n restricted)</p>
<ul>
<li>auto response will not be sent (could be handled differently?)</li>
</ul>
<p>Download:<br />
<a href="http://rlva.catznip.com/downloads/RLVa-0.2.2b_20090703_Emerald-206-full.patch">RLVa-0.2.2b_20090703_Emerald-206-full.patch</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/07/green-emerald-viewer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Release: RLVa-0.2.2b (updated)</title>
		<link>http://rlva.catznip.com/blog/2009/07/release-rlva-0-2-2a/</link>
		<comments>http://rlva.catznip.com/blog/2009/07/release-rlva-0-2-2a/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 19:16:17 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=30</guid>
		<description><![CDATA[Barring bug fixes that really can’t wait this is most likely the last “pre-release” version of RLVa, with the next one finally getting its shiny 1.0
I’m really hesitant to name a time-frame for it since I haven’t quite met all the last ones :p, but I have tomorrow off (though not Saturday) so I’ll have [...]]]></description>
			<content:encoded><![CDATA[<p>Barring bug fixes that really can’t wait this is most likely the last “pre-release” version of RLVa, with the next one finally getting its shiny 1.0</p>
<p>I’m really hesitant to name a time-frame for it since I haven’t quite met all the last ones :p, but I have tomorrow off (though not Saturday) so I’ll have 2 days before the end of the week where I can still get things done so probably expect *something* by Monday evening (coding will probably stop on Sunday but that leaves me Monday evening to do some “cleaning” and to make sure all the other branches are up-to-date as well).</p>
<p>Compared to 0.2.1d there really isn’t much of note in 0.2.2a other than that it’s the first one to get posted here on the blog.</p>
<p>“Add to Outfit” and “Remove Outfit” were re-enabled but since there was some oddness going on (might have been due to the fact that LL lets “Take Off Items” remove the eyes which seems to lead to some baking oddness) that’s been turned back off until that&#8217;s fixed.</p>
<p>I kept putting off implementing “Give to #RLV inventory” (not sure what to call that particular feature) but it’s finally there now and the primary reason for doing another release. I think it marks a full implementation of the RLV specification now too <img src='http://rlva.catznip.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Lastly, there was a teaser about (some of) the new 1.19 RLV specification commands on Marine’s blog last night and those are implemented in advance of an actual release as well with the understanding that they’ll likely need some changing once it’s clear exactly how they’re supposed to work but they should be &#8220;close enough&#8221;.</p>
<p>@recvemote[:&lt;option&gt;]=n and @rediremote:&lt;option&gt;=add are probably good as-is</p>
<p>@showhovertextall=n is *probably* good as-is as well</p>
<p>@showhovertext[:&lt;option&gt;]=n was a wild guess on my part:</p>
<ul>
<li>@showhovertext[:&lt;attachpt&gt;]=n will hide any hovertext on object attached to “attachpt”</li>
<li>@showhovertext[:&lt;uuid&gt;]=n will hide any hovertext on the prim specified by “uuid”</li>
<li>@showhovertext=n will hide any hovertext  on the issuing prim (by uuid, not by attachpt)</li>
</ul>
<p>@showhovertexthud=n was a wild guess as well and will hide all hovertext on any prim of any HUD attachment</p>
<p>For now there’s just an SL-1.23.4 patch, I’ll probably get Snowglobe and SL-1.22.11 patches done either later tonight or sometime tomorrow.</p>
<p><strong>Update:</strong> sorry for the inconvenience, but GCC choked on one line so the new version is now 0.2.2b and should compile cleanly on Windows and Linux now (thankies muchies Satomi). If you already used the full RLV-0.2.2a path there&#8217;s a diff between &#8216;a&#8217; and &#8216;b&#8217; available below.</p>
<p>Code downloads:<br />
<a href="http://rlva.catznip.com/downloads/RLVa-0.2.2b_20090702_SL-1.23.4-full.patch">RLVa-0.2.2b_20090702_SL-1.23.4-full.patch</a> - SL-1.23.4<br />
<a href="http://rlva.catznip.com/downloads/RLVa-0.2.2b_20090702_Snowglobe-1.0.2-full.patch">RLVa-0.2.2b_20090702_Snowglobe-1.0.2-full.patch</a> &#8211; Snowglobe-1.0.2</p>
<p><a href="http://rlva.catznip.com/downloads/RLVa-0.2.2b_20090702_SL-1.23.4-diff.patch">RLVa-0.2.2b_20090702_SL-1.23.4-diff.patch</a> &#8211; RLVa-0.2.2a to 0.2.2b<br />
<a href="http://rlva.catznip.com/downloads/RLVa-0.2.2a_20090702_SL-1.23.4-full.patch">RLVa-0.2.2a_20090702_SL-1.23.4-full.patch</a> &#8211; RLVa-0.2.2a (obsolete &#8211; see above)</p>
<p>Release notes (including the previous versions for reference):<br />
<a href="http://rlva.catznip.com/downloads/release_notes_RLV-0.2.2.txt">release_notes_RLV-0.2.2.txt</a><br />
<a href="http://rlva.catznip.com/downloads/release_notes_RLV-0.2.1.txt">release_notes_RLV-0.2.1.txt</a><br />
<a href="http://rlva.catznip.com/downloads/release_notes_RLV-0.2.0.txt">release_notes_RLV-0.2.0.txt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/07/release-rlva-0-2-2a/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Feature: nostrip</title>
		<link>http://rlva.catznip.com/blog/2009/07/feature-nostrip/</link>
		<comments>http://rlva.catznip.com/blog/2009/07/feature-nostrip/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 18:07:56 +0000</pubDate>
		<dc:creator>Kitty</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[features]]></category>

		<guid isPermaLink="false">http://rlva.catznip.com/blog/?p=21</guid>
		<description><![CDATA[Most people have *something* they wear &#8211; almost &#8211; all the time that they would prefer not to have stripped off because it is part of their avie or part of who they are (could be a tattoo, AO, ears/tail, … or even a full prim avie).
While it’s possible to make – or buy – [...]]]></description>
			<content:encoded><![CDATA[<p>Most people have *something* they wear &#8211; almost &#8211; all the time that they would prefer not to have stripped off because it is part of their avie or part of who they are (could be a tattoo, AO, ears/tail, … or even a full prim avie).</p>
<p>While it’s possible to make – or buy – a script that locks either a clothing layer or an attachment to prevent it from getting stripped by RLV it does come with some drawbacks of its own: it removes the “Wear” option on attachments (for those who don’t habitually have other locked attachments), prevents easy dressing or changing since the attachment or layer needs to be unlocked before you can wear something else in its place, is simply not an option for “no modify” attachments and perhaps most importantly you have to remember to lock it in the first place (especially inconvenient when it comes to layers).</p>
<p>RLVa allows you to mark a clothing layer, attachment or an entire folder as “don’t strip” simply by appending “nostrip” to its name. While no RLV attachment or device will now be able to strip it off you, it differs from the script-based approach in that *you* can still take it off or wear something else in its place.</p>
<p>There is however one significant drawback: your inventory needs to be fully fetched for “nostrip” to work since it examines the item’s name (or the name of the folder it’s in) and until the viewer has fetched your inventory it does not know either the item’s name or even which folder it belongs to. The easiest workaround would be to place everything “nostrip” you wear inside of a hidden folder (folder that starts with dot) under your #RLV root since the viewer will always fetch that folder at login.</p>
<p>Some practical examples:</p>
<ul>
<li>Clothing layer item (ie tattoo)
<ul>
<li>If it’s modify: just append the name with “nostrip”, ie: <em>Favourite Tattoo (nostrip)</em></li>
<li>If it’s no modify: create a<em> .(nostrip)</em> folder and put the item under that</li>
</ul>
</li>
<li>Attachment
<ul>
<li>If it’s modify: just append the name with “nostrip”, example: <em>ZHAO II (nostrip)</em></li>
<li>If it’s no modify: create a <em>.(nostrip)</em> folder and put the item under that, OR if the item is already inside of a folder that specifies an attachment point then just append “<em>nostrip</em>”, ie: <em>.(spine) nostrip</em></li>
</ul>
</li>
<li>Folder
<ul>
<li>Simply append “nostrip” to the folder’s name to make all items that belong to that folder “nostrip”</li>
<li>Please note that “nostrip” on a folder does *not* apply to any other folders it may contain (aka nested folder) with the exception of folders that merely specify an attach point</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://rlva.catznip.com/blog/2009/07/feature-nostrip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

