diff --git a/Programs/Simian/Extensions/AvatarManager.cs b/Programs/Simian/Extensions/AvatarManager.cs index 29a4e14a..65412757 100644 --- a/Programs/Simian/Extensions/AvatarManager.cs +++ b/Programs/Simian/Extensions/AvatarManager.cs @@ -337,7 +337,7 @@ namespace Simian.Extensions void AgentHeightWidthHandler(Packet packet, Agent agent) { - AgentHeightWidthPacket heightWidth = (AgentHeightWidthPacket)packet; + //AgentHeightWidthPacket heightWidth = (AgentHeightWidthPacket)packet; // TODO: These are the screen size dimensions. Useful when we start doing frustum culling //Logger.Log(String.Format("Agent wants to set height={0}, width={1}", diff --git a/Programs/Simian/Extensions/ConnectionManagement.cs b/Programs/Simian/Extensions/ConnectionManagement.cs index 5cd906e8..1ec2d551 100644 --- a/Programs/Simian/Extensions/ConnectionManagement.cs +++ b/Programs/Simian/Extensions/ConnectionManagement.cs @@ -71,8 +71,6 @@ namespace Simian.Extensions void LogoutRequestHandler(Packet packet, Agent agent) { - LogoutRequestPacket request = (LogoutRequestPacket)packet; - LogoutReplyPacket reply = new LogoutReplyPacket(); reply.AgentData.AgentID = agent.Avatar.ID; reply.AgentData.SessionID = agent.SessionID; diff --git a/Programs/Simian/Extensions/ImageDelivery.cs b/Programs/Simian/Extensions/ImageDelivery.cs index d4dba396..2e52199a 100644 --- a/Programs/Simian/Extensions/ImageDelivery.cs +++ b/Programs/Simian/Extensions/ImageDelivery.cs @@ -166,7 +166,7 @@ namespace Simian.Extensions } else { - bool bake = ((ImageType)block.Type == ImageType.Baked); + //bool bake = ((ImageType)block.Type == ImageType.Baked); // New download, check if we have this image Asset asset; diff --git a/Programs/Simian/Extensions/InventoryManager.cs b/Programs/Simian/Extensions/InventoryManager.cs index 87df7adb..891cd1ce 100644 --- a/Programs/Simian/Extensions/InventoryManager.cs +++ b/Programs/Simian/Extensions/InventoryManager.cs @@ -160,7 +160,8 @@ namespace Simian.Extensions FetchInventoryDescendentsPacket fetch = (FetchInventoryDescendentsPacket)packet; bool sendFolders = fetch.InventoryData.FetchFolders; bool sendItems = fetch.InventoryData.FetchItems; - InventorySortOrder order = (InventorySortOrder)fetch.InventoryData.SortOrder; + // TODO: Obey SortOrder + //InventorySortOrder order = (InventorySortOrder)fetch.InventoryData.SortOrder; Dictionary agentInventory = GetAgentInventory(agent.Avatar.ID); diff --git a/Programs/Simian/Extensions/LindenLogin.cs b/Programs/Simian/Extensions/LindenLogin.cs index 85df6a83..021245f1 100644 --- a/Programs/Simian/Extensions/LindenLogin.cs +++ b/Programs/Simian/Extensions/LindenLogin.cs @@ -196,9 +196,9 @@ namespace Simian.Extensions agent.LastLoginTime = Utils.DateTimeToUnixTime(DateTime.Now); // Get this machine's IP address - IPHostEntry addresses = Dns.GetHostByName(Dns.GetHostName()); - IPAddress simIP = addresses.AddressList.Length > 0 ? - addresses.AddressList[addresses.AddressList.Length - 1] : IPAddress.Loopback; + IPHostEntry entry = Dns.GetHostEntry(System.Environment.MachineName); + IPAddress simIP = entry.AddressList.Length > 0 ? + entry.AddressList[entry.AddressList.Length - 1] : IPAddress.Loopback; agent.CurrentRegionHandle = server.Scene.RegionHandle; agent.HomeRegionHandle = server.Scene.RegionHandle; diff --git a/Programs/Simian/Extensions/Movement.cs b/Programs/Simian/Extensions/Movement.cs index ebf1f8f0..198caba5 100644 --- a/Programs/Simian/Extensions/Movement.cs +++ b/Programs/Simian/Extensions/Movement.cs @@ -83,12 +83,12 @@ namespace Simian.Extensions bool heldBack = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG) == AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG; bool heldLeft = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS) == AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS; bool heldRight = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG) == AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG; - bool heldTurnLeft = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT) == AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT; - bool heldTurnRight = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT) == AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT; + //bool heldTurnLeft = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT) == AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT; + //bool heldTurnRight = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT) == AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT; bool heldUp = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) == AgentManager.ControlFlags.AGENT_CONTROL_UP_POS; bool heldDown = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) == AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG; bool flying = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) == AgentManager.ControlFlags.AGENT_CONTROL_FLY; - bool mouselook = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK) == AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK; + //bool mouselook = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK) == AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK; // direction in which the avatar is trying to move Vector3 move = Vector3.Zero; diff --git a/Programs/Simian/Extensions/ObjectManager.cs b/Programs/Simian/Extensions/ObjectManager.cs index ea584f46..98acd0ee 100644 --- a/Programs/Simian/Extensions/ObjectManager.cs +++ b/Programs/Simian/Extensions/ObjectManager.cs @@ -49,7 +49,7 @@ namespace Simian.Extensions Vector3 scale = add.ObjectData.Scale; PCode pcode = (PCode)add.ObjectData.PCode; PrimFlags flags = (PrimFlags)add.ObjectData.AddFlags; - bool bypassRaycast = (add.ObjectData.BypassRaycast == 1); + //bool bypassRaycast = (add.ObjectData.BypassRaycast == 1); bool rayEndIsIntersection = (add.ObjectData.RayEndIsIntersection == 1); #region Position Calculation @@ -518,8 +518,40 @@ namespace Simian.Extensions if (server.Scene.TryGetObject(block.ObjectLocalID, out obj)) { ExtraParamType type = (ExtraParamType)block.ParamType; + + if (block.ParamInUse) + { + switch (type) + { + case ExtraParamType.Flexible: + obj.Prim.Flexible = new Primitive.FlexibleData(block.ParamData, 0); + break; + case ExtraParamType.Light: + obj.Prim.Light = new Primitive.LightData(block.ParamData, 0); + break; + case ExtraParamType.Sculpt: + obj.Prim.Sculpt = new Primitive.SculptData(block.ParamData, 0); + break; + } + } + else + { + switch (type) + { + case ExtraParamType.Flexible: + obj.Prim.Flexible = null; + break; + case ExtraParamType.Light: + obj.Prim.Light = null; + break; + case ExtraParamType.Sculpt: + obj.Prim.Sculpt = null; + break; + } + } + + server.Scene.ObjectAdd(this, obj, obj.Prim.OwnerID, 0, PrimFlags.None); } - } } @@ -655,7 +687,7 @@ namespace Simian.Extensions if (server.Scene.TryGetObject(block.ObjectLocalID, out obj)) { UpdateType type = (UpdateType)block.Type; - bool linked = ((type & UpdateType.Linked) != 0); + //bool linked = ((type & UpdateType.Linked) != 0); int pos = 0; Vector3 position = obj.Prim.Position; Quaternion rotation = obj.Prim.Rotation; @@ -678,7 +710,7 @@ namespace Simian.Extensions pos += 12; // FIXME: Use this in linksets - bool uniform = ((type & UpdateType.Uniform) != 0); + //bool uniform = ((type & UpdateType.Uniform) != 0); } if (scaled) @@ -787,7 +819,6 @@ namespace Simian.Extensions } Vector3 direction = Vector3.Normalize(rayEnd - rayStart); - Ray ray = new Ray(rayStart, direction); // Get the mesh that has been transformed into world-space SimpleMesh mesh = null; @@ -802,7 +833,6 @@ namespace Simian.Extensions mesh = obj.GetWorldMesh(DetailLevel.Low, null); } - if (mesh != null) { // Iterate through all of the triangles in the mesh, doing a ray-triangle intersection diff --git a/Programs/Simian/Extensions/PeriscopeImageDelivery.cs b/Programs/Simian/Extensions/PeriscopeImageDelivery.cs index 1080fc28..facb21a8 100644 --- a/Programs/Simian/Extensions/PeriscopeImageDelivery.cs +++ b/Programs/Simian/Extensions/PeriscopeImageDelivery.cs @@ -60,7 +60,7 @@ namespace Simian.Extensions } else { - bool bake = ((ImageType)block.Type == ImageType.Baked); + //bool bake = ((ImageType)block.Type == ImageType.Baked); // New download, check if we have this image Asset asset; diff --git a/Programs/Simian/Extensions/PeriscopeMovement.cs b/Programs/Simian/Extensions/PeriscopeMovement.cs index af965ffe..34972f7d 100644 --- a/Programs/Simian/Extensions/PeriscopeMovement.cs +++ b/Programs/Simian/Extensions/PeriscopeMovement.cs @@ -84,12 +84,12 @@ namespace Simian.Extensions bool heldBack = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG) == AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG; bool heldLeft = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS) == AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS; bool heldRight = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG) == AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG; - bool heldTurnLeft = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT) == AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT; - bool heldTurnRight = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT) == AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT; + //bool heldTurnLeft = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT) == AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT; + //bool heldTurnRight = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT) == AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT; bool heldUp = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) == AgentManager.ControlFlags.AGENT_CONTROL_UP_POS; bool heldDown = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) == AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG; bool flying = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) == AgentManager.ControlFlags.AGENT_CONTROL_FLY; - bool mouselook = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK) == AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK; + //bool mouselook = (agent.ControlFlags & AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK) == AgentManager.ControlFlags.AGENT_CONTROL_MOUSELOOK; // direction in which the avatar is trying to move Vector3 move = Vector3.Zero; diff --git a/Programs/Simian/Extensions/PeriscopeTransferManager.cs b/Programs/Simian/Extensions/PeriscopeTransferManager.cs index 40e96065..ebed75e2 100644 --- a/Programs/Simian/Extensions/PeriscopeTransferManager.cs +++ b/Programs/Simian/Extensions/PeriscopeTransferManager.cs @@ -227,21 +227,21 @@ namespace Simian.Extensions } else if (source == SourceType.SimEstate) { - UUID agentID = new UUID(request.TransferInfo.Params, 0); - UUID sessionID = new UUID(request.TransferInfo.Params, 16); - EstateAssetType type = (EstateAssetType)Utils.BytesToInt(request.TransferInfo.Params, 32); + //UUID agentID = new UUID(request.TransferInfo.Params, 0); + //UUID sessionID = new UUID(request.TransferInfo.Params, 16); + //EstateAssetType type = (EstateAssetType)Utils.BytesToInt(request.TransferInfo.Params, 32); Logger.Log("Please implement estate asset transfers", Helpers.LogLevel.Warning); } else if (source == SourceType.SimInventoryItem) { - UUID agentID = new UUID(request.TransferInfo.Params, 0); - UUID sessionID = new UUID(request.TransferInfo.Params, 16); - UUID ownerID = new UUID(request.TransferInfo.Params, 32); + //UUID agentID = new UUID(request.TransferInfo.Params, 0); + //UUID sessionID = new UUID(request.TransferInfo.Params, 16); + //UUID ownerID = new UUID(request.TransferInfo.Params, 32); UUID taskID = new UUID(request.TransferInfo.Params, 48); - UUID itemID = new UUID(request.TransferInfo.Params, 64); - UUID assetID = new UUID(request.TransferInfo.Params, 80); - AssetType type = (AssetType)(sbyte)Utils.BytesToInt(request.TransferInfo.Params, 96); + //UUID itemID = new UUID(request.TransferInfo.Params, 64); + //UUID assetID = new UUID(request.TransferInfo.Params, 80); + //AssetType type = (AssetType)(sbyte)Utils.BytesToInt(request.TransferInfo.Params, 96); if (taskID != UUID.Zero) { diff --git a/Programs/Simian/Extensions/SceneManager.cs b/Programs/Simian/Extensions/SceneManager.cs index 60fe6ccd..6fc6b6c7 100644 --- a/Programs/Simian/Extensions/SceneManager.cs +++ b/Programs/Simian/Extensions/SceneManager.cs @@ -885,8 +885,6 @@ namespace Simian.Extensions void CompleteAgentMovementHandler(Packet packet, Agent agent) { - CompleteAgentMovementPacket request = (CompleteAgentMovementPacket)packet; - // Create a representation for this agent Avatar avatar = new Avatar(); avatar.ID = agent.Avatar.ID; diff --git a/Programs/Simian/Extensions/ScriptApi.cs b/Programs/Simian/Extensions/ScriptApi.cs index 56e9067d..e227dbab 100644 --- a/Programs/Simian/Extensions/ScriptApi.cs +++ b/Programs/Simian/Extensions/ScriptApi.cs @@ -1261,8 +1261,6 @@ namespace Simian.Extensions public LSL_Vector llGetForce() { - LSL_Vector force = LSL_Vector.Zero; - hostObject.AddScriptLPS(1); // Child prims do not have velocity, only parents @@ -2035,7 +2033,7 @@ namespace Simian.Extensions public void llSetBuoyancy(double buoyancy) { hostObject.AddScriptLPS(1); - SimulationObject parent = hostObject.GetLinksetParent(); + //SimulationObject parent = hostObject.GetLinksetParent(); NotImplemented("llSetBuoyancy"); //server.Scene.ObjectSetBuoyancy(this, parent, (float)buoyancy); } @@ -2231,7 +2229,10 @@ namespace Simian.Extensions llReleaseControls(); SimulationObject parent = hostObject.GetLinksetParent(); - // FIXME: How do parentIDs and linksets work? Is there a hierarchy of parentIDs? + if (parent.Prim.ParentID != 0) + { + // FIXME: Finish this function + } } } } @@ -6097,7 +6098,7 @@ namespace Simian.Extensions UUID textureID = UUID.Zero; if (!UUID.TryParse(texture, out textureID)) - textureID = InventoryKey(texture, (int)AssetType.Texture).AssetID; + textureID = InventoryKey(texture, AssetType.Texture).AssetID; if (textureID == UUID.Zero) return;