diff --git a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs
index 3bb7c03b37..61fc498ff8 100644
--- a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs
+++ b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs
@@ -175,18 +175,15 @@ namespace OpenSim.Region.ClientStack
}
break;
case PacketType.AgentAnimation:
- if (!m_child)
+ AgentAnimationPacket AgentAni = (AgentAnimationPacket)Pack;
+ for (int i = 0; i < AgentAni.AnimationList.Length; i++)
{
- AgentAnimationPacket AgentAni = (AgentAnimationPacket)Pack;
- for (int i = 0; i < AgentAni.AnimationList.Length; i++)
+ if (AgentAni.AnimationList[i].StartAnim)
{
- if (AgentAni.AnimationList[i].StartAnim)
- {
- if (OnStartAnim != null)
- {
- OnStartAnim(this, AgentAni.AnimationList[i].AnimID, 1);
- }
+ if (OnStartAnim != null)
+ {
+ OnStartAnim(this, AgentAni.AnimationList[i].AnimID, 1);
}
}
}
@@ -352,8 +349,8 @@ namespace OpenSim.Region.ClientStack
break;
case PacketType.AssetUploadRequest:
AssetUploadRequestPacket request = (AssetUploadRequestPacket)Pack;
- // Console.WriteLine("upload request " + Pack.ToString());
- // Console.WriteLine("upload request was for assetid: " + request.AssetBlock.TransactionID.Combine(this.SecureSessionID).ToStringHyphenated());
+ // Console.WriteLine("upload request " + Pack.ToString());
+ // Console.WriteLine("upload request was for assetid: " + request.AssetBlock.TransactionID.Combine(this.SecureSessionID).ToStringHyphenated());
if (OnAssetUploadRequest != null)
{
OnAssetUploadRequest(this, request.AssetBlock.TransactionID.Combine(this.SecureSessionID), request.AssetBlock.TransactionID, request.AssetBlock.Type, request.AssetBlock.AssetData, request.AssetBlock.StoreLocal);
diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs
index 2341b7b48e..dcca31c86d 100644
--- a/OpenSim/Region/ClientStack/ClientView.cs
+++ b/OpenSim/Region/ClientStack/ClientView.cs
@@ -62,7 +62,6 @@ namespace OpenSim.Region.ClientStack
public LLUUID SecureSessionID = LLUUID.Zero;
public string firstName;
public string lastName;
- public bool m_child = false;
private UseCircuitCodePacket cirpack;
public Thread ClientThread;
public LLVector3 startpos;
diff --git a/OpenSim/Region/ClientStack/PacketServer.cs b/OpenSim/Region/ClientStack/PacketServer.cs
index 3b26a5919b..f02f105a2c 100644
--- a/OpenSim/Region/ClientStack/PacketServer.cs
+++ b/OpenSim/Region/ClientStack/PacketServer.cs
@@ -71,53 +71,6 @@ namespace OpenSim.Region.ClientStack
m_clientManager.InPacket(circuitCode, packet);
}
- ///
- ///
- ///
- ///
- ///
- public virtual bool AddNewCircuitCodeClient(uint circuitCode)
- {
- return false;
- }
-
- ///
- ///
- ///
- ///
- public virtual void SendPacketToAllClients(Packet packet)
- {
-
- }
-
- ///
- ///
- ///
- ///
- ///
- public virtual void SendPacketToAllExcept(Packet packet, IClientAPI simClient)
- {
-
- }
-
- ///
- ///
- ///
- ///
- ///
- public virtual void AddClientPacketHandler(PacketType packetType, PacketMethod handler)
- {
-
- }
-
- ///
- ///
- ///
- public virtual void RegisterClientPacketHandlers()
- {
-
- }
-
protected virtual IClientAPI CreateNewClient(EndPoint remoteEP, UseCircuitCodePacket initialcirpack, ClientManager clientManager, IScene scene, AssetCache assetCache, PacketServer packServer, AgentCircuitManager authenSessions)
{
return new ClientView(remoteEP, initialcirpack, clientManager, scene, assetCache, packServer, authenSessions );
diff --git a/OpenSim/Region/ClientStack/UDPServer.cs b/OpenSim/Region/ClientStack/UDPServer.cs
index 6d72853b28..64ed4b4655 100644
--- a/OpenSim/Region/ClientStack/UDPServer.cs
+++ b/OpenSim/Region/ClientStack/UDPServer.cs
@@ -133,7 +133,7 @@ namespace OpenSim.Region.ClientStack
else if (packet.Type == PacketType.UseCircuitCode)
{
// new client
- this.AddNewClient(packet);
+ AddNewClient(packet);
}
else
{ // invalid client
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index df125aad71..3a45e23ea0 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -706,7 +706,9 @@ namespace OpenSim.Region.Environment.Scenes
{
SubscribeToClientEvents(client);
m_estateManager.sendRegionHandshake(client);
+
CreateAndAddScenePresence(client, child);
+
m_LandManager.sendParcelOverlay(client);
commsManager.UserProfiles.AddNewUser(client.AgentId);
commsManager.TransactionsManager.AddUser(client.AgentId);
@@ -791,13 +793,7 @@ namespace OpenSim.Region.Environment.Scenes
MainLog.Instance.Verbose(RegionInfo.RegionName + ": Creating new root agent.");
MainLog.Instance.Verbose(RegionInfo.RegionName + ": Adding Physical agent.");
- PhysicsVector pVec =
- new PhysicsVector(newAvatar.AbsolutePosition.X, newAvatar.AbsolutePosition.Y,
- newAvatar.AbsolutePosition.Z);
- lock (m_syncRoot)
- {
- newAvatar.PhysActor = phyScene.AddAvatar(pVec);
- }
+ newAvatar.AddToPhysicalScene( );
}
lock (Entities)
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 64c6eaab8d..811c962df5 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -265,17 +265,17 @@ namespace OpenSim.Region.Environment.Scenes
}
}
- ///
- ///
- ///
- ///
public void MakeAvatar(LLVector3 pos, bool isFlying)
{
- //this.childAvatar = false;
- AbsolutePosition = pos;
- _physActor.Flying = isFlying;
newAvatar = true;
childAgent = false;
+
+ AbsolutePosition = pos;
+
+ AddToPhysicalScene( );
+ _physActor.Flying = isFlying;
+
+
m_scene.SendAllSceneObjectsToClient(this);
}
@@ -283,9 +283,17 @@ namespace OpenSim.Region.Environment.Scenes
{
Velocity = new LLVector3(0, 0, 0);
childAgent = true;
+
+ RemoveFromPhysicalScene();
+
//this.Pos = new LLVector3(128, 128, 70);
}
+ private void RemoveFromPhysicalScene()
+ {
+ m_scene.phyScene.RemoveAvatar( this.PhysActor );
+ }
+
///
///
///
@@ -832,7 +840,18 @@ namespace OpenSim.Region.Environment.Scenes
public override void SetText(string text, Vector3 color, double alpha)
{
- throw new Exception("The method or operation is not implemented.");
+ throw new Exception("Can't set Text on avatar.");
+ }
+
+ public void AddToPhysicalScene( )
+ {
+ PhysicsScene scene = m_scene.phyScene;
+
+ PhysicsVector pVec =
+ new PhysicsVector(AbsolutePosition.X, AbsolutePosition.Y,
+ AbsolutePosition.Z);
+
+ _physActor = scene.AddAvatar(pVec);
}
}
}
\ No newline at end of file