diff options
Diffstat (limited to 'OpenSim/Region')
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 | ||