private void RequestRegionInfoHandler(Packet packet, LLAgent agent) { RegionInfoPacket info = new RegionInfoPacket(); info.AgentData.AgentID = agent.ID; info.RegionInfo.SimName = Utils.StringToBytes(m_scene.Name); info.RegionInfo.ParentEstateID = 1; // Hardcoded to what the viewer considers "mainland" info.RegionInfo.PricePerMeter = 1; // Dummy value if (m_regionInfo != null) { // Region settings info.RegionInfo.MaxAgents = (byte)Math.Min(255, m_regionInfo.MaxAgents); info.RegionInfo.WaterHeight = m_regionInfo.WaterHeight; info.RegionInfo2.HardMaxAgents = m_regionInfo.MaxAgents; info.RegionInfo2.HardMaxObjects = m_regionInfo.ObjectCapacity; info.RegionInfo2.MaxAgents32 = m_regionInfo.MaxAgents; info.RegionInfo2.ProductName = Utils.StringToBytes(PRODUCT_NAME); info.RegionInfo2.ProductSKU = Utils.EmptyBytes; info.RegionInfo.UseEstateSun = m_regionInfo.UseEstateSun; } else { info.RegionInfo2.ProductName = Utils.EmptyBytes; info.RegionInfo2.ProductSKU = Utils.EmptyBytes; } if (m_estate != null) { info.RegionInfo.RegionFlags = (uint)m_estate.EstateFlags; info.RegionInfo.BillableFactor = 0f; info.RegionInfo.EstateID = m_estate.ID; info.RegionInfo.ObjectBonusFactor = m_estate.ObjectBonusFactor; info.RegionInfo.RedirectGridX = 0; // TODO: What is this? info.RegionInfo.RedirectGridY = 0; // info.RegionInfo.SimAccess = (byte)m_estate.AccessFlags; info.RegionInfo.SunHour = m_estate.SunHour; info.RegionInfo.TerrainLowerLimit = m_estate.TerrainLowerLimit; info.RegionInfo.TerrainRaiseLimit = m_estate.TerrainRaiseLimit; } else { if (m_regionInfo != null) { info.RegionInfo.RegionFlags = (uint)m_regionInfo.RegionFlags; info.RegionInfo.SimAccess = (byte)m_regionInfo.SimAccess; } info.RegionInfo.TerrainRaiseLimit = 255f; } m_udp.SendPacket(agent, info, ThrottleCategory.Task, false); }
private void RequestRegionInfoHandler(Packet packet, LLAgent agent) { RegionInfoPacket info = new RegionInfoPacket(); info.AgentData.AgentID = agent.ID; info.RegionInfo.SimName = Utils.StringToBytes(m_scene.Name); info.RegionInfo.ParentEstateID = 1; // Hardcoded to what the viewer considers "mainland" info.RegionInfo.PricePerMeter = 1; // Dummy value if (m_regionInfo != null) { // Region settings info.RegionInfo.MaxAgents = (byte)Math.Min(255, m_regionInfo.MaxAgents); info.RegionInfo.WaterHeight = m_regionInfo.WaterHeight; info.RegionInfo2.HardMaxAgents = m_regionInfo.MaxAgents; info.RegionInfo2.HardMaxObjects = m_regionInfo.ObjectCapacity; info.RegionInfo2.MaxAgents32 = m_regionInfo.MaxAgents; info.RegionInfo2.ProductName = Utils.StringToBytes(PRODUCT_NAME); info.RegionInfo2.ProductSKU = Utils.EmptyBytes; info.RegionInfo.UseEstateSun = m_regionInfo.UseEstateSun; } else { info.RegionInfo2.ProductName = Utils.EmptyBytes; info.RegionInfo2.ProductSKU = Utils.EmptyBytes; } if (m_estate != null) { info.RegionInfo.RegionFlags = (uint)m_estate.EstateFlags; info.RegionInfo.BillableFactor = 0f; info.RegionInfo.EstateID = m_estate.ID; info.RegionInfo.ObjectBonusFactor = m_estate.ObjectBonusFactor; info.RegionInfo.RedirectGridX = 0; // TODO: What is this? info.RegionInfo.RedirectGridY = 0; // info.RegionInfo.SimAccess = (byte)m_estate.AccessFlags; info.RegionInfo.SunHour = m_estate.SunHour; info.RegionInfo.TerrainLowerLimit = m_estate.TerrainLowerLimit; info.RegionInfo.TerrainRaiseLimit = m_estate.TerrainRaiseLimit; } else { if (m_regionInfo != null) { info.RegionInfo.RegionFlags = (uint)m_regionInfo.RegionFlags; info.RegionInfo.SimAccess = (byte)m_regionInfo.SimAccess; } info.RegionInfo.TerrainRaiseLimit = 255f; } m_udp.SendPacket(agent, info, ThrottleCategory.Task, false); }