Commit Graph

14 Commits

Author SHA1 Message Date
Aleric Inglewood
cc9fc6b868 First attempt to deal with broken (pre multiwear) inventory items.
Since multiwear, the low 8 bit of inventory items, if they are of type
IT_WEARABLE, is used for the wearable type (WT_*). Older viewers and
bots (like Second Inventory) create inventory items with 0 in those
bits. This causes all those item to appear as shapes in multi-wear
capable viewers.

This gives rise to many problems:
1) You can't wear them, because the inventory and asset wearable type
mismatch, which makes Singularity just abort.
2) Before it aborts, it already removed your old shape, thinking you
are about to wear another shape - and told the server that you are
wearing this broken item now. The result is that you see no change,
until you relog when you are suddenly wearing the broken "shape"
and stay a cloud forever.

This commit detects the problem for AT_CLOTHING wearables, because
they are not compatible with the type 'shape' after all (which is
is AT_BODYPART). It still doesn't know what the wearable type is, but
sets the type temporarily to the new value WT_UNKNOWN. Since this is
at least not a shape anymore, it doesn't cause you shape to be removed
when wearing it. Moreover, once the asset is downloaded, the mismatch
is detected and corrected: you can now wear -say- pants, or other
clothing.

Inventory clothing items with an unknown wearable type now have a
red question mark icon in the inventory.

What does NOT work yet:

1) If you copy such an item and paste it, then the new copy has
a shape icon again (and all the previously mentioned problems).

2) If you wear broken hair, skin or eyes (which still show as
shapes in the inventory) then your shape is still removed, and
wearing them fails because they are not multiwear capable and you
are already wearing such a body part. What should be done here
is that the removed shape is added back and the real body part
that you're trying to wear is removed.

3) Although this code attempts to fix the mFlags in the inventory,
the icon in the inventory doesn't change from question mark to the
right thing.
2013-08-18 02:50:31 +02:00
Lirusaito
126eeb9244 Inventory Updates and Clean Up
Better viewed without space changes
Adds translatable inventory strings
2013-03-29 03:25:03 -04:00
Shyotl
e622e03d2a Bulk of server-baking impelmentation and a bit of cleanup. 2013-01-13 02:37:12 -06:00
Shyotl
b49ad1cd34 RLVa impl updated to that used in v3. Hooked RLVa restrictions back into wearables. New RLVa floater: 'Locks...' Also updated 'Restrictions...' floater. 2012-04-12 10:29:45 -05:00
Shyotl
ae7b12f230 Interim commit before diving into reworking the inventory panel. 2012-02-16 19:25:59 -06:00
Shyotl
4a4b786a60 New inventory observer implementation. 2012-01-21 04:54:39 -06:00
Shyotl
dbad00ae66 Missing utility functions added to LLViewerInventoryItem, and cleaned up a few things. 2011-10-12 02:33:37 -05:00
Shyotl
d40dcfa1cd Updated LLInventoryModel a bit. Safer cleanup, prevention of recursive notifyObservers calls, more sanity checks, added idleNotifyObservers that will call notifyObservers if stale flag(s) found. 2011-10-10 00:19:01 -05:00
Shyotl
cd86b3a69b Refactoring.
-New LLWearableType class, uses LLDictionary for typeindex<->typename<->assettype<->typelabel conversions.
-LLAvatarDefines cleaned up. Uses LLDictionary for Mesh, TE, Baked lookups/conversions.
-LLAgentWearables TEWearable stuff removed. Use LLAvatarDefines.
-LLWearable WearableType conversions yanked. Use LLWearableType.
-LLVOAvatar TEWEarable stuff removed. Use LLAvatarDefines.
-EWearableType now LLWearableType::EType
-LLWearable::getID() renamed to LLWearable::getAssetID()
VOAvatar cleanup.
-Removed redundant TEWearable functions.
-Some code migrated to F32 LLVOAvatar::calcMorphAmount(). No functional change.
-LLVOAvatar::removeMissingBakedTextures virtual. Implementation moved to VOAvatarSelf
2011-10-03 15:00:43 -05:00
Siana Gearz
6348635d3f Ïntroduced LLFolderType and LLViewerAssetType (by Shyotl) 2011-06-23 21:11:52 +02:00
Siana Gearz
f9dcb1bb09 RLVa 1.1.2 to 1.1.3 upgrade. InvLinks + COF 2010-11-25 23:47:11 +01:00
Siana Gearz
5a67fcd623 Revert "THE BIGGIE."
This reverts commit ec55705bdd.

Conflicts:

	indra/newview/ascentprefsvan.cpp
	indra/newview/llinventorybridge.cpp
	indra/newview/skins/default/xui/en-us/panel_preferences_ascent_vanity.xml
2010-10-18 18:27:09 +02:00
Beeks
ec55705bdd THE BIGGIE.
Holy hell, this was an interesting one to implement. I wish I understood it better. Unfortunately I think this marks the end of trying to re-implement the Local Inventory for Temp and Local textures. It's just not feasible now that the entire inventory system has been whipped into a code shitstorm.

Signed-off-by: Beeks <HgDelirium@gmail.com>
2010-09-22 06:48:48 -04:00
Hazim Gazov
7a86d01598 Imported existing code 2010-04-02 02:48:44 -03:00