diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Data/MySQL/MySQLLegacyRegionData.cs | 82 |
1 files changed, 40 insertions, 42 deletions
diff --git a/OpenSim/Data/MySQL/MySQLLegacyRegionData.cs b/OpenSim/Data/MySQL/MySQLLegacyRegionData.cs index 07371e7..bfeae12 100644 --- a/OpenSim/Data/MySQL/MySQLLegacyRegionData.cs +++ b/OpenSim/Data/MySQL/MySQLLegacyRegionData.cs | |||
@@ -38,6 +38,7 @@ using OpenMetaverse; | |||
38 | using OpenSim.Framework; | 38 | using OpenSim.Framework; |
39 | using OpenSim.Region.Framework.Interfaces; | 39 | using OpenSim.Region.Framework.Interfaces; |
40 | using OpenSim.Region.Framework.Scenes; | 40 | using OpenSim.Region.Framework.Scenes; |
41 | using OpenSim.Data; | ||
41 | 42 | ||
42 | namespace OpenSim.Data.MySQL | 43 | namespace OpenSim.Data.MySQL |
43 | { | 44 | { |
@@ -269,7 +270,7 @@ namespace OpenSim.Data.MySQL | |||
269 | using (IDataReader reader = ExecuteReader(cmd)) | 270 | using (IDataReader reader = ExecuteReader(cmd)) |
270 | { | 271 | { |
271 | while (reader.Read()) | 272 | while (reader.Read()) |
272 | uuids.Add(new UUID(reader["UUID"].ToString())); | 273 | uuids.Add(DBGuid.FromDB(reader["UUID"].ToString())); |
273 | } | 274 | } |
274 | 275 | ||
275 | // delete the main prims | 276 | // delete the main prims |
@@ -422,7 +423,7 @@ namespace OpenSim.Data.MySQL | |||
422 | else | 423 | else |
423 | prim.Shape = BuildShape(reader); | 424 | prim.Shape = BuildShape(reader); |
424 | 425 | ||
425 | UUID parentID = new UUID(reader["SceneGroupID"].ToString()); | 426 | UUID parentID = DBGuid.FromDB(reader["SceneGroupID"].ToString()); |
426 | if (parentID != prim.UUID) | 427 | if (parentID != prim.UUID) |
427 | prim.ParentUUID = parentID; | 428 | prim.ParentUUID = parentID; |
428 | 429 | ||
@@ -500,7 +501,7 @@ namespace OpenSim.Data.MySQL | |||
500 | { | 501 | { |
501 | if (!(itemReader["primID"] is DBNull)) | 502 | if (!(itemReader["primID"] is DBNull)) |
502 | { | 503 | { |
503 | UUID primID = new UUID(itemReader["primID"].ToString()); | 504 | UUID primID = DBGuid.FromDB(itemReader["primID"].ToString()); |
504 | if (prims.ContainsKey(primID)) | 505 | if (prims.ContainsKey(primID)) |
505 | primsWithInventory.Add(prims[primID]); | 506 | primsWithInventory.Add(prims[primID]); |
506 | } | 507 | } |
@@ -738,7 +739,7 @@ namespace OpenSim.Data.MySQL | |||
738 | } | 739 | } |
739 | else | 740 | else |
740 | { | 741 | { |
741 | UUID.TryParse(result["region_id"].ToString(), out nWP.regionID); | 742 | nWP.regionID = DBGuid.FromDB(result["region_id"]); |
742 | nWP.waterColor.X = Convert.ToSingle(result["water_color_r"]); | 743 | nWP.waterColor.X = Convert.ToSingle(result["water_color_r"]); |
743 | nWP.waterColor.Y = Convert.ToSingle(result["water_color_g"]); | 744 | nWP.waterColor.Y = Convert.ToSingle(result["water_color_g"]); |
744 | nWP.waterColor.Z = Convert.ToSingle(result["water_color_b"]); | 745 | nWP.waterColor.Z = Convert.ToSingle(result["water_color_b"]); |
@@ -1055,7 +1056,14 @@ namespace OpenSim.Data.MySQL | |||
1055 | private SceneObjectPart BuildPrim(IDataReader row) | 1056 | private SceneObjectPart BuildPrim(IDataReader row) |
1056 | { | 1057 | { |
1057 | SceneObjectPart prim = new SceneObjectPart(); | 1058 | SceneObjectPart prim = new SceneObjectPart(); |
1058 | prim.UUID = new UUID((string)row["UUID"]); | 1059 | |
1060 | // depending on the MySQL connector version, CHAR(36) may be already converted to Guid! | ||
1061 | prim.UUID = DBGuid.FromDB(row["UUID"]); | ||
1062 | prim.CreatorID = DBGuid.FromDB(row["CreatorID"]); | ||
1063 | prim.OwnerID = DBGuid.FromDB(row["OwnerID"]); | ||
1064 | prim.GroupID = DBGuid.FromDB(row["GroupID"]); | ||
1065 | prim.LastOwnerID = DBGuid.FromDB(row["LastOwnerID"]); | ||
1066 | |||
1059 | // explicit conversion of integers is required, which sort | 1067 | // explicit conversion of integers is required, which sort |
1060 | // of sucks. No idea if there is a shortcut here or not. | 1068 | // of sucks. No idea if there is a shortcut here or not. |
1061 | prim.CreationDate = (int)row["CreationDate"]; | 1069 | prim.CreationDate = (int)row["CreationDate"]; |
@@ -1074,15 +1082,12 @@ namespace OpenSim.Data.MySQL | |||
1074 | prim.TouchName = (string)row["TouchName"]; | 1082 | prim.TouchName = (string)row["TouchName"]; |
1075 | // Permissions | 1083 | // Permissions |
1076 | prim.ObjectFlags = (uint)(int)row["ObjectFlags"]; | 1084 | prim.ObjectFlags = (uint)(int)row["ObjectFlags"]; |
1077 | prim.CreatorID = new UUID((string)row["CreatorID"]); | ||
1078 | prim.OwnerID = new UUID((string)row["OwnerID"]); | ||
1079 | prim.GroupID = new UUID((string)row["GroupID"]); | ||
1080 | prim.LastOwnerID = new UUID((string)row["LastOwnerID"]); | ||
1081 | prim.OwnerMask = (uint)(int)row["OwnerMask"]; | 1085 | prim.OwnerMask = (uint)(int)row["OwnerMask"]; |
1082 | prim.NextOwnerMask = (uint)(int)row["NextOwnerMask"]; | 1086 | prim.NextOwnerMask = (uint)(int)row["NextOwnerMask"]; |
1083 | prim.GroupMask = (uint)(int)row["GroupMask"]; | 1087 | prim.GroupMask = (uint)(int)row["GroupMask"]; |
1084 | prim.EveryoneMask = (uint)(int)row["EveryoneMask"]; | 1088 | prim.EveryoneMask = (uint)(int)row["EveryoneMask"]; |
1085 | prim.BaseMask = (uint)(int)row["BaseMask"]; | 1089 | prim.BaseMask = (uint)(int)row["BaseMask"]; |
1090 | |||
1086 | // Vectors | 1091 | // Vectors |
1087 | prim.OffsetPosition = new Vector3( | 1092 | prim.OffsetPosition = new Vector3( |
1088 | (float)(double)row["PositionX"], | 1093 | (float)(double)row["PositionX"], |
@@ -1134,7 +1139,7 @@ namespace OpenSim.Data.MySQL | |||
1134 | prim.PayPrice[3] = (int)row["PayButton3"]; | 1139 | prim.PayPrice[3] = (int)row["PayButton3"]; |
1135 | prim.PayPrice[4] = (int)row["PayButton4"]; | 1140 | prim.PayPrice[4] = (int)row["PayButton4"]; |
1136 | 1141 | ||
1137 | prim.Sound = new UUID(row["LoopedSound"].ToString()); | 1142 | prim.Sound = DBGuid.FromDB(row["LoopedSound"].ToString()); |
1138 | prim.SoundGain = (float)(double)row["LoopedSoundGain"]; | 1143 | prim.SoundGain = (float)(double)row["LoopedSoundGain"]; |
1139 | prim.SoundFlags = 1; // If it's persisted at all, it's looped | 1144 | prim.SoundFlags = 1; // If it's persisted at all, it's looped |
1140 | 1145 | ||
@@ -1161,16 +1166,10 @@ namespace OpenSim.Data.MySQL | |||
1161 | (float)(double)row["CameraAtOffsetZ"] | 1166 | (float)(double)row["CameraAtOffsetZ"] |
1162 | )); | 1167 | )); |
1163 | 1168 | ||
1164 | if ((sbyte)row["ForceMouselook"] != 0) | 1169 | prim.SetForceMouselook((sbyte)row["ForceMouselook"] != 0); |
1165 | prim.SetForceMouselook(true); | ||
1166 | |||
1167 | prim.ScriptAccessPin = (int)row["ScriptAccessPin"]; | 1170 | prim.ScriptAccessPin = (int)row["ScriptAccessPin"]; |
1168 | 1171 | prim.AllowedDrop = ((sbyte)row["AllowedDrop"] != 0); | |
1169 | if ((sbyte)row["AllowedDrop"] != 0) | 1172 | prim.DIE_AT_EDGE = ((sbyte)row["DieAtEdge"] != 0); |
1170 | prim.AllowedDrop = true; | ||
1171 | |||
1172 | if ((sbyte)row["DieAtEdge"] != 0) | ||
1173 | prim.DIE_AT_EDGE = true; | ||
1174 | 1173 | ||
1175 | prim.SalePrice = (int)row["SalePrice"]; | 1174 | prim.SalePrice = (int)row["SalePrice"]; |
1176 | prim.ObjectSaleType = unchecked((byte)(sbyte)row["SaleType"]); | 1175 | prim.ObjectSaleType = unchecked((byte)(sbyte)row["SaleType"]); |
@@ -1180,11 +1179,10 @@ namespace OpenSim.Data.MySQL | |||
1180 | if (!(row["ClickAction"] is DBNull)) | 1179 | if (!(row["ClickAction"] is DBNull)) |
1181 | prim.ClickAction = unchecked((byte)(sbyte)row["ClickAction"]); | 1180 | prim.ClickAction = unchecked((byte)(sbyte)row["ClickAction"]); |
1182 | 1181 | ||
1183 | prim.CollisionSound = new UUID(row["CollisionSound"].ToString()); | 1182 | prim.CollisionSound = DBGuid.FromDB(row["CollisionSound"]); |
1184 | prim.CollisionSoundVolume = (float)(double)row["CollisionSoundVolume"]; | 1183 | prim.CollisionSoundVolume = (float)(double)row["CollisionSoundVolume"]; |
1185 | 1184 | ||
1186 | if ((sbyte)row["PassTouches"] != 0) | 1185 | prim.PassTouches = ((sbyte)row["PassTouches"] != 0); |
1187 | prim.PassTouches = true; | ||
1188 | prim.LinkNum = (int)row["LinkNumber"]; | 1186 | prim.LinkNum = (int)row["LinkNumber"]; |
1189 | 1187 | ||
1190 | return prim; | 1188 | return prim; |
@@ -1200,10 +1198,10 @@ namespace OpenSim.Data.MySQL | |||
1200 | { | 1198 | { |
1201 | TaskInventoryItem taskItem = new TaskInventoryItem(); | 1199 | TaskInventoryItem taskItem = new TaskInventoryItem(); |
1202 | 1200 | ||
1203 | taskItem.ItemID = new UUID((String)row["itemID"]); | 1201 | taskItem.ItemID = DBGuid.FromDB(row["itemID"]); |
1204 | taskItem.ParentPartID = new UUID((String)row["primID"]); | 1202 | taskItem.ParentPartID = DBGuid.FromDB(row["primID"]); |
1205 | taskItem.AssetID = new UUID((String)row["assetID"]); | 1203 | taskItem.AssetID = DBGuid.FromDB(row["assetID"]); |
1206 | taskItem.ParentID = new UUID((String)row["parentFolderID"]); | 1204 | taskItem.ParentID = DBGuid.FromDB(row["parentFolderID"]); |
1207 | 1205 | ||
1208 | taskItem.InvType = Convert.ToInt32(row["invType"]); | 1206 | taskItem.InvType = Convert.ToInt32(row["invType"]); |
1209 | taskItem.Type = Convert.ToInt32(row["assetType"]); | 1207 | taskItem.Type = Convert.ToInt32(row["assetType"]); |
@@ -1211,10 +1209,10 @@ namespace OpenSim.Data.MySQL | |||
1211 | taskItem.Name = (String)row["name"]; | 1209 | taskItem.Name = (String)row["name"]; |
1212 | taskItem.Description = (String)row["description"]; | 1210 | taskItem.Description = (String)row["description"]; |
1213 | taskItem.CreationDate = Convert.ToUInt32(row["creationDate"]); | 1211 | taskItem.CreationDate = Convert.ToUInt32(row["creationDate"]); |
1214 | taskItem.CreatorID = new UUID((String)row["creatorID"]); | 1212 | taskItem.CreatorID = DBGuid.FromDB(row["creatorID"]); |
1215 | taskItem.OwnerID = new UUID((String)row["ownerID"]); | 1213 | taskItem.OwnerID = DBGuid.FromDB(row["ownerID"]); |
1216 | taskItem.LastOwnerID = new UUID((String)row["lastOwnerID"]); | 1214 | taskItem.LastOwnerID = DBGuid.FromDB(row["lastOwnerID"]); |
1217 | taskItem.GroupID = new UUID((String)row["groupID"]); | 1215 | taskItem.GroupID = DBGuid.FromDB(row["groupID"]); |
1218 | 1216 | ||
1219 | taskItem.NextPermissions = Convert.ToUInt32(row["nextPermissions"]); | 1217 | taskItem.NextPermissions = Convert.ToUInt32(row["nextPermissions"]); |
1220 | taskItem.CurrentPermissions = Convert.ToUInt32(row["currentPermissions"]); | 1218 | taskItem.CurrentPermissions = Convert.ToUInt32(row["currentPermissions"]); |
@@ -1230,7 +1228,7 @@ namespace OpenSim.Data.MySQL | |||
1230 | { | 1228 | { |
1231 | RegionSettings newSettings = new RegionSettings(); | 1229 | RegionSettings newSettings = new RegionSettings(); |
1232 | 1230 | ||
1233 | newSettings.RegionUUID = new UUID((string) row["regionUUID"]); | 1231 | newSettings.RegionUUID = DBGuid.FromDB(row["regionUUID"]); |
1234 | newSettings.BlockTerraform = Convert.ToBoolean(row["block_terraform"]); | 1232 | newSettings.BlockTerraform = Convert.ToBoolean(row["block_terraform"]); |
1235 | newSettings.AllowDamage = Convert.ToBoolean(row["allow_damage"]); | 1233 | newSettings.AllowDamage = Convert.ToBoolean(row["allow_damage"]); |
1236 | newSettings.BlockFly = Convert.ToBoolean(row["block_fly"]); | 1234 | newSettings.BlockFly = Convert.ToBoolean(row["block_fly"]); |
@@ -1244,10 +1242,10 @@ namespace OpenSim.Data.MySQL | |||
1244 | newSettings.DisableScripts = Convert.ToBoolean(row["disable_scripts"]); | 1242 | newSettings.DisableScripts = Convert.ToBoolean(row["disable_scripts"]); |
1245 | newSettings.DisableCollisions = Convert.ToBoolean(row["disable_collisions"]); | 1243 | newSettings.DisableCollisions = Convert.ToBoolean(row["disable_collisions"]); |
1246 | newSettings.DisablePhysics = Convert.ToBoolean(row["disable_physics"]); | 1244 | newSettings.DisablePhysics = Convert.ToBoolean(row["disable_physics"]); |
1247 | newSettings.TerrainTexture1 = new UUID((String) row["terrain_texture_1"]); | 1245 | newSettings.TerrainTexture1 = DBGuid.FromDB(row["terrain_texture_1"]); |
1248 | newSettings.TerrainTexture2 = new UUID((String) row["terrain_texture_2"]); | 1246 | newSettings.TerrainTexture2 = DBGuid.FromDB(row["terrain_texture_2"]); |
1249 | newSettings.TerrainTexture3 = new UUID((String) row["terrain_texture_3"]); | 1247 | newSettings.TerrainTexture3 = DBGuid.FromDB(row["terrain_texture_3"]); |
1250 | newSettings.TerrainTexture4 = new UUID((String) row["terrain_texture_4"]); | 1248 | newSettings.TerrainTexture4 = DBGuid.FromDB(row["terrain_texture_4"]); |
1251 | newSettings.Elevation1NW = Convert.ToDouble(row["elevation_1_nw"]); | 1249 | newSettings.Elevation1NW = Convert.ToDouble(row["elevation_1_nw"]); |
1252 | newSettings.Elevation2NW = Convert.ToDouble(row["elevation_2_nw"]); | 1250 | newSettings.Elevation2NW = Convert.ToDouble(row["elevation_2_nw"]); |
1253 | newSettings.Elevation1NE = Convert.ToDouble(row["elevation_1_ne"]); | 1251 | newSettings.Elevation1NE = Convert.ToDouble(row["elevation_1_ne"]); |
@@ -1268,7 +1266,7 @@ namespace OpenSim.Data.MySQL | |||
1268 | ); | 1266 | ); |
1269 | newSettings.FixedSun = Convert.ToBoolean(row["fixed_sun"]); | 1267 | newSettings.FixedSun = Convert.ToBoolean(row["fixed_sun"]); |
1270 | newSettings.SunPosition = Convert.ToDouble(row["sun_position"]); | 1268 | newSettings.SunPosition = Convert.ToDouble(row["sun_position"]); |
1271 | newSettings.Covenant = new UUID((String) row["covenant"]); | 1269 | newSettings.Covenant = DBGuid.FromDB(row["covenant"]); |
1272 | 1270 | ||
1273 | newSettings.LoadedCreationDateTime = Convert.ToInt32(row["loaded_creation_datetime"]); | 1271 | newSettings.LoadedCreationDateTime = Convert.ToInt32(row["loaded_creation_datetime"]); |
1274 | 1272 | ||
@@ -1277,7 +1275,7 @@ namespace OpenSim.Data.MySQL | |||
1277 | else | 1275 | else |
1278 | newSettings.LoadedCreationID = (String) row["loaded_creation_id"]; | 1276 | newSettings.LoadedCreationID = (String) row["loaded_creation_id"]; |
1279 | 1277 | ||
1280 | newSettings.TerrainImageID = new UUID((String)row["map_tile_ID"]); | 1278 | newSettings.TerrainImageID = DBGuid.FromDB(row["map_tile_ID"]); |
1281 | 1279 | ||
1282 | return newSettings; | 1280 | return newSettings; |
1283 | } | 1281 | } |
@@ -1291,7 +1289,7 @@ namespace OpenSim.Data.MySQL | |||
1291 | { | 1289 | { |
1292 | LandData newData = new LandData(); | 1290 | LandData newData = new LandData(); |
1293 | 1291 | ||
1294 | newData.GlobalID = new UUID((String) row["UUID"]); | 1292 | newData.GlobalID = DBGuid.FromDB(row["UUID"]); |
1295 | newData.LocalID = Convert.ToInt32(row["LocalLandID"]); | 1293 | newData.LocalID = Convert.ToInt32(row["LocalLandID"]); |
1296 | 1294 | ||
1297 | // Bitmap is a byte[512] | 1295 | // Bitmap is a byte[512] |
@@ -1299,7 +1297,7 @@ namespace OpenSim.Data.MySQL | |||
1299 | 1297 | ||
1300 | newData.Name = (String) row["Name"]; | 1298 | newData.Name = (String) row["Name"]; |
1301 | newData.Description = (String) row["Description"]; | 1299 | newData.Description = (String) row["Description"]; |
1302 | newData.OwnerID = new UUID((String)row["OwnerUUID"]); | 1300 | newData.OwnerID = DBGuid.FromDB(row["OwnerUUID"]); |
1303 | newData.IsGroupOwned = Convert.ToBoolean(row["IsGroupOwned"]); | 1301 | newData.IsGroupOwned = Convert.ToBoolean(row["IsGroupOwned"]); |
1304 | newData.Area = Convert.ToInt32(row["Area"]); | 1302 | newData.Area = Convert.ToInt32(row["Area"]); |
1305 | newData.AuctionID = Convert.ToUInt32(row["AuctionID"]); //Unimplemented | 1303 | newData.AuctionID = Convert.ToUInt32(row["AuctionID"]); //Unimplemented |
@@ -1307,14 +1305,14 @@ namespace OpenSim.Data.MySQL | |||
1307 | //Enum libsecondlife.Parcel.ParcelCategory | 1305 | //Enum libsecondlife.Parcel.ParcelCategory |
1308 | newData.ClaimDate = Convert.ToInt32(row["ClaimDate"]); | 1306 | newData.ClaimDate = Convert.ToInt32(row["ClaimDate"]); |
1309 | newData.ClaimPrice = Convert.ToInt32(row["ClaimPrice"]); | 1307 | newData.ClaimPrice = Convert.ToInt32(row["ClaimPrice"]); |
1310 | newData.GroupID = new UUID((String) row["GroupUUID"]); | 1308 | newData.GroupID = DBGuid.FromDB(row["GroupUUID"]); |
1311 | newData.SalePrice = Convert.ToInt32(row["SalePrice"]); | 1309 | newData.SalePrice = Convert.ToInt32(row["SalePrice"]); |
1312 | newData.Status = (ParcelStatus) Convert.ToInt32(row["LandStatus"]); | 1310 | newData.Status = (ParcelStatus) Convert.ToInt32(row["LandStatus"]); |
1313 | //Enum. libsecondlife.Parcel.ParcelStatus | 1311 | //Enum. libsecondlife.Parcel.ParcelStatus |
1314 | newData.Flags = Convert.ToUInt32(row["LandFlags"]); | 1312 | newData.Flags = Convert.ToUInt32(row["LandFlags"]); |
1315 | newData.LandingType = Convert.ToByte(row["LandingType"]); | 1313 | newData.LandingType = Convert.ToByte(row["LandingType"]); |
1316 | newData.MediaAutoScale = Convert.ToByte(row["MediaAutoScale"]); | 1314 | newData.MediaAutoScale = Convert.ToByte(row["MediaAutoScale"]); |
1317 | newData.MediaID = new UUID((String) row["MediaTextureUUID"]); | 1315 | newData.MediaID = DBGuid.FromDB(row["MediaTextureUUID"]); |
1318 | newData.MediaURL = (String) row["MediaURL"]; | 1316 | newData.MediaURL = (String) row["MediaURL"]; |
1319 | newData.MusicURL = (String) row["MusicURL"]; | 1317 | newData.MusicURL = (String) row["MusicURL"]; |
1320 | newData.PassHours = Convert.ToSingle(row["PassHours"]); | 1318 | newData.PassHours = Convert.ToSingle(row["PassHours"]); |
@@ -1358,7 +1356,7 @@ namespace OpenSim.Data.MySQL | |||
1358 | private static ParcelManager.ParcelAccessEntry BuildLandAccessData(IDataReader row) | 1356 | private static ParcelManager.ParcelAccessEntry BuildLandAccessData(IDataReader row) |
1359 | { | 1357 | { |
1360 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); | 1358 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); |
1361 | entry.AgentID = new UUID((string) row["AccessUUID"]); | 1359 | entry.AgentID = DBGuid.FromDB(row["AccessUUID"]); |
1362 | entry.Flags = (AccessList) Convert.ToInt32(row["Flags"]); | 1360 | entry.Flags = (AccessList) Convert.ToInt32(row["Flags"]); |
1363 | entry.Time = new DateTime(); | 1361 | entry.Time = new DateTime(); |
1364 | return entry; | 1362 | return entry; |