From 31a81e17be6e59111deb484650fbb1cfa1eb6c5c Mon Sep 17 00:00:00 2001 From: MW Date: Mon, 20 Aug 2007 15:49:06 +0000 Subject: The regionUUID is now being passed to the datastore calls. --- .../Region/Environment/Scenes/Scene.PacketHandlers.cs | 2 +- OpenSim/Region/Environment/Scenes/Scene.cs | 10 +++++----- OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 16 +++++++++++++++- OpenSim/Region/Environment/Scenes/ScenePresence.cs | 10 ++++++++++ 4 files changed, 31 insertions(+), 7 deletions(-) (limited to 'OpenSim/Region/Environment/Scenes') diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs index 0ed10c0..0449cd9 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs @@ -270,7 +270,7 @@ namespace OpenSim.Region.Environment.Scenes remoteClient.SendInventoryItemUpdate(item); } - storageManager.DataStore.RemoveObject(((SceneObjectGroup)selectedEnt).UUID); + storageManager.DataStore.RemoveObject(((SceneObjectGroup)selectedEnt).UUID, m_regInfo.SimUUID); ((SceneObjectGroup)selectedEnt).DeleteGroup(); lock (Entities) diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index d1a16e0..10be283 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -180,6 +180,8 @@ namespace OpenSim.Region.Environment.Scenes ScenePresence.LoadAnims(); httpListener = httpServer; + + } #endregion @@ -497,7 +499,7 @@ namespace OpenSim.Region.Environment.Scenes public void LoadPrimsFromStorage() { MainLog.Instance.Verbose("Loading objects from datastore"); - List PrimsFromDB = storageManager.DataStore.LoadObjects(); + List PrimsFromDB = storageManager.DataStore.LoadObjects(this.m_regInfo.SimUUID); foreach (SceneObjectGroup prim in PrimsFromDB) { AddEntityFromStorage(prim); @@ -707,7 +709,7 @@ namespace OpenSim.Region.Environment.Scenes client.OnFetchInventory += commsManager.UserProfiles.HandleFetchInventory; client.OnAssetUploadRequest += commsManager.TransactionsManager.HandleUDPUploadRequest; client.OnXferReceive += commsManager.TransactionsManager.HandleXfer; - // client.OnRequestXfer += RequestXfer; + // client.OnRequestXfer += RequestXfer; client.OnRequestAvatarProperties += RequestAvatarProperty; @@ -919,9 +921,7 @@ namespace OpenSim.Region.Environment.Scenes if (agent.CapsPath != "") { //Console.WriteLine("new user, so creating caps handler for it"); - Caps cap = - new Caps(assetCache, httpListener, m_regInfo.ExternalHostName, m_regInfo.ExternalEndPoint.Port, - agent.CapsPath, agent.AgentID); + Caps cap = new Caps(assetCache, httpListener, m_regInfo.ExternalHostName, m_regInfo.ExternalEndPoint.Port, agent.CapsPath, agent.AgentID); Util.SetCapsURL(agent.AgentID, "http://" + m_regInfo.ExternalHostName + ":" + httpListener.Port.ToString() + "/CAPS/" + agent.CapsPath + "0000/"); cap.RegisterHandlers(); cap.AddNewInventoryItem = this.AddInventoryItem; diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 1e6cd8f..9042c04 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs @@ -436,12 +436,26 @@ namespace OpenSim.Region.Environment.Scenes linkPart.SetParent(this); //TODO: rest of parts + foreach (SceneObjectPart part in objectGroup.Children.Values) + { + if (part.UUID != objectGroup.m_rootPart.UUID) + { + this.LinkNonRootPart(part); + } + } m_scene.EventManager.OnBackup -= objectGroup.ProcessBackup; m_scene.DeleteEntity(objectGroup.UUID); this.ScheduleGroupForFullUpdate(); } + private void LinkNonRootPart(SceneObjectPart part) + { + part.SetParent(this); + part.ParentID = this.m_rootPart.LocalID; + this.m_parts.Add(part.UUID, part); + } + /// /// /// @@ -812,7 +826,7 @@ namespace OpenSim.Region.Environment.Scenes /// public void ProcessBackup(OpenSim.Region.Interfaces.IRegionDataStore datastore) { - datastore.StoreObject(this); + datastore.StoreObject(this, m_scene.RegionInfo.SimUUID); } #endregion diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index 0393a2a..73e9d48 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs @@ -496,6 +496,16 @@ namespace OpenSim.Region.Environment.Scenes this.m_scene.SendAllSceneObjectsToClient(this.ControllingClient); this.ControllingClient.SendViewerTime(this.m_scene.TimePhase); + + //Please don't remove the following code (at least not yet), just leave it commented out + //gives the user god powers, should help with debuging things in the future + /* + GrantGodlikePowersPacket grant = new GrantGodlikePowersPacket(); + grant.AgentData.AgentID = this.ControllingClient.AgentId; + grant.AgentData.SessionID = this.ControllingClient.SessionId; + grant.GrantData.GodLevel = 255; + grant.GrantData.Token = LLUUID.Random(); + this.ControllingClient.OutPacket(grant);*/ } /// -- cgit v1.1