Merge branch 'dev_kitty_debug' into dev_kitty

dsg
Huaiyu (Kitty) Liu 2011-02-07 17:20:50 -08:00
commit 9ee4a7e9f3
5 changed files with 81 additions and 30 deletions

View File

@ -978,6 +978,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
//save script state and stop script instances
m_scene.EventManager.TriggerOnSymmetricSyncStop();
}
m_synced = true;
}
else
{
@ -1059,11 +1060,10 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
{
syncConnector.StartCommThreads();
AddSyncConnector(syncConnector);
m_synced = true;
}
}
m_synced = true;
return true;
}

View File

@ -2145,8 +2145,11 @@ namespace OpenSim.Region.Framework.Scenes
// Make sure no child prim is set for sale
// So that, on delink, no prims are unwittingly
// left for sale and sold off
child.RootPart.ObjectSaleType = 0;
child.RootPart.SalePrice = 10;
//SYMMETRIC SYNC: need to copy value w/o trigger UpdateBucketSyncInfo
//child.RootPart.ObjectSaleType = 0;
//child.RootPart.SalePrice = 10;
child.RootPart.SetObjectSaleType(0);
child.RootPart.SetSalePrice(10);
childGroups.Add(child);
}
}

View File

@ -3694,6 +3694,9 @@ namespace OpenSim.Region.Framework.Scenes
}
//Similar actions with DelinkFromGroup, except that m_scene.AddNewSceneObjectBySync is called
//!!!!!!!!!!!!!!!!!!NOTE!!!!!!!!!!!!!!!
//All SOP properties below is set through calling SetXXX(value) instead of by "XXX=value", as such a value is being changed due to sync (
//i.e. triggered by remote operation instead of by local operation
public SceneObjectGroup DelinkFromGroupBySync(SceneObjectPart linkPart, bool sendEvents)
{
// m_log.DebugFormat(
@ -3714,7 +3717,8 @@ namespace OpenSim.Region.Framework.Scenes
if (parts.Length == 1 && RootPart != null)
{
// Single prim left
RootPart.LinkNum = 0;
//RootPart.LinkNum = 0;
RootPart.SetLinkNum(0);
}
else
{
@ -3722,13 +3726,18 @@ namespace OpenSim.Region.Framework.Scenes
{
SceneObjectPart part = parts[i];
if (part.LinkNum > linkPart.LinkNum)
part.LinkNum--;
{
//part.LinkNum--;
part.SetLinkNum(part.LinkNum--);
}
}
}
}
linkPart.ParentID = 0;
linkPart.LinkNum = 0;
//linkPart.ParentID = 0;
//linkPart.LinkNum = 0;
linkPart.SetParentID(0);
linkPart.SetLinkNum(0);
if (linkPart.PhysActor != null)
{
@ -3742,11 +3751,15 @@ namespace OpenSim.Region.Framework.Scenes
Vector3 axPos = linkPart.OffsetPosition;
axPos *= parentRot;
linkPart.OffsetPosition = new Vector3(axPos.X, axPos.Y, axPos.Z);
linkPart.GroupPosition = AbsolutePosition + linkPart.OffsetPosition;
linkPart.OffsetPosition = new Vector3(0, 0, 0);
//linkPart.OffsetPosition = new Vector3(axPos.X, axPos.Y, axPos.Z);
//linkPart.GroupPosition = AbsolutePosition + linkPart.OffsetPosition;
//linkPart.OffsetPosition = new Vector3(0, 0, 0);
//linkPart.RotationOffset = worldRot;
linkPart.RotationOffset = worldRot;
linkPart.SetOffsetPosition(new Vector3(axPos.X, axPos.Y, axPos.Z));
linkPart.SetGroupPosition(AbsolutePosition + linkPart.OffsetPosition);
linkPart.SetOffsetPosition(new Vector3(0, 0, 0));
linkPart.SetRotationOffset(worldRot);
SceneObjectGroup objectGroup = new SceneObjectGroup(linkPart);

View File

@ -608,12 +608,18 @@ namespace OpenSim.Region.Framework.Scenes
public uint InventorySerial
{
get { return m_inventory.Serial; }
set { m_inventory.Serial = value; }
set
{
SetInventorySerial(value);
UpdateBucketSyncInfo("InventorySerial");
//m_inventory.Serial = value;
}
}
//SYMMETRIC SYNC: implemented to be consistent with other properties. "m_inventory.Serial" set function will trigger UpdateBucketSyncInfo if appropriate
//SYMMETRIC SYNC: implemented to be consistent with other properties. "m_inventory.Serial" set function will trigger UpdateBucketSyncInfo,
//hence in SetInventorySerial we will call m_inventory.SetSerial to avoid triggering UpdateBucketSyncInfo().
public void SetInventorySerial(uint value)
{
m_inventory.Serial = value;
m_inventory.SetSerial(value);
}
/// <value>
@ -622,12 +628,18 @@ namespace OpenSim.Region.Framework.Scenes
public TaskInventoryDictionary TaskInventory
{
get { return m_inventory.Items; }
set { m_inventory.Items = value; }
set
{
//SetTaskInventory(value);
//UpdateBucketSyncInfo("TaskInventory");
//SYMMETRIC SYNC: "m_inventory.Items" set function will trigger UpdateBucketSyncInfo if appropriate
m_inventory.Items = value;
}
}
//SYMMETRIC SYNC: implemented to be consistent with other properties. "m_inventory.Items" set function will trigger UpdateBucketSyncInfo if appropriate
//SYMMETRIC SYNC: implemented to be consistent with updating values of other properties (w/o triggering UpdateBucketSyncInfo);
public void SetTaskInventory(TaskInventoryDictionary value)
{
m_inventory.Items = value;
m_inventory.SetItems(value);
}
/// <summary>
@ -1227,7 +1239,7 @@ namespace OpenSim.Region.Framework.Scenes
set
{
SetAcceleration(value);
UpdateBucketSyncInfo("Acceleration");
//UpdateBucketSyncInfo("Acceleration");
//m_acceleration = value;
}
}
@ -1243,7 +1255,7 @@ namespace OpenSim.Region.Framework.Scenes
set
{
SetDescription(value);
UpdateBucketSyncInfo("Description");
//UpdateBucketSyncInfo("Description");
/*
m_description = value;
PhysicsActor actor = PhysActor;
@ -1274,7 +1286,7 @@ namespace OpenSim.Region.Framework.Scenes
set
{
SetColor(value);
UpdateBucketSyncInfo("Color");
//UpdateBucketSyncInfo("Color");
//m_color = value;
/* ScheduleFullUpdate() need not be called b/c after
@ -1303,7 +1315,7 @@ namespace OpenSim.Region.Framework.Scenes
set
{
SetText(value, false);
UpdateBucketSyncInfo("Text");
//UpdateBucketSyncInfo("Text");
//m_text = value;
}
}
@ -1321,7 +1333,7 @@ namespace OpenSim.Region.Framework.Scenes
set
{
SetSitName(value);
UpdateBucketSyncInfo("SitName");
//UpdateBucketSyncInfo("SitName");
//m_sitName = value;
}
}
@ -1369,7 +1381,7 @@ namespace OpenSim.Region.Framework.Scenes
set
{
SetClickAction(value);
UpdateBucketSyncInfo("ClickAction");
//UpdateBucketSyncInfo("ClickAction");
//m_clickAction = value;
}
}
@ -1606,6 +1618,11 @@ namespace OpenSim.Region.Framework.Scenes
get { return _parentID; }
set { _parentID = value; }
}
//SYMMETRIC SYNC: defined for consistency, for calling SetXXX in sync operations
public void SetParentID(uint value)
{
_parentID = value;
}
public int CreationDate
{
@ -5913,6 +5930,10 @@ namespace OpenSim.Region.Framework.Scenes
//private static Dictionary<string, BucketUpdateProcessor> m_bucketUpdateProcessors = new Dictionary<string, BucketUpdateProcessor>();
private Dictionary<string, BucketUpdateProcessor> m_bucketUpdateProcessors = new Dictionary<string, BucketUpdateProcessor>();
//Define this as a guard to not to fill in any sync info when not desired, i.e. while de-serializing and building SOP and SOG, where
//property set functions will be called and might trigger UpdateBucketSyncInfo() if not guarded carefully.
private bool m_syncEnabled = false;
public static void InitializeBucketInfo(Dictionary<string, string> propertyBucketMap, List<string> bucketNames, string actorID)
{
m_primPropertyBucketMap = propertyBucketMap;
@ -5965,8 +5986,18 @@ namespace OpenSim.Region.Framework.Scenes
SetMaterial(updatedPart.Material);
SetPassTouches(updatedPart.PassTouches);
//RegionHandle skipped
SetScriptAccessPin(updatedPart.ScriptAccessPin);
//SetAcceleration(updatedPart.Acceleration);
//SetDescription(updatedPart.Description);
//SetColor(updatedPart.Color);
//SetText(updatedPart.Text);
//SetSitName(updatedPart.SitName);
SetTouchName(updatedPart.TouchName);
SetLinkNum(updatedPart.LinkNum);
//SetClickAction(updatedPart.ClickAction);
SetShape(updatedPart.Shape);
m_bucketSyncInfoList[bucketName].LastUpdateTimeStamp = updatedPart.BucketSyncInfoList[bucketName].LastUpdateTimeStamp;
@ -6040,6 +6071,8 @@ namespace OpenSim.Region.Framework.Scenes
RegisterBucketUpdateProcessor();
m_BucketUpdateProcessorRegistered = true;
}
m_syncEnabled = true;
}
/// <summary>
@ -6048,7 +6081,7 @@ namespace OpenSim.Region.Framework.Scenes
/// <param name="propertyName">Name of the property. Make sure the spelling is consistent with what are defined in PropertyList</param>
public void UpdateBucketSyncInfo(string propertyName)
{
if (m_bucketSyncInfoList != null && m_bucketSyncInfoList.Count>0)
if (m_syncEnabled && m_bucketSyncInfoList != null && m_bucketSyncInfoList.Count>0)
{
//int bucketIndex = m_primPropertyBucketMap[propertyName];
string bucketName = m_primPropertyBucketMap[propertyName];

View File

@ -85,7 +85,7 @@ namespace OpenSim.Region.Framework.Scenes
}
//SYMMETRIC SYNC
protected void SetSerial(uint value)
public void SetSerial(uint value)
{
m_inventorySerial = value;
@ -100,6 +100,7 @@ namespace OpenSim.Region.Framework.Scenes
set
{
SetItems(value);
m_inventorySerial++;
m_part.UpdateBucketSyncInfo("TaskInventory");
m_part.UpdateBucketSyncInfo("InventorySerial");
//m_items = value;
@ -107,10 +108,11 @@ namespace OpenSim.Region.Framework.Scenes
}
}
//SYMMETRIC SYNC
protected void SetItems(TaskInventoryDictionary value)
//This is inparticular for updating properties
public void SetItems(TaskInventoryDictionary value)
{
m_items = value;
m_inventorySerial++;
//m_inventorySerial++;
}
/// <summary>