As importing has been broken for a long time, I decided to
hijack the existing (broken) buttons of the Appearance floater
for the following new implementation:
The currently selected wearable, if full perm and the agent
is owner (of course) and creator, then that wearable can be
exported to disk with AIFilePicker in the context "archetype".
The used format is now XML, linden_genepool version 1.0, the
same format that is used when saving from Advanced --> Character
--> Character Tests --> Appearance to XML in any viewer.
However, unlike that Advanced option (which normally only
works when DebugAvatarAppearanceMessage is set to TRUE, ie in
the official Linden Viewer; but that does a lot more, most
likely unwanted things: it causes to dump files in this format
to the LL_PATH_LOGS directory whenever appearance data comes
by and other stuff for debugging purposes only), now ONLY the
selected wearable is written to the file. In the case of multiwear
with several layers, that means the selected layer, as well.
When importing these XML files again, only the selected
wearable/layer is overwritten (assuming it is modifiable) with
the data in the file that corresponds to that wearable (if
the file contains data of another wearable then nothing happens).
Note that this file format can be read by blender-avastar:
Using this feature to save the shape you created in SL will
allow you to import that into blender. Likewise, a shape created
or modified in blender can be imported into SL using this feature.
Generalized several templates in llstl.h in order to support more containers.
Removed several instances of is_in_map/getWearableCount being followed immediately by another lookup with the same key. find is more efficient, as we get an iterator to use instead of a simple boolean.
We were getting the texture ID from the type,index couple, but were not
passing in index, which defaulted to 0. texture ID is available from the
texture object itself, so using that and removing the index parameter
to prevent future confusion.
Conflicts:
indra/newview/llvoavatarself.cpp
Removes old code for permitting emerald attachment points
Removes other old dead code...
Updates RLVa a bit.
Adds more translation flexibility via strings.xml
If an avatar TP's in while you are in Freeze Time mode, they now have a
visible tag with the tag 'Langolier' in it. After exiting Freeze Time
mode they become visible. Before they would stay invisible.
If an avatar TP's away (or quits), he will not
disappear anymore from a frozen scene. Unfreezing
makes him disappear of course (and clean up).
Known bug: if during Freeze Time mode someone
TPs away and then back, then he becomes a cloud
after Freeze Time is ended, which can only be
reset by another teleport (or relog) from either
the cloud or the one seeing him as cloud.
I decided not to fix this, cause there are things
with a higher priority and this - if it happens
at all - is rare and easy to recognize and work
around.
-Nametag bubble visbility is oddly inconsistent. May vanish with future planned UI merges...
-VBOs are PAINFULLY slow on ATI hardware. This repos self-compiled davep/shining-fixes branch, so I'll leave the ball in LL's court for now regarding that.