aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/ScenePresence.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs184
1 files changed, 92 insertions, 92 deletions
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 28507cd..ba8bbd9 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -40,7 +40,7 @@ using OpenSim.Region.Physics.Manager;
40 40
41namespace OpenSim.Region.Environment.Scenes 41namespace OpenSim.Region.Environment.Scenes
42{ 42{
43 enum ScriptControlled : int 43 enum ScriptControlled : int
44 { 44 {
45 CONTROL_ZERO = 0, 45 CONTROL_ZERO = 0,
46 CONTROL_FWD = 1, 46 CONTROL_FWD = 1,
@@ -63,14 +63,14 @@ namespace OpenSim.Region.Environment.Scenes
63 public ScriptControlled eventControls; 63 public ScriptControlled eventControls;
64 } 64 }
65 65
66 [Serializable] 66 [Serializable]
67 public class ScenePresence : EntityBase, ISerializable 67 public class ScenePresence : EntityBase, ISerializable
68 { 68 {
69// ~ScenePresence() 69// ~ScenePresence()
70// { 70// {
71// System.Console.WriteLine("[ScenePresence] Destructor called"); 71// System.Console.WriteLine("[ScenePresence] Destructor called");
72// } 72// }
73 73
74 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 74 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
75 75
76 public static byte[] DefaultTexture; 76 public static byte[] DefaultTexture;
@@ -92,7 +92,7 @@ namespace OpenSim.Region.Environment.Scenes
92 private LLVector3 m_requestedSitOffset = new LLVector3(); 92 private LLVector3 m_requestedSitOffset = new LLVector3();
93 private float m_sitAvatarHeight = 2.0f; 93 private float m_sitAvatarHeight = 2.0f;
94 private float m_godlevel = 0; 94 private float m_godlevel = 0;
95 95
96 private bool m_invulnerable = true; 96 private bool m_invulnerable = true;
97 97
98 private LLVector3 m_LastChildAgentUpdatePosition = new LLVector3(); 98 private LLVector3 m_LastChildAgentUpdatePosition = new LLVector3();
@@ -114,7 +114,7 @@ namespace OpenSim.Region.Environment.Scenes
114 private float m_health = 100f; 114 private float m_health = 100f;
115 115
116 private LLVector3 m_lastVelocity = LLVector3.Zero; 116 private LLVector3 m_lastVelocity = LLVector3.Zero;
117 117
118 // Default AV Height 118 // Default AV Height
119 private float m_avHeight = 127.0f; 119 private float m_avHeight = 127.0f;
120 120
@@ -213,10 +213,10 @@ namespace OpenSim.Region.Environment.Scenes
213 get { return m_invulnerable; } 213 get { return m_invulnerable; }
214 } 214 }
215 215
216 public float GodLevel 216 public float GodLevel
217 { 217 {
218 get { return m_godlevel; } 218 get { return m_godlevel; }
219 } 219 }
220 220
221 private readonly ulong m_regionHandle; 221 private readonly ulong m_regionHandle;
222 222
@@ -260,7 +260,7 @@ namespace OpenSim.Region.Environment.Scenes
260 /// <summary> 260 /// <summary>
261 /// This works out to be the ClientView object associated with this avatar, or it's client connection manager 261 /// This works out to be the ClientView object associated with this avatar, or it's client connection manager
262 /// </summary> 262 /// </summary>
263 private IClientAPI m_controllingClient; 263 private IClientAPI m_controllingClient;
264 264
265 protected PhysicsActor m_physicsActor; 265 protected PhysicsActor m_physicsActor;
266 266
@@ -350,7 +350,7 @@ namespace OpenSim.Region.Environment.Scenes
350 /// <summary> 350 /// <summary>
351 /// If this is true, agent doesn't have a representation in this scene. 351 /// If this is true, agent doesn't have a representation in this scene.
352 /// this is an agent 'looking into' this scene from a nearby scene(region) 352 /// this is an agent 'looking into' this scene from a nearby scene(region)
353 /// 353 ///
354 /// if False, this agent has a representation in this scene 354 /// if False, this agent has a representation in this scene
355 /// </summary> 355 /// </summary>
356 private bool m_isChildAgent = true; 356 private bool m_isChildAgent = true;
@@ -482,7 +482,7 @@ namespace OpenSim.Region.Environment.Scenes
482 } 482 }
483 483
484 /// <summary> 484 /// <summary>
485 /// Send updates to the client about prims which have been placed on the update queue. We don't 485 /// Send updates to the client about prims which have been placed on the update queue. We don't
486 /// necessarily send updates for all the parts on the queue, e.g. if an updates with a more recent 486 /// necessarily send updates for all the parts on the queue, e.g. if an updates with a more recent
487 /// timestamp has already been sent. 487 /// timestamp has already been sent.
488 /// </summary> 488 /// </summary>
@@ -498,12 +498,12 @@ namespace OpenSim.Region.Environment.Scenes
498 if (!m_gotAllObjectsInScene) 498 if (!m_gotAllObjectsInScene)
499 { 499 {
500 if (!m_isChildAgent || m_scene.m_seeIntoRegionFromNeighbor) 500 if (!m_isChildAgent || m_scene.m_seeIntoRegionFromNeighbor)
501 { 501 {
502 m_scene.SendAllSceneObjectsToClient(this); 502 m_scene.SendAllSceneObjectsToClient(this);
503 m_gotAllObjectsInScene = true; 503 m_gotAllObjectsInScene = true;
504 } 504 }
505 } 505 }
506 506
507 if (m_partsUpdateQueue.Count > 0) 507 if (m_partsUpdateQueue.Count > 0)
508 { 508 {
509 bool runUpdate = true; 509 bool runUpdate = true;
@@ -520,12 +520,12 @@ namespace OpenSim.Region.Environment.Scenes
520 if (update.LastFullUpdateTime < part.TimeStampFull) 520 if (update.LastFullUpdateTime < part.TimeStampFull)
521 { 521 {
522// m_log.DebugFormat( 522// m_log.DebugFormat(
523// "[SCENE PRESENCE]: Fully updating prim {0}, {1} - part timestamp {2}", 523// "[SCENE PRESENCE]: Fully updating prim {0}, {1} - part timestamp {2}",
524// part.Name, part.UUID, part.TimeStampFull); 524// part.Name, part.UUID, part.TimeStampFull);
525 525
526 part.SendFullUpdate(ControllingClient, GenerateClientFlags(part.UUID)); 526 part.SendFullUpdate(ControllingClient, GenerateClientFlags(part.UUID));
527 527
528 // We'll update to the part's timestamp rather than the current time to 528 // We'll update to the part's timestamp rather than the current time to
529 // avoid the race condition whereby the next tick occurs while we are 529 // avoid the race condition whereby the next tick occurs while we are
530 // doing this update. If this happened, then subsequent updates which occurred 530 // doing this update. If this happened, then subsequent updates which occurred
531 // on the same tick or the next tick of the last update would be ignored. 531 // on the same tick or the next tick of the last update would be ignored.
@@ -536,9 +536,9 @@ namespace OpenSim.Region.Environment.Scenes
536 else if (update.LastTerseUpdateTime <= part.TimeStampTerse) 536 else if (update.LastTerseUpdateTime <= part.TimeStampTerse)
537 { 537 {
538// m_log.DebugFormat( 538// m_log.DebugFormat(
539// "[SCENE PRESENCE]: Tersely updating prim {0}, {1} - part timestamp {2}", 539// "[SCENE PRESENCE]: Tersely updating prim {0}, {1} - part timestamp {2}",
540// part.Name, part.UUID, part.TimeStampTerse); 540// part.Name, part.UUID, part.TimeStampTerse);
541 541
542 part.SendTerseUpdate(ControllingClient); 542 part.SendTerseUpdate(ControllingClient);
543 543
544 update.LastTerseUpdateTime = part.TimeStampTerse; 544 update.LastTerseUpdateTime = part.TimeStampTerse;
@@ -575,15 +575,15 @@ namespace OpenSim.Region.Environment.Scenes
575 575
576 /// <summary> 576 /// <summary>
577 /// This turns a child agent, into a root agent 577 /// This turns a child agent, into a root agent
578 /// This is called when an agent teleports into a region, or if an 578 /// This is called when an agent teleports into a region, or if an
579 /// agent crosses into this region from a neighbor over the border 579 /// agent crosses into this region from a neighbor over the border
580 /// </summary> 580 /// </summary>
581 public void MakeRootAgent(LLVector3 pos, bool isFlying) 581 public void MakeRootAgent(LLVector3 pos, bool isFlying)
582 { 582 {
583// m_log.DebugFormat( 583// m_log.DebugFormat(
584// "[SCENEPRESENCE]: Upgrading child agent {0}, {1} to a root agent in {2}", 584// "[SCENEPRESENCE]: Upgrading child agent {0}, {1} to a root agent in {2}",
585// Name, UUID, m_scene.RegionInfo.RegionName); 585// Name, UUID, m_scene.RegionInfo.RegionName);
586 586
587 m_isChildAgent = false; 587 m_isChildAgent = false;
588 588
589 AbsolutePosition = pos; 589 AbsolutePosition = pos;
@@ -599,7 +599,7 @@ namespace OpenSim.Region.Environment.Scenes
599 //{ 599 //{
600 m_scene.SendAllSceneObjectsToClient(this); 600 m_scene.SendAllSceneObjectsToClient(this);
601 m_scene.LandChannel.SendLandUpdate(this, true); 601 m_scene.LandChannel.SendLandUpdate(this, true);
602 602
603 //m_gotAllObjectsInScene = true; 603 //m_gotAllObjectsInScene = true;
604 //} 604 //}
605 } 605 }
@@ -607,8 +607,8 @@ namespace OpenSim.Region.Environment.Scenes
607 /// <summary> 607 /// <summary>
608 /// This turns a root agent into a child agent 608 /// This turns a root agent into a child agent
609 /// when an agent departs this region for a neighbor, this gets called. 609 /// when an agent departs this region for a neighbor, this gets called.
610 /// 610 ///
611 /// It doesn't get called for a teleport. Reason being, an agent that 611 /// It doesn't get called for a teleport. Reason being, an agent that
612 /// teleports out may not be anywhere near this region 612 /// teleports out may not be anywhere near this region
613 /// </summary> 613 /// </summary>
614 public void MakeChildAgent() 614 public void MakeChildAgent()
@@ -616,15 +616,15 @@ namespace OpenSim.Region.Environment.Scenes
616 m_animations.Clear(); 616 m_animations.Clear();
617 617
618// m_log.DebugFormat( 618// m_log.DebugFormat(
619// "[SCENEPRESENCE]: Downgrading child agent {0}, {1} to a root agent in {2}", 619// "[SCENEPRESENCE]: Downgrading child agent {0}, {1} to a root agent in {2}",
620// Name, UUID, m_scene.RegionInfo.RegionName); 620// Name, UUID, m_scene.RegionInfo.RegionName);
621 621
622 Velocity = new LLVector3(0, 0, 0); 622 Velocity = new LLVector3(0, 0, 0);
623 m_isChildAgent = true; 623 m_isChildAgent = true;
624 m_scene.SwapRootAgentCount(true); 624 m_scene.SwapRootAgentCount(true);
625 RemoveFromPhysicalScene(); 625 RemoveFromPhysicalScene();
626 m_scene.EventManager.TriggerOnMakeChildAgent(this); 626 m_scene.EventManager.TriggerOnMakeChildAgent(this);
627 //this.Pos = new LLVector3(128, 128, 70); 627 //this.Pos = new LLVector3(128, 128, 70);
628 } 628 }
629 629
630 /// <summary> 630 /// <summary>
@@ -643,7 +643,7 @@ namespace OpenSim.Region.Environment.Scenes
643 } 643 }
644 644
645 /// <summary> 645 /// <summary>
646 /// 646 ///
647 /// </summary> 647 /// </summary>
648 /// <param name="pos"></param> 648 /// <param name="pos"></param>
649 public void Teleport(LLVector3 pos) 649 public void Teleport(LLVector3 pos)
@@ -656,7 +656,7 @@ namespace OpenSim.Region.Environment.Scenes
656 } 656 }
657 657
658 /// <summary> 658 /// <summary>
659 /// 659 ///
660 /// </summary> 660 /// </summary>
661 public void StopMovement() 661 public void StopMovement()
662 { 662 {
@@ -762,7 +762,7 @@ namespace OpenSim.Region.Environment.Scenes
762 uint flags = agentData.ControlFlags; 762 uint flags = agentData.ControlFlags;
763 LLQuaternion bodyRotation = agentData.BodyRotation; 763 LLQuaternion bodyRotation = agentData.BodyRotation;
764 764
765 // Camera location in world. We'll need to raytrace 765 // Camera location in world. We'll need to raytrace
766 // from this location from time to time. 766 // from this location from time to time.
767 m_CameraCenter.x = agentData.CameraCenter.X; 767 m_CameraCenter.x = agentData.CameraCenter.X;
768 m_CameraCenter.y = agentData.CameraCenter.Y; 768 m_CameraCenter.y = agentData.CameraCenter.Y;
@@ -815,7 +815,7 @@ namespace OpenSim.Region.Environment.Scenes
815 // m_AgentControlFlags = flags; 815 // m_AgentControlFlags = flags;
816 // m_headrotation = agentData.AgentData.HeadRotation; 816 // m_headrotation = agentData.AgentData.HeadRotation;
817 // m_state = agentData.AgentData.State; 817 // m_state = agentData.AgentData.State;
818 818
819 if (m_allowMovement) 819 if (m_allowMovement)
820 { 820 {
821 int i = 0; 821 int i = 0;
@@ -870,7 +870,7 @@ namespace OpenSim.Region.Environment.Scenes
870 i++; 870 i++;
871 } 871 }
872 } 872 }
873 // Cause the avatar to stop flying if it's colliding 873 // Cause the avatar to stop flying if it's colliding
874 // with something with the down arrow pressed. 874 // with something with the down arrow pressed.
875 875
876 // Skip if there's no physicsactor 876 // Skip if there's no physicsactor
@@ -886,7 +886,7 @@ namespace OpenSim.Region.Environment.Scenes
886 // Are the collision requirements fulfilled? 886 // Are the collision requirements fulfilled?
887 bool colliding = (m_physicsActor.IsColliding == true); 887 bool colliding = (m_physicsActor.IsColliding == true);
888 888
889 889
890 890
891 if (m_physicsActor.Flying && colliding && controlland) 891 if (m_physicsActor.Flying && colliding && controlland)
892 { 892 {
@@ -903,9 +903,9 @@ namespace OpenSim.Region.Environment.Scenes
903 UpdateMovementAnimations(); 903 UpdateMovementAnimations();
904 } 904 }
905 } 905 }
906 906
907 m_scene.EventManager.TriggerOnClientMovement(this); 907 m_scene.EventManager.TriggerOnClientMovement(this);
908 908
909 m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS); 909 m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
910 } 910 }
911 911
@@ -934,7 +934,7 @@ namespace OpenSim.Region.Environment.Scenes
934 934
935 m_pos += m_parentPosition + new LLVector3(0.0f, 0.0f, 2.0f*m_sitAvatarHeight); 935 m_pos += m_parentPosition + new LLVector3(0.0f, 0.0f, 2.0f*m_sitAvatarHeight);
936 m_parentPosition = new LLVector3(); 936 m_parentPosition = new LLVector3();
937 937
938 m_parentID = 0; 938 m_parentID = 0;
939 SendFullUpdateToAllClients(); 939 SendFullUpdateToAllClients();
940 940
@@ -949,10 +949,10 @@ namespace OpenSim.Region.Environment.Scenes
949 949
950 private void SendSitResponse(IClientAPI remoteClient, LLUUID targetID, LLVector3 offset) 950 private void SendSitResponse(IClientAPI remoteClient, LLUUID targetID, LLVector3 offset)
951 { 951 {
952
953 952
954 953
955 954
955
956 bool autopilot = true; 956 bool autopilot = true;
957 LLVector3 pos = new LLVector3(); 957 LLVector3 pos = new LLVector3();
958 LLQuaternion sitOrientation = new LLQuaternion(0, 0, 0, 1); 958 LLQuaternion sitOrientation = new LLQuaternion(0, 0, 0, 1);
@@ -1008,10 +1008,10 @@ namespace OpenSim.Region.Environment.Scenes
1008 } 1008 }
1009 1009
1010 ControllingClient.SendSitResponse(targetID, offset, sitOrientation, autopilot, LLVector3.Zero, LLVector3.Zero, false); 1010 ControllingClient.SendSitResponse(targetID, offset, sitOrientation, autopilot, LLVector3.Zero, LLVector3.Zero, false);
1011 1011
1012 // This calls HandleAgentSit twice, once from here, and the client calls 1012 // This calls HandleAgentSit twice, once from here, and the client calls
1013 // HandleAgentSit itself after it gets to the location 1013 // HandleAgentSit itself after it gets to the location
1014 // It doesn't get to the location until we've moved them there though 1014 // It doesn't get to the location until we've moved them there though
1015 // which happens in HandleAgentSit :P 1015 // which happens in HandleAgentSit :P
1016 if (!autopilot) 1016 if (!autopilot)
1017 HandleAgentSit(remoteClient, UUID); 1017 HandleAgentSit(remoteClient, UUID);
@@ -1256,7 +1256,7 @@ namespace OpenSim.Region.Environment.Scenes
1256 } 1256 }
1257 1257
1258 m_perfMonMS = System.Environment.TickCount; 1258 m_perfMonMS = System.Environment.TickCount;
1259 1259
1260 m_rotation = rotation; 1260 m_rotation = rotation;
1261 NewForce newVelocity = new NewForce(); 1261 NewForce newVelocity = new NewForce();
1262 Vector3 direc = rotation*vec; 1262 Vector3 direc = rotation*vec;
@@ -1268,9 +1268,9 @@ namespace OpenSim.Region.Environment.Scenes
1268 direc *= 4; 1268 direc *= 4;
1269 //bool controlland = (((m_AgentControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0) || ((m_AgentControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_NEG) != 0)); 1269 //bool controlland = (((m_AgentControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0) || ((m_AgentControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_NEG) != 0));
1270 //bool colliding = (m_physicsActor.IsColliding==true); 1270 //bool colliding = (m_physicsActor.IsColliding==true);
1271 //if (controlland) 1271 //if (controlland)
1272 // m_log.Info("[AGENT]: landCommand"); 1272 // m_log.Info("[AGENT]: landCommand");
1273 //if (colliding) 1273 //if (colliding)
1274 // m_log.Info("[AGENT]: colliding"); 1274 // m_log.Info("[AGENT]: colliding");
1275 //if (m_physicsActor.Flying && colliding && controlland) 1275 //if (m_physicsActor.Flying && colliding && controlland)
1276 //{ 1276 //{
@@ -1306,7 +1306,7 @@ namespace OpenSim.Region.Environment.Scenes
1306 #region Overridden Methods 1306 #region Overridden Methods
1307 1307
1308 /// <summary> 1308 /// <summary>
1309 /// 1309 ///
1310 /// </summary> 1310 /// </summary>
1311 public override void Update() 1311 public override void Update()
1312 { 1312 {
@@ -1383,7 +1383,7 @@ namespace OpenSim.Region.Environment.Scenes
1383 lastPhysPos = AbsolutePosition; 1383 lastPhysPos = AbsolutePosition;
1384 1384
1385 m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS); 1385 m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS);
1386 1386
1387 } 1387 }
1388 1388
1389 public void SendCoarseLocations() 1389 public void SendCoarseLocations()
@@ -1433,7 +1433,7 @@ namespace OpenSim.Region.Environment.Scenes
1433 foreach (ScenePresence avatar in avatars) 1433 foreach (ScenePresence avatar in avatars)
1434 { 1434 {
1435 SendFullUpdateToOtherClient(avatar); 1435 SendFullUpdateToOtherClient(avatar);
1436 1436
1437 if (avatar.LocalId != LocalId) 1437 if (avatar.LocalId != LocalId)
1438 { 1438 {
1439 if (!avatar.m_isChildAgent || m_scene.m_seeIntoRegionFromNeighbor) 1439 if (!avatar.m_isChildAgent || m_scene.m_seeIntoRegionFromNeighbor)
@@ -1448,7 +1448,7 @@ namespace OpenSim.Region.Environment.Scenes
1448 } 1448 }
1449 1449
1450 /// <summary> 1450 /// <summary>
1451 /// 1451 ///
1452 /// </summary> 1452 /// </summary>
1453 public void SendInitialData() 1453 public void SendInitialData()
1454 { 1454 {
@@ -1472,7 +1472,7 @@ namespace OpenSim.Region.Environment.Scenes
1472 } 1472 }
1473 1473
1474 /// <summary> 1474 /// <summary>
1475 /// 1475 ///
1476 /// </summary> 1476 /// </summary>
1477 /// <param name="client"></param> 1477 /// <param name="client"></param>
1478 public void SendOwnAppearance() 1478 public void SendOwnAppearance()
@@ -1481,7 +1481,7 @@ namespace OpenSim.Region.Environment.Scenes
1481 } 1481 }
1482 1482
1483 /// <summary> 1483 /// <summary>
1484 /// 1484 ///
1485 /// </summary> 1485 /// </summary>
1486 public void SendAppearanceToAllOtherAgents() 1486 public void SendAppearanceToAllOtherAgents()
1487 { 1487 {
@@ -1498,7 +1498,7 @@ namespace OpenSim.Region.Environment.Scenes
1498 } 1498 }
1499 1499
1500 public void SendAppearanceToOtherAgent(ScenePresence avatar) 1500 public void SendAppearanceToOtherAgent(ScenePresence avatar)
1501 { 1501 {
1502 avatar.ControllingClient.SendAppearance( 1502 avatar.ControllingClient.SendAppearance(
1503 m_appearance.Owner, 1503 m_appearance.Owner,
1504 m_appearance.VisualParams, 1504 m_appearance.VisualParams,
@@ -1522,7 +1522,7 @@ namespace OpenSim.Region.Environment.Scenes
1522 } 1522 }
1523 1523
1524 /// <summary> 1524 /// <summary>
1525 /// 1525 ///
1526 /// </summary> 1526 /// </summary>
1527 /// <param name="animations"></param> 1527 /// <param name="animations"></param>
1528 /// <param name="seqs"></param> 1528 /// <param name="seqs"></param>
@@ -1536,7 +1536,7 @@ namespace OpenSim.Region.Environment.Scenes
1536 } 1536 }
1537 1537
1538 /// <summary> 1538 /// <summary>
1539 /// 1539 ///
1540 /// </summary> 1540 /// </summary>
1541 public void SendAnimPack() 1541 public void SendAnimPack()
1542 { 1542 {
@@ -1568,7 +1568,7 @@ namespace OpenSim.Region.Environment.Scenes
1568 } 1568 }
1569 1569
1570 // Minimum Draw distance is 64 meters, the Radius of the draw distance sphere is 32m 1570 // Minimum Draw distance is 64 meters, the Radius of the draw distance sphere is 32m
1571 if (Util.GetDistanceTo(AbsolutePosition,m_LastChildAgentUpdatePosition) > 32) 1571 if (Util.GetDistanceTo(AbsolutePosition,m_LastChildAgentUpdatePosition) > 32)
1572 { 1572 {
1573 ChildAgentDataUpdate cadu = new ChildAgentDataUpdate(); 1573 ChildAgentDataUpdate cadu = new ChildAgentDataUpdate();
1574 cadu.ActiveGroupID=LLUUID.Zero.UUID; 1574 cadu.ActiveGroupID=LLUUID.Zero.UUID;
@@ -1593,14 +1593,14 @@ namespace OpenSim.Region.Environment.Scenes
1593 multiplier = 0.25f; 1593 multiplier = 0.25f;
1594 } 1594 }
1595 1595
1596 //m_log.Info("[NeighborThrottle]: " + m_scene.GetInaccurateNeighborCount().ToString() + " - m: " + multiplier.ToString()); 1596 //m_log.Info("[NeighborThrottle]: " + m_scene.GetInaccurateNeighborCount().ToString() + " - m: " + multiplier.ToString());
1597 cadu.throttles = ControllingClient.GetThrottlesPacked(multiplier); 1597 cadu.throttles = ControllingClient.GetThrottlesPacked(multiplier);
1598
1599 1598
1600
1601 1599
1602 1600
1603 cadu.Velocity = new sLLVector3(Velocity); 1601
1602
1603 cadu.Velocity = new sLLVector3(Velocity);
1604 m_scene.SendOutChildAgentUpdates(cadu,this); 1604 m_scene.SendOutChildAgentUpdates(cadu,this);
1605 m_LastChildAgentUpdatePosition.X = AbsolutePosition.X; 1605 m_LastChildAgentUpdatePosition.X = AbsolutePosition.X;
1606 m_LastChildAgentUpdatePosition.Y = AbsolutePosition.Y; 1606 m_LastChildAgentUpdatePosition.Y = AbsolutePosition.Y;
@@ -1681,9 +1681,9 @@ namespace OpenSim.Region.Environment.Scenes
1681 ulong neighbourHandle = Helpers.UIntsToLong((uint)(neighbourx * Constants.RegionSize), (uint)(neighboury * Constants.RegionSize)); 1681 ulong neighbourHandle = Helpers.UIntsToLong((uint)(neighbourx * Constants.RegionSize), (uint)(neighboury * Constants.RegionSize));
1682 SimpleRegionInfo neighbourRegion = m_scene.RequestNeighbouringRegionInfo(neighbourHandle); 1682 SimpleRegionInfo neighbourRegion = m_scene.RequestNeighbouringRegionInfo(neighbourHandle);
1683 if (neighbourRegion != null) 1683 if (neighbourRegion != null)
1684 { 1684 {
1685 // When the neighbour is informed of the border crossing, it will set up CAPS handlers for the avatar 1685 // When the neighbour is informed of the border crossing, it will set up CAPS handlers for the avatar
1686 // This means we need to remove the current caps handler here and possibly compensate later, 1686 // This means we need to remove the current caps handler here and possibly compensate later,
1687 // in case both scenes are being hosted on the same region server. Messy 1687 // in case both scenes are being hosted on the same region server. Messy
1688 m_scene.RemoveCapsHandler(UUID); 1688 m_scene.RemoveCapsHandler(UUID);
1689 newpos = newpos + (vel); 1689 newpos = newpos + (vel);
@@ -1691,17 +1691,17 @@ namespace OpenSim.Region.Environment.Scenes
1691 m_scene.InformNeighbourOfCrossing(neighbourHandle, m_controllingClient.AgentId, newpos, 1691 m_scene.InformNeighbourOfCrossing(neighbourHandle, m_controllingClient.AgentId, newpos,
1692 m_physicsActor.Flying); 1692 m_physicsActor.Flying);
1693 if (res) 1693 if (res)
1694 { 1694 {
1695 AgentCircuitData circuitdata = m_controllingClient.RequestClientInfo(); 1695 AgentCircuitData circuitdata = m_controllingClient.RequestClientInfo();
1696 1696
1697 // TODO Should construct this behind a method 1697 // TODO Should construct this behind a method
1698 string capsPath = 1698 string capsPath =
1699 "http://" + neighbourRegion.ExternalHostName + ":" + neighbourRegion.HttpPort 1699 "http://" + neighbourRegion.ExternalHostName + ":" + neighbourRegion.HttpPort
1700 + "/CAPS/" + circuitdata.CapsPath + "0000/"; 1700 + "/CAPS/" + circuitdata.CapsPath + "0000/";
1701 1701
1702 m_log.DebugFormat( 1702 m_log.DebugFormat(
1703 "[CAPS]: Sending new CAPS seed url {0} to client {1}", capsPath, m_uuid); 1703 "[CAPS]: Sending new CAPS seed url {0} to client {1}", capsPath, m_uuid);
1704 1704
1705 m_controllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint, 1705 m_controllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint,
1706 capsPath); 1706 capsPath);
1707 MakeChildAgent(); 1707 MakeChildAgent();
@@ -1742,17 +1742,17 @@ namespace OpenSim.Region.Environment.Scenes
1742 /// </summary> 1742 /// </summary>
1743 public void ChildAgentDataUpdate(ChildAgentDataUpdate cAgentData, uint tRegionX, uint tRegionY, uint rRegionX, uint rRegionY) 1743 public void ChildAgentDataUpdate(ChildAgentDataUpdate cAgentData, uint tRegionX, uint tRegionY, uint rRegionX, uint rRegionY)
1744 { 1744 {
1745 // 1745 //
1746 int shiftx = ((int)rRegionX - (int)tRegionX) * (int)Constants.RegionSize; 1746 int shiftx = ((int)rRegionX - (int)tRegionX) * (int)Constants.RegionSize;
1747 int shifty = ((int)rRegionY - (int)tRegionY) * (int)Constants.RegionSize; 1747 int shifty = ((int)rRegionY - (int)tRegionY) * (int)Constants.RegionSize;
1748 1748
1749 m_DrawDistance = cAgentData.drawdistance; 1749 m_DrawDistance = cAgentData.drawdistance;
1750 m_pos = new LLVector3(cAgentData.Position.x + shiftx, cAgentData.Position.y + shifty, cAgentData.Position.z); 1750 m_pos = new LLVector3(cAgentData.Position.x + shiftx, cAgentData.Position.y + shifty, cAgentData.Position.z);
1751 1751
1752 // It's hard to say here.. We can't really tell where the camera position is unless it's in world cordinates from the sending region 1752 // It's hard to say here.. We can't really tell where the camera position is unless it's in world cordinates from the sending region
1753 m_CameraCenter = 1753 m_CameraCenter =
1754 new Vector3(cAgentData.cameraPosition.x, cAgentData.cameraPosition.y, cAgentData.cameraPosition.z); 1754 new Vector3(cAgentData.cameraPosition.x, cAgentData.cameraPosition.y, cAgentData.cameraPosition.z);
1755 1755
1756 1756
1757 m_godlevel = cAgentData.godlevel; 1757 m_godlevel = cAgentData.godlevel;
1758 SetHeight(cAgentData.AVHeight); 1758 SetHeight(cAgentData.AVHeight);
@@ -1793,8 +1793,8 @@ namespace OpenSim.Region.Environment.Scenes
1793 } 1793 }
1794 catch (NullReferenceException) 1794 catch (NullReferenceException)
1795 { 1795 {
1796 // Under extreme load, this returns a NullReference Exception that we can ignore. 1796 // Under extreme load, this returns a NullReference Exception that we can ignore.
1797 // Ignoring this causes no movement to be sent to the physics engine... 1797 // Ignoring this causes no movement to be sent to the physics engine...
1798 // which when the scene is moving at 1 frame every 10 seconds, it doesn't really matter! 1798 // which when the scene is moving at 1 frame every 10 seconds, it doesn't really matter!
1799 } 1799 }
1800 m_newForce = true; 1800 m_newForce = true;
@@ -1809,12 +1809,12 @@ namespace OpenSim.Region.Environment.Scenes
1809 1809
1810 static ScenePresence() 1810 static ScenePresence()
1811 { 1811 {
1812 1812
1813 LLObject.TextureEntry textu = AvatarAppearance.GetDefaultTexture(); 1813 LLObject.TextureEntry textu = AvatarAppearance.GetDefaultTexture();
1814 DefaultTexture = textu.ToBytes(); 1814 DefaultTexture = textu.ToBytes();
1815 } 1815 }
1816 1816
1817 [Serializable] 1817 [Serializable]
1818 public class NewForce 1818 public class NewForce
1819 { 1819 {
1820 public float X; 1820 public float X;
@@ -1826,8 +1826,8 @@ namespace OpenSim.Region.Environment.Scenes
1826 } 1826 }
1827 } 1827 }
1828 1828
1829 [Serializable] 1829 [Serializable]
1830 public class ScenePartUpdate : ISerializable 1830 public class ScenePartUpdate : ISerializable
1831 { 1831 {
1832 public LLUUID FullID; 1832 public LLUUID FullID;
1833 public uint LastFullUpdateTime; 1833 public uint LastFullUpdateTime;
@@ -1883,7 +1883,7 @@ namespace OpenSim.Region.Environment.Scenes
1883 public void AddToPhysicalScene() 1883 public void AddToPhysicalScene()
1884 { 1884 {
1885 PhysicsScene scene = m_scene.PhysicsScene; 1885 PhysicsScene scene = m_scene.PhysicsScene;
1886 1886
1887 PhysicsVector pVec = 1887 PhysicsVector pVec =
1888 new PhysicsVector(AbsolutePosition.X, AbsolutePosition.Y, 1888 new PhysicsVector(AbsolutePosition.X, AbsolutePosition.Y,
1889 AbsolutePosition.Z); 1889 AbsolutePosition.Z);
@@ -1936,7 +1936,7 @@ namespace OpenSim.Region.Environment.Scenes
1936 if (m_health <= 0) 1936 if (m_health <= 0)
1937 m_scene.EventManager.TriggerAvatarKill(killerObj, this); 1937 m_scene.EventManager.TriggerAvatarKill(killerObj, this);
1938 } 1938 }
1939 1939
1940 if (Velocity.X > 0 || Velocity.Y > 0) 1940 if (Velocity.X > 0 || Velocity.Y > 0)
1941 UpdateMovementAnimations(); 1941 UpdateMovementAnimations();
1942 } 1942 }
@@ -2161,7 +2161,7 @@ namespace OpenSim.Region.Environment.Scenes
2161 // m_partsUpdateQueue = (UpdateQueue)info.GetValue("m_partsUpdateQueue", typeof(UpdateQueue)); 2161 // m_partsUpdateQueue = (UpdateQueue)info.GetValue("m_partsUpdateQueue", typeof(UpdateQueue));
2162 2162
2163 /* 2163 /*
2164 Dictionary<Guid, ScenePartUpdate> updateTimes_work 2164 Dictionary<Guid, ScenePartUpdate> updateTimes_work
2165 = (Dictionary<Guid, ScenePartUpdate>)info.GetValue("m_updateTimes", typeof(Dictionary<Guid, ScenePartUpdate>)); 2165 = (Dictionary<Guid, ScenePartUpdate>)info.GetValue("m_updateTimes", typeof(Dictionary<Guid, ScenePartUpdate>));
2166 2166
2167 foreach (Guid id in updateTimes_work.Keys) 2167 foreach (Guid id in updateTimes_work.Keys)
@@ -2188,7 +2188,7 @@ namespace OpenSim.Region.Environment.Scenes
2188 (float)info.GetValue("lastKnownAllowedPosition.X", typeof(float)), 2188 (float)info.GetValue("lastKnownAllowedPosition.X", typeof(float)),
2189 (float)info.GetValue("lastKnownAllowedPosition.Y", typeof(float)), 2189 (float)info.GetValue("lastKnownAllowedPosition.Y", typeof(float)),
2190 (float)info.GetValue("lastKnownAllowedPosition.Z", typeof(float))); 2190 (float)info.GetValue("lastKnownAllowedPosition.Z", typeof(float)));
2191 2191
2192 sentMessageAboutRestrictedParcelFlyingDown = (bool)info.GetValue("sentMessageAboutRestrictedParcelFlyingDown", typeof(bool)); 2192 sentMessageAboutRestrictedParcelFlyingDown = (bool)info.GetValue("sentMessageAboutRestrictedParcelFlyingDown", typeof(bool));
2193 2193
2194 m_LastChildAgentUpdatePosition 2194 m_LastChildAgentUpdatePosition
@@ -2196,7 +2196,7 @@ namespace OpenSim.Region.Environment.Scenes
2196 (float)info.GetValue("m_LastChildAgentUpdatePosition.X", typeof(float)), 2196 (float)info.GetValue("m_LastChildAgentUpdatePosition.X", typeof(float)),
2197 (float)info.GetValue("m_LastChildAgentUpdatePosition.Y", typeof(float)), 2197 (float)info.GetValue("m_LastChildAgentUpdatePosition.Y", typeof(float)),
2198 (float)info.GetValue("m_LastChildAgentUpdatePosition.Z", typeof(float))); 2198 (float)info.GetValue("m_LastChildAgentUpdatePosition.Z", typeof(float)));
2199 2199
2200 m_perfMonMS = (int)info.GetValue("m_perfMonMS", typeof(int)); 2200 m_perfMonMS = (int)info.GetValue("m_perfMonMS", typeof(int));
2201 m_AgentControlFlags = (uint)info.GetValue("m_AgentControlFlags", typeof(uint)); 2201 m_AgentControlFlags = (uint)info.GetValue("m_AgentControlFlags", typeof(uint));
2202 2202
@@ -2246,7 +2246,7 @@ namespace OpenSim.Region.Environment.Scenes
2246 info.AddValue("m_sitAvatarHeight", m_sitAvatarHeight); 2246 info.AddValue("m_sitAvatarHeight", m_sitAvatarHeight);
2247 info.AddValue("m_godlevel", m_godlevel); 2247 info.AddValue("m_godlevel", m_godlevel);
2248 info.AddValue("m_setAlwaysRun", m_setAlwaysRun); 2248 info.AddValue("m_setAlwaysRun", m_setAlwaysRun);
2249 2249
2250 // Quaternion 2250 // Quaternion
2251 info.AddValue("m_bodyRot.w", m_bodyRot.w); 2251 info.AddValue("m_bodyRot.w", m_bodyRot.w);
2252 info.AddValue("m_bodyRot.x", m_bodyRot.x); 2252 info.AddValue("m_bodyRot.x", m_bodyRot.x);
@@ -2374,7 +2374,7 @@ namespace OpenSim.Region.Environment.Scenes
2374 2374
2375 public void RegisterControlEventsToScript(int controls, int accept, int pass_on, uint Obj_localID, LLUUID Script_item_LLUUID) 2375 public void RegisterControlEventsToScript(int controls, int accept, int pass_on, uint Obj_localID, LLUUID Script_item_LLUUID)
2376 { 2376 {
2377 2377
2378 ScriptControllers obj = new ScriptControllers(); 2378 ScriptControllers obj = new ScriptControllers();
2379 obj.ignoreControls = ScriptControlled.CONTROL_ZERO; 2379 obj.ignoreControls = ScriptControlled.CONTROL_ZERO;
2380 obj.eventControls = ScriptControlled.CONTROL_ZERO; 2380 obj.eventControls = ScriptControlled.CONTROL_ZERO;
@@ -2386,7 +2386,7 @@ namespace OpenSim.Region.Environment.Scenes
2386 IgnoredControls |= (ScriptControlled)controls; 2386 IgnoredControls |= (ScriptControlled)controls;
2387 obj.ignoreControls = (ScriptControlled)controls; 2387 obj.ignoreControls = (ScriptControlled)controls;
2388 } 2388 }
2389 2389
2390 if (pass_on == 0 && accept == 1) 2390 if (pass_on == 0 && accept == 1)
2391 { 2391 {
2392 IgnoredControls |= (ScriptControlled)controls; 2392 IgnoredControls |= (ScriptControlled)controls;
@@ -2432,7 +2432,7 @@ namespace OpenSim.Region.Environment.Scenes
2432 lock (scriptedcontrols) 2432 lock (scriptedcontrols)
2433 { 2433 {
2434 scriptedcontrols.Clear(); 2434 scriptedcontrols.Clear();
2435 } 2435 }
2436 ControllingClient.SendTakeControls(int.MaxValue, false, false); 2436 ControllingClient.SendTakeControls(int.MaxValue, false, false);
2437 } 2437 }
2438 2438
@@ -2454,7 +2454,7 @@ namespace OpenSim.Region.Environment.Scenes
2454 2454
2455 internal void SendControlToScripts(uint flags, ScriptControlled lastFlags) 2455 internal void SendControlToScripts(uint flags, ScriptControlled lastFlags)
2456 { 2456 {
2457 2457
2458 ScriptControlled allflags = ScriptControlled.CONTROL_ZERO; 2458 ScriptControlled allflags = ScriptControlled.CONTROL_ZERO;
2459 2459
2460 if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_AT_POS) != 0 || (flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_POS) != 0) 2460 if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_AT_POS) != 0 || (flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_POS) != 0)
@@ -2497,10 +2497,10 @@ namespace OpenSim.Region.Environment.Scenes
2497 { 2497 {
2498 allflags |= ScriptControlled.CONTROL_LBUTTON; 2498 allflags |= ScriptControlled.CONTROL_LBUTTON;
2499 } 2499 }
2500 2500
2501 ScriptControlled held = ScriptControlled.CONTROL_ZERO; 2501 ScriptControlled held = ScriptControlled.CONTROL_ZERO;
2502 ScriptControlled change = ScriptControlled.CONTROL_ZERO; 2502 ScriptControlled change = ScriptControlled.CONTROL_ZERO;
2503 2503
2504 foreach (ScriptControlled DCF in Enum.GetValues(typeof (ScriptControlled))) 2504 foreach (ScriptControlled DCF in Enum.GetValues(typeof (ScriptControlled)))
2505 { 2505 {
2506 // Held 2506 // Held
@@ -2539,7 +2539,7 @@ namespace OpenSim.Region.Environment.Scenes
2539 } 2539 }
2540 } 2540 }
2541 LastCommands = allflags; 2541 LastCommands = allflags;
2542 2542
2543 } 2543 }
2544 internal uint RemoveIgnoredControls(uint flags, ScriptControlled Ignored) 2544 internal uint RemoveIgnoredControls(uint flags, ScriptControlled Ignored)
2545 { 2545 {