diff options
added experimental method of trying to relieve missing prim problem (by adding a limit of the number of prim update packets sent in each update loop).
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 4e87032..4151074 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -928,13 +928,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
928 | } | 928 | } |
929 | } | 929 | } |
930 | 930 | ||
931 | public void SendAllSceneObjectsToClient(IClientAPI client) | 931 | public void SendAllSceneObjectsToClient(ScenePresence presence) |
932 | { | 932 | { |
933 | foreach (EntityBase ent in Entities.Values) | 933 | foreach (EntityBase ent in Entities.Values) |
934 | { | 934 | { |
935 | if (ent is SceneObjectGroup) | 935 | if (ent is SceneObjectGroup) |
936 | { | 936 | { |
937 | ((SceneObjectGroup)ent).SendFullUpdateToClient(client); | 937 | // ((SceneObjectGroup)ent).SendFullUpdateToClient(client); |
938 | ((SceneObjectGroup)ent).ScheduleFullUpdateToAvatar(presence); | ||
938 | } | 939 | } |
939 | } | 940 | } |
940 | } | 941 | } |
@@ -1229,6 +1230,17 @@ namespace OpenSim.Region.Environment.Scenes | |||
1229 | } | 1230 | } |
1230 | #endregion | 1231 | #endregion |
1231 | 1232 | ||
1233 | private void forceClientUpdate() | ||
1234 | { | ||
1235 | foreach (EntityBase ent in this.Entities.Values) | ||
1236 | { | ||
1237 | if (ent is SceneObjectGroup) | ||
1238 | { | ||
1239 | ((SceneObjectGroup)ent).ScheduleGroupForFullUpdate(); | ||
1240 | } | ||
1241 | } | ||
1242 | } | ||
1243 | |||
1232 | public void ProcessConsoleCmd(string command, string[] cmdparams) | 1244 | public void ProcessConsoleCmd(string command, string[] cmdparams) |
1233 | { | 1245 | { |
1234 | switch (command) | 1246 | switch (command) |
@@ -1243,12 +1255,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
1243 | MainLog.Instance.Error("show users - show info about connected users in the current region."); | 1255 | MainLog.Instance.Error("show users - show info about connected users in the current region."); |
1244 | MainLog.Instance.Error("shutdown - disconnect all clients and shutdown."); | 1256 | MainLog.Instance.Error("shutdown - disconnect all clients and shutdown."); |
1245 | break; | 1257 | break; |
1258 | |||
1246 | case "show": | 1259 | case "show": |
1247 | if (cmdparams.Length > 0) | 1260 | if (cmdparams.Length > 0) |
1248 | { | 1261 | { |
1249 | Show(cmdparams[0]); | 1262 | Show(cmdparams[0]); |
1250 | } | 1263 | } |
1251 | break; | 1264 | break; |
1265 | |||
1252 | case "save-xml": | 1266 | case "save-xml": |
1253 | if (cmdparams.Length > 0) | 1267 | if (cmdparams.Length > 0) |
1254 | { | 1268 | { |
@@ -1277,13 +1291,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1277 | 1291 | ||
1278 | case "force-update": | 1292 | case "force-update": |
1279 | Console.WriteLine("Updating all clients"); | 1293 | Console.WriteLine("Updating all clients"); |
1280 | foreach(EntityBase ent in this.Entities.Values) | 1294 | this.forceClientUpdate(); |
1281 | { | ||
1282 | if (ent is SceneObjectGroup) | ||
1283 | { | ||
1284 | ((SceneObjectGroup)ent).ScheduleGroupForFullUpdate(); | ||
1285 | } | ||
1286 | } | ||
1287 | break; | 1295 | break; |
1288 | 1296 | ||
1289 | case "backup": | 1297 | case "backup": |