aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs18
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs25
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs7
3 files changed, 39 insertions, 11 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
index 1d4c7f0..a4fe81c 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
@@ -498,24 +498,28 @@ namespace OpenSim.Region.ClientStack.Linden
498 498
499 if (inventoryType == "sound") 499 if (inventoryType == "sound")
500 { 500 {
501 inType = 1; 501 inType = (sbyte)InventoryType.Sound;
502 assType = 1; 502 assType = (sbyte)AssetType.Sound;
503 }
504 else if (inventoryType == "snapshot")
505 {
506 inType = (sbyte)InventoryType.Snapshot;
503 } 507 }
504 else if (inventoryType == "animation") 508 else if (inventoryType == "animation")
505 { 509 {
506 inType = 19; 510 inType = (sbyte)InventoryType.Animation;
507 assType = 20; 511 assType = (sbyte)AssetType.Animation;
508 } 512 }
509 else if (inventoryType == "wearable") 513 else if (inventoryType == "wearable")
510 { 514 {
511 inType = 18; 515 inType = (sbyte)InventoryType.Wearable;
512 switch (assetType) 516 switch (assetType)
513 { 517 {
514 case "bodypart": 518 case "bodypart":
515 assType = 13; 519 assType = (sbyte)AssetType.Bodypart;
516 break; 520 break;
517 case "clothing": 521 case "clothing":
518 assType = 5; 522 assType = (sbyte)AssetType.Clothing;
519 break; 523 break;
520 } 524 }
521 } 525 }
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 8a6270d..a9ae71c 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -5063,7 +5063,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5063// acceleration = new Vector3(1, 0, 0); 5063// acceleration = new Vector3(1, 0, 0);
5064 5064
5065 angularVelocity = presence.AngularVelocity; 5065 angularVelocity = presence.AngularVelocity;
5066
5067 // Whilst not in mouselook, an avatar will transmit only the Z rotation as this is the only axis
5068 // it rotates around.
5069 // In mouselook, X and Y co-ordinate will also be sent but when used in Rotation, these cause unwanted
5070 // excessive up and down movements of the camera when looking up and down.
5071 // See http://opensimulator.org/mantis/view.php?id=3274
5072 // This does not affect head movement, since this is controlled entirely by camera movement rather than
5073 // body rotation. It does not affect sitting avatar since it's the sitting part rotation that takes
5074 // effect, not the avatar rotation.
5066 rotation = presence.Rotation; 5075 rotation = presence.Rotation;
5076 rotation.X = 0;
5077 rotation.Y = 0;
5067 5078
5068 if (sendTexture) 5079 if (sendTexture)
5069 textureEntry = presence.Appearance.Texture.GetBytes(); 5080 textureEntry = presence.Appearance.Texture.GetBytes();
@@ -5179,7 +5190,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5179 data.OffsetPosition.ToBytes(objectData, 16); 5190 data.OffsetPosition.ToBytes(objectData, 16);
5180// data.Velocity.ToBytes(objectData, 28); 5191// data.Velocity.ToBytes(objectData, 28);
5181// data.Acceleration.ToBytes(objectData, 40); 5192// data.Acceleration.ToBytes(objectData, 40);
5182 data.Rotation.ToBytes(objectData, 52); 5193
5194 // Whilst not in mouselook, an avatar will transmit only the Z rotation as this is the only axis
5195 // it rotates around.
5196 // In mouselook, X and Y co-ordinate will also be sent but when used in Rotation, these cause unwanted
5197 // excessive up and down movements of the camera when looking up and down.
5198 // See http://opensimulator.org/mantis/view.php?id=3274
5199 // This does not affect head movement, since this is controlled entirely by camera movement rather than
5200 // body rotation. It does not affect sitting avatar since it's the sitting part rotation that takes
5201 // effect, not the avatar rotation.
5202 Quaternion rot = data.Rotation;
5203 rot.X = 0;
5204 rot.Y = 0;
5205 rot.ToBytes(objectData, 52);
5183 //data.AngularVelocity.ToBytes(objectData, 64); 5206 //data.AngularVelocity.ToBytes(objectData, 64);
5184 5207
5185 ObjectUpdatePacket.ObjectDataBlock update = new ObjectUpdatePacket.ObjectDataBlock(); 5208 ObjectUpdatePacket.ObjectDataBlock update = new ObjectUpdatePacket.ObjectDataBlock();
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 7ae9be5..8eb6f7d 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1645,12 +1645,13 @@ namespace OpenSim.Region.Framework.Scenes
1645 1645
1646 if (AllowMovement && !SitGround) 1646 if (AllowMovement && !SitGround)
1647 { 1647 {
1648 Quaternion bodyRotation = agentData.BodyRotation; 1648// m_log.DebugFormat("[SCENE PRESENCE]: Initial body rotation {0} for {1}", agentData.BodyRotation, Name);
1649
1649 bool update_rotation = false; 1650 bool update_rotation = false;
1650 1651
1651 if (bodyRotation != Rotation) 1652 if (agentData.BodyRotation != Rotation)
1652 { 1653 {
1653 Rotation = bodyRotation; 1654 Rotation = agentData.BodyRotation;
1654 update_rotation = true; 1655 update_rotation = true;
1655 } 1656 }
1656 1657