aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Storage
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Storage')
-rw-r--r--OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs87
1 files changed, 87 insertions, 0 deletions
diff --git a/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs b/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs
index 83b5ed8..6e8c22d 100644
--- a/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs
+++ b/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs
@@ -241,6 +241,58 @@ namespace OpenSim.DataStore.MonoSqliteStorage
241 private SceneObjectPart buildPrim(DataRow row) 241 private SceneObjectPart buildPrim(DataRow row)
242 { 242 {
243 SceneObjectPart prim = new SceneObjectPart(); 243 SceneObjectPart prim = new SceneObjectPart();
244 prim.UUID = new LLUUID((string)row["UUID"]);
245 prim.ParentID = (uint)row["ParentID"];
246 prim.CreationDate = (int)row["CreationDate"];
247 prim.PartName = (string)row["Name"];
248 // various text fields
249 prim.Text = (string)row["Text"];
250 prim.Description = (string)row["Description"];
251 prim.SitName = (string)row["SitName"];
252 prim.TouchName = (string)row["TouchName"];
253 // permissions
254 prim.CreatorID = new LLUUID((string)row["CreatorID"]);
255 prim.OwnerID = new LLUUID((string)row["OwnerID"]);
256 prim.GroupID = new LLUUID((string)row["GroupID"]);
257 prim.LastOwnerID = new LLUUID((string)row["LastOwnerID"]);
258 prim.OwnerMask = (uint)row["OwnerMask"];
259 prim.NextOwnerMask = (uint)row["NextOwnerMask"];
260 prim.GroupMask = (uint)row["GroupMask"];
261 prim.EveryoneMask = (uint)row["EveryoneMask"];
262 prim.BaseMask = (uint)row["BaseMask"];
263 // vectors
264 prim.OffsetPosition = new LLVector3(
265 (float)row["PositionX"],
266 (float)row["PositionY"],
267 (float)row["PositionZ"]
268 );
269 prim.GroupPosition = new LLVector3(
270 (float)row["GroupPositionX"],
271 (float)row["GroupPositionY"],
272 (float)row["GroupPositionZ"]
273 );
274 prim.Velocity = new LLVector3(
275 (float)row["VelocityX"],
276 (float)row["VelocityY"],
277 (float)row["VelocityZ"]
278 );
279 prim.AngularVelocity = new LLVector3(
280 (float)row["AngularVelocityX"],
281 (float)row["AngularVelocityY"],
282 (float)row["AngularVelocityZ"]
283 );
284 prim.Acceleration = new LLVector3(
285 (float)row["AccelerationX"],
286 (float)row["AccelerationY"],
287 (float)row["AccelerationZ"]
288 );
289 // quaternions
290 prim.RotationOffset = new LLQuaternion(
291 (float)row["RotationX"],
292 (float)row["RotationY"],
293 (float)row["RotationZ"],
294 (float)row["RotationW"]
295 );
244 return prim; 296 return prim;
245 } 297 }
246 298
@@ -288,6 +340,41 @@ namespace OpenSim.DataStore.MonoSqliteStorage
288 row["RotationW"] = prim.RotationOffset.W; 340 row["RotationW"] = prim.RotationOffset.W;
289 } 341 }
290 342
343 private PrimitiveBaseShape buildShape(DataRow row)
344 {
345 PrimitiveBaseShape s = new PrimitiveBaseShape();
346 s.Scale = new LLVector3(
347 (float)row["ScaleX"],
348 (float)row["ScaleY"],
349 (float)row["ScaleZ"]
350 );
351 // paths
352 s.PCode = (byte)row["PCode"];
353 s.PathBegin = (ushort)row["PathBegin"];
354 s.PathEnd = (ushort)row["PathEnd"];
355 s.PathScaleX = (byte)row["PathScaleX"];
356 s.PathScaleY = (byte)row["PathScaleY"];
357 s.PathShearX = (byte)row["PathShearX"];
358 s.PathShearY = (byte)row["PathShearY"];
359 s.PathSkew = (sbyte)row["PathSkew"];
360 s.PathCurve = (byte)row["PathCurve"];
361 s.PathRadiusOffset = (sbyte)row["PathRadiusOffset"];
362 s.PathRevolutions = (byte)row["PathRevolutions"];
363 s.PathTaperX = (sbyte)row["PathTaperX"];
364 s.PathTaperY = (sbyte)row["PathTaperY"];
365 s.PathTwist = (sbyte)row["PathTwist"];
366 s.PathTwistBegin = (sbyte)row["PathTwistBegin"];
367 // profile
368 s.ProfileBegin = (ushort)row["ProfileBegin"];
369 s.ProfileEnd = (ushort)row["ProfileEnd"];
370 s.ProfileCurve = (byte)row["ProfileCurve"];
371 s.ProfileHollow = (byte)row["ProfileHollow"];
372 // text TODO: this isn't right] = but I'm not sure the right
373 // way to specify this as a blob atm
374 s.TextureEntry = (byte[])row["Texture"];
375 return s;
376 }
377
291 private void fillShapeRow(DataRow row, SceneObjectPart prim) 378 private void fillShapeRow(DataRow row, SceneObjectPart prim)
292 { 379 {
293 PrimitiveBaseShape s = prim.Shape; 380 PrimitiveBaseShape s = prim.Shape;