only try external baked texture module on login

avinationmerge
UbitUmarov 2014-08-14 03:47:18 +01:00
parent 395903d58f
commit ab4df26309
1 changed files with 36 additions and 26 deletions

View File

@ -551,44 +551,54 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
m_log.Debug("[ValidateBakedCache] have valid local cache"); m_log.Debug("[ValidateBakedCache] have valid local cache");
} }
bool checkExternal = false;
if (!wearableCacheValid) if (!wearableCacheValid)
{
ScenePresence ssp = null;
if (sp is ScenePresence)
{
ssp = (ScenePresence)sp;
checkExternal = (((uint)ssp.TeleportFlags & (uint)TeleportFlags.ViaLogin) != 0) &&
bakedModule != null;
}
}
if (checkExternal)
{ {
hits = 0; hits = 0;
bool gotbacked = false; bool gotbacked = false;
if (bakedModule != null) m_log.Debug("[ValidateBakedCache] local cache invalid, calling bakedModule");
try
{ {
m_log.Debug("[ValidateBakedCache] local cache invalid, calling bakedModule"); bakedModuleCache = bakedModule.Get(sp.UUID);
try }
{ catch (Exception)
bakedModuleCache = bakedModule.Get(sp.UUID); {
} bakedModuleCache = null;
catch (Exception) }
{
bakedModuleCache = null;
}
if (bakedModuleCache != null) if (bakedModuleCache != null)
{ {
m_log.Debug("[ValidateBakedCache] got bakedModule cache " + bakedModuleCache.Length); m_log.Debug("[ValidateBakedCache] got bakedModule cache " + bakedModuleCache.Length);
for (int i = 0; i < bakedModuleCache.Length; i++) for (int i = 0; i < bakedModuleCache.Length; i++)
{
int j = (int)bakedModuleCache[i].TextureIndex;
if (bakedModuleCache[i].TextureAsset != null)
{ {
int j = (int)bakedModuleCache[i].TextureIndex; wearableCache[j].TextureID = bakedModuleCache[i].TextureID;
wearableCache[j].CacheId = bakedModuleCache[i].CacheId;
wearableCache[j].TextureAsset = bakedModuleCache[i].TextureAsset;
bakedModuleCache[i].TextureAsset.Temporary = true;
bakedModuleCache[i].TextureAsset.Local = true;
cache.Store(bakedModuleCache[i].TextureAsset);
if (bakedModuleCache[i].TextureAsset != null)
{
wearableCache[j].TextureID = bakedModuleCache[i].TextureID;
wearableCache[j].CacheId = bakedModuleCache[i].CacheId;
wearableCache[j].TextureAsset = bakedModuleCache[i].TextureAsset;
bakedModuleCache[i].TextureAsset.Temporary = true;
bakedModuleCache[i].TextureAsset.Local = true;
cache.Store(bakedModuleCache[i].TextureAsset);
}
} }
gotbacked = true;
} }
gotbacked = true;
} }
if (gotbacked) if (gotbacked)