Merge branch 'master' of ssh://opensimulator.org/var/git/opensim

0.7.4.1
Justin Clark-Casey (justincc) 2012-03-09 00:20:10 +00:00
commit df4b06aed1
2 changed files with 33 additions and 30 deletions

View File

@ -457,15 +457,8 @@ namespace OpenSim.Region.Framework.Scenes
// without the parent rotation applied. // without the parent rotation applied.
if (ParentID != 0) if (ParentID != 0)
{ {
SceneObjectPart part = m_scene.GetSceneObjectPart(ParentID); SceneObjectPart part = ParentPart;
if (part != null) return part.AbsolutePosition + (m_pos * part.GetWorldRotation());
{
return part.AbsolutePosition + (m_pos * part.GetWorldRotation());
}
else
{
return ParentPosition + m_pos;
}
} }
} }
return m_pos; return m_pos;
@ -576,6 +569,13 @@ namespace OpenSim.Region.Framework.Scenes
} }
private uint m_parentID; private uint m_parentID;
public SceneObjectPart ParentPart
{
get { return m_parentPart; }
set { m_parentPart = value; }
}
private SceneObjectPart m_parentPart = null;
public float Health public float Health
{ {
get { return m_health; } get { return m_health; }
@ -1751,36 +1751,34 @@ namespace OpenSim.Region.Framework.Scenes
if (ParentID != 0) if (ParentID != 0)
{ {
SceneObjectPart part = m_scene.GetSceneObjectPart(ParentID); SceneObjectPart part = ParentPart;
if (part != null) TaskInventoryDictionary taskIDict = part.TaskInventory;
if (taskIDict != null)
{ {
TaskInventoryDictionary taskIDict = part.TaskInventory; lock (taskIDict)
if (taskIDict != null)
{ {
lock (taskIDict) foreach (UUID taskID in taskIDict.Keys)
{ {
foreach (UUID taskID in taskIDict.Keys) UnRegisterControlEventsToScript(LocalId, taskID);
{ taskIDict[taskID].PermsMask &= ~(
UnRegisterControlEventsToScript(LocalId, taskID); 2048 | //PERMISSION_CONTROL_CAMERA
taskIDict[taskID].PermsMask &= ~( 4); // PERMISSION_TAKE_CONTROLS
2048 | //PERMISSION_CONTROL_CAMERA
4); // PERMISSION_TAKE_CONTROLS
}
} }
} }
// Reset sit target.
if (part.SitTargetAvatar == UUID)
part.SitTargetAvatar = UUID.Zero;
ParentPosition = part.GetWorldPosition();
ControllingClient.SendClearFollowCamProperties(part.ParentUUID);
} }
// Reset sit target.
if (part.SitTargetAvatar == UUID)
part.SitTargetAvatar = UUID.Zero;
ParentPosition = part.GetWorldPosition();
ControllingClient.SendClearFollowCamProperties(part.ParentUUID);
m_pos += ParentPosition + new Vector3(0.0f, 0.0f, 2.0f * m_sitAvatarHeight); m_pos += ParentPosition + new Vector3(0.0f, 0.0f, 2.0f * m_sitAvatarHeight);
ParentPosition = Vector3.Zero; ParentPosition = Vector3.Zero;
ParentID = 0; ParentID = 0;
ParentPart = null;
SendAvatarDataToAllAgents(); SendAvatarDataToAllAgents();
m_requestedSitTargetID = 0; m_requestedSitTargetID = 0;
@ -2212,6 +2210,10 @@ namespace OpenSim.Region.Framework.Scenes
return; return;
} }
ParentPart = m_scene.GetSceneObjectPart(m_requestedSitTargetID);
if (ParentPart == null)
return;
ParentID = m_requestedSitTargetID; ParentID = m_requestedSitTargetID;
Velocity = Vector3.Zero; Velocity = Vector3.Zero;

View File

@ -296,9 +296,10 @@ namespace OpenSim.Services.HypergridService
aCircuit.firstname = account.FirstName; aCircuit.firstname = account.FirstName;
aCircuit.lastname = account.LastName; aCircuit.lastname = account.LastName;
} }
if (account == null && !aCircuit.lastname.StartsWith("@")) if (account == null)
{ {
aCircuit.firstname = aCircuit.firstname + "." + aCircuit.lastname; if (!aCircuit.lastname.StartsWith("@"))
aCircuit.firstname = aCircuit.firstname + "." + aCircuit.lastname;
try try
{ {
Uri uri = new Uri(aCircuit.ServiceURLs["HomeURI"].ToString()); Uri uri = new Uri(aCircuit.ServiceURLs["HomeURI"].ToString());