Monday, August 26, 2013

RestrainedLove Viewer

Hello again,

Another day, another RLV.

Yesterday morning, I got an IM from Gibson Firehawk telling me that, well, the Z offset fix is well and all, but was only working locally...


So, one sacrificed Sunday later, here is a new version of the RLV that, this time, does propagate the Z offset to other users around you. A little explanation is in order, though, because it now shows that it will certainly not work exactly the way it used to before SSA was rolled out across the grid. As close as possible, but not exactly the same.

Before the SSA rollout, you would just use your Z offset slider to decide how much higher or how much lower your avatar would appear to be (I say "appear" for a reason : in fact your avatar bounding box was taller or smaller, the change of altitude was only visual and only a side effect of it).

Now, the Z offset directly tweaks the Hover value of your shape. Which means your shape must be modifiable in the first place, and also that its new Hover value needs to be validated by the sim, and that takes some time.

So here is how I did this :

1. You use your Z offset slider like before, and it will in fact feel faster and smoother than before, simply because the change will be only local at first.

2. You leave your Z offset slider alone and one second later, things start getting interesting : your RLV will move your avatar a little lower or a little higher than what you wanted, don't fret, this is normal. It will stay there until the sim responds with a confirmation, updating your shape and putting you at the exact altitude you had requested. It's slow, it takes a few seconds, sometimes the sim will even refuse to update your shape with some excuses like "not found" or "service unavailable" but your viewer will keep insisting until the sim gives up and finally updates your shape. If it really doesn't want to update, you can move your Z slider again to retry, but that shouldn't be necessary too often.

3. You play with your Z offset slider again, say to go back to zero. Once again your altitude will change the way you want, then a second later will be off for a little while. I know this is annoying but this is the only way I found to overcome a nasty bug in the update : the altitude that is acknowledged by the sim is never the one you requested. It is the one you wanted, multiplied by 1.25. Don't ask me why, I have no clue, and it has wasted a lot of my time trying to figure that out. Note to Henri : I don't do things the same way you do in your viewer so I had to use a factor to correct that behavior. Please don't kill me. Hehe.

One thing you need to know : it also works when sitting (the former version didn't), but it just won't show in local, you have to wait until the sim updates your shape. This is annoying because it does not let you tweak your position as precisely as when you are standing, and I don't know how to make it work in local when sitting. Maybe I'll find a solution in the future, if any.

So there you have it. It works, but I must say I am not proud of the code I had to write to overcome this at all. It's dirty, it's hacky, it's messy and this factor thing just doesn't make sense. But it's there and it had to be fixed.

You can grab the viewer here :

The MD5 hash for the Windows package is

Have fun !

PS : You may have noticed there is no RLV I have made an oops with the version number, should be this one, but heh.