diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteSimulationData.cs | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/OpenSim/Data/SQLite/SQLiteSimulationData.cs b/OpenSim/Data/SQLite/SQLiteSimulationData.cs index 76f717d..4d6a80a 100644 --- a/OpenSim/Data/SQLite/SQLiteSimulationData.cs +++ b/OpenSim/Data/SQLite/SQLiteSimulationData.cs | |||
@@ -1236,6 +1236,10 @@ namespace OpenSim.Data.SQLite | |||
1236 | 1236 | ||
1237 | createCol(prims, "MediaURL", typeof(String)); | 1237 | createCol(prims, "MediaURL", typeof(String)); |
1238 | 1238 | ||
1239 | createCol(prims, "AttachedPosX", typeof(Double)); | ||
1240 | createCol(prims, "AttachedPosY", typeof(Double)); | ||
1241 | createCol(prims, "AttachedPosZ", typeof(Double)); | ||
1242 | |||
1239 | createCol(prims, "DynAttrs", typeof(String)); | 1243 | createCol(prims, "DynAttrs", typeof(String)); |
1240 | 1244 | ||
1241 | createCol(prims, "PhysicsShapeType", typeof(Byte)); | 1245 | createCol(prims, "PhysicsShapeType", typeof(Byte)); |
@@ -1244,6 +1248,7 @@ namespace OpenSim.Data.SQLite | |||
1244 | createCol(prims, "Friction", typeof(Double)); | 1248 | createCol(prims, "Friction", typeof(Double)); |
1245 | createCol(prims, "Restitution", typeof(Double)); | 1249 | createCol(prims, "Restitution", typeof(Double)); |
1246 | 1250 | ||
1251 | createCol(prims, "KeyframeMotion", typeof(Byte[])); | ||
1247 | // Add in contraints | 1252 | // Add in contraints |
1248 | prims.PrimaryKey = new DataColumn[] { prims.Columns["UUID"] }; | 1253 | prims.PrimaryKey = new DataColumn[] { prims.Columns["UUID"] }; |
1249 | 1254 | ||
@@ -1723,6 +1728,12 @@ namespace OpenSim.Data.SQLite | |||
1723 | prim.MediaUrl = (string)row["MediaURL"]; | 1728 | prim.MediaUrl = (string)row["MediaURL"]; |
1724 | } | 1729 | } |
1725 | 1730 | ||
1731 | prim.AttachedPos = new Vector3( | ||
1732 | Convert.ToSingle(row["AttachedPosX"]), | ||
1733 | Convert.ToSingle(row["AttachedPosY"]), | ||
1734 | Convert.ToSingle(row["AttachedPosZ"]) | ||
1735 | ); | ||
1736 | |||
1726 | if (!(row["DynAttrs"] is System.DBNull)) | 1737 | if (!(row["DynAttrs"] is System.DBNull)) |
1727 | { | 1738 | { |
1728 | //m_log.DebugFormat("[SQLITE]: DynAttrs type [{0}]", row["DynAttrs"].GetType()); | 1739 | //m_log.DebugFormat("[SQLITE]: DynAttrs type [{0}]", row["DynAttrs"].GetType()); |
@@ -1739,6 +1750,20 @@ namespace OpenSim.Data.SQLite | |||
1739 | prim.Friction = Convert.ToSingle(row["Friction"]); | 1750 | prim.Friction = Convert.ToSingle(row["Friction"]); |
1740 | prim.Restitution = Convert.ToSingle(row["Restitution"]); | 1751 | prim.Restitution = Convert.ToSingle(row["Restitution"]); |
1741 | 1752 | ||
1753 | |||
1754 | if (!(row["KeyframeMotion"] is DBNull)) | ||
1755 | { | ||
1756 | Byte[] data = (byte[])row["KeyframeMotion"]; | ||
1757 | if (data.Length > 0) | ||
1758 | prim.KeyframeMotion = KeyframeMotion.FromData(null, data); | ||
1759 | else | ||
1760 | prim.KeyframeMotion = null; | ||
1761 | } | ||
1762 | else | ||
1763 | { | ||
1764 | prim.KeyframeMotion = null; | ||
1765 | } | ||
1766 | |||
1742 | return prim; | 1767 | return prim; |
1743 | } | 1768 | } |
1744 | 1769 | ||
@@ -2161,7 +2186,11 @@ namespace OpenSim.Data.SQLite | |||
2161 | 2186 | ||
2162 | row["MediaURL"] = prim.MediaUrl; | 2187 | row["MediaURL"] = prim.MediaUrl; |
2163 | 2188 | ||
2164 | if (prim.DynAttrs.Count > 0) | 2189 | row["AttachedPosX"] = prim.AttachedPos.X; |
2190 | row["AttachedPosY"] = prim.AttachedPos.Y; | ||
2191 | row["AttachedPosZ"] = prim.AttachedPos.Z; | ||
2192 | |||
2193 | if (prim.DynAttrs.CountNamespaces > 0) | ||
2165 | row["DynAttrs"] = prim.DynAttrs.ToXml(); | 2194 | row["DynAttrs"] = prim.DynAttrs.ToXml(); |
2166 | else | 2195 | else |
2167 | row["DynAttrs"] = null; | 2196 | row["DynAttrs"] = null; |
@@ -2171,6 +2200,13 @@ namespace OpenSim.Data.SQLite | |||
2171 | row["GravityModifier"] = (double)prim.GravityModifier; | 2200 | row["GravityModifier"] = (double)prim.GravityModifier; |
2172 | row["Friction"] = (double)prim.Friction; | 2201 | row["Friction"] = (double)prim.Friction; |
2173 | row["Restitution"] = (double)prim.Restitution; | 2202 | row["Restitution"] = (double)prim.Restitution; |
2203 | |||
2204 | if (prim.KeyframeMotion != null) | ||
2205 | row["KeyframeMotion"] = prim.KeyframeMotion.Serialize(); | ||
2206 | else | ||
2207 | row["KeyframeMotion"] = new Byte[0]; | ||
2208 | |||
2209 | |||
2174 | } | 2210 | } |
2175 | 2211 | ||
2176 | /// <summary> | 2212 | /// <summary> |
@@ -2422,6 +2458,7 @@ namespace OpenSim.Data.SQLite | |||
2422 | s.ProfileCurve = Convert.ToByte(row["ProfileCurve"]); | 2458 | s.ProfileCurve = Convert.ToByte(row["ProfileCurve"]); |
2423 | s.ProfileHollow = Convert.ToUInt16(row["ProfileHollow"]); | 2459 | s.ProfileHollow = Convert.ToUInt16(row["ProfileHollow"]); |
2424 | s.State = Convert.ToByte(row["State"]); | 2460 | s.State = Convert.ToByte(row["State"]); |
2461 | s.LastAttachPoint = Convert.ToByte(row["LastAttachPoint"]); | ||
2425 | 2462 | ||
2426 | byte[] textureEntry = (byte[])row["Texture"]; | 2463 | byte[] textureEntry = (byte[])row["Texture"]; |
2427 | s.TextureEntry = textureEntry; | 2464 | s.TextureEntry = textureEntry; |
@@ -2471,6 +2508,7 @@ namespace OpenSim.Data.SQLite | |||
2471 | row["ProfileCurve"] = s.ProfileCurve; | 2508 | row["ProfileCurve"] = s.ProfileCurve; |
2472 | row["ProfileHollow"] = s.ProfileHollow; | 2509 | row["ProfileHollow"] = s.ProfileHollow; |
2473 | row["State"] = s.State; | 2510 | row["State"] = s.State; |
2511 | row["LastAttachPoint"] = s.LastAttachPoint; | ||
2474 | 2512 | ||
2475 | row["Texture"] = s.TextureEntry; | 2513 | row["Texture"] = s.TextureEntry; |
2476 | row["ExtraParams"] = s.ExtraParams; | 2514 | row["ExtraParams"] = s.ExtraParams; |