diff options
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)) |