aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs37
1 files changed, 25 insertions, 12 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index fa35bd8..4c0b53c 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -11220,8 +11220,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11220 protected bool HandleMultipleObjUpdate(IClientAPI simClient, Packet packet) 11220 protected bool HandleMultipleObjUpdate(IClientAPI simClient, Packet packet)
11221 { 11221 {
11222 MultipleObjectUpdatePacket multipleupdate = (MultipleObjectUpdatePacket)packet; 11222 MultipleObjectUpdatePacket multipleupdate = (MultipleObjectUpdatePacket)packet;
11223 if (multipleupdate.AgentData.SessionID != SessionId) return false; 11223
11224 // m_log.Debug("new multi update packet " + multipleupdate.ToString()); 11224 if (multipleupdate.AgentData.SessionID != SessionId)
11225 return false;
11226
11227// m_log.DebugFormat(
11228// "[CLIENT]: Incoming MultipleObjectUpdatePacket contained {0} blocks", multipleupdate.ObjectData.Length);
11229
11225 Scene tScene = (Scene)m_scene; 11230 Scene tScene = (Scene)m_scene;
11226 11231
11227 for (int i = 0; i < multipleupdate.ObjectData.Length; i++) 11232 for (int i = 0; i < multipleupdate.ObjectData.Length; i++)
@@ -11242,15 +11247,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11242 } 11247 }
11243 else 11248 else
11244 { 11249 {
11245 // Do this once since fetch parts creates a new array. 11250// m_log.DebugFormat(
11246 SceneObjectPart[] parts = part.ParentGroup.Parts; 11251// "[CLIENT]: Processing block {0} type {1} for {2} {3}",
11247 for (int j = 0; j < parts.Length; j++) 11252// i, block.Type, part.Name, part.LocalId);
11248 { 11253
11249 part.StoreUndoState(); 11254// // Do this once since fetch parts creates a new array.
11250 parts[j].IgnoreUndoUpdate = true; 11255// SceneObjectPart[] parts = part.ParentGroup.Parts;
11251 } 11256// for (int j = 0; j < parts.Length; j++)
11257// {
11258// part.StoreUndoState();
11259// parts[j].IgnoreUndoUpdate = true;
11260// }
11252 11261
11253 // UUID partId = part.UUID;
11254 UpdatePrimGroupRotation handlerUpdatePrimGroupRotation; 11262 UpdatePrimGroupRotation handlerUpdatePrimGroupRotation;
11255 11263
11256 switch (block.Type) 11264 switch (block.Type)
@@ -11394,6 +11402,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11394 if (handlerUpdatePrimGroupScale != null) 11402 if (handlerUpdatePrimGroupScale != null)
11395 { 11403 {
11396 // m_log.Debug("new scale is " + scale.X + " , " + scale.Y + " , " + scale.Z); 11404 // m_log.Debug("new scale is " + scale.X + " , " + scale.Y + " , " + scale.Z);
11405 part.StoreUndoState(true);
11406 part.IgnoreUndoUpdate = true;
11397 handlerUpdatePrimGroupScale(localId, scale5, this); 11407 handlerUpdatePrimGroupScale(localId, scale5, this);
11398 handlerUpdateVector = OnUpdatePrimGroupPosition; 11408 handlerUpdateVector = OnUpdatePrimGroupPosition;
11399 11409
@@ -11401,7 +11411,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11401 { 11411 {
11402 handlerUpdateVector(localId, pos5, this); 11412 handlerUpdateVector(localId, pos5, this);
11403 } 11413 }
11414
11415 part.IgnoreUndoUpdate = false;
11404 } 11416 }
11417
11405 break; 11418 break;
11406 11419
11407 case 21: 11420 case 21:
@@ -11426,8 +11439,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11426 break; 11439 break;
11427 } 11440 }
11428 11441
11429 for (int j = 0; j < parts.Length; j++) 11442// for (int j = 0; j < parts.Length; j++)
11430 parts[j].IgnoreUndoUpdate = false; 11443// parts[j].IgnoreUndoUpdate = false;
11431 } 11444 }
11432 } 11445 }
11433 } 11446 }