diff options
author | Justin Clark-Casey (justincc) | 2011-03-10 21:56:15 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-03-10 21:56:15 +0000 |
commit | b821f748ac591258f015ecf3ba8011d5561c488d (patch) | |
tree | 8b5ca932c93911faea4fa8603a7452cd2de9f90f /OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | |
parent | in AssetHelpers.CreateAsset(), create objects using the 'original' xml format... (diff) | |
download | opensim-SC_OLD-b821f748ac591258f015ecf3ba8011d5561c488d.zip opensim-SC_OLD-b821f748ac591258f015ecf3ba8011d5561c488d.tar.gz opensim-SC_OLD-b821f748ac591258f015ecf3ba8011d5561c488d.tar.bz2 opensim-SC_OLD-b821f748ac591258f015ecf3ba8011d5561c488d.tar.xz |
For objects loaded from an IAR, make sure the CreatorID points towards the OSP resolved ID if newer CreationData is not present.
This should resolve issues where the creator for rezzed objects was being shown as "Unknown user" where previous behaviour was to show the OSP resolved account.
This is being done by parsing the serialized objects and updating the CreatorID if no CreationData exists. This operation might be expensive for sculpties where the sculpt texture is inlined with the object data. Will just have to see.
This relies on the IAR streaming inventory data before asset data (as is currently the case). Will need to introduce more stringent checks for file order on loading (much like JAR zips must start with the manifest file).
This is for IAR loading only. Tests updated to check this behaviour.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs index 67e59c6..fa404c0 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | |||
@@ -1089,9 +1089,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
1089 | 1089 | ||
1090 | public Dictionary<UUID, string> GetScriptStates() | 1090 | public Dictionary<UUID, string> GetScriptStates() |
1091 | { | 1091 | { |
1092 | Dictionary<UUID, string> ret = new Dictionary<UUID, string>(); | ||
1093 | |||
1094 | if (m_part.ParentGroup.Scene == null) // Group not in a scene | ||
1095 | return ret; | ||
1096 | |||
1092 | IScriptModule[] engines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>(); | 1097 | IScriptModule[] engines = m_part.ParentGroup.Scene.RequestModuleInterfaces<IScriptModule>(); |
1093 | 1098 | ||
1094 | Dictionary<UUID, string> ret = new Dictionary<UUID, string>(); | ||
1095 | if (engines == null) // No engine at all | 1099 | if (engines == null) // No engine at all |
1096 | return ret; | 1100 | return ret; |
1097 | 1101 | ||