Another stab at mantis #5256

viewer-2-initial-appearance
Diva Canto 2010-12-10 23:16:26 -08:00
parent d8fd917076
commit ccb4f958c0
2 changed files with 32 additions and 25 deletions

View File

@ -3707,6 +3707,21 @@ namespace OpenSim.Region.ClientStack.LindenUDP
const float TIME_DILATION = 1.0f;
ushort timeDilation = Utils.FloatToUInt16(TIME_DILATION, 0.0f, 1.0f);
if (terseUpdateBlocks.IsValueCreated)
{
List<ImprovedTerseObjectUpdatePacket.ObjectDataBlock> blocks = terseUpdateBlocks.Value;
ImprovedTerseObjectUpdatePacket packet = new ImprovedTerseObjectUpdatePacket();
packet.RegionData.RegionHandle = m_scene.RegionInfo.RegionHandle;
packet.RegionData.TimeDilation = timeDilation;
packet.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[blocks.Count];
for (int i = 0; i < blocks.Count; i++)
packet.ObjectData[i] = blocks[i];
OutPacket(packet, ThrottleOutPacketType.Unknown, true);
}
if (objectUpdateBlocks.IsValueCreated)
{
List<ObjectUpdatePacket.ObjectDataBlock> blocks = objectUpdateBlocks.Value;
@ -3719,7 +3734,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
for (int i = 0; i < blocks.Count; i++)
packet.ObjectData[i] = blocks[i];
OutPacket(packet, ThrottleOutPacketType.Task, true);
OutPacket(packet, ThrottleOutPacketType.Unknown, true);
}
if (compressedUpdateBlocks.IsValueCreated)
@ -3734,23 +3749,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
for (int i = 0; i < blocks.Count; i++)
packet.ObjectData[i] = blocks[i];
OutPacket(packet, ThrottleOutPacketType.Task, true);
OutPacket(packet, ThrottleOutPacketType.Unknown, true);
}
if (terseUpdateBlocks.IsValueCreated)
{
List<ImprovedTerseObjectUpdatePacket.ObjectDataBlock> blocks = terseUpdateBlocks.Value;
ImprovedTerseObjectUpdatePacket packet = new ImprovedTerseObjectUpdatePacket();
packet.RegionData.RegionHandle = m_scene.RegionInfo.RegionHandle;
packet.RegionData.TimeDilation = timeDilation;
packet.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[blocks.Count];
for (int i = 0; i < blocks.Count; i++)
packet.ObjectData[i] = blocks[i];
OutPacket(packet, ThrottleOutPacketType.Task, true);
}
}
#endregion Packet Sending

View File

@ -1217,6 +1217,8 @@ namespace OpenSim.Region.Framework.Scenes
// return;
//}
//m_log.DebugFormat("DEBUG: HandleAgentUpdate {0}", (AgentManager.ControlFlags)agentData.ControlFlags);
m_perfMonMS = Util.EnvironmentTickCount();
++m_movementUpdateCount;
@ -1393,7 +1395,7 @@ namespace OpenSim.Region.Framework.Scenes
try
{
agent_control_v3 += dirVectors[i];
//m_log.DebugFormat("[Motion]: {0}, {1}",i, dirVectors[i]);
//m_log.DebugFormat("[Motion]: (0) {0}, {1}",i, dirVectors[i]);
}
catch (IndexOutOfRangeException)
{
@ -1471,6 +1473,7 @@ namespace OpenSim.Region.Framework.Scenes
Vector3 LocalVectorToTarget2D = new Vector3((float)(LocalVectorToTarget3D.X), (float)(LocalVectorToTarget3D.Y), 0f);
LocalVectorToTarget2D.Normalize();
agent_control_v3 += LocalVectorToTarget2D;
//m_log.DebugFormat("[Motion]: (1) {0}, {1}", i, dirVectors[i]);
// update avatar movement flags. the avatar coordinate system is as follows:
//
@ -1554,7 +1557,7 @@ namespace OpenSim.Region.Framework.Scenes
// If the agent update does move the avatar, then calculate the force ready for the velocity update,
// which occurs later in the main scene loop
if (update_movementflag || (update_rotation && DCFlagKeyPressed))
if ((update_movementflag) || (update_rotation && DCFlagKeyPressed))
{
//m_log.DebugFormat("{0} {1}", update_movementflag, (update_rotation && DCFlagKeyPressed));
//m_log.DebugFormat(
@ -2327,6 +2330,9 @@ namespace OpenSim.Region.Framework.Scenes
!m_pos.ApproxEquals(m_lastPosition, POSITION_TOLERANCE))
//Environment.TickCount - m_lastTerseSent > TIME_MS_TOLERANCE)
{
//m_log.DebugFormat("XXX SendTerseUpdateToAllClients {0}-{1} {2}-{3} {4}-{5}",
// m_bodyRot, m_lastRotation, Velocity, m_lastVelocity, m_pos, m_lastPosition);
SendTerseUpdateToAllClients();
// Update the "last" values