* Fix a bug in the archiver where I didn't realize a shape still needs its default texture as well as its face textures

0.6.0-stable
Justin Clarke Casey 2008-06-16 22:43:30 +00:00
parent 53c9ce46b3
commit cb70299092
2 changed files with 13 additions and 3 deletions

View File

@ -296,6 +296,7 @@ namespace OpenSim.Framework
ProfileBegin = LLObject.PackBeginCut(profileRange.X); ProfileBegin = LLObject.PackBeginCut(profileRange.X);
ProfileEnd = LLObject.PackEndCut(profileRange.Y); ProfileEnd = LLObject.PackEndCut(profileRange.Y);
} }
public byte[] ExtraParams public byte[] ExtraParams
{ {
get get
@ -528,6 +529,7 @@ namespace OpenSim.Framework
return data; return data;
} }
public void ReadFlexiData(byte[] data, int pos) public void ReadFlexiData(byte[] data, int pos)
{ {
if (data.Length-pos >= 5) if (data.Length-pos >= 5)
@ -558,6 +560,7 @@ namespace OpenSim.Framework
FlexiForceZ = 0f; FlexiForceZ = 0f;
} }
} }
public byte[] GetFlexiBytes() public byte[] GetFlexiBytes()
{ {
byte[] data = new byte[16]; byte[] data = new byte[16];
@ -576,6 +579,7 @@ namespace OpenSim.Framework
return data; return data;
} }
public void ReadLightData(byte[] data, int pos) public void ReadLightData(byte[] data, int pos)
{ {
if (data.Length - pos >= 16) if (data.Length - pos >= 16)
@ -605,6 +609,7 @@ namespace OpenSim.Framework
LightIntensity = 0f; LightIntensity = 0f;
} }
} }
public byte[] GetLightBytes() public byte[] GetLightBytes()
{ {
byte[] data = new byte[16]; byte[] data = new byte[16];

View File

@ -99,10 +99,15 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
m_log.DebugFormat( m_log.DebugFormat(
"[ARCHIVER]: Getting part {0}, {1} for object {2}", part.Name, part.UUID, sceneObject.UUID); "[ARCHIVER]: Getting part {0}, {1} for object {2}", part.Name, part.UUID, sceneObject.UUID);
LLObject.TextureEntry textureEntry = part.Shape.Textures;
// Get the prim's default texture. This will be used for faces which don't have their own texture
assetUuids[textureEntry.DefaultTexture.TextureID] = 1;
// XXX: Not a great way to iterate through face textures, but there's no // XXX: Not a great way to iterate through face textures, but there's no
// other way to tell how many faces there actually are // other method available to tell how many faces there actually are
int i = 0; int i = 0;
foreach (LLObject.TextureEntryFace texture in part.Shape.Textures.FaceTextures) foreach (LLObject.TextureEntryFace texture in textureEntry.FaceTextures)
{ {
if (texture != null) if (texture != null)
{ {