aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Framework/IScene.cs3
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs22
-rw-r--r--OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs8
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs87
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs21
5 files changed, 73 insertions, 68 deletions
diff --git a/OpenSim/Framework/IScene.cs b/OpenSim/Framework/IScene.cs
index 8f7a2e5..e0cb897 100644
--- a/OpenSim/Framework/IScene.cs
+++ b/OpenSim/Framework/IScene.cs
@@ -33,15 +33,12 @@ namespace OpenSim.Framework
33{ 33{
34 public delegate void restart(RegionInfo thisRegion); 34 public delegate void restart(RegionInfo thisRegion);
35 35
36 //public delegate void regionup (RegionInfo thisRegion);
37
38 public enum RegionStatus : int 36 public enum RegionStatus : int
39 { 37 {
40 Down = 0, 38 Down = 0,
41 Up = 1, 39 Up = 1,
42 Crashed = 2, 40 Crashed = 2,
43 Starting = 3, 41 Starting = 3,
44 SlaveScene = 4
45 }; 42 };
46 43
47 /// <value> 44 /// <value>
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
index f2388cd..304efe6 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
@@ -929,25 +929,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP
929 UUID sessionID = useCircuitCode.CircuitCode.SessionID; 929 UUID sessionID = useCircuitCode.CircuitCode.SessionID;
930 uint circuitCode = useCircuitCode.CircuitCode.Code; 930 uint circuitCode = useCircuitCode.CircuitCode.Code;
931 931
932 if (m_scene.RegionStatus != RegionStatus.SlaveScene) 932 AuthenticateResponse sessionInfo;
933 if (IsClientAuthorized(useCircuitCode, out sessionInfo))
933 { 934 {
934 AuthenticateResponse sessionInfo; 935 AddClient(circuitCode, agentID, sessionID, remoteEndPoint, sessionInfo);
935 if (IsClientAuthorized(useCircuitCode, out sessionInfo))
936 {
937 AddClient(circuitCode, agentID, sessionID, remoteEndPoint, sessionInfo);
938 }
939 else
940 {
941 // Don't create circuits for unauthorized clients
942 m_log.WarnFormat(
943 "[LLUDPSERVER]: Connection request for client {0} connecting with unnotified circuit code {1} from {2}",
944 useCircuitCode.CircuitCode.ID, useCircuitCode.CircuitCode.Code, remoteEndPoint);
945 }
946 } 936 }
947 else 937 else
948 { 938 {
949 // Slave regions don't accept new clients 939 // Don't create circuits for unauthorized clients
950 m_log.Debug("[LLUDPSERVER]: Slave region " + m_scene.RegionInfo.RegionName + " ignoring UseCircuitCode packet"); 940 m_log.WarnFormat(
941 "[LLUDPSERVER]: Connection request for client {0} connecting with unnotified circuit code {1} from {2}",
942 useCircuitCode.CircuitCode.ID, useCircuitCode.CircuitCode.Code, remoteEndPoint);
951 } 943 }
952 } 944 }
953 945
diff --git a/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs b/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
index e07d8b4..e9e1845 100644
--- a/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
+++ b/OpenSim/Region/Framework/Scenes/Animation/ScenePresenceAnimator.cs
@@ -174,8 +174,8 @@ namespace OpenSim.Region.Framework.Scenes.Animation
174 bool heldBack = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG) == AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG; 174 bool heldBack = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG) == AgentManager.ControlFlags.AGENT_CONTROL_AT_NEG;
175 bool heldLeft = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS) == AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS; 175 bool heldLeft = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS) == AgentManager.ControlFlags.AGENT_CONTROL_LEFT_POS;
176 bool heldRight = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG) == AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG; 176 bool heldRight = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG) == AgentManager.ControlFlags.AGENT_CONTROL_LEFT_NEG;
177 //bool heldTurnLeft = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT) == AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT; 177 bool heldTurnLeft = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT) == AgentManager.ControlFlags.AGENT_CONTROL_TURN_LEFT;
178 //bool heldTurnRight = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT) == AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT; 178 bool heldTurnRight = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT) == AgentManager.ControlFlags.AGENT_CONTROL_TURN_RIGHT;
179 bool heldUp = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) == AgentManager.ControlFlags.AGENT_CONTROL_UP_POS; 179 bool heldUp = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) == AgentManager.ControlFlags.AGENT_CONTROL_UP_POS;
180 bool heldDown = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) == AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG; 180 bool heldDown = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) == AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG;
181 //bool flying = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) == AgentManager.ControlFlags.AGENT_CONTROL_FLY; 181 //bool flying = (controlFlags & AgentManager.ControlFlags.AGENT_CONTROL_FLY) == AgentManager.ControlFlags.AGENT_CONTROL_FLY;
@@ -317,6 +317,10 @@ namespace OpenSim.Region.Framework.Scenes.Animation
317 // Not walking 317 // Not walking
318 if (move.Z < 0) 318 if (move.Z < 0)
319 return "CROUCH"; 319 return "CROUCH";
320 else if (heldTurnLeft)
321 return "TURNLEFT";
322 else if (heldTurnRight)
323 return "TURNRIGHT";
320 else 324 else
321 return "STAND"; 325 return "STAND";
322 } 326 }
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 0e5a7d2..29a54e8 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1278,56 +1278,53 @@ namespace OpenSim.Region.Framework.Scenes
1278 tempOnRezMS = Util.EnvironmentTickCountSubtract(tmpTempOnRezMS); 1278 tempOnRezMS = Util.EnvironmentTickCountSubtract(tmpTempOnRezMS);
1279 } 1279 }
1280 1280
1281 if (RegionStatus != RegionStatus.SlaveScene) 1281 if (Frame % m_update_events == 0)
1282 { 1282 {
1283 if (Frame % m_update_events == 0) 1283 int evMS = Util.EnvironmentTickCount();
1284 { 1284 UpdateEvents();
1285 int evMS = Util.EnvironmentTickCount(); 1285 eventMS = Util.EnvironmentTickCountSubtract(evMS); ;
1286 UpdateEvents(); 1286 }
1287 eventMS = Util.EnvironmentTickCountSubtract(evMS); ;
1288 }
1289
1290 if (Frame % m_update_backup == 0)
1291 {
1292 int backMS = Util.EnvironmentTickCount();
1293 UpdateStorageBackup();
1294 backupMS = Util.EnvironmentTickCountSubtract(backMS);
1295 }
1296
1297 if (Frame % m_update_terrain == 0)
1298 {
1299 int terMS = Util.EnvironmentTickCount();
1300 UpdateTerrain();
1301 terrainMS = Util.EnvironmentTickCountSubtract(terMS);
1302 }
1303 1287
1304 //if (Frame % m_update_land == 0) 1288 if (Frame % m_update_backup == 0)
1305 //{ 1289 {
1306 // int ldMS = Util.EnvironmentTickCount(); 1290 int backMS = Util.EnvironmentTickCount();
1307 // UpdateLand(); 1291 UpdateStorageBackup();
1308 // landMS = Util.EnvironmentTickCountSubtract(ldMS); 1292 backupMS = Util.EnvironmentTickCountSubtract(backMS);
1309 //} 1293 }
1310 1294
1311 frameMS = Util.EnvironmentTickCountSubtract(tmpFrameMS); 1295 if (Frame % m_update_terrain == 0)
1312 otherMS = tempOnRezMS + eventMS + backupMS + terrainMS + landMS; 1296 {
1313 lastCompletedFrame = Util.EnvironmentTickCount(); 1297 int terMS = Util.EnvironmentTickCount();
1314 1298 UpdateTerrain();
1315 // if (Frame%m_update_avatars == 0) 1299 terrainMS = Util.EnvironmentTickCountSubtract(terMS);
1316 // UpdateInWorldTime();
1317 StatsReporter.AddPhysicsFPS(physicsFPS);
1318 StatsReporter.AddTimeDilation(TimeDilation);
1319 StatsReporter.AddFPS(1);
1320 StatsReporter.SetRootAgents(m_sceneGraph.GetRootAgentCount());
1321 StatsReporter.SetChildAgents(m_sceneGraph.GetChildAgentCount());
1322 StatsReporter.SetObjects(m_sceneGraph.GetTotalObjectsCount());
1323 StatsReporter.SetActiveObjects(m_sceneGraph.GetActiveObjectsCount());
1324 StatsReporter.addFrameMS(frameMS);
1325 StatsReporter.addPhysicsMS(physicsMS + physicsMS2);
1326 StatsReporter.addOtherMS(otherMS);
1327 StatsReporter.SetActiveScripts(m_sceneGraph.GetActiveScriptsCount());
1328 StatsReporter.addScriptLines(m_sceneGraph.GetScriptLPS());
1329 } 1300 }
1330 1301
1302 //if (Frame % m_update_land == 0)
1303 //{
1304 // int ldMS = Util.EnvironmentTickCount();
1305 // UpdateLand();
1306 // landMS = Util.EnvironmentTickCountSubtract(ldMS);
1307 //}
1308
1309 frameMS = Util.EnvironmentTickCountSubtract(tmpFrameMS);
1310 otherMS = tempOnRezMS + eventMS + backupMS + terrainMS + landMS;
1311 lastCompletedFrame = Util.EnvironmentTickCount();
1312
1313 // if (Frame%m_update_avatars == 0)
1314 // UpdateInWorldTime();
1315 StatsReporter.AddPhysicsFPS(physicsFPS);
1316 StatsReporter.AddTimeDilation(TimeDilation);
1317 StatsReporter.AddFPS(1);
1318 StatsReporter.SetRootAgents(m_sceneGraph.GetRootAgentCount());
1319 StatsReporter.SetChildAgents(m_sceneGraph.GetChildAgentCount());
1320 StatsReporter.SetObjects(m_sceneGraph.GetTotalObjectsCount());
1321 StatsReporter.SetActiveObjects(m_sceneGraph.GetActiveObjectsCount());
1322 StatsReporter.addFrameMS(frameMS);
1323 StatsReporter.addPhysicsMS(physicsMS + physicsMS2);
1324 StatsReporter.addOtherMS(otherMS);
1325 StatsReporter.SetActiveScripts(m_sceneGraph.GetActiveScriptsCount());
1326 StatsReporter.addScriptLines(m_sceneGraph.GetScriptLPS());
1327
1331 if (LoginsDisabled && Frame == 20) 1328 if (LoginsDisabled && Frame == 20)
1332 { 1329 {
1333 // In 99.9% of cases it is a bad idea to manually force garbage collection. However, 1330 // In 99.9% of cases it is a bad idea to manually force garbage collection. However,
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 4b2fb51..04762be 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -1912,15 +1912,30 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1912 { 1912 {
1913 face = 0; 1913 face = 0;
1914 } 1914 }
1915
1915 if (face >= 0 && face < GetNumberOfSides(part)) 1916 if (face >= 0 && face < GetNumberOfSides(part))
1916 { 1917 {
1917 Primitive.TextureEntryFace texface; 1918 Primitive.TextureEntryFace texface;
1918 texface = tex.GetFace((uint)face); 1919 texface = tex.GetFace((uint)face);
1919 return texface.TextureID.ToString(); 1920 string texture = texface.TextureID.ToString();
1921
1922 lock (part.TaskInventory)
1923 {
1924 foreach (KeyValuePair<UUID, TaskInventoryItem> inv in part.TaskInventory)
1925 {
1926 if (inv.Value.AssetID == texface.TextureID)
1927 {
1928 texture = inv.Value.Name.ToString();
1929 break;
1930 }
1931 }
1932 }
1933
1934 return texture;
1920 } 1935 }
1921 else 1936 else
1922 { 1937 {
1923 return String.Empty; 1938 return UUID.Zero.ToString();
1924 } 1939 }
1925 } 1940 }
1926 1941
@@ -4224,8 +4239,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4224 4239
4225 public void llCollisionSound(string impact_sound, double impact_volume) 4240 public void llCollisionSound(string impact_sound, double impact_volume)
4226 { 4241 {
4227
4228 m_host.AddScriptLPS(1); 4242 m_host.AddScriptLPS(1);
4243
4229 // TODO: Parameter check logic required. 4244 // TODO: Parameter check logic required.
4230 UUID soundId = UUID.Zero; 4245 UUID soundId = UUID.Zero;
4231 if (!UUID.TryParse(impact_sound, out soundId)) 4246 if (!UUID.TryParse(impact_sound, out soundId))