From: alan webb <alan_webb@us.ibm.com>

This fixes a sitting problem which popped up on loading regions from
archive and turned out to be caused by the fact that the archiving
mechanisms all preserve the sit-target information that is set in the
object at the time the image is captured. This caused the new region
to pick a sit-target prim that did not correspond to the prim on which
the script was running, so the script's changed event is driven with
an invalid avatar UUID.

I have modified the ArchiveReadRequest class so that any sit information
that survives the archiving process is deleted before the object is
instantiated. This change has just been checked in.
0.6.0-stable
Dr Scofield 2008-08-06 14:46:38 +00:00
parent 548bcc265f
commit 5248c18b7d
1 changed files with 4 additions and 0 deletions

View File

@ -30,6 +30,7 @@ using OpenSim.Region.Environment.Scenes;
using OpenSim.Region.Environment.Modules.World.Serialiser; using OpenSim.Region.Environment.Modules.World.Serialiser;
using OpenSim.Region.Environment.Modules.World.Terrain; using OpenSim.Region.Environment.Modules.World.Terrain;
using System; using System;
using Axiom.Math;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.IO.Compression; using System.IO.Compression;
@ -135,6 +136,9 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver
part.CreatorID = masterAvatarId; part.CreatorID = masterAvatarId;
part.OwnerID = masterAvatarId; part.OwnerID = masterAvatarId;
part.LastOwnerID = masterAvatarId; part.LastOwnerID = masterAvatarId;
// And zap any troublesome sit target information
part.SitTargetOrientation = new Quaternion(0,0,0,1);
part.SitTargetPosition = new Vector3(0,0,0);
} }
if (m_scene.AddRestoredSceneObject(sceneObject, true, false)) if (m_scene.AddRestoredSceneObject(sceneObject, true, false))