diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/YEngine/XMREngine.cs')
-rw-r--r-- | OpenSim/Region/ScriptEngine/YEngine/XMREngine.cs | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/OpenSim/Region/ScriptEngine/YEngine/XMREngine.cs b/OpenSim/Region/ScriptEngine/YEngine/XMREngine.cs index a9498dd..cfc362c 100644 --- a/OpenSim/Region/ScriptEngine/YEngine/XMREngine.cs +++ b/OpenSim/Region/ScriptEngine/YEngine/XMREngine.cs | |||
@@ -1092,17 +1092,27 @@ namespace OpenSim.Region.ScriptEngine.Yengine | |||
1092 | if(stateN == null) | 1092 | if(stateN == null) |
1093 | return false; | 1093 | return false; |
1094 | 1094 | ||
1095 | if(stateN.GetAttribute("Engine") != ScriptEngineName) | 1095 | bool isX = false; |
1096 | string sen = stateN.GetAttribute("Engine"); | ||
1097 | if (sen == null) | ||
1096 | return false; | 1098 | return false; |
1097 | 1099 | if (sen != ScriptEngineName) | |
1098 | // <ScriptState>...</ScriptState> contains contents of .state file. | 1100 | { |
1099 | XmlElement scriptStateN = (XmlElement)stateN.SelectSingleNode("ScriptState"); | 1101 | if(sen != "XEngine") |
1102 | return false; | ||
1103 | isX = true; | ||
1104 | } | ||
1105 | // <ScriptState>...</ScriptState> contains contents of .state file. | ||
1106 | XmlElement scriptStateN = (XmlElement)stateN.SelectSingleNode("ScriptState"); | ||
1100 | if(scriptStateN == null) | 1107 | if(scriptStateN == null) |
1101 | return false; | 1108 | return false; |
1102 | 1109 | ||
1103 | string sen = stateN.GetAttribute("Engine"); | 1110 | if(!isX) |
1104 | if((sen == null) || (sen != ScriptEngineName)) | 1111 | { |
1105 | return false; | 1112 | sen = stateN.GetAttribute("Engine"); |
1113 | if ((sen == null) || (sen != ScriptEngineName)) | ||
1114 | return false; | ||
1115 | } | ||
1106 | 1116 | ||
1107 | XmlAttribute assetA = doc.CreateAttribute("", "Asset", ""); | 1117 | XmlAttribute assetA = doc.CreateAttribute("", "Asset", ""); |
1108 | assetA.Value = stateN.GetAttribute("Asset"); | 1118 | assetA.Value = stateN.GetAttribute("Asset"); |
@@ -1110,11 +1120,11 @@ namespace OpenSim.Region.ScriptEngine.Yengine | |||
1110 | 1120 | ||
1111 | // Write out the .state file with the <ScriptState ...>...</ScriptState> XML text | 1121 | // Write out the .state file with the <ScriptState ...>...</ScriptState> XML text |
1112 | string statePath = XMRInstance.GetStateFileName(m_ScriptBasePath, itemID); | 1122 | string statePath = XMRInstance.GetStateFileName(m_ScriptBasePath, itemID); |
1113 | FileStream ss = File.Create(statePath); | 1123 | using (FileStream ss = File.Create(statePath)) |
1114 | StreamWriter sw = new StreamWriter(ss); | 1124 | { |
1115 | sw.Write(scriptStateN.OuterXml); | 1125 | using (StreamWriter sw = new StreamWriter(ss)) |
1116 | sw.Close(); | 1126 | sw.Write(scriptStateN.OuterXml); |
1117 | ss.Close(); | 1127 | } |
1118 | 1128 | ||
1119 | return true; | 1129 | return true; |
1120 | } | 1130 | } |