diff options
-rw-r--r-- | OpenSim/Data/SQLite/Resources/RegionStore.migrations | 70 | ||||
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteSimulationData.cs | 927 | ||||
-rwxr-xr-x | bin/OpenSim.ini.example | 1 | ||||
-rw-r--r-- | bin/OpenSimDefaults.ini | 1 |
4 files changed, 692 insertions, 307 deletions
diff --git a/OpenSim/Data/SQLite/Resources/RegionStore.migrations b/OpenSim/Data/SQLite/Resources/RegionStore.migrations index 31195af..0f40cdc 100644 --- a/OpenSim/Data/SQLite/Resources/RegionStore.migrations +++ b/OpenSim/Data/SQLite/Resources/RegionStore.migrations | |||
@@ -472,3 +472,73 @@ COMMIT; | |||
472 | BEGIN; | 472 | BEGIN; |
473 | ALTER TABLE regionsettings ADD COLUMN covenant_datetime INTEGER NOT NULL default 0; | 473 | ALTER TABLE regionsettings ADD COLUMN covenant_datetime INTEGER NOT NULL default 0; |
474 | COMMIT; | 474 | COMMIT; |
475 | |||
476 | :VERSION 23 | ||
477 | BEGIN; | ||
478 | CREATE TABLE regionwindlight ( | ||
479 | region_id VARCHAR(36) NOT NULL DEFAULT '000000-0000-0000-0000-000000000000' PRIMARY KEY, | ||
480 | water_color_r FLOAT NOT NULL DEFAULT '4.000000', | ||
481 | water_color_g FLOAT NOT NULL DEFAULT '38.000000', | ||
482 | water_color_b FLOAT NOT NULL DEFAULT '64.000000', | ||
483 | water_color_i FLOAT NOT NULL DEFAULT '1.000000', | ||
484 | water_fog_density_exponent FLOAT NOT NULL DEFAULT '4.0', | ||
485 | underwater_fog_modifier FLOAT NOT NULL DEFAULT '0.25', | ||
486 | reflection_wavelet_scale_1 FLOAT NOT NULL DEFAULT '2.0', | ||
487 | reflection_wavelet_scale_2 FLOAT NOT NULL DEFAULT '2.0', | ||
488 | reflection_wavelet_scale_3 FLOAT NOT NULL DEFAULT '2.0', | ||
489 | fresnel_scale FLOAT NOT NULL DEFAULT '0.40', | ||
490 | fresnel_offset FLOAT NOT NULL DEFAULT '0.50', | ||
491 | refract_scale_above FLOAT NOT NULL DEFAULT '0.03', | ||
492 | refract_scale_below FLOAT NOT NULL DEFAULT '0.20', | ||
493 | blur_multiplier FLOAT NOT NULL DEFAULT '0.040', | ||
494 | big_wave_direction_x FLOAT NOT NULL DEFAULT '1.05', | ||
495 | big_wave_direction_y FLOAT NOT NULL DEFAULT '-0.42', | ||
496 | little_wave_direction_x FLOAT NOT NULL DEFAULT '1.11', | ||
497 | little_wave_direction_y FLOAT NOT NULL DEFAULT '-1.16', | ||
498 | normal_map_texture VARCHAR(36) NOT NULL DEFAULT '822ded49-9a6c-f61c-cb89-6df54f42cdf4', | ||
499 | horizon_r FLOAT NOT NULL DEFAULT '0.25', | ||
500 | horizon_g FLOAT NOT NULL DEFAULT '0.25', | ||
501 | horizon_b FLOAT NOT NULL DEFAULT '0.32', | ||
502 | horizon_i FLOAT NOT NULL DEFAULT '0.32', | ||
503 | haze_horizon FLOAT NOT NULL DEFAULT '0.19', | ||
504 | blue_density_r FLOAT NOT NULL DEFAULT '0.12', | ||
505 | blue_density_g FLOAT NOT NULL DEFAULT '0.22', | ||
506 | blue_density_b FLOAT NOT NULL DEFAULT '0.38', | ||
507 | blue_density_i FLOAT NOT NULL DEFAULT '0.38', | ||
508 | haze_density FLOAT NOT NULL DEFAULT '0.70', | ||
509 | density_multiplier FLOAT NOT NULL DEFAULT '0.18', | ||
510 | distance_multiplier FLOAT NOT NULL DEFAULT '0.8', | ||
511 | max_altitude INTEGER NOT NULL DEFAULT '1605', | ||
512 | sun_moon_color_r FLOAT NOT NULL DEFAULT '0.24', | ||
513 | sun_moon_color_g FLOAT NOT NULL DEFAULT '0.26', | ||
514 | sun_moon_color_b FLOAT NOT NULL DEFAULT '0.30', | ||
515 | sun_moon_color_i FLOAT NOT NULL DEFAULT '0.30', | ||
516 | sun_moon_position FLOAT NOT NULL DEFAULT '0.317', | ||
517 | ambient_r FLOAT NOT NULL DEFAULT '0.35', | ||
518 | ambient_g FLOAT NOT NULL DEFAULT '0.35', | ||
519 | ambient_b FLOAT NOT NULL DEFAULT '0.35', | ||
520 | ambient_i FLOAT NOT NULL DEFAULT '0.35', | ||
521 | east_angle FLOAT NOT NULL DEFAULT '0.00', | ||
522 | sun_glow_focus FLOAT NOT NULL DEFAULT '0.10', | ||
523 | sun_glow_size FLOAT NOT NULL DEFAULT '1.75', | ||
524 | scene_gamma FLOAT NOT NULL DEFAULT '1.00', | ||
525 | star_brightness FLOAT NOT NULL DEFAULT '0.00', | ||
526 | cloud_color_r FLOAT NOT NULL DEFAULT '0.41', | ||
527 | cloud_color_g FLOAT NOT NULL DEFAULT '0.41', | ||
528 | cloud_color_b FLOAT NOT NULL DEFAULT '0.41', | ||
529 | cloud_color_i FLOAT NOT NULL DEFAULT '0.41', | ||
530 | cloud_x FLOAT NOT NULL DEFAULT '1.00', | ||
531 | cloud_y FLOAT NOT NULL DEFAULT '0.53', | ||
532 | cloud_density FLOAT NOT NULL DEFAULT '1.00', | ||
533 | cloud_coverage FLOAT NOT NULL DEFAULT '0.27', | ||
534 | cloud_scale FLOAT NOT NULL DEFAULT '0.42', | ||
535 | cloud_detail_x FLOAT NOT NULL DEFAULT '1.00', | ||
536 | cloud_detail_y FLOAT NOT NULL DEFAULT '0.53', | ||
537 | cloud_detail_density FLOAT NOT NULL DEFAULT '0.12', | ||
538 | cloud_scroll_x FLOAT NOT NULL DEFAULT '0.20', | ||
539 | cloud_scroll_x_lock INTEGER NOT NULL DEFAULT '0', | ||
540 | cloud_scroll_y FLOAT NOT NULL DEFAULT '0.01', | ||
541 | cloud_scroll_y_lock INTEGER NOT NULL DEFAULT '0', | ||
542 | draw_classic_clouds INTEGER NOT NULL DEFAULT '1'); | ||
543 | |||
544 | COMMIT; \ No newline at end of file | ||
diff --git a/OpenSim/Data/SQLite/SQLiteSimulationData.cs b/OpenSim/Data/SQLite/SQLiteSimulationData.cs index a313c4f..ce1b7b4 100644 --- a/OpenSim/Data/SQLite/SQLiteSimulationData.cs +++ b/OpenSim/Data/SQLite/SQLiteSimulationData.cs | |||
@@ -35,7 +35,7 @@ using log4net; | |||
35 | #if CSharpSqlite | 35 | #if CSharpSqlite |
36 | using Community.CsharpSqlite.Sqlite; | 36 | using Community.CsharpSqlite.Sqlite; |
37 | #else | 37 | #else |
38 | using Mono.Data.Sqlite; | 38 | using Mono.Data.Sqlite; |
39 | #endif | 39 | #endif |
40 | using OpenMetaverse; | 40 | using OpenMetaverse; |
41 | using OpenMetaverse.StructuredData; | 41 | using OpenMetaverse.StructuredData; |
@@ -60,6 +60,7 @@ namespace OpenSim.Data.SQLite | |||
60 | private const string landAccessListSelect = "select distinct * from landaccesslist"; | 60 | private const string landAccessListSelect = "select distinct * from landaccesslist"; |
61 | private const string regionbanListSelect = "select * from regionban"; | 61 | private const string regionbanListSelect = "select * from regionban"; |
62 | private const string regionSettingsSelect = "select * from regionsettings"; | 62 | private const string regionSettingsSelect = "select * from regionsettings"; |
63 | private const string regionWindlightSelect = "select * from regionwindlight"; | ||
63 | 64 | ||
64 | private DataSet ds; | 65 | private DataSet ds; |
65 | private SqliteDataAdapter primDa; | 66 | private SqliteDataAdapter primDa; |
@@ -69,9 +70,9 @@ namespace OpenSim.Data.SQLite | |||
69 | private SqliteDataAdapter landDa; | 70 | private SqliteDataAdapter landDa; |
70 | private SqliteDataAdapter landAccessListDa; | 71 | private SqliteDataAdapter landAccessListDa; |
71 | private SqliteDataAdapter regionSettingsDa; | 72 | private SqliteDataAdapter regionSettingsDa; |
73 | private SqliteDataAdapter regionWindlightDa; | ||
72 | 74 | ||
73 | private SqliteConnection m_conn; | 75 | private SqliteConnection m_conn; |
74 | |||
75 | private String m_connectionString; | 76 | private String m_connectionString; |
76 | 77 | ||
77 | protected virtual Assembly Assembly | 78 | protected virtual Assembly Assembly |
@@ -136,6 +137,9 @@ namespace OpenSim.Data.SQLite | |||
136 | 137 | ||
137 | SqliteCommand regionSettingsSelectCmd = new SqliteCommand(regionSettingsSelect, m_conn); | 138 | SqliteCommand regionSettingsSelectCmd = new SqliteCommand(regionSettingsSelect, m_conn); |
138 | regionSettingsDa = new SqliteDataAdapter(regionSettingsSelectCmd); | 139 | regionSettingsDa = new SqliteDataAdapter(regionSettingsSelectCmd); |
140 | |||
141 | SqliteCommand regionWindlightSelectCmd = new SqliteCommand(regionWindlightSelect, m_conn); | ||
142 | regionWindlightDa = new SqliteDataAdapter(regionWindlightSelectCmd); | ||
139 | // This actually does the roll forward assembly stuff | 143 | // This actually does the roll forward assembly stuff |
140 | Migration m = new Migration(m_conn, Assembly, "RegionStore"); | 144 | Migration m = new Migration(m_conn, Assembly, "RegionStore"); |
141 | m.Update(); | 145 | m.Update(); |
@@ -163,6 +167,9 @@ namespace OpenSim.Data.SQLite | |||
163 | ds.Tables.Add(createRegionSettingsTable()); | 167 | ds.Tables.Add(createRegionSettingsTable()); |
164 | setupRegionSettingsCommands(regionSettingsDa, m_conn); | 168 | setupRegionSettingsCommands(regionSettingsDa, m_conn); |
165 | 169 | ||
170 | ds.Tables.Add(createRegionWindlightTable()); | ||
171 | setupRegionWindlightCommands(regionWindlightDa, m_conn); | ||
172 | |||
166 | // WORKAROUND: This is a work around for sqlite on | 173 | // WORKAROUND: This is a work around for sqlite on |
167 | // windows, which gets really unhappy with blob columns | 174 | // windows, which gets really unhappy with blob columns |
168 | // that have no sample data in them. At some point we | 175 | // that have no sample data in them. At some point we |
@@ -171,63 +178,72 @@ namespace OpenSim.Data.SQLite | |||
171 | { | 178 | { |
172 | primDa.Fill(ds.Tables["prims"]); | 179 | primDa.Fill(ds.Tables["prims"]); |
173 | } | 180 | } |
174 | catch (Exception) | 181 | catch (Exception e) |
175 | { | 182 | { |
176 | m_log.Info("[SQLITE REGION DB]: Caught fill error on prims table"); | 183 | m_log.ErrorFormat("[SQLITE REGION DB]: Caught fill error on prims table :{0}", e.Message); |
177 | } | 184 | } |
178 | 185 | ||
179 | try | 186 | try |
180 | { | 187 | { |
181 | shapeDa.Fill(ds.Tables["primshapes"]); | 188 | shapeDa.Fill(ds.Tables["primshapes"]); |
182 | } | 189 | } |
183 | catch (Exception) | 190 | catch (Exception e) |
184 | { | 191 | { |
185 | m_log.Info("[SQLITE REGION DB]: Caught fill error on primshapes table"); | 192 | m_log.ErrorFormat("[SQLITE REGION DB]: Caught fill error on primshapes table :{0}", e.Message); |
186 | } | 193 | } |
187 | 194 | ||
188 | try | 195 | try |
189 | { | 196 | { |
190 | itemsDa.Fill(ds.Tables["primitems"]); | 197 | itemsDa.Fill(ds.Tables["primitems"]); |
191 | } | 198 | } |
192 | catch (Exception) | 199 | catch (Exception e) |
193 | { | 200 | { |
194 | m_log.Info("[SQLITE REGION DB]: Caught fill error on primitems table"); | 201 | m_log.ErrorFormat("[SQLITE REGION DB]: Caught fill error on primitems table :{0}", e.Message); |
195 | } | 202 | } |
196 | 203 | ||
197 | try | 204 | try |
198 | { | 205 | { |
199 | terrainDa.Fill(ds.Tables["terrain"]); | 206 | terrainDa.Fill(ds.Tables["terrain"]); |
200 | } | 207 | } |
201 | catch (Exception) | 208 | catch (Exception e) |
202 | { | 209 | { |
203 | m_log.Info("[SQLITE REGION DB]: Caught fill error on terrain table"); | 210 | m_log.ErrorFormat("[SQLITE REGION DB]: Caught fill error on terrain table :{0}", e.Message); |
204 | } | 211 | } |
205 | 212 | ||
206 | try | 213 | try |
207 | { | 214 | { |
208 | landDa.Fill(ds.Tables["land"]); | 215 | landDa.Fill(ds.Tables["land"]); |
209 | } | 216 | } |
210 | catch (Exception) | 217 | catch (Exception e) |
211 | { | 218 | { |
212 | m_log.Info("[SQLITE REGION DB]: Caught fill error on land table"); | 219 | m_log.ErrorFormat("[SQLITE REGION DB]: Caught fill error on land table :{0}", e.Message); |
213 | } | 220 | } |
214 | 221 | ||
215 | try | 222 | try |
216 | { | 223 | { |
217 | landAccessListDa.Fill(ds.Tables["landaccesslist"]); | 224 | landAccessListDa.Fill(ds.Tables["landaccesslist"]); |
218 | } | 225 | } |
219 | catch (Exception) | 226 | catch (Exception e) |
220 | { | 227 | { |
221 | m_log.Info("[SQLITE REGION DB]: Caught fill error on landaccesslist table"); | 228 | m_log.ErrorFormat("[SQLITE REGION DB]: Caught fill error on landaccesslist table :{0}", e.Message); |
222 | } | 229 | } |
223 | 230 | ||
224 | try | 231 | try |
225 | { | 232 | { |
226 | regionSettingsDa.Fill(ds.Tables["regionsettings"]); | 233 | regionSettingsDa.Fill(ds.Tables["regionsettings"]); |
227 | } | 234 | } |
228 | catch (Exception) | 235 | catch (Exception e) |
236 | { | ||
237 | m_log.ErrorFormat("[SQLITE REGION DB]: Caught fill error on regionsettings table :{0}", e.Message); | ||
238 | } | ||
239 | |||
240 | try | ||
241 | { | ||
242 | regionWindlightDa.Fill(ds.Tables["regionwindlight"]); | ||
243 | } | ||
244 | catch (Exception e) | ||
229 | { | 245 | { |
230 | m_log.Info("[SQLITE REGION DB]: Caught fill error on regionsettings table"); | 246 | m_log.ErrorFormat("[SQLITE REGION DB]: Caught fill error on regionwindlight table :{0}", e.Message); |
231 | } | 247 | } |
232 | 248 | ||
233 | // We have to create a data set mapping for every table, otherwise the IDataAdaptor.Update() will not populate rows with values! | 249 | // We have to create a data set mapping for every table, otherwise the IDataAdaptor.Update() will not populate rows with values! |
@@ -240,14 +256,14 @@ namespace OpenSim.Data.SQLite | |||
240 | CreateDataSetMapping(landDa, "land"); | 256 | CreateDataSetMapping(landDa, "land"); |
241 | CreateDataSetMapping(landAccessListDa, "landaccesslist"); | 257 | CreateDataSetMapping(landAccessListDa, "landaccesslist"); |
242 | CreateDataSetMapping(regionSettingsDa, "regionsettings"); | 258 | CreateDataSetMapping(regionSettingsDa, "regionsettings"); |
259 | CreateDataSetMapping(regionWindlightDa, "regionwindlight"); | ||
243 | } | 260 | } |
244 | } | 261 | } |
245 | catch (Exception e) | 262 | catch (Exception e) |
246 | { | 263 | { |
247 | m_log.Error(e); | 264 | m_log.ErrorFormat("[SQLITE REGION DB]: ", e); |
248 | Environment.Exit(23); | 265 | Environment.Exit(23); |
249 | } | 266 | } |
250 | |||
251 | return; | 267 | return; |
252 | } | 268 | } |
253 | 269 | ||
@@ -298,6 +314,11 @@ namespace OpenSim.Data.SQLite | |||
298 | regionSettingsDa.Dispose(); | 314 | regionSettingsDa.Dispose(); |
299 | regionSettingsDa = null; | 315 | regionSettingsDa = null; |
300 | } | 316 | } |
317 | if (regionWindlightDa != null) | ||
318 | { | ||
319 | regionWindlightDa.Dispose(); | ||
320 | regionWindlightDa = null; | ||
321 | } | ||
301 | } | 322 | } |
302 | 323 | ||
303 | public void StoreRegionSettings(RegionSettings rs) | 324 | public void StoreRegionSettings(RegionSettings rs) |
@@ -321,19 +342,76 @@ namespace OpenSim.Data.SQLite | |||
321 | Commit(); | 342 | Commit(); |
322 | } | 343 | } |
323 | } | 344 | } |
345 | |||
346 | /// <summary> | ||
347 | /// Load windlight settings from region storage | ||
348 | /// </summary> | ||
349 | /// <param name="regionUUID">RegionID</param> | ||
324 | public RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID) | 350 | public RegionLightShareData LoadRegionWindlightSettings(UUID regionUUID) |
325 | { | 351 | { |
326 | //This connector doesn't support the windlight module yet | 352 | RegionLightShareData wl = null; |
327 | //Return default LL windlight settings | 353 | |
328 | return new RegionLightShareData(); | 354 | lock (ds) |
355 | { | ||
356 | DataTable windlightTable = ds.Tables["regionwindlight"]; | ||
357 | DataRow windlightRow = windlightTable.Rows.Find(regionUUID.ToString()); | ||
358 | if (windlightRow == null) | ||
359 | { | ||
360 | wl = new RegionLightShareData(); | ||
361 | wl.regionID = regionUUID; | ||
362 | StoreRegionWindlightSettings(wl); | ||
363 | return wl; | ||
364 | } | ||
365 | wl = buildRegionWindlight(windlightRow); | ||
366 | return wl; | ||
367 | } | ||
329 | } | 368 | } |
369 | |||
370 | /// <summary> | ||
371 | /// Remove windlight settings from region storage | ||
372 | /// </summary> | ||
373 | /// <param name="regionID">RegionID</param> | ||
330 | public void RemoveRegionWindlightSettings(UUID regionID) | 374 | public void RemoveRegionWindlightSettings(UUID regionID) |
331 | { | 375 | { |
376 | lock (ds) | ||
377 | { | ||
378 | DataTable windlightTable = ds.Tables["regionwindlight"]; | ||
379 | DataRow windlightRow = windlightTable.Rows.Find(regionID.ToString()); | ||
380 | |||
381 | if (windlightRow != null) | ||
382 | { | ||
383 | windlightRow.Delete(); | ||
384 | } | ||
385 | } | ||
386 | Commit(); | ||
332 | } | 387 | } |
388 | |||
389 | /// <summary> | ||
390 | /// Adds an windlight into region storage | ||
391 | /// </summary> | ||
392 | /// <param name="wl">RegionLightShareData</param> | ||
333 | public void StoreRegionWindlightSettings(RegionLightShareData wl) | 393 | public void StoreRegionWindlightSettings(RegionLightShareData wl) |
334 | { | 394 | { |
335 | //This connector doesn't support the windlight module yet | 395 | lock (ds) |
396 | { | ||
397 | DataTable windlightTable = ds.Tables["regionwindlight"]; | ||
398 | DataRow windlightRow = windlightTable.Rows.Find(wl.regionID.ToString()); | ||
399 | |||
400 | if (windlightRow == null) | ||
401 | { | ||
402 | windlightRow = windlightTable.NewRow(); | ||
403 | fillRegionWindlightRow(windlightRow, wl); | ||
404 | windlightTable.Rows.Add(windlightRow); | ||
405 | } | ||
406 | else | ||
407 | { | ||
408 | fillRegionWindlightRow(windlightRow, wl); | ||
409 | } | ||
410 | |||
411 | Commit(); | ||
412 | } | ||
336 | } | 413 | } |
414 | |||
337 | public RegionSettings LoadRegionSettings(UUID regionUUID) | 415 | public RegionSettings LoadRegionSettings(UUID regionUUID) |
338 | { | 416 | { |
339 | lock (ds) | 417 | lock (ds) |
@@ -387,7 +465,7 @@ namespace OpenSim.Data.SQLite | |||
387 | } | 465 | } |
388 | 466 | ||
389 | Commit(); | 467 | Commit(); |
390 | // m_log.Info("[Dump of prims]: " + ds.GetXml()); | 468 | // m_log.Info("[Dump of prims]: " + ds.GetXml()); |
391 | } | 469 | } |
392 | 470 | ||
393 | /// <summary> | 471 | /// <summary> |
@@ -397,7 +475,7 @@ namespace OpenSim.Data.SQLite | |||
397 | /// <param name="regionUUID">the region UUID</param> | 475 | /// <param name="regionUUID">the region UUID</param> |
398 | public void RemoveObject(UUID obj, UUID regionUUID) | 476 | public void RemoveObject(UUID obj, UUID regionUUID) |
399 | { | 477 | { |
400 | // m_log.InfoFormat("[REGION DB]: Removing obj: {0} from region: {1}", obj.Guid, regionUUID); | 478 | // m_log.InfoFormat("[REGION DB]: Removing obj: {0} from region: {1}", obj.Guid, regionUUID); |
401 | 479 | ||
402 | DataTable prims = ds.Tables["prims"]; | 480 | DataTable prims = ds.Tables["prims"]; |
403 | DataTable shapes = ds.Tables["primshapes"]; | 481 | DataTable shapes = ds.Tables["primshapes"]; |
@@ -409,7 +487,7 @@ namespace OpenSim.Data.SQLite | |||
409 | foreach (DataRow row in primRows) | 487 | foreach (DataRow row in primRows) |
410 | { | 488 | { |
411 | // Remove shape rows | 489 | // Remove shape rows |
412 | UUID uuid = new UUID((string) row["UUID"]); | 490 | UUID uuid = new UUID((string)row["UUID"]); |
413 | DataRow shapeRow = shapes.Rows.Find(uuid.ToString()); | 491 | DataRow shapeRow = shapes.Rows.Find(uuid.ToString()); |
414 | if (shapeRow != null) | 492 | if (shapeRow != null) |
415 | { | 493 | { |
@@ -464,7 +542,7 @@ namespace OpenSim.Data.SQLite | |||
464 | { | 542 | { |
465 | DataRow[] primsForRegion = prims.Select(byRegion); | 543 | DataRow[] primsForRegion = prims.Select(byRegion); |
466 | // m_log.Info("[SQLITE REGION DB]: Loaded " + primsForRegion.Length + " prims for region: " + regionUUID); | 544 | // m_log.Info("[SQLITE REGION DB]: Loaded " + primsForRegion.Length + " prims for region: " + regionUUID); |
467 | 545 | ||
468 | // First, create all groups | 546 | // First, create all groups |
469 | foreach (DataRow primRow in primsForRegion) | 547 | foreach (DataRow primRow in primsForRegion) |
470 | { | 548 | { |
@@ -472,9 +550,9 @@ namespace OpenSim.Data.SQLite | |||
472 | { | 550 | { |
473 | SceneObjectPart prim = null; | 551 | SceneObjectPart prim = null; |
474 | 552 | ||
475 | string uuid = (string) primRow["UUID"]; | 553 | string uuid = (string)primRow["UUID"]; |
476 | string objID = (string) primRow["SceneGroupID"]; | 554 | string objID = (string)primRow["SceneGroupID"]; |
477 | 555 | ||
478 | if (uuid == objID) //is new SceneObjectGroup ? | 556 | if (uuid == objID) //is new SceneObjectGroup ? |
479 | { | 557 | { |
480 | prim = buildPrim(primRow); | 558 | prim = buildPrim(primRow); |
@@ -489,7 +567,7 @@ namespace OpenSim.Data.SQLite | |||
489 | "[SQLITE REGION DB]: No shape found for prim in storage, so setting default box shape"); | 567 | "[SQLITE REGION DB]: No shape found for prim in storage, so setting default box shape"); |
490 | prim.Shape = PrimitiveBaseShape.Default; | 568 | prim.Shape = PrimitiveBaseShape.Default; |
491 | } | 569 | } |
492 | 570 | ||
493 | SceneObjectGroup group = new SceneObjectGroup(prim); | 571 | SceneObjectGroup group = new SceneObjectGroup(prim); |
494 | createdObjects.Add(group.UUID, group); | 572 | createdObjects.Add(group.UUID, group); |
495 | retvals.Add(group); | 573 | retvals.Add(group); |
@@ -506,7 +584,7 @@ namespace OpenSim.Data.SQLite | |||
506 | } | 584 | } |
507 | } | 585 | } |
508 | } | 586 | } |
509 | 587 | ||
510 | // Now fill the groups with part data | 588 | // Now fill the groups with part data |
511 | foreach (DataRow primRow in primsForRegion) | 589 | foreach (DataRow primRow in primsForRegion) |
512 | { | 590 | { |
@@ -514,8 +592,8 @@ namespace OpenSim.Data.SQLite | |||
514 | { | 592 | { |
515 | SceneObjectPart prim = null; | 593 | SceneObjectPart prim = null; |
516 | 594 | ||
517 | string uuid = (string) primRow["UUID"]; | 595 | string uuid = (string)primRow["UUID"]; |
518 | string objID = (string) primRow["SceneGroupID"]; | 596 | string objID = (string)primRow["SceneGroupID"]; |
519 | if (uuid != objID) //is new SceneObjectGroup ? | 597 | if (uuid != objID) //is new SceneObjectGroup ? |
520 | { | 598 | { |
521 | prim = buildPrim(primRow); | 599 | prim = buildPrim(primRow); |
@@ -562,8 +640,7 @@ namespace OpenSim.Data.SQLite | |||
562 | DataRow[] dbItemRows = dbItems.Select(sql); | 640 | DataRow[] dbItemRows = dbItems.Select(sql); |
563 | IList<TaskInventoryItem> inventory = new List<TaskInventoryItem>(); | 641 | IList<TaskInventoryItem> inventory = new List<TaskInventoryItem>(); |
564 | 642 | ||
565 | // m_log.DebugFormat( | 643 | // m_log.DebugFormat("[SQLITE REGION DB]: Found {0} items for {1} {2}", dbItemRows.Length, prim.Name, prim.UUID); |
566 | // "[SQLITE REGION DB]: Found {0} items for {1} {2}", dbItemRows.Length, prim.Name, prim.UUID); | ||
567 | 644 | ||
568 | foreach (DataRow row in dbItemRows) | 645 | foreach (DataRow row in dbItemRows) |
569 | { | 646 | { |
@@ -742,7 +819,7 @@ namespace OpenSim.Data.SQLite | |||
742 | // cmd.Parameters.Add(new SqliteParameter(":LandUUID", parcel.LandData.GlobalID.ToString())); | 819 | // cmd.Parameters.Add(new SqliteParameter(":LandUUID", parcel.LandData.GlobalID.ToString())); |
743 | // cmd.ExecuteNonQuery(); | 820 | // cmd.ExecuteNonQuery(); |
744 | 821 | ||
745 | // } | 822 | // } |
746 | 823 | ||
747 | // This is the slower.. but more appropriate thing to do | 824 | // This is the slower.. but more appropriate thing to do |
748 | 825 | ||
@@ -805,7 +882,7 @@ namespace OpenSim.Data.SQLite | |||
805 | /// </summary> | 882 | /// </summary> |
806 | public void Commit() | 883 | public void Commit() |
807 | { | 884 | { |
808 | //m_log.Debug("[SQLITE]: Starting commit"); | 885 | // m_log.Debug("[SQLITE]: Starting commit"); |
809 | lock (ds) | 886 | lock (ds) |
810 | { | 887 | { |
811 | primDa.Update(ds, "prims"); | 888 | primDa.Update(ds, "prims"); |
@@ -819,6 +896,7 @@ namespace OpenSim.Data.SQLite | |||
819 | try | 896 | try |
820 | { | 897 | { |
821 | regionSettingsDa.Update(ds, "regionsettings"); | 898 | regionSettingsDa.Update(ds, "regionsettings"); |
899 | regionWindlightDa.Update(ds, "regionwindlight"); | ||
822 | } | 900 | } |
823 | catch (SqliteException SqlEx) | 901 | catch (SqliteException SqlEx) |
824 | { | 902 | { |
@@ -875,9 +953,9 @@ namespace OpenSim.Data.SQLite | |||
875 | { | 953 | { |
876 | DataTable terrain = new DataTable("terrain"); | 954 | DataTable terrain = new DataTable("terrain"); |
877 | 955 | ||
878 | createCol(terrain, "RegionUUID", typeof (String)); | 956 | createCol(terrain, "RegionUUID", typeof(String)); |
879 | createCol(terrain, "Revision", typeof (Int32)); | 957 | createCol(terrain, "Revision", typeof(Int32)); |
880 | createCol(terrain, "Heightfield", typeof (Byte[])); | 958 | createCol(terrain, "Heightfield", typeof(Byte[])); |
881 | 959 | ||
882 | return terrain; | 960 | return terrain; |
883 | } | 961 | } |
@@ -890,62 +968,62 @@ namespace OpenSim.Data.SQLite | |||
890 | { | 968 | { |
891 | DataTable prims = new DataTable("prims"); | 969 | DataTable prims = new DataTable("prims"); |
892 | 970 | ||
893 | createCol(prims, "UUID", typeof (String)); | 971 | createCol(prims, "UUID", typeof(String)); |
894 | createCol(prims, "RegionUUID", typeof (String)); | 972 | createCol(prims, "RegionUUID", typeof(String)); |
895 | createCol(prims, "CreationDate", typeof (Int32)); | 973 | createCol(prims, "CreationDate", typeof(Int32)); |
896 | createCol(prims, "Name", typeof (String)); | 974 | createCol(prims, "Name", typeof(String)); |
897 | createCol(prims, "SceneGroupID", typeof (String)); | 975 | createCol(prims, "SceneGroupID", typeof(String)); |
898 | // various text fields | 976 | // various text fields |
899 | createCol(prims, "Text", typeof (String)); | 977 | createCol(prims, "Text", typeof(String)); |
900 | createCol(prims, "ColorR", typeof (Int32)); | 978 | createCol(prims, "ColorR", typeof(Int32)); |
901 | createCol(prims, "ColorG", typeof (Int32)); | 979 | createCol(prims, "ColorG", typeof(Int32)); |
902 | createCol(prims, "ColorB", typeof (Int32)); | 980 | createCol(prims, "ColorB", typeof(Int32)); |
903 | createCol(prims, "ColorA", typeof (Int32)); | 981 | createCol(prims, "ColorA", typeof(Int32)); |
904 | createCol(prims, "Description", typeof (String)); | 982 | createCol(prims, "Description", typeof(String)); |
905 | createCol(prims, "SitName", typeof (String)); | 983 | createCol(prims, "SitName", typeof(String)); |
906 | createCol(prims, "TouchName", typeof (String)); | 984 | createCol(prims, "TouchName", typeof(String)); |
907 | // permissions | 985 | // permissions |
908 | createCol(prims, "ObjectFlags", typeof (Int32)); | 986 | createCol(prims, "ObjectFlags", typeof(Int32)); |
909 | createCol(prims, "CreatorID", typeof (String)); | 987 | createCol(prims, "CreatorID", typeof(String)); |
910 | createCol(prims, "OwnerID", typeof (String)); | 988 | createCol(prims, "OwnerID", typeof(String)); |
911 | createCol(prims, "GroupID", typeof (String)); | 989 | createCol(prims, "GroupID", typeof(String)); |
912 | createCol(prims, "LastOwnerID", typeof (String)); | 990 | createCol(prims, "LastOwnerID", typeof(String)); |
913 | createCol(prims, "OwnerMask", typeof (Int32)); | 991 | createCol(prims, "OwnerMask", typeof(Int32)); |
914 | createCol(prims, "NextOwnerMask", typeof (Int32)); | 992 | createCol(prims, "NextOwnerMask", typeof(Int32)); |
915 | createCol(prims, "GroupMask", typeof (Int32)); | 993 | createCol(prims, "GroupMask", typeof(Int32)); |
916 | createCol(prims, "EveryoneMask", typeof (Int32)); | 994 | createCol(prims, "EveryoneMask", typeof(Int32)); |
917 | createCol(prims, "BaseMask", typeof (Int32)); | 995 | createCol(prims, "BaseMask", typeof(Int32)); |
918 | // vectors | 996 | // vectors |
919 | createCol(prims, "PositionX", typeof (Double)); | 997 | createCol(prims, "PositionX", typeof(Double)); |
920 | createCol(prims, "PositionY", typeof (Double)); | 998 | createCol(prims, "PositionY", typeof(Double)); |
921 | createCol(prims, "PositionZ", typeof (Double)); | 999 | createCol(prims, "PositionZ", typeof(Double)); |
922 | createCol(prims, "GroupPositionX", typeof (Double)); | 1000 | createCol(prims, "GroupPositionX", typeof(Double)); |
923 | createCol(prims, "GroupPositionY", typeof (Double)); | 1001 | createCol(prims, "GroupPositionY", typeof(Double)); |
924 | createCol(prims, "GroupPositionZ", typeof (Double)); | 1002 | createCol(prims, "GroupPositionZ", typeof(Double)); |
925 | createCol(prims, "VelocityX", typeof (Double)); | 1003 | createCol(prims, "VelocityX", typeof(Double)); |
926 | createCol(prims, "VelocityY", typeof (Double)); | 1004 | createCol(prims, "VelocityY", typeof(Double)); |
927 | createCol(prims, "VelocityZ", typeof (Double)); | 1005 | createCol(prims, "VelocityZ", typeof(Double)); |
928 | createCol(prims, "AngularVelocityX", typeof (Double)); | 1006 | createCol(prims, "AngularVelocityX", typeof(Double)); |
929 | createCol(prims, "AngularVelocityY", typeof (Double)); | 1007 | createCol(prims, "AngularVelocityY", typeof(Double)); |
930 | createCol(prims, "AngularVelocityZ", typeof (Double)); | 1008 | createCol(prims, "AngularVelocityZ", typeof(Double)); |
931 | createCol(prims, "AccelerationX", typeof (Double)); | 1009 | createCol(prims, "AccelerationX", typeof(Double)); |
932 | createCol(prims, "AccelerationY", typeof (Double)); | 1010 | createCol(prims, "AccelerationY", typeof(Double)); |
933 | createCol(prims, "AccelerationZ", typeof (Double)); | 1011 | createCol(prims, "AccelerationZ", typeof(Double)); |
934 | // quaternions | 1012 | // quaternions |
935 | createCol(prims, "RotationX", typeof (Double)); | 1013 | createCol(prims, "RotationX", typeof(Double)); |
936 | createCol(prims, "RotationY", typeof (Double)); | 1014 | createCol(prims, "RotationY", typeof(Double)); |
937 | createCol(prims, "RotationZ", typeof (Double)); | 1015 | createCol(prims, "RotationZ", typeof(Double)); |
938 | createCol(prims, "RotationW", typeof (Double)); | 1016 | createCol(prims, "RotationW", typeof(Double)); |
939 | 1017 | ||
940 | // sit target | 1018 | // sit target |
941 | createCol(prims, "SitTargetOffsetX", typeof (Double)); | 1019 | createCol(prims, "SitTargetOffsetX", typeof(Double)); |
942 | createCol(prims, "SitTargetOffsetY", typeof (Double)); | 1020 | createCol(prims, "SitTargetOffsetY", typeof(Double)); |
943 | createCol(prims, "SitTargetOffsetZ", typeof (Double)); | 1021 | createCol(prims, "SitTargetOffsetZ", typeof(Double)); |
944 | 1022 | ||
945 | createCol(prims, "SitTargetOrientW", typeof (Double)); | 1023 | createCol(prims, "SitTargetOrientW", typeof(Double)); |
946 | createCol(prims, "SitTargetOrientX", typeof (Double)); | 1024 | createCol(prims, "SitTargetOrientX", typeof(Double)); |
947 | createCol(prims, "SitTargetOrientY", typeof (Double)); | 1025 | createCol(prims, "SitTargetOrientY", typeof(Double)); |
948 | createCol(prims, "SitTargetOrientZ", typeof (Double)); | 1026 | createCol(prims, "SitTargetOrientZ", typeof(Double)); |
949 | 1027 | ||
950 | createCol(prims, "PayPrice", typeof(Int32)); | 1028 | createCol(prims, "PayPrice", typeof(Int32)); |
951 | createCol(prims, "PayButton1", typeof(Int32)); | 1029 | createCol(prims, "PayButton1", typeof(Int32)); |
@@ -981,7 +1059,7 @@ namespace OpenSim.Data.SQLite | |||
981 | createCol(prims, "SaleType", typeof(Int16)); | 1059 | createCol(prims, "SaleType", typeof(Int16)); |
982 | 1060 | ||
983 | // click action | 1061 | // click action |
984 | createCol(prims, "ClickAction", typeof (Byte)); | 1062 | createCol(prims, "ClickAction", typeof(Byte)); |
985 | 1063 | ||
986 | createCol(prims, "Material", typeof(Byte)); | 1064 | createCol(prims, "Material", typeof(Byte)); |
987 | 1065 | ||
@@ -993,7 +1071,7 @@ namespace OpenSim.Data.SQLite | |||
993 | createCol(prims, "MediaURL", typeof(String)); | 1071 | createCol(prims, "MediaURL", typeof(String)); |
994 | 1072 | ||
995 | // Add in contraints | 1073 | // Add in contraints |
996 | prims.PrimaryKey = new DataColumn[] {prims.Columns["UUID"]}; | 1074 | prims.PrimaryKey = new DataColumn[] { prims.Columns["UUID"] }; |
997 | 1075 | ||
998 | return prims; | 1076 | return prims; |
999 | } | 1077 | } |
@@ -1005,42 +1083,42 @@ namespace OpenSim.Data.SQLite | |||
1005 | private static DataTable createShapeTable() | 1083 | private static DataTable createShapeTable() |
1006 | { | 1084 | { |
1007 | DataTable shapes = new DataTable("primshapes"); | 1085 | DataTable shapes = new DataTable("primshapes"); |
1008 | createCol(shapes, "UUID", typeof (String)); | 1086 | createCol(shapes, "UUID", typeof(String)); |
1009 | // shape is an enum | 1087 | // shape is an enum |
1010 | createCol(shapes, "Shape", typeof (Int32)); | 1088 | createCol(shapes, "Shape", typeof(Int32)); |
1011 | // vectors | 1089 | // vectors |
1012 | createCol(shapes, "ScaleX", typeof (Double)); | 1090 | createCol(shapes, "ScaleX", typeof(Double)); |
1013 | createCol(shapes, "ScaleY", typeof (Double)); | 1091 | createCol(shapes, "ScaleY", typeof(Double)); |
1014 | createCol(shapes, "ScaleZ", typeof (Double)); | 1092 | createCol(shapes, "ScaleZ", typeof(Double)); |
1015 | // paths | 1093 | // paths |
1016 | createCol(shapes, "PCode", typeof (Int32)); | 1094 | createCol(shapes, "PCode", typeof(Int32)); |
1017 | createCol(shapes, "PathBegin", typeof (Int32)); | 1095 | createCol(shapes, "PathBegin", typeof(Int32)); |
1018 | createCol(shapes, "PathEnd", typeof (Int32)); | 1096 | createCol(shapes, "PathEnd", typeof(Int32)); |
1019 | createCol(shapes, "PathScaleX", typeof (Int32)); | 1097 | createCol(shapes, "PathScaleX", typeof(Int32)); |
1020 | createCol(shapes, "PathScaleY", typeof (Int32)); | 1098 | createCol(shapes, "PathScaleY", typeof(Int32)); |
1021 | createCol(shapes, "PathShearX", typeof (Int32)); | 1099 | createCol(shapes, "PathShearX", typeof(Int32)); |
1022 | createCol(shapes, "PathShearY", typeof (Int32)); | 1100 | createCol(shapes, "PathShearY", typeof(Int32)); |
1023 | createCol(shapes, "PathSkew", typeof (Int32)); | 1101 | createCol(shapes, "PathSkew", typeof(Int32)); |
1024 | createCol(shapes, "PathCurve", typeof (Int32)); | 1102 | createCol(shapes, "PathCurve", typeof(Int32)); |
1025 | createCol(shapes, "PathRadiusOffset", typeof (Int32)); | 1103 | createCol(shapes, "PathRadiusOffset", typeof(Int32)); |
1026 | createCol(shapes, "PathRevolutions", typeof (Int32)); | 1104 | createCol(shapes, "PathRevolutions", typeof(Int32)); |
1027 | createCol(shapes, "PathTaperX", typeof (Int32)); | 1105 | createCol(shapes, "PathTaperX", typeof(Int32)); |
1028 | createCol(shapes, "PathTaperY", typeof (Int32)); | 1106 | createCol(shapes, "PathTaperY", typeof(Int32)); |
1029 | createCol(shapes, "PathTwist", typeof (Int32)); | 1107 | createCol(shapes, "PathTwist", typeof(Int32)); |
1030 | createCol(shapes, "PathTwistBegin", typeof (Int32)); | 1108 | createCol(shapes, "PathTwistBegin", typeof(Int32)); |
1031 | // profile | 1109 | // profile |
1032 | createCol(shapes, "ProfileBegin", typeof (Int32)); | 1110 | createCol(shapes, "ProfileBegin", typeof(Int32)); |
1033 | createCol(shapes, "ProfileEnd", typeof (Int32)); | 1111 | createCol(shapes, "ProfileEnd", typeof(Int32)); |
1034 | createCol(shapes, "ProfileCurve", typeof (Int32)); | 1112 | createCol(shapes, "ProfileCurve", typeof(Int32)); |
1035 | createCol(shapes, "ProfileHollow", typeof (Int32)); | 1113 | createCol(shapes, "ProfileHollow", typeof(Int32)); |
1036 | createCol(shapes, "State", typeof(Int32)); | 1114 | createCol(shapes, "State", typeof(Int32)); |
1037 | // text TODO: this isn't right, but I'm not sure the right | 1115 | // text TODO: this isn't right, but I'm not sure the right |
1038 | // way to specify this as a blob atm | 1116 | // way to specify this as a blob atm |
1039 | createCol(shapes, "Texture", typeof (Byte[])); | 1117 | createCol(shapes, "Texture", typeof(Byte[])); |
1040 | createCol(shapes, "ExtraParams", typeof (Byte[])); | 1118 | createCol(shapes, "ExtraParams", typeof(Byte[])); |
1041 | createCol(shapes, "Media", typeof(String)); | 1119 | createCol(shapes, "Media", typeof(String)); |
1042 | 1120 | ||
1043 | shapes.PrimaryKey = new DataColumn[] {shapes.Columns["UUID"]}; | 1121 | shapes.PrimaryKey = new DataColumn[] { shapes.Columns["UUID"] }; |
1044 | 1122 | ||
1045 | return shapes; | 1123 | return shapes; |
1046 | } | 1124 | } |
@@ -1053,29 +1131,29 @@ namespace OpenSim.Data.SQLite | |||
1053 | { | 1131 | { |
1054 | DataTable items = new DataTable("primitems"); | 1132 | DataTable items = new DataTable("primitems"); |
1055 | 1133 | ||
1056 | createCol(items, "itemID", typeof (String)); | 1134 | createCol(items, "itemID", typeof(String)); |
1057 | createCol(items, "primID", typeof (String)); | 1135 | createCol(items, "primID", typeof(String)); |
1058 | createCol(items, "assetID", typeof (String)); | 1136 | createCol(items, "assetID", typeof(String)); |
1059 | createCol(items, "parentFolderID", typeof (String)); | 1137 | createCol(items, "parentFolderID", typeof(String)); |
1060 | 1138 | ||
1061 | createCol(items, "invType", typeof (Int32)); | 1139 | createCol(items, "invType", typeof(Int32)); |
1062 | createCol(items, "assetType", typeof (Int32)); | 1140 | createCol(items, "assetType", typeof(Int32)); |
1063 | 1141 | ||
1064 | createCol(items, "name", typeof (String)); | 1142 | createCol(items, "name", typeof(String)); |
1065 | createCol(items, "description", typeof (String)); | 1143 | createCol(items, "description", typeof(String)); |
1066 | 1144 | ||
1067 | createCol(items, "creationDate", typeof (Int64)); | 1145 | createCol(items, "creationDate", typeof(Int64)); |
1068 | createCol(items, "creatorID", typeof (String)); | 1146 | createCol(items, "creatorID", typeof(String)); |
1069 | createCol(items, "ownerID", typeof (String)); | 1147 | createCol(items, "ownerID", typeof(String)); |
1070 | createCol(items, "lastOwnerID", typeof (String)); | 1148 | createCol(items, "lastOwnerID", typeof(String)); |
1071 | createCol(items, "groupID", typeof (String)); | 1149 | createCol(items, "groupID", typeof(String)); |
1072 | 1150 | ||
1073 | createCol(items, "nextPermissions", typeof (UInt32)); | 1151 | createCol(items, "nextPermissions", typeof(UInt32)); |
1074 | createCol(items, "currentPermissions", typeof (UInt32)); | 1152 | createCol(items, "currentPermissions", typeof(UInt32)); |
1075 | createCol(items, "basePermissions", typeof (UInt32)); | 1153 | createCol(items, "basePermissions", typeof(UInt32)); |
1076 | createCol(items, "everyonePermissions", typeof (UInt32)); | 1154 | createCol(items, "everyonePermissions", typeof(UInt32)); |
1077 | createCol(items, "groupPermissions", typeof (UInt32)); | 1155 | createCol(items, "groupPermissions", typeof(UInt32)); |
1078 | createCol(items, "flags", typeof (UInt32)); | 1156 | createCol(items, "flags", typeof(UInt32)); |
1079 | 1157 | ||
1080 | items.PrimaryKey = new DataColumn[] { items.Columns["itemID"] }; | 1158 | items.PrimaryKey = new DataColumn[] { items.Columns["itemID"] }; |
1081 | 1159 | ||
@@ -1089,44 +1167,44 @@ namespace OpenSim.Data.SQLite | |||
1089 | private static DataTable createLandTable() | 1167 | private static DataTable createLandTable() |
1090 | { | 1168 | { |
1091 | DataTable land = new DataTable("land"); | 1169 | DataTable land = new DataTable("land"); |
1092 | createCol(land, "UUID", typeof (String)); | 1170 | createCol(land, "UUID", typeof(String)); |
1093 | createCol(land, "RegionUUID", typeof (String)); | 1171 | createCol(land, "RegionUUID", typeof(String)); |
1094 | createCol(land, "LocalLandID", typeof (UInt32)); | 1172 | createCol(land, "LocalLandID", typeof(UInt32)); |
1095 | 1173 | ||
1096 | // Bitmap is a byte[512] | 1174 | // Bitmap is a byte[512] |
1097 | createCol(land, "Bitmap", typeof (Byte[])); | 1175 | createCol(land, "Bitmap", typeof(Byte[])); |
1098 | 1176 | ||
1099 | createCol(land, "Name", typeof (String)); | 1177 | createCol(land, "Name", typeof(String)); |
1100 | createCol(land, "Desc", typeof (String)); | 1178 | createCol(land, "Desc", typeof(String)); |
1101 | createCol(land, "OwnerUUID", typeof (String)); | 1179 | createCol(land, "OwnerUUID", typeof(String)); |
1102 | createCol(land, "IsGroupOwned", typeof (Boolean)); | 1180 | createCol(land, "IsGroupOwned", typeof(Boolean)); |
1103 | createCol(land, "Area", typeof (Int32)); | 1181 | createCol(land, "Area", typeof(Int32)); |
1104 | createCol(land, "AuctionID", typeof (Int32)); //Unemplemented | 1182 | createCol(land, "AuctionID", typeof(Int32)); //Unemplemented |
1105 | createCol(land, "Category", typeof (Int32)); //Enum OpenMetaverse.Parcel.ParcelCategory | 1183 | createCol(land, "Category", typeof(Int32)); //Enum OpenMetaverse.Parcel.ParcelCategory |
1106 | createCol(land, "ClaimDate", typeof (Int32)); | 1184 | createCol(land, "ClaimDate", typeof(Int32)); |
1107 | createCol(land, "ClaimPrice", typeof (Int32)); | 1185 | createCol(land, "ClaimPrice", typeof(Int32)); |
1108 | createCol(land, "GroupUUID", typeof (string)); | 1186 | createCol(land, "GroupUUID", typeof(string)); |
1109 | createCol(land, "SalePrice", typeof (Int32)); | 1187 | createCol(land, "SalePrice", typeof(Int32)); |
1110 | createCol(land, "LandStatus", typeof (Int32)); //Enum. OpenMetaverse.Parcel.ParcelStatus | 1188 | createCol(land, "LandStatus", typeof(Int32)); //Enum. OpenMetaverse.Parcel.ParcelStatus |
1111 | createCol(land, "LandFlags", typeof (UInt32)); | 1189 | createCol(land, "LandFlags", typeof(UInt32)); |
1112 | createCol(land, "LandingType", typeof (Byte)); | 1190 | createCol(land, "LandingType", typeof(Byte)); |
1113 | createCol(land, "MediaAutoScale", typeof (Byte)); | 1191 | createCol(land, "MediaAutoScale", typeof(Byte)); |
1114 | createCol(land, "MediaTextureUUID", typeof (String)); | 1192 | createCol(land, "MediaTextureUUID", typeof(String)); |
1115 | createCol(land, "MediaURL", typeof (String)); | 1193 | createCol(land, "MediaURL", typeof(String)); |
1116 | createCol(land, "MusicURL", typeof (String)); | 1194 | createCol(land, "MusicURL", typeof(String)); |
1117 | createCol(land, "PassHours", typeof (Double)); | 1195 | createCol(land, "PassHours", typeof(Double)); |
1118 | createCol(land, "PassPrice", typeof (UInt32)); | 1196 | createCol(land, "PassPrice", typeof(UInt32)); |
1119 | createCol(land, "SnapshotUUID", typeof (String)); | 1197 | createCol(land, "SnapshotUUID", typeof(String)); |
1120 | createCol(land, "UserLocationX", typeof (Double)); | 1198 | createCol(land, "UserLocationX", typeof(Double)); |
1121 | createCol(land, "UserLocationY", typeof (Double)); | 1199 | createCol(land, "UserLocationY", typeof(Double)); |
1122 | createCol(land, "UserLocationZ", typeof (Double)); | 1200 | createCol(land, "UserLocationZ", typeof(Double)); |
1123 | createCol(land, "UserLookAtX", typeof (Double)); | 1201 | createCol(land, "UserLookAtX", typeof(Double)); |
1124 | createCol(land, "UserLookAtY", typeof (Double)); | 1202 | createCol(land, "UserLookAtY", typeof(Double)); |
1125 | createCol(land, "UserLookAtZ", typeof (Double)); | 1203 | createCol(land, "UserLookAtZ", typeof(Double)); |
1126 | createCol(land, "AuthbuyerID", typeof(String)); | 1204 | createCol(land, "AuthbuyerID", typeof(String)); |
1127 | createCol(land, "OtherCleanTime", typeof(Int32)); | 1205 | createCol(land, "OtherCleanTime", typeof(Int32)); |
1128 | 1206 | ||
1129 | land.PrimaryKey = new DataColumn[] {land.Columns["UUID"]}; | 1207 | land.PrimaryKey = new DataColumn[] { land.Columns["UUID"] }; |
1130 | 1208 | ||
1131 | return land; | 1209 | return land; |
1132 | } | 1210 | } |
@@ -1138,9 +1216,9 @@ namespace OpenSim.Data.SQLite | |||
1138 | private static DataTable createLandAccessListTable() | 1216 | private static DataTable createLandAccessListTable() |
1139 | { | 1217 | { |
1140 | DataTable landaccess = new DataTable("landaccesslist"); | 1218 | DataTable landaccess = new DataTable("landaccesslist"); |
1141 | createCol(landaccess, "LandUUID", typeof (String)); | 1219 | createCol(landaccess, "LandUUID", typeof(String)); |
1142 | createCol(landaccess, "AccessUUID", typeof (String)); | 1220 | createCol(landaccess, "AccessUUID", typeof(String)); |
1143 | createCol(landaccess, "Flags", typeof (UInt32)); | 1221 | createCol(landaccess, "Flags", typeof(UInt32)); |
1144 | 1222 | ||
1145 | return landaccess; | 1223 | return landaccess; |
1146 | } | 1224 | } |
@@ -1149,41 +1227,41 @@ namespace OpenSim.Data.SQLite | |||
1149 | { | 1227 | { |
1150 | DataTable regionsettings = new DataTable("regionsettings"); | 1228 | DataTable regionsettings = new DataTable("regionsettings"); |
1151 | createCol(regionsettings, "regionUUID", typeof(String)); | 1229 | createCol(regionsettings, "regionUUID", typeof(String)); |
1152 | createCol(regionsettings, "block_terraform", typeof (Int32)); | 1230 | createCol(regionsettings, "block_terraform", typeof(Int32)); |
1153 | createCol(regionsettings, "block_fly", typeof (Int32)); | 1231 | createCol(regionsettings, "block_fly", typeof(Int32)); |
1154 | createCol(regionsettings, "allow_damage", typeof (Int32)); | 1232 | createCol(regionsettings, "allow_damage", typeof(Int32)); |
1155 | createCol(regionsettings, "restrict_pushing", typeof (Int32)); | 1233 | createCol(regionsettings, "restrict_pushing", typeof(Int32)); |
1156 | createCol(regionsettings, "allow_land_resell", typeof (Int32)); | 1234 | createCol(regionsettings, "allow_land_resell", typeof(Int32)); |
1157 | createCol(regionsettings, "allow_land_join_divide", typeof (Int32)); | 1235 | createCol(regionsettings, "allow_land_join_divide", typeof(Int32)); |
1158 | createCol(regionsettings, "block_show_in_search", typeof (Int32)); | 1236 | createCol(regionsettings, "block_show_in_search", typeof(Int32)); |
1159 | createCol(regionsettings, "agent_limit", typeof (Int32)); | 1237 | createCol(regionsettings, "agent_limit", typeof(Int32)); |
1160 | createCol(regionsettings, "object_bonus", typeof (Double)); | 1238 | createCol(regionsettings, "object_bonus", typeof(Double)); |
1161 | createCol(regionsettings, "maturity", typeof (Int32)); | 1239 | createCol(regionsettings, "maturity", typeof(Int32)); |
1162 | createCol(regionsettings, "disable_scripts", typeof (Int32)); | 1240 | createCol(regionsettings, "disable_scripts", typeof(Int32)); |
1163 | createCol(regionsettings, "disable_collisions", typeof (Int32)); | 1241 | createCol(regionsettings, "disable_collisions", typeof(Int32)); |
1164 | createCol(regionsettings, "disable_physics", typeof (Int32)); | 1242 | createCol(regionsettings, "disable_physics", typeof(Int32)); |
1165 | createCol(regionsettings, "terrain_texture_1", typeof(String)); | 1243 | createCol(regionsettings, "terrain_texture_1", typeof(String)); |
1166 | createCol(regionsettings, "terrain_texture_2", typeof(String)); | 1244 | createCol(regionsettings, "terrain_texture_2", typeof(String)); |
1167 | createCol(regionsettings, "terrain_texture_3", typeof(String)); | 1245 | createCol(regionsettings, "terrain_texture_3", typeof(String)); |
1168 | createCol(regionsettings, "terrain_texture_4", typeof(String)); | 1246 | createCol(regionsettings, "terrain_texture_4", typeof(String)); |
1169 | createCol(regionsettings, "elevation_1_nw", typeof (Double)); | 1247 | createCol(regionsettings, "elevation_1_nw", typeof(Double)); |
1170 | createCol(regionsettings, "elevation_2_nw", typeof (Double)); | 1248 | createCol(regionsettings, "elevation_2_nw", typeof(Double)); |
1171 | createCol(regionsettings, "elevation_1_ne", typeof (Double)); | 1249 | createCol(regionsettings, "elevation_1_ne", typeof(Double)); |
1172 | createCol(regionsettings, "elevation_2_ne", typeof (Double)); | 1250 | createCol(regionsettings, "elevation_2_ne", typeof(Double)); |
1173 | createCol(regionsettings, "elevation_1_se", typeof (Double)); | 1251 | createCol(regionsettings, "elevation_1_se", typeof(Double)); |
1174 | createCol(regionsettings, "elevation_2_se", typeof (Double)); | 1252 | createCol(regionsettings, "elevation_2_se", typeof(Double)); |
1175 | createCol(regionsettings, "elevation_1_sw", typeof (Double)); | 1253 | createCol(regionsettings, "elevation_1_sw", typeof(Double)); |
1176 | createCol(regionsettings, "elevation_2_sw", typeof (Double)); | 1254 | createCol(regionsettings, "elevation_2_sw", typeof(Double)); |
1177 | createCol(regionsettings, "water_height", typeof (Double)); | 1255 | createCol(regionsettings, "water_height", typeof(Double)); |
1178 | createCol(regionsettings, "terrain_raise_limit", typeof (Double)); | 1256 | createCol(regionsettings, "terrain_raise_limit", typeof(Double)); |
1179 | createCol(regionsettings, "terrain_lower_limit", typeof (Double)); | 1257 | createCol(regionsettings, "terrain_lower_limit", typeof(Double)); |
1180 | createCol(regionsettings, "use_estate_sun", typeof (Int32)); | 1258 | createCol(regionsettings, "use_estate_sun", typeof(Int32)); |
1181 | createCol(regionsettings, "sandbox", typeof (Int32)); | 1259 | createCol(regionsettings, "sandbox", typeof(Int32)); |
1182 | createCol(regionsettings, "sunvectorx",typeof (Double)); | 1260 | createCol(regionsettings, "sunvectorx", typeof(Double)); |
1183 | createCol(regionsettings, "sunvectory",typeof (Double)); | 1261 | createCol(regionsettings, "sunvectory", typeof(Double)); |
1184 | createCol(regionsettings, "sunvectorz",typeof (Double)); | 1262 | createCol(regionsettings, "sunvectorz", typeof(Double)); |
1185 | createCol(regionsettings, "fixed_sun", typeof (Int32)); | 1263 | createCol(regionsettings, "fixed_sun", typeof(Int32)); |
1186 | createCol(regionsettings, "sun_position", typeof (Double)); | 1264 | createCol(regionsettings, "sun_position", typeof(Double)); |
1187 | createCol(regionsettings, "covenant", typeof(String)); | 1265 | createCol(regionsettings, "covenant", typeof(String)); |
1188 | createCol(regionsettings, "covenant_datetime", typeof(Int32)); | 1266 | createCol(regionsettings, "covenant_datetime", typeof(Int32)); |
1189 | createCol(regionsettings, "map_tile_ID", typeof(String)); | 1267 | createCol(regionsettings, "map_tile_ID", typeof(String)); |
@@ -1191,6 +1269,82 @@ namespace OpenSim.Data.SQLite | |||
1191 | return regionsettings; | 1269 | return regionsettings; |
1192 | } | 1270 | } |
1193 | 1271 | ||
1272 | /// <summary> | ||
1273 | /// create "regionwindlight" table | ||
1274 | /// </summary> | ||
1275 | /// <returns>RegionWindlight DataTable</returns> | ||
1276 | private static DataTable createRegionWindlightTable() | ||
1277 | { | ||
1278 | DataTable regionwindlight = new DataTable("regionwindlight"); | ||
1279 | createCol(regionwindlight, "region_id", typeof(String)); | ||
1280 | createCol(regionwindlight, "water_color_r", typeof(Double)); | ||
1281 | createCol(regionwindlight, "water_color_g", typeof(Double)); | ||
1282 | createCol(regionwindlight, "water_color_b", typeof(Double)); | ||
1283 | createCol(regionwindlight, "water_color_i", typeof(Double)); | ||
1284 | createCol(regionwindlight, "water_fog_density_exponent", typeof(Double)); | ||
1285 | createCol(regionwindlight, "underwater_fog_modifier", typeof(Double)); | ||
1286 | createCol(regionwindlight, "reflection_wavelet_scale_1", typeof(Double)); | ||
1287 | createCol(regionwindlight, "reflection_wavelet_scale_2", typeof(Double)); | ||
1288 | createCol(regionwindlight, "reflection_wavelet_scale_3", typeof(Double)); | ||
1289 | createCol(regionwindlight, "fresnel_scale", typeof(Double)); | ||
1290 | createCol(regionwindlight, "fresnel_offset", typeof(Double)); | ||
1291 | createCol(regionwindlight, "refract_scale_above", typeof(Double)); | ||
1292 | createCol(regionwindlight, "refract_scale_below", typeof(Double)); | ||
1293 | createCol(regionwindlight, "blur_multiplier", typeof(Double)); | ||
1294 | createCol(regionwindlight, "big_wave_direction_x", typeof(Double)); | ||
1295 | createCol(regionwindlight, "big_wave_direction_y", typeof(Double)); | ||
1296 | createCol(regionwindlight, "little_wave_direction_x", typeof(Double)); | ||
1297 | createCol(regionwindlight, "little_wave_direction_y", typeof(Double)); | ||
1298 | createCol(regionwindlight, "normal_map_texture", typeof(String)); | ||
1299 | createCol(regionwindlight, "horizon_r", typeof(Double)); | ||
1300 | createCol(regionwindlight, "horizon_g", typeof(Double)); | ||
1301 | createCol(regionwindlight, "horizon_b", typeof(Double)); | ||
1302 | createCol(regionwindlight, "horizon_i", typeof(Double)); | ||
1303 | createCol(regionwindlight, "haze_horizon", typeof(Double)); | ||
1304 | createCol(regionwindlight, "blue_density_r", typeof(Double)); | ||
1305 | createCol(regionwindlight, "blue_density_g", typeof(Double)); | ||
1306 | createCol(regionwindlight, "blue_density_b", typeof(Double)); | ||
1307 | createCol(regionwindlight, "blue_density_i", typeof(Double)); | ||
1308 | createCol(regionwindlight, "haze_density", typeof(Double)); | ||
1309 | createCol(regionwindlight, "density_multiplier", typeof(Double)); | ||
1310 | createCol(regionwindlight, "distance_multiplier", typeof(Double)); | ||
1311 | createCol(regionwindlight, "max_altitude", typeof(Int32)); | ||
1312 | createCol(regionwindlight, "sun_moon_color_r", typeof(Double)); | ||
1313 | createCol(regionwindlight, "sun_moon_color_g", typeof(Double)); | ||
1314 | createCol(regionwindlight, "sun_moon_color_b", typeof(Double)); | ||
1315 | createCol(regionwindlight, "sun_moon_color_i", typeof(Double)); | ||
1316 | createCol(regionwindlight, "sun_moon_position", typeof(Double)); | ||
1317 | createCol(regionwindlight, "ambient_r", typeof(Double)); | ||
1318 | createCol(regionwindlight, "ambient_g", typeof(Double)); | ||
1319 | createCol(regionwindlight, "ambient_b", typeof(Double)); | ||
1320 | createCol(regionwindlight, "ambient_i", typeof(Double)); | ||
1321 | createCol(regionwindlight, "east_angle", typeof(Double)); | ||
1322 | createCol(regionwindlight, "sun_glow_focus", typeof(Double)); | ||
1323 | createCol(regionwindlight, "sun_glow_size", typeof(Double)); | ||
1324 | createCol(regionwindlight, "scene_gamma", typeof(Double)); | ||
1325 | createCol(regionwindlight, "star_brightness", typeof(Double)); | ||
1326 | createCol(regionwindlight, "cloud_color_r", typeof(Double)); | ||
1327 | createCol(regionwindlight, "cloud_color_g", typeof(Double)); | ||
1328 | createCol(regionwindlight, "cloud_color_b", typeof(Double)); | ||
1329 | createCol(regionwindlight, "cloud_color_i", typeof(Double)); | ||
1330 | createCol(regionwindlight, "cloud_x", typeof(Double)); | ||
1331 | createCol(regionwindlight, "cloud_y", typeof(Double)); | ||
1332 | createCol(regionwindlight, "cloud_density", typeof(Double)); | ||
1333 | createCol(regionwindlight, "cloud_coverage", typeof(Double)); | ||
1334 | createCol(regionwindlight, "cloud_scale", typeof(Double)); | ||
1335 | createCol(regionwindlight, "cloud_detail_x", typeof(Double)); | ||
1336 | createCol(regionwindlight, "cloud_detail_y", typeof(Double)); | ||
1337 | createCol(regionwindlight, "cloud_detail_density", typeof(Double)); | ||
1338 | createCol(regionwindlight, "cloud_scroll_x", typeof(Double)); | ||
1339 | createCol(regionwindlight, "cloud_scroll_x_lock", typeof(Int32)); | ||
1340 | createCol(regionwindlight, "cloud_scroll_y", typeof(Double)); | ||
1341 | createCol(regionwindlight, "cloud_scroll_y_lock", typeof(Int32)); | ||
1342 | createCol(regionwindlight, "draw_classic_clouds", typeof(Int32)); | ||
1343 | |||
1344 | regionwindlight.PrimaryKey = new DataColumn[] { regionwindlight.Columns["region_id"] }; | ||
1345 | return regionwindlight; | ||
1346 | } | ||
1347 | |||
1194 | /*********************************************************************** | 1348 | /*********************************************************************** |
1195 | * | 1349 | * |
1196 | * Convert between ADO.NET <=> OpenSim Objects | 1350 | * Convert between ADO.NET <=> OpenSim Objects |
@@ -1229,26 +1383,26 @@ namespace OpenSim.Data.SQLite | |||
1229 | // back out. Not enough time to figure it out yet. | 1383 | // back out. Not enough time to figure it out yet. |
1230 | 1384 | ||
1231 | SceneObjectPart prim = new SceneObjectPart(); | 1385 | SceneObjectPart prim = new SceneObjectPart(); |
1232 | prim.UUID = new UUID((String) row["UUID"]); | 1386 | prim.UUID = new UUID((String)row["UUID"]); |
1233 | // explicit conversion of integers is required, which sort | 1387 | // explicit conversion of integers is required, which sort |
1234 | // of sucks. No idea if there is a shortcut here or not. | 1388 | // of sucks. No idea if there is a shortcut here or not. |
1235 | prim.CreationDate = Convert.ToInt32(row["CreationDate"]); | 1389 | prim.CreationDate = Convert.ToInt32(row["CreationDate"]); |
1236 | prim.Name = row["Name"] == DBNull.Value ? string.Empty : (string)row["Name"]; | 1390 | prim.Name = row["Name"] == DBNull.Value ? string.Empty : (string)row["Name"]; |
1237 | // various text fields | 1391 | // various text fields |
1238 | prim.Text = (String) row["Text"]; | 1392 | prim.Text = (String)row["Text"]; |
1239 | prim.Color = Color.FromArgb(Convert.ToInt32(row["ColorA"]), | 1393 | prim.Color = Color.FromArgb(Convert.ToInt32(row["ColorA"]), |
1240 | Convert.ToInt32(row["ColorR"]), | 1394 | Convert.ToInt32(row["ColorR"]), |
1241 | Convert.ToInt32(row["ColorG"]), | 1395 | Convert.ToInt32(row["ColorG"]), |
1242 | Convert.ToInt32(row["ColorB"])); | 1396 | Convert.ToInt32(row["ColorB"])); |
1243 | prim.Description = (String) row["Description"]; | 1397 | prim.Description = (String)row["Description"]; |
1244 | prim.SitName = (String) row["SitName"]; | 1398 | prim.SitName = (String)row["SitName"]; |
1245 | prim.TouchName = (String) row["TouchName"]; | 1399 | prim.TouchName = (String)row["TouchName"]; |
1246 | // permissions | 1400 | // permissions |
1247 | prim.ObjectFlags = Convert.ToUInt32(row["ObjectFlags"]); | 1401 | prim.ObjectFlags = Convert.ToUInt32(row["ObjectFlags"]); |
1248 | prim.CreatorIdentification = (String) row["CreatorID"]; | 1402 | prim.CreatorIdentification = (String)row["CreatorID"]; |
1249 | prim.OwnerID = new UUID((String) row["OwnerID"]); | 1403 | prim.OwnerID = new UUID((String)row["OwnerID"]); |
1250 | prim.GroupID = new UUID((String) row["GroupID"]); | 1404 | prim.GroupID = new UUID((String)row["GroupID"]); |
1251 | prim.LastOwnerID = new UUID((String) row["LastOwnerID"]); | 1405 | prim.LastOwnerID = new UUID((String)row["LastOwnerID"]); |
1252 | prim.OwnerMask = Convert.ToUInt32(row["OwnerMask"]); | 1406 | prim.OwnerMask = Convert.ToUInt32(row["OwnerMask"]); |
1253 | prim.NextOwnerMask = Convert.ToUInt32(row["NextOwnerMask"]); | 1407 | prim.NextOwnerMask = Convert.ToUInt32(row["NextOwnerMask"]); |
1254 | prim.GroupMask = Convert.ToUInt32(row["GroupMask"]); | 1408 | prim.GroupMask = Convert.ToUInt32(row["GroupMask"]); |
@@ -1360,7 +1514,7 @@ namespace OpenSim.Data.SQLite | |||
1360 | 1514 | ||
1361 | if (!(row["MediaURL"] is System.DBNull)) | 1515 | if (!(row["MediaURL"] is System.DBNull)) |
1362 | { | 1516 | { |
1363 | //m_log.DebugFormat("[SQLITE]: MediaUrl type [{0}]", row["MediaURL"].GetType()); | 1517 | // m_log.DebugFormat("[SQLITE]: MediaUrl type [{0}]", row["MediaURL"].GetType()); |
1364 | prim.MediaUrl = (string)row["MediaURL"]; | 1518 | prim.MediaUrl = (string)row["MediaURL"]; |
1365 | } | 1519 | } |
1366 | 1520 | ||
@@ -1376,28 +1530,28 @@ namespace OpenSim.Data.SQLite | |||
1376 | { | 1530 | { |
1377 | TaskInventoryItem taskItem = new TaskInventoryItem(); | 1531 | TaskInventoryItem taskItem = new TaskInventoryItem(); |
1378 | 1532 | ||
1379 | taskItem.ItemID = new UUID((String)row["itemID"]); | 1533 | taskItem.ItemID = new UUID((String)row["itemID"]); |
1380 | taskItem.ParentPartID = new UUID((String)row["primID"]); | 1534 | taskItem.ParentPartID = new UUID((String)row["primID"]); |
1381 | taskItem.AssetID = new UUID((String)row["assetID"]); | 1535 | taskItem.AssetID = new UUID((String)row["assetID"]); |
1382 | taskItem.ParentID = new UUID((String)row["parentFolderID"]); | 1536 | taskItem.ParentID = new UUID((String)row["parentFolderID"]); |
1383 | 1537 | ||
1384 | taskItem.InvType = Convert.ToInt32(row["invType"]); | 1538 | taskItem.InvType = Convert.ToInt32(row["invType"]); |
1385 | taskItem.Type = Convert.ToInt32(row["assetType"]); | 1539 | taskItem.Type = Convert.ToInt32(row["assetType"]); |
1386 | 1540 | ||
1387 | taskItem.Name = (String)row["name"]; | 1541 | taskItem.Name = (String)row["name"]; |
1388 | taskItem.Description = (String)row["description"]; | 1542 | taskItem.Description = (String)row["description"]; |
1389 | taskItem.CreationDate = Convert.ToUInt32(row["creationDate"]); | 1543 | taskItem.CreationDate = Convert.ToUInt32(row["creationDate"]); |
1390 | taskItem.CreatorIdentification = (String)row["creatorID"]; | 1544 | taskItem.CreatorIdentification = (String)row["creatorID"]; |
1391 | taskItem.OwnerID = new UUID((String)row["ownerID"]); | 1545 | taskItem.OwnerID = new UUID((String)row["ownerID"]); |
1392 | taskItem.LastOwnerID = new UUID((String)row["lastOwnerID"]); | 1546 | taskItem.LastOwnerID = new UUID((String)row["lastOwnerID"]); |
1393 | taskItem.GroupID = new UUID((String)row["groupID"]); | 1547 | taskItem.GroupID = new UUID((String)row["groupID"]); |
1394 | 1548 | ||
1395 | taskItem.NextPermissions = Convert.ToUInt32(row["nextPermissions"]); | 1549 | taskItem.NextPermissions = Convert.ToUInt32(row["nextPermissions"]); |
1396 | taskItem.CurrentPermissions = Convert.ToUInt32(row["currentPermissions"]); | 1550 | taskItem.CurrentPermissions = Convert.ToUInt32(row["currentPermissions"]); |
1397 | taskItem.BasePermissions = Convert.ToUInt32(row["basePermissions"]); | 1551 | taskItem.BasePermissions = Convert.ToUInt32(row["basePermissions"]); |
1398 | taskItem.EveryonePermissions = Convert.ToUInt32(row["everyonePermissions"]); | 1552 | taskItem.EveryonePermissions = Convert.ToUInt32(row["everyonePermissions"]); |
1399 | taskItem.GroupPermissions = Convert.ToUInt32(row["groupPermissions"]); | 1553 | taskItem.GroupPermissions = Convert.ToUInt32(row["groupPermissions"]); |
1400 | taskItem.Flags = Convert.ToUInt32(row["flags"]); | 1554 | taskItem.Flags = Convert.ToUInt32(row["flags"]); |
1401 | 1555 | ||
1402 | return taskItem; | 1556 | return taskItem; |
1403 | } | 1557 | } |
@@ -1411,35 +1565,35 @@ namespace OpenSim.Data.SQLite | |||
1411 | { | 1565 | { |
1412 | LandData newData = new LandData(); | 1566 | LandData newData = new LandData(); |
1413 | 1567 | ||
1414 | newData.GlobalID = new UUID((String) row["UUID"]); | 1568 | newData.GlobalID = new UUID((String)row["UUID"]); |
1415 | newData.LocalID = Convert.ToInt32(row["LocalLandID"]); | 1569 | newData.LocalID = Convert.ToInt32(row["LocalLandID"]); |
1416 | 1570 | ||
1417 | // Bitmap is a byte[512] | 1571 | // Bitmap is a byte[512] |
1418 | newData.Bitmap = (Byte[]) row["Bitmap"]; | 1572 | newData.Bitmap = (Byte[])row["Bitmap"]; |
1419 | 1573 | ||
1420 | newData.Name = (String) row["Name"]; | 1574 | newData.Name = (String)row["Name"]; |
1421 | newData.Description = (String) row["Desc"]; | 1575 | newData.Description = (String)row["Desc"]; |
1422 | newData.OwnerID = (UUID)(String) row["OwnerUUID"]; | 1576 | newData.OwnerID = (UUID)(String)row["OwnerUUID"]; |
1423 | newData.IsGroupOwned = (Boolean) row["IsGroupOwned"]; | 1577 | newData.IsGroupOwned = (Boolean)row["IsGroupOwned"]; |
1424 | newData.Area = Convert.ToInt32(row["Area"]); | 1578 | newData.Area = Convert.ToInt32(row["Area"]); |
1425 | newData.AuctionID = Convert.ToUInt32(row["AuctionID"]); //Unemplemented | 1579 | newData.AuctionID = Convert.ToUInt32(row["AuctionID"]); //Unemplemented |
1426 | newData.Category = (ParcelCategory) Convert.ToInt32(row["Category"]); | 1580 | newData.Category = (ParcelCategory)Convert.ToInt32(row["Category"]); |
1427 | //Enum OpenMetaverse.Parcel.ParcelCategory | 1581 | //Enum OpenMetaverse.Parcel.ParcelCategory |
1428 | newData.ClaimDate = Convert.ToInt32(row["ClaimDate"]); | 1582 | newData.ClaimDate = Convert.ToInt32(row["ClaimDate"]); |
1429 | newData.ClaimPrice = Convert.ToInt32(row["ClaimPrice"]); | 1583 | newData.ClaimPrice = Convert.ToInt32(row["ClaimPrice"]); |
1430 | newData.GroupID = new UUID((String) row["GroupUUID"]); | 1584 | newData.GroupID = new UUID((String)row["GroupUUID"]); |
1431 | newData.SalePrice = Convert.ToInt32(row["SalePrice"]); | 1585 | newData.SalePrice = Convert.ToInt32(row["SalePrice"]); |
1432 | newData.Status = (ParcelStatus) Convert.ToInt32(row["LandStatus"]); | 1586 | newData.Status = (ParcelStatus)Convert.ToInt32(row["LandStatus"]); |
1433 | //Enum. OpenMetaverse.Parcel.ParcelStatus | 1587 | //Enum. OpenMetaverse.Parcel.ParcelStatus |
1434 | newData.Flags = Convert.ToUInt32(row["LandFlags"]); | 1588 | newData.Flags = Convert.ToUInt32(row["LandFlags"]); |
1435 | newData.LandingType = (Byte) row["LandingType"]; | 1589 | newData.LandingType = (Byte)row["LandingType"]; |
1436 | newData.MediaAutoScale = (Byte) row["MediaAutoScale"]; | 1590 | newData.MediaAutoScale = (Byte)row["MediaAutoScale"]; |
1437 | newData.MediaID = new UUID((String) row["MediaTextureUUID"]); | 1591 | newData.MediaID = new UUID((String)row["MediaTextureUUID"]); |
1438 | newData.MediaURL = (String) row["MediaURL"]; | 1592 | newData.MediaURL = (String)row["MediaURL"]; |
1439 | newData.MusicURL = (String) row["MusicURL"]; | 1593 | newData.MusicURL = (String)row["MusicURL"]; |
1440 | newData.PassHours = Convert.ToSingle(row["PassHours"]); | 1594 | newData.PassHours = Convert.ToSingle(row["PassHours"]); |
1441 | newData.PassPrice = Convert.ToInt32(row["PassPrice"]); | 1595 | newData.PassPrice = Convert.ToInt32(row["PassPrice"]); |
1442 | newData.SnapshotID = (UUID)(String) row["SnapshotUUID"]; | 1596 | newData.SnapshotID = (UUID)(String)row["SnapshotUUID"]; |
1443 | try | 1597 | try |
1444 | { | 1598 | { |
1445 | 1599 | ||
@@ -1471,7 +1625,7 @@ namespace OpenSim.Data.SQLite | |||
1471 | { | 1625 | { |
1472 | RegionSettings newSettings = new RegionSettings(); | 1626 | RegionSettings newSettings = new RegionSettings(); |
1473 | 1627 | ||
1474 | newSettings.RegionUUID = new UUID((string) row["regionUUID"]); | 1628 | newSettings.RegionUUID = new UUID((string)row["regionUUID"]); |
1475 | newSettings.BlockTerraform = Convert.ToBoolean(row["block_terraform"]); | 1629 | newSettings.BlockTerraform = Convert.ToBoolean(row["block_terraform"]); |
1476 | newSettings.AllowDamage = Convert.ToBoolean(row["allow_damage"]); | 1630 | newSettings.AllowDamage = Convert.ToBoolean(row["allow_damage"]); |
1477 | newSettings.BlockFly = Convert.ToBoolean(row["block_fly"]); | 1631 | newSettings.BlockFly = Convert.ToBoolean(row["block_fly"]); |
@@ -1485,10 +1639,10 @@ namespace OpenSim.Data.SQLite | |||
1485 | newSettings.DisableScripts = Convert.ToBoolean(row["disable_scripts"]); | 1639 | newSettings.DisableScripts = Convert.ToBoolean(row["disable_scripts"]); |
1486 | newSettings.DisableCollisions = Convert.ToBoolean(row["disable_collisions"]); | 1640 | newSettings.DisableCollisions = Convert.ToBoolean(row["disable_collisions"]); |
1487 | newSettings.DisablePhysics = Convert.ToBoolean(row["disable_physics"]); | 1641 | newSettings.DisablePhysics = Convert.ToBoolean(row["disable_physics"]); |
1488 | newSettings.TerrainTexture1 = new UUID((String) row["terrain_texture_1"]); | 1642 | newSettings.TerrainTexture1 = new UUID((String)row["terrain_texture_1"]); |
1489 | newSettings.TerrainTexture2 = new UUID((String) row["terrain_texture_2"]); | 1643 | newSettings.TerrainTexture2 = new UUID((String)row["terrain_texture_2"]); |
1490 | newSettings.TerrainTexture3 = new UUID((String) row["terrain_texture_3"]); | 1644 | newSettings.TerrainTexture3 = new UUID((String)row["terrain_texture_3"]); |
1491 | newSettings.TerrainTexture4 = new UUID((String) row["terrain_texture_4"]); | 1645 | newSettings.TerrainTexture4 = new UUID((String)row["terrain_texture_4"]); |
1492 | newSettings.Elevation1NW = Convert.ToDouble(row["elevation_1_nw"]); | 1646 | newSettings.Elevation1NW = Convert.ToDouble(row["elevation_1_nw"]); |
1493 | newSettings.Elevation2NW = Convert.ToDouble(row["elevation_2_nw"]); | 1647 | newSettings.Elevation2NW = Convert.ToDouble(row["elevation_2_nw"]); |
1494 | newSettings.Elevation1NE = Convert.ToDouble(row["elevation_1_ne"]); | 1648 | newSettings.Elevation1NE = Convert.ToDouble(row["elevation_1_ne"]); |
@@ -1502,14 +1656,14 @@ namespace OpenSim.Data.SQLite | |||
1502 | newSettings.TerrainLowerLimit = Convert.ToDouble(row["terrain_lower_limit"]); | 1656 | newSettings.TerrainLowerLimit = Convert.ToDouble(row["terrain_lower_limit"]); |
1503 | newSettings.UseEstateSun = Convert.ToBoolean(row["use_estate_sun"]); | 1657 | newSettings.UseEstateSun = Convert.ToBoolean(row["use_estate_sun"]); |
1504 | newSettings.Sandbox = Convert.ToBoolean(row["sandbox"]); | 1658 | newSettings.Sandbox = Convert.ToBoolean(row["sandbox"]); |
1505 | newSettings.SunVector = new Vector3 ( | 1659 | newSettings.SunVector = new Vector3( |
1506 | Convert.ToSingle(row["sunvectorx"]), | 1660 | Convert.ToSingle(row["sunvectorx"]), |
1507 | Convert.ToSingle(row["sunvectory"]), | 1661 | Convert.ToSingle(row["sunvectory"]), |
1508 | Convert.ToSingle(row["sunvectorz"]) | 1662 | Convert.ToSingle(row["sunvectorz"]) |
1509 | ); | 1663 | ); |
1510 | newSettings.FixedSun = Convert.ToBoolean(row["fixed_sun"]); | 1664 | newSettings.FixedSun = Convert.ToBoolean(row["fixed_sun"]); |
1511 | newSettings.SunPosition = Convert.ToDouble(row["sun_position"]); | 1665 | newSettings.SunPosition = Convert.ToDouble(row["sun_position"]); |
1512 | newSettings.Covenant = new UUID((String) row["covenant"]); | 1666 | newSettings.Covenant = new UUID((String)row["covenant"]); |
1513 | newSettings.CovenantChangedDateTime = Convert.ToInt32(row["covenant_datetime"]); | 1667 | newSettings.CovenantChangedDateTime = Convert.ToInt32(row["covenant_datetime"]); |
1514 | newSettings.TerrainImageID = new UUID((String)row["map_tile_ID"]); | 1668 | newSettings.TerrainImageID = new UUID((String)row["map_tile_ID"]); |
1515 | 1669 | ||
@@ -1517,6 +1671,83 @@ namespace OpenSim.Data.SQLite | |||
1517 | } | 1671 | } |
1518 | 1672 | ||
1519 | /// <summary> | 1673 | /// <summary> |
1674 | /// Build a windlight entry from the persisted data. | ||
1675 | /// </summary> | ||
1676 | /// <param name="row"></param> | ||
1677 | /// <returns>RegionLightShareData</returns> | ||
1678 | private RegionLightShareData buildRegionWindlight(DataRow row) | ||
1679 | { | ||
1680 | RegionLightShareData windlight = new RegionLightShareData(); | ||
1681 | |||
1682 | windlight.regionID = new UUID((string)row["region_id"]); | ||
1683 | windlight.waterColor.X = Convert.ToSingle(row["water_color_r"]); | ||
1684 | windlight.waterColor.Y = Convert.ToSingle(row["water_color_g"]); | ||
1685 | windlight.waterColor.Z = Convert.ToSingle(row["water_color_b"]); | ||
1686 | //windlight.waterColor.W = Convert.ToSingle(row["water_color_i"]); //not implemented | ||
1687 | windlight.waterFogDensityExponent = Convert.ToSingle(row["water_fog_density_exponent"]); | ||
1688 | windlight.underwaterFogModifier = Convert.ToSingle(row["underwater_fog_modifier"]); | ||
1689 | windlight.reflectionWaveletScale.X = Convert.ToSingle(row["reflection_wavelet_scale_1"]); | ||
1690 | windlight.reflectionWaveletScale.Y = Convert.ToSingle(row["reflection_wavelet_scale_2"]); | ||
1691 | windlight.reflectionWaveletScale.Z = Convert.ToSingle(row["reflection_wavelet_scale_3"]); | ||
1692 | windlight.fresnelScale = Convert.ToSingle(row["fresnel_scale"]); | ||
1693 | windlight.fresnelOffset = Convert.ToSingle(row["fresnel_offset"]); | ||
1694 | windlight.refractScaleAbove = Convert.ToSingle(row["refract_scale_above"]); | ||
1695 | windlight.refractScaleBelow = Convert.ToSingle(row["refract_scale_below"]); | ||
1696 | windlight.blurMultiplier = Convert.ToSingle(row["blur_multiplier"]); | ||
1697 | windlight.bigWaveDirection.X = Convert.ToSingle(row["big_wave_direction_x"]); | ||
1698 | windlight.bigWaveDirection.Y = Convert.ToSingle(row["big_wave_direction_y"]); | ||
1699 | windlight.littleWaveDirection.X = Convert.ToSingle(row["little_wave_direction_x"]); | ||
1700 | windlight.littleWaveDirection.Y = Convert.ToSingle(row["little_wave_direction_y"]); | ||
1701 | windlight.normalMapTexture = new UUID((string)row["normal_map_texture"]); | ||
1702 | windlight.horizon.X = Convert.ToSingle(row["horizon_r"]); | ||
1703 | windlight.horizon.Y = Convert.ToSingle(row["horizon_g"]); | ||
1704 | windlight.horizon.Z = Convert.ToSingle(row["horizon_b"]); | ||
1705 | windlight.horizon.W = Convert.ToSingle(row["horizon_i"]); | ||
1706 | windlight.hazeHorizon = Convert.ToSingle(row["haze_horizon"]); | ||
1707 | windlight.blueDensity.X = Convert.ToSingle(row["blue_density_r"]); | ||
1708 | windlight.blueDensity.Y = Convert.ToSingle(row["blue_density_g"]); | ||
1709 | windlight.blueDensity.Z = Convert.ToSingle(row["blue_density_b"]); | ||
1710 | windlight.blueDensity.W = Convert.ToSingle(row["blue_density_i"]); | ||
1711 | windlight.hazeDensity = Convert.ToSingle(row["haze_density"]); | ||
1712 | windlight.densityMultiplier = Convert.ToSingle(row["density_multiplier"]); | ||
1713 | windlight.distanceMultiplier = Convert.ToSingle(row["distance_multiplier"]); | ||
1714 | windlight.maxAltitude = Convert.ToUInt16(row["max_altitude"]); | ||
1715 | windlight.sunMoonColor.X = Convert.ToSingle(row["sun_moon_color_r"]); | ||
1716 | windlight.sunMoonColor.Y = Convert.ToSingle(row["sun_moon_color_g"]); | ||
1717 | windlight.sunMoonColor.Z = Convert.ToSingle(row["sun_moon_color_b"]); | ||
1718 | windlight.sunMoonColor.W = Convert.ToSingle(row["sun_moon_color_i"]); | ||
1719 | windlight.sunMoonPosition = Convert.ToSingle(row["sun_moon_position"]); | ||
1720 | windlight.ambient.X = Convert.ToSingle(row["ambient_r"]); | ||
1721 | windlight.ambient.Y = Convert.ToSingle(row["ambient_g"]); | ||
1722 | windlight.ambient.Z = Convert.ToSingle(row["ambient_b"]); | ||
1723 | windlight.ambient.W = Convert.ToSingle(row["ambient_i"]); | ||
1724 | windlight.eastAngle = Convert.ToSingle(row["east_angle"]); | ||
1725 | windlight.sunGlowFocus = Convert.ToSingle(row["sun_glow_focus"]); | ||
1726 | windlight.sunGlowSize = Convert.ToSingle(row["sun_glow_size"]); | ||
1727 | windlight.sceneGamma = Convert.ToSingle(row["scene_gamma"]); | ||
1728 | windlight.starBrightness = Convert.ToSingle(row["star_brightness"]); | ||
1729 | windlight.cloudColor.X = Convert.ToSingle(row["cloud_color_r"]); | ||
1730 | windlight.cloudColor.Y = Convert.ToSingle(row["cloud_color_g"]); | ||
1731 | windlight.cloudColor.Z = Convert.ToSingle(row["cloud_color_b"]); | ||
1732 | windlight.cloudColor.W = Convert.ToSingle(row["cloud_color_i"]); | ||
1733 | windlight.cloudXYDensity.X = Convert.ToSingle(row["cloud_x"]); | ||
1734 | windlight.cloudXYDensity.Y = Convert.ToSingle(row["cloud_y"]); | ||
1735 | windlight.cloudXYDensity.Z = Convert.ToSingle(row["cloud_density"]); | ||
1736 | windlight.cloudCoverage = Convert.ToSingle(row["cloud_coverage"]); | ||
1737 | windlight.cloudScale = Convert.ToSingle(row["cloud_scale"]); | ||
1738 | windlight.cloudDetailXYDensity.X = Convert.ToSingle(row["cloud_detail_x"]); | ||
1739 | windlight.cloudDetailXYDensity.Y = Convert.ToSingle(row["cloud_detail_y"]); | ||
1740 | windlight.cloudDetailXYDensity.Z = Convert.ToSingle(row["cloud_detail_density"]); | ||
1741 | windlight.cloudScrollX = Convert.ToSingle(row["cloud_scroll_x"]); | ||
1742 | windlight.cloudScrollXLock = Convert.ToBoolean(row["cloud_scroll_x_lock"]); | ||
1743 | windlight.cloudScrollY = Convert.ToSingle(row["cloud_scroll_y"]); | ||
1744 | windlight.cloudScrollYLock = Convert.ToBoolean(row["cloud_scroll_y_lock"]); | ||
1745 | windlight.drawClassicClouds = Convert.ToBoolean(row["draw_classic_clouds"]); | ||
1746 | |||
1747 | return windlight; | ||
1748 | } | ||
1749 | |||
1750 | /// <summary> | ||
1520 | /// Build a land access entry from the persisted data. | 1751 | /// Build a land access entry from the persisted data. |
1521 | /// </summary> | 1752 | /// </summary> |
1522 | /// <param name="row"></param> | 1753 | /// <param name="row"></param> |
@@ -1524,8 +1755,8 @@ namespace OpenSim.Data.SQLite | |||
1524 | private static LandAccessEntry buildLandAccessData(DataRow row) | 1755 | private static LandAccessEntry buildLandAccessData(DataRow row) |
1525 | { | 1756 | { |
1526 | LandAccessEntry entry = new LandAccessEntry(); | 1757 | LandAccessEntry entry = new LandAccessEntry(); |
1527 | entry.AgentID = new UUID((string) row["AccessUUID"]); | 1758 | entry.AgentID = new UUID((string)row["AccessUUID"]); |
1528 | entry.Flags = (AccessList) row["Flags"]; | 1759 | entry.Flags = (AccessList)row["Flags"]; |
1529 | entry.Expires = 0; | 1760 | entry.Expires = 0; |
1530 | return entry; | 1761 | return entry; |
1531 | } | 1762 | } |
@@ -1537,7 +1768,7 @@ namespace OpenSim.Data.SQLite | |||
1537 | /// <returns></returns> | 1768 | /// <returns></returns> |
1538 | private static Array serializeTerrain(double[,] val) | 1769 | private static Array serializeTerrain(double[,] val) |
1539 | { | 1770 | { |
1540 | MemoryStream str = new MemoryStream(((int)Constants.RegionSize * (int)Constants.RegionSize) *sizeof (double)); | 1771 | MemoryStream str = new MemoryStream(((int)Constants.RegionSize * (int)Constants.RegionSize) * sizeof(double)); |
1541 | BinaryWriter bw = new BinaryWriter(str); | 1772 | BinaryWriter bw = new BinaryWriter(str); |
1542 | 1773 | ||
1543 | // TODO: COMPATIBILITY - Add byte-order conversions | 1774 | // TODO: COMPATIBILITY - Add byte-order conversions |
@@ -1548,21 +1779,21 @@ namespace OpenSim.Data.SQLite | |||
1548 | return str.ToArray(); | 1779 | return str.ToArray(); |
1549 | } | 1780 | } |
1550 | 1781 | ||
1551 | // private void fillTerrainRow(DataRow row, UUID regionUUID, int rev, double[,] val) | 1782 | // private void fillTerrainRow(DataRow row, UUID regionUUID, int rev, double[,] val) |
1552 | // { | 1783 | // { |
1553 | // row["RegionUUID"] = regionUUID; | 1784 | // row["RegionUUID"] = regionUUID; |
1554 | // row["Revision"] = rev; | 1785 | // row["Revision"] = rev; |
1555 | 1786 | ||
1556 | // MemoryStream str = new MemoryStream(((int)Constants.RegionSize * (int)Constants.RegionSize)*sizeof (double)); | 1787 | // MemoryStream str = new MemoryStream(((int)Constants.RegionSize * (int)Constants.RegionSize)*sizeof (double)); |
1557 | // BinaryWriter bw = new BinaryWriter(str); | 1788 | // BinaryWriter bw = new BinaryWriter(str); |
1558 | 1789 | ||
1559 | // // TODO: COMPATIBILITY - Add byte-order conversions | 1790 | // // TODO: COMPATIBILITY - Add byte-order conversions |
1560 | // for (int x = 0; x < (int)Constants.RegionSize; x++) | 1791 | // for (int x = 0; x < (int)Constants.RegionSize; x++) |
1561 | // for (int y = 0; y < (int)Constants.RegionSize; y++) | 1792 | // for (int y = 0; y < (int)Constants.RegionSize; y++) |
1562 | // bw.Write(val[x, y]); | 1793 | // bw.Write(val[x, y]); |
1563 | 1794 | ||
1564 | // row["Heightfield"] = str.ToArray(); | 1795 | // row["Heightfield"] = str.ToArray(); |
1565 | // } | 1796 | // } |
1566 | 1797 | ||
1567 | /// <summary> | 1798 | /// <summary> |
1568 | /// | 1799 | /// |
@@ -1843,6 +2074,79 @@ namespace OpenSim.Data.SQLite | |||
1843 | /// | 2074 | /// |
1844 | /// </summary> | 2075 | /// </summary> |
1845 | /// <param name="row"></param> | 2076 | /// <param name="row"></param> |
2077 | /// <param name="windlight"></param> | ||
2078 | private static void fillRegionWindlightRow(DataRow row, RegionLightShareData windlight) | ||
2079 | { | ||
2080 | row["region_id"] = windlight.regionID.ToString(); | ||
2081 | row["water_color_r"] = windlight.waterColor.X; | ||
2082 | row["water_color_g"] = windlight.waterColor.Y; | ||
2083 | row["water_color_b"] = windlight.waterColor.Z; | ||
2084 | row["water_color_i"] = 1; //windlight.waterColor.W; //not implemented | ||
2085 | row["water_fog_density_exponent"] = windlight.waterFogDensityExponent; | ||
2086 | row["underwater_fog_modifier"] = windlight.underwaterFogModifier; | ||
2087 | row["reflection_wavelet_scale_1"] = windlight.reflectionWaveletScale.X; | ||
2088 | row["reflection_wavelet_scale_2"] = windlight.reflectionWaveletScale.Y; | ||
2089 | row["reflection_wavelet_scale_3"] = windlight.reflectionWaveletScale.Z; | ||
2090 | row["fresnel_scale"] = windlight.fresnelScale; | ||
2091 | row["fresnel_offset"] = windlight.fresnelOffset; | ||
2092 | row["refract_scale_above"] = windlight.refractScaleAbove; | ||
2093 | row["refract_scale_below"] = windlight.refractScaleBelow; | ||
2094 | row["blur_multiplier"] = windlight.blurMultiplier; | ||
2095 | row["big_wave_direction_x"] = windlight.bigWaveDirection.X; | ||
2096 | row["big_wave_direction_y"] = windlight.bigWaveDirection.Y; | ||
2097 | row["little_wave_direction_x"] = windlight.littleWaveDirection.X; | ||
2098 | row["little_wave_direction_y"] = windlight.littleWaveDirection.Y; | ||
2099 | row["normal_map_texture"] = windlight.normalMapTexture.ToString(); | ||
2100 | row["horizon_r"] = windlight.horizon.X; | ||
2101 | row["horizon_g"] = windlight.horizon.Y; | ||
2102 | row["horizon_b"] = windlight.horizon.Z; | ||
2103 | row["horizon_i"] = windlight.horizon.W; | ||
2104 | row["haze_horizon"] = windlight.hazeHorizon; | ||
2105 | row["blue_density_r"] = windlight.blueDensity.X; | ||
2106 | row["blue_density_g"] = windlight.blueDensity.Y; | ||
2107 | row["blue_density_b"] = windlight.blueDensity.Z; | ||
2108 | row["blue_density_i"] = windlight.blueDensity.W; | ||
2109 | row["haze_density"] = windlight.hazeDensity; | ||
2110 | row["density_multiplier"] = windlight.densityMultiplier; | ||
2111 | row["distance_multiplier"] = windlight.distanceMultiplier; | ||
2112 | row["max_altitude"] = windlight.maxAltitude; | ||
2113 | row["sun_moon_color_r"] = windlight.sunMoonColor.X; | ||
2114 | row["sun_moon_color_g"] = windlight.sunMoonColor.Y; | ||
2115 | row["sun_moon_color_b"] = windlight.sunMoonColor.Z; | ||
2116 | row["sun_moon_color_i"] = windlight.sunMoonColor.W; | ||
2117 | row["sun_moon_position"] = windlight.sunMoonPosition; | ||
2118 | row["ambient_r"] = windlight.ambient.X; | ||
2119 | row["ambient_g"] = windlight.ambient.Y; | ||
2120 | row["ambient_b"] = windlight.ambient.Z; | ||
2121 | row["ambient_i"] = windlight.ambient.W; | ||
2122 | row["east_angle"] = windlight.eastAngle; | ||
2123 | row["sun_glow_focus"] = windlight.sunGlowFocus; | ||
2124 | row["sun_glow_size"] = windlight.sunGlowSize; | ||
2125 | row["scene_gamma"] = windlight.sceneGamma; | ||
2126 | row["star_brightness"] = windlight.starBrightness; | ||
2127 | row["cloud_color_r"] = windlight.cloudColor.X; | ||
2128 | row["cloud_color_g"] = windlight.cloudColor.Y; | ||
2129 | row["cloud_color_b"] = windlight.cloudColor.Z; | ||
2130 | row["cloud_color_i"] = windlight.cloudColor.W; | ||
2131 | row["cloud_x"] = windlight.cloudXYDensity.X; | ||
2132 | row["cloud_y"] = windlight.cloudXYDensity.Y; | ||
2133 | row["cloud_density"] = windlight.cloudXYDensity.Z; | ||
2134 | row["cloud_coverage"] = windlight.cloudCoverage; | ||
2135 | row["cloud_scale"] = windlight.cloudScale; | ||
2136 | row["cloud_detail_x"] = windlight.cloudDetailXYDensity.X; | ||
2137 | row["cloud_detail_y"] = windlight.cloudDetailXYDensity.Y; | ||
2138 | row["cloud_detail_density"] = windlight.cloudDetailXYDensity.Z; | ||
2139 | row["cloud_scroll_x"] = windlight.cloudScrollX; | ||
2140 | row["cloud_scroll_x_lock"] = windlight.cloudScrollXLock; | ||
2141 | row["cloud_scroll_y"] = windlight.cloudScrollY; | ||
2142 | row["cloud_scroll_y_lock"] = windlight.cloudScrollYLock; | ||
2143 | row["draw_classic_clouds"] = windlight.drawClassicClouds; | ||
2144 | } | ||
2145 | |||
2146 | /// <summary> | ||
2147 | /// | ||
2148 | /// </summary> | ||
2149 | /// <param name="row"></param> | ||
1846 | /// <returns></returns> | 2150 | /// <returns></returns> |
1847 | private PrimitiveBaseShape buildShape(DataRow row) | 2151 | private PrimitiveBaseShape buildShape(DataRow row) |
1848 | { | 2152 | { |
@@ -1878,7 +2182,7 @@ namespace OpenSim.Data.SQLite | |||
1878 | byte[] textureEntry = (byte[])row["Texture"]; | 2182 | byte[] textureEntry = (byte[])row["Texture"]; |
1879 | s.TextureEntry = textureEntry; | 2183 | s.TextureEntry = textureEntry; |
1880 | 2184 | ||
1881 | s.ExtraParams = (byte[]) row["ExtraParams"]; | 2185 | s.ExtraParams = (byte[])row["ExtraParams"]; |
1882 | 2186 | ||
1883 | if (!(row["Media"] is System.DBNull)) | 2187 | if (!(row["Media"] is System.DBNull)) |
1884 | s.Media = PrimitiveBaseShape.MediaList.FromXml((string)row["Media"]); | 2188 | s.Media = PrimitiveBaseShape.MediaList.FromXml((string)row["Media"]); |
@@ -1986,10 +2290,10 @@ namespace OpenSim.Data.SQLite | |||
1986 | // repalce with current inventory details | 2290 | // repalce with current inventory details |
1987 | foreach (TaskInventoryItem newItem in items) | 2291 | foreach (TaskInventoryItem newItem in items) |
1988 | { | 2292 | { |
1989 | // m_log.InfoFormat( | 2293 | // m_log.InfoFormat( |
1990 | // "[DATASTORE]: ", | 2294 | // "[DATASTORE]: ", |
1991 | // "Adding item {0}, {1} to prim ID {2}", | 2295 | // "Adding item {0}, {1} to prim ID {2}", |
1992 | // newItem.Name, newItem.ItemID, newItem.ParentPartID); | 2296 | // newItem.Name, newItem.ItemID, newItem.ParentPartID); |
1993 | 2297 | ||
1994 | DataRow newItemRow = dbItems.NewRow(); | 2298 | DataRow newItemRow = dbItems.NewRow(); |
1995 | fillItemRow(newItemRow, newItem); | 2299 | fillItemRow(newItemRow, newItem); |
@@ -2040,7 +2344,7 @@ namespace OpenSim.Data.SQLite | |||
2040 | sql += ") values (:"; | 2344 | sql += ") values (:"; |
2041 | sql += String.Join(", :", cols); | 2345 | sql += String.Join(", :", cols); |
2042 | sql += ")"; | 2346 | sql += ")"; |
2043 | //m_log.DebugFormat("[SQLITE]: Created insert command {0}", sql); | 2347 | // m_log.DebugFormat("[SQLITE]: Created insert command {0}", sql); |
2044 | SqliteCommand cmd = new SqliteCommand(sql); | 2348 | SqliteCommand cmd = new SqliteCommand(sql); |
2045 | 2349 | ||
2046 | // this provides the binding for all our parameters, so | 2350 | // this provides the binding for all our parameters, so |
@@ -2192,7 +2496,7 @@ namespace OpenSim.Data.SQLite | |||
2192 | da.UpdateCommand.Connection = conn; | 2496 | da.UpdateCommand.Connection = conn; |
2193 | 2497 | ||
2194 | SqliteCommand delete = new SqliteCommand("delete from prims where UUID = :UUID"); | 2498 | SqliteCommand delete = new SqliteCommand("delete from prims where UUID = :UUID"); |
2195 | delete.Parameters.Add(createSqliteParameter("UUID", typeof (String))); | 2499 | delete.Parameters.Add(createSqliteParameter("UUID", typeof(String))); |
2196 | delete.Connection = conn; | 2500 | delete.Connection = conn; |
2197 | da.DeleteCommand = delete; | 2501 | da.DeleteCommand = delete; |
2198 | } | 2502 | } |
@@ -2211,7 +2515,7 @@ namespace OpenSim.Data.SQLite | |||
2211 | da.UpdateCommand.Connection = conn; | 2515 | da.UpdateCommand.Connection = conn; |
2212 | 2516 | ||
2213 | SqliteCommand delete = new SqliteCommand("delete from primitems where itemID = :itemID"); | 2517 | SqliteCommand delete = new SqliteCommand("delete from primitems where itemID = :itemID"); |
2214 | delete.Parameters.Add(createSqliteParameter("itemID", typeof (String))); | 2518 | delete.Parameters.Add(createSqliteParameter("itemID", typeof(String))); |
2215 | delete.Connection = conn; | 2519 | delete.Connection = conn; |
2216 | da.DeleteCommand = delete; | 2520 | da.DeleteCommand = delete; |
2217 | } | 2521 | } |
@@ -2279,6 +2583,19 @@ namespace OpenSim.Data.SQLite | |||
2279 | /// </summary> | 2583 | /// </summary> |
2280 | /// <param name="da"></param> | 2584 | /// <param name="da"></param> |
2281 | /// <param name="conn"></param> | 2585 | /// <param name="conn"></param> |
2586 | private void setupRegionWindlightCommands(SqliteDataAdapter da, SqliteConnection conn) | ||
2587 | { | ||
2588 | da.InsertCommand = createInsertCommand("regionwindlight", ds.Tables["regionwindlight"]); | ||
2589 | da.InsertCommand.Connection = conn; | ||
2590 | da.UpdateCommand = createUpdateCommand("regionwindlight", "region_id=:region_id", ds.Tables["regionwindlight"]); | ||
2591 | da.UpdateCommand.Connection = conn; | ||
2592 | } | ||
2593 | |||
2594 | /// <summary> | ||
2595 | /// | ||
2596 | /// </summary> | ||
2597 | /// <param name="da"></param> | ||
2598 | /// <param name="conn"></param> | ||
2282 | private void setupShapeCommands(SqliteDataAdapter da, SqliteConnection conn) | 2599 | private void setupShapeCommands(SqliteDataAdapter da, SqliteConnection conn) |
2283 | { | 2600 | { |
2284 | da.InsertCommand = createInsertCommand("primshapes", ds.Tables["primshapes"]); | 2601 | da.InsertCommand = createInsertCommand("primshapes", ds.Tables["primshapes"]); |
@@ -2288,7 +2605,7 @@ namespace OpenSim.Data.SQLite | |||
2288 | da.UpdateCommand.Connection = conn; | 2605 | da.UpdateCommand.Connection = conn; |
2289 | 2606 | ||
2290 | SqliteCommand delete = new SqliteCommand("delete from primshapes where UUID = :UUID"); | 2607 | SqliteCommand delete = new SqliteCommand("delete from primshapes where UUID = :UUID"); |
2291 | delete.Parameters.Add(createSqliteParameter("UUID", typeof (String))); | 2608 | delete.Parameters.Add(createSqliteParameter("UUID", typeof(String))); |
2292 | delete.Connection = conn; | 2609 | delete.Connection = conn; |
2293 | da.DeleteCommand = delete; | 2610 | da.DeleteCommand = delete; |
2294 | } | 2611 | } |
@@ -2306,27 +2623,27 @@ namespace OpenSim.Data.SQLite | |||
2306 | /// <returns></returns> | 2623 | /// <returns></returns> |
2307 | private static DbType dbtypeFromType(Type type) | 2624 | private static DbType dbtypeFromType(Type type) |
2308 | { | 2625 | { |
2309 | if (type == typeof (String)) | 2626 | if (type == typeof(String)) |
2310 | { | 2627 | { |
2311 | return DbType.String; | 2628 | return DbType.String; |
2312 | } | 2629 | } |
2313 | else if (type == typeof (Int32)) | 2630 | else if (type == typeof(Int32)) |
2314 | { | 2631 | { |
2315 | return DbType.Int32; | 2632 | return DbType.Int32; |
2316 | } | 2633 | } |
2317 | else if (type == typeof (Double)) | 2634 | else if (type == typeof(Double)) |
2318 | { | 2635 | { |
2319 | return DbType.Double; | 2636 | return DbType.Double; |
2320 | } | 2637 | } |
2321 | else if (type == typeof (Byte)) | 2638 | else if (type == typeof(Byte)) |
2322 | { | 2639 | { |
2323 | return DbType.Byte; | 2640 | return DbType.Byte; |
2324 | } | 2641 | } |
2325 | else if (type == typeof (Double)) | 2642 | else if (type == typeof(Double)) |
2326 | { | 2643 | { |
2327 | return DbType.Double; | 2644 | return DbType.Double; |
2328 | } | 2645 | } |
2329 | else if (type == typeof (Byte[])) | 2646 | else if (type == typeof(Byte[])) |
2330 | { | 2647 | { |
2331 | return DbType.Binary; | 2648 | return DbType.Binary; |
2332 | } | 2649 | } |
@@ -2338,32 +2655,32 @@ namespace OpenSim.Data.SQLite | |||
2338 | 2655 | ||
2339 | static void PrintDataSet(DataSet ds) | 2656 | static void PrintDataSet(DataSet ds) |
2340 | { | 2657 | { |
2341 | // Print out any name and extended properties. | 2658 | // Print out any name and extended properties. |
2342 | Console.WriteLine("DataSet is named: {0}", ds.DataSetName); | 2659 | Console.WriteLine("DataSet is named: {0}", ds.DataSetName); |
2343 | foreach (System.Collections.DictionaryEntry de in ds.ExtendedProperties) | 2660 | foreach (System.Collections.DictionaryEntry de in ds.ExtendedProperties) |
2344 | { | ||
2345 | Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value); | ||
2346 | } | ||
2347 | Console.WriteLine(); | ||
2348 | foreach (DataTable dt in ds.Tables) | ||
2349 | { | ||
2350 | Console.WriteLine("=> {0} Table:", dt.TableName); | ||
2351 | // Print out the column names. | ||
2352 | for (int curCol = 0; curCol < dt.Columns.Count; curCol++) | ||
2353 | { | 2661 | { |
2354 | Console.Write(dt.Columns[curCol].ColumnName + "\t"); | 2662 | Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value); |
2355 | } | 2663 | } |
2356 | Console.WriteLine("\n----------------------------------"); | 2664 | Console.WriteLine(); |
2357 | // Print the DataTable. | 2665 | foreach (DataTable dt in ds.Tables) |
2358 | for (int curRow = 0; curRow < dt.Rows.Count; curRow++) | ||
2359 | { | 2666 | { |
2360 | for (int curCol = 0; curCol < dt.Columns.Count; curCol++) | 2667 | Console.WriteLine("=> {0} Table:", dt.TableName); |
2361 | { | 2668 | // Print out the column names. |
2362 | Console.Write(dt.Rows[curRow][curCol].ToString() + "\t"); | 2669 | for (int curCol = 0; curCol < dt.Columns.Count; curCol++) |
2363 | } | 2670 | { |
2364 | Console.WriteLine(); | 2671 | Console.Write(dt.Columns[curCol].ColumnName + "\t"); |
2672 | } | ||
2673 | Console.WriteLine("\n----------------------------------"); | ||
2674 | // Print the DataTable. | ||
2675 | for (int curRow = 0; curRow < dt.Rows.Count; curRow++) | ||
2676 | { | ||
2677 | for (int curCol = 0; curCol < dt.Columns.Count; curCol++) | ||
2678 | { | ||
2679 | Console.Write(dt.Rows[curRow][curCol].ToString() + "\t"); | ||
2680 | } | ||
2681 | Console.WriteLine(); | ||
2682 | } | ||
2365 | } | 2683 | } |
2366 | } | ||
2367 | } | 2684 | } |
2368 | 2685 | ||
2369 | } | 2686 | } |
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index 2e620ff..a820ddf 100755 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example | |||
@@ -484,7 +484,6 @@ | |||
484 | ;; such as the Meta7 viewer. | 484 | ;; such as the Meta7 viewer. |
485 | ;; It has no ill effect on viewers which do not support server-side | 485 | ;; It has no ill effect on viewers which do not support server-side |
486 | ;; windlight settings. | 486 | ;; windlight settings. |
487 | ;; Currently we only have support for MySQL databases. | ||
488 | ; enable_windlight = false | 487 | ; enable_windlight = false |
489 | 488 | ||
490 | 489 | ||
diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini index 3fd3d31..fab2c47 100644 --- a/bin/OpenSimDefaults.ini +++ b/bin/OpenSimDefaults.ini | |||
@@ -1070,7 +1070,6 @@ | |||
1070 | [LightShare] | 1070 | [LightShare] |
1071 | ; This enables the transmission of Windlight scenes to supporting clients, such as the Meta7 viewer. | 1071 | ; This enables the transmission of Windlight scenes to supporting clients, such as the Meta7 viewer. |
1072 | ; It has no ill effect on viewers which do not support server-side windlight settings. | 1072 | ; It has no ill effect on viewers which do not support server-side windlight settings. |
1073 | ; Currently we only have support for MySQL databases. | ||
1074 | enable_windlight = false | 1073 | enable_windlight = false |
1075 | 1074 | ||
1076 | 1075 | ||