aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/XEngine
diff options
context:
space:
mode:
authorMelanie2009-12-21 10:28:50 +0000
committerMelanie2009-12-21 10:28:50 +0000
commitdf30b1c832998ffbf3ed69f4a0977019fa13110d (patch)
tree7b78760e1df906b1a4d5a84d8299d6710a0ca3fa /OpenSim/Region/ScriptEngine/XEngine
parentMerge branch 'master' into careminster (diff)
parentScript State Fix: Part 2 (diff)
downloadopensim-SC_OLD-df30b1c832998ffbf3ed69f4a0977019fa13110d.zip
opensim-SC_OLD-df30b1c832998ffbf3ed69f4a0977019fa13110d.tar.gz
opensim-SC_OLD-df30b1c832998ffbf3ed69f4a0977019fa13110d.tar.bz2
opensim-SC_OLD-df30b1c832998ffbf3ed69f4a0977019fa13110d.tar.xz
Merge branch 'master' into careminster
Diffstat (limited to 'OpenSim/Region/ScriptEngine/XEngine')
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/XEngine.cs47
1 files changed, 29 insertions, 18 deletions
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
index 184af19..2a9a2db 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
@@ -1348,6 +1348,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine
1348 XmlAttribute assetID = doc.CreateAttribute("", "Asset", ""); 1348 XmlAttribute assetID = doc.CreateAttribute("", "Asset", "");
1349 assetID.Value = instance.AssetID.ToString(); 1349 assetID.Value = instance.AssetID.ToString();
1350 stateData.Attributes.Append(assetID); 1350 stateData.Attributes.Append(assetID);
1351 XmlAttribute engineName = doc.CreateAttribute("", "Engine", "");
1352 engineName.Value = ScriptEngineName;
1353 stateData.Attributes.Append(engineName);
1351 doc.AppendChild(stateData); 1354 doc.AppendChild(stateData);
1352 1355
1353 // Add <ScriptState>...</ScriptState> 1356 // Add <ScriptState>...</ScriptState>
@@ -1447,10 +1450,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine
1447 return false; 1450 return false;
1448 } 1451 }
1449 1452
1450 public void SetXMLState(UUID itemID, string xml) 1453 public bool SetXMLState(UUID itemID, string xml)
1451 { 1454 {
1452 if (xml == String.Empty) 1455 if (xml == String.Empty)
1453 return; 1456 return false;
1454 1457
1455 XmlDocument doc = new XmlDocument(); 1458 XmlDocument doc = new XmlDocument();
1456 1459
@@ -1461,24 +1464,28 @@ namespace OpenSim.Region.ScriptEngine.XEngine
1461 catch (Exception) 1464 catch (Exception)
1462 { 1465 {
1463 m_log.Error("[XEngine]: Exception decoding XML data from region transfer"); 1466 m_log.Error("[XEngine]: Exception decoding XML data from region transfer");
1464 return; 1467 return false;
1465 } 1468 }
1466 1469
1467 XmlNodeList rootL = doc.GetElementsByTagName("State"); 1470 XmlNodeList rootL = doc.GetElementsByTagName("State");
1468 if (rootL.Count < 1) 1471 if (rootL.Count < 1)
1469 return; 1472 return false;
1470 1473
1471 XmlElement rootE = (XmlElement)rootL[0]; 1474 XmlElement rootE = (XmlElement)rootL[0];
1472 1475
1473 if (rootE.GetAttribute("UUID") != itemID.ToString()) 1476 if (rootE.GetAttribute("Engine") != ScriptEngineName)
1474 return; 1477 return false;
1475 1478
1476// string assetID = rootE.GetAttribute("Asset"); 1479// On rez from inventory, that ID will have changed. It was only
1480// advisory anyway. So we don't check it anymore.
1481//
1482// if (rootE.GetAttribute("UUID") != itemID.ToString())
1483// return;
1477 1484
1478 XmlNodeList stateL = rootE.GetElementsByTagName("ScriptState"); 1485 XmlNodeList stateL = rootE.GetElementsByTagName("ScriptState");
1479 1486
1480 if (stateL.Count != 1) 1487 if (stateL.Count != 1)
1481 return; 1488 return false;
1482 1489
1483 XmlElement stateE = (XmlElement)stateL[0]; 1490 XmlElement stateE = (XmlElement)stateL[0];
1484 1491
@@ -1487,7 +1494,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
1487 XmlNodeList assemL = rootE.GetElementsByTagName("Assembly"); 1494 XmlNodeList assemL = rootE.GetElementsByTagName("Assembly");
1488 1495
1489 if (assemL.Count != 1) 1496 if (assemL.Count != 1)
1490 return; 1497 return false;
1491 1498
1492 XmlElement assemE = (XmlElement)assemL[0]; 1499 XmlElement assemE = (XmlElement)assemL[0];
1493 1500
@@ -1527,19 +1534,23 @@ namespace OpenSim.Region.ScriptEngine.XEngine
1527 sfs.Close(); 1534 sfs.Close();
1528 1535
1529 XmlNodeList mapL = rootE.GetElementsByTagName("LineMap"); 1536 XmlNodeList mapL = rootE.GetElementsByTagName("LineMap");
1530 1537 if (mapL.Count > 0)
1531 XmlElement mapE = (XmlElement)mapL[0]; 1538 {
1539 XmlElement mapE = (XmlElement)mapL[0];
1532 1540
1533 string mappath = Path.Combine("ScriptEngines", World.RegionInfo.RegionID.ToString()); 1541 string mappath = Path.Combine("ScriptEngines", World.RegionInfo.RegionID.ToString());
1534 mappath = Path.Combine(mappath, mapE.GetAttribute("Filename")); 1542 mappath = Path.Combine(mappath, mapE.GetAttribute("Filename"));
1535 1543
1536 FileStream mfs = File.Create(mappath); 1544 FileStream mfs = File.Create(mappath);
1537 StreamWriter msw = new StreamWriter(mfs); 1545 StreamWriter msw = new StreamWriter(mfs);
1538 1546
1539 msw.Write(mapE.InnerText); 1547 msw.Write(mapE.InnerText);
1540 1548
1541 msw.Close(); 1549 msw.Close();
1542 mfs.Close(); 1550 mfs.Close();
1551 }
1552
1553 return true;
1543 } 1554 }
1544 } 1555 }
1545} 1556}