aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r--OpenSim/Region/Framework/Scenes/EntityBase.cs83
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs125
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs355
-rw-r--r--OpenSim/Region/Framework/Scenes/Types/UpdateQueue.cs44
4 files changed, 5 insertions, 602 deletions
diff --git a/OpenSim/Region/Framework/Scenes/EntityBase.cs b/OpenSim/Region/Framework/Scenes/EntityBase.cs
index fb5c0d1..d23f487 100644
--- a/OpenSim/Region/Framework/Scenes/EntityBase.cs
+++ b/OpenSim/Region/Framework/Scenes/EntityBase.cs
@@ -32,8 +32,7 @@ using OpenMetaverse;
32 32
33namespace OpenSim.Region.Framework.Scenes 33namespace OpenSim.Region.Framework.Scenes
34{ 34{
35 [Serializable] 35 public abstract class EntityBase
36 public abstract class EntityBase : ISerializable
37 { 36 {
38 /// <summary> 37 /// <summary>
39 /// The scene to which this entity belongs 38 /// The scene to which this entity belongs
@@ -145,87 +144,7 @@ namespace OpenSim.Region.Framework.Scenes
145 return (EntityBase) MemberwiseClone(); 144 return (EntityBase) MemberwiseClone();
146 } 145 }
147 146
148
149 public abstract void SetText(string text, Vector3 color, double alpha); 147 public abstract void SetText(string text, Vector3 color, double alpha);
150
151 protected EntityBase(SerializationInfo info, StreamingContext context)
152 {
153 //m_log.Debug("EntityBase Deserialize BGN");
154
155 if (info == null)
156 {
157 throw new ArgumentNullException("info");
158 }
159
160 m_uuid = new UUID((Guid)info.GetValue("m_uuid", typeof(Guid)));
161 m_name = (string)info.GetValue("m_name", typeof(string));
162
163 m_pos
164 = new Vector3(
165 (float)info.GetValue("m_pos.X", typeof(float)),
166 (float)info.GetValue("m_pos.Y", typeof(float)),
167 (float)info.GetValue("m_pos.Z", typeof(float)));
168
169 m_velocity
170 = new Vector3(
171 (float)info.GetValue("m_velocity.X", typeof(float)),
172 (float)info.GetValue("m_velocity.Y", typeof(float)),
173 (float)info.GetValue("m_velocity.Z", typeof(float)));
174
175 m_rotationalvelocity
176 = new Vector3(
177 (float)info.GetValue("m_rotationalvelocity.X", typeof(float)),
178 (float)info.GetValue("m_rotationalvelocity.Y", typeof(float)),
179 (float)info.GetValue("m_rotationalvelocity.Z", typeof(float)));
180
181 m_rotation
182 = new Quaternion(
183 (float)info.GetValue("m_rotation.X", typeof(float)),
184 (float)info.GetValue("m_rotation.Y", typeof(float)),
185 (float)info.GetValue("m_rotation.Z", typeof(float)),
186 (float)info.GetValue("m_rotation.W", typeof(float)));
187
188 m_localId = (uint)info.GetValue("m_localId", typeof(uint));
189
190 //m_log.Debug("EntityBase Deserialize END");
191 }
192
193 [SecurityPermission(SecurityAction.LinkDemand,
194 Flags = SecurityPermissionFlag.SerializationFormatter)]
195 public virtual void GetObjectData(
196 SerializationInfo info, StreamingContext context)
197 {
198 if (info == null)
199 {
200 throw new ArgumentNullException("info");
201 }
202
203 info.AddValue("m_uuid", m_uuid.Guid);
204 info.AddValue("m_name", m_name);
205
206 // Vector3
207 info.AddValue("m_pos.X", m_pos.X);
208 info.AddValue("m_pos.Y", m_pos.Y);
209 info.AddValue("m_pos.Z", m_pos.Z);
210
211 // Vector3
212 info.AddValue("m_velocity.X", m_velocity.X);
213 info.AddValue("m_velocity.Y", m_velocity.Y);
214 info.AddValue("m_velocity.Z", m_velocity.Z);
215
216 // Vector3
217 info.AddValue("m_rotationalvelocity.X", m_rotationalvelocity.X);
218 info.AddValue("m_rotationalvelocity.Y", m_rotationalvelocity.Y);
219 info.AddValue("m_rotationalvelocity.Z", m_rotationalvelocity.Z);
220
221 // Quaternion
222 info.AddValue("m_rotation.X", m_rotation.X);
223 info.AddValue("m_rotation.Y", m_rotation.Y);
224 info.AddValue("m_rotation.Z", m_rotation.Z);
225 info.AddValue("m_rotation.W", m_rotation.W);
226
227 info.AddValue("m_localId", m_localId);
228 }
229 } 148 }
230 149
231 //Nested Classes 150 //Nested Classes
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 5b0480f..ede007e 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -92,8 +92,7 @@ namespace OpenSim.Region.Framework.Scenes
92 92
93 #endregion Enumerations 93 #endregion Enumerations
94 94
95 [Serializable] 95 public class SceneObjectPart : IScriptHost
96 public class SceneObjectPart : IScriptHost, ISerializable
97 { 96 {
98 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 97 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
99 98
@@ -318,27 +317,6 @@ namespace OpenSim.Region.Framework.Scenes
318 m_inventory = new SceneObjectPartInventory(this); 317 m_inventory = new SceneObjectPartInventory(this);
319 } 318 }
320 319
321 protected SceneObjectPart(SerializationInfo info, StreamingContext context)
322 {
323 //m_log.Debug("SceneObjectPart Deserialize BGN");
324 m_TextureAnimation = new byte[0];
325 m_particleSystem = new byte[0];
326 if (info == null)
327 {
328 throw new ArgumentNullException("info");
329 }
330
331 /*
332 m_queue = (Queue<SceneObjectPart>)info.GetValue("m_queue", typeof(Queue<SceneObjectPart>));
333 m_ids = (List<UUID>)info.GetValue("m_ids", typeof(List<UUID>));
334 */
335
336 //m_log.Debug("SceneObjectPart Deserialize END");
337 Rezzed = DateTime.Now;
338
339 m_inventory = new SceneObjectPartInventory(this);
340 }
341
342 #endregion Constructors 320 #endregion Constructors
343 321
344 #region XML Schema 322 #region XML Schema
@@ -1699,107 +1677,6 @@ if (m_shape != null) {
1699 return new PhysicsVector(); 1677 return new PhysicsVector();
1700 } 1678 }
1701 1679
1702 [SecurityPermission(SecurityAction.LinkDemand,
1703 Flags = SecurityPermissionFlag.SerializationFormatter)]
1704 public virtual void GetObjectData(
1705 SerializationInfo info, StreamingContext context)
1706 {
1707 if (info == null)
1708 {
1709 throw new ArgumentNullException("info");
1710 }
1711
1712 info.AddValue("m_inventoryFileName", Inventory.GetInventoryFileName());
1713 info.AddValue("m_folderID", UUID);
1714 info.AddValue("PhysActor", PhysActor);
1715
1716 Dictionary<Guid, TaskInventoryItem> TaskInventory_work = new Dictionary<Guid, TaskInventoryItem>();
1717
1718 lock (TaskInventory)
1719 {
1720 foreach (UUID id in TaskInventory.Keys)
1721 {
1722 TaskInventory_work.Add(id.Guid, TaskInventory[id]);
1723 }
1724 }
1725
1726 info.AddValue("TaskInventory", TaskInventory_work);
1727
1728 info.AddValue("LastOwnerID", _lastOwnerID.Guid);
1729 info.AddValue("OwnerID", _ownerID.Guid);
1730 info.AddValue("GroupID", _groupID.Guid);
1731
1732 info.AddValue("OwnershipCost", _ownershipCost);
1733 info.AddValue("ObjectSaleType", _objectSaleType);
1734 info.AddValue("SalePrice", _salePrice);
1735 info.AddValue("Category", _category);
1736
1737 info.AddValue("CreationDate", _creationDate);
1738 info.AddValue("ParentID", _parentID);
1739
1740 info.AddValue("OwnerMask", _ownerMask);
1741 info.AddValue("NextOwnerMask", _nextOwnerMask);
1742 info.AddValue("GroupMask", _groupMask);
1743 info.AddValue("EveryoneMask", _everyoneMask);
1744 info.AddValue("BaseMask", _baseMask);
1745
1746 info.AddValue("m_particleSystem", m_particleSystem);
1747
1748 info.AddValue("TimeStampFull", TimeStampFull);
1749 info.AddValue("TimeStampTerse", TimeStampTerse);
1750 info.AddValue("TimeStampLastActivity", TimeStampLastActivity);
1751
1752 info.AddValue("m_updateFlag", m_updateFlag);
1753 info.AddValue("CreatorID", _creatorID.Guid);
1754
1755 info.AddValue("m_inventorySerial", m_inventory.Serial);
1756 info.AddValue("m_uuid", m_uuid.Guid);
1757 info.AddValue("m_localID", m_localId);
1758 info.AddValue("m_name", m_name);
1759 info.AddValue("m_flags", _flags);
1760 info.AddValue("m_material", m_material);
1761 info.AddValue("m_regionHandle", m_regionHandle);
1762
1763 info.AddValue("m_groupPosition.X", m_groupPosition.X);
1764 info.AddValue("m_groupPosition.Y", m_groupPosition.Y);
1765 info.AddValue("m_groupPosition.Z", m_groupPosition.Z);
1766
1767 info.AddValue("m_offsetPosition.X", m_offsetPosition.X);
1768 info.AddValue("m_offsetPosition.Y", m_offsetPosition.Y);
1769 info.AddValue("m_offsetPosition.Z", m_offsetPosition.Z);
1770
1771 info.AddValue("m_rotationOffset.W", m_rotationOffset.W);
1772 info.AddValue("m_rotationOffset.X", m_rotationOffset.X);
1773 info.AddValue("m_rotationOffset.Y", m_rotationOffset.Y);
1774 info.AddValue("m_rotationOffset.Z", m_rotationOffset.Z);
1775
1776 info.AddValue("m_velocity.X", m_velocity.X);
1777 info.AddValue("m_velocity.Y", m_velocity.Y);
1778 info.AddValue("m_velocity.Z", m_velocity.Z);
1779
1780 info.AddValue("m_rotationalvelocity.X", RotationalVelocity.X);
1781 info.AddValue("m_rotationalvelocity.Y", RotationalVelocity.Y);
1782 info.AddValue("m_rotationalvelocity.Z", RotationalVelocity.Z);
1783
1784 info.AddValue("m_angularVelocity.X", m_angularVelocity.X);
1785 info.AddValue("m_angularVelocity.Y", m_angularVelocity.Y);
1786 info.AddValue("m_angularVelocity.Z", m_angularVelocity.Z);
1787
1788 info.AddValue("m_acceleration.X", m_acceleration.X);
1789 info.AddValue("m_acceleration.Y", m_acceleration.Y);
1790 info.AddValue("m_acceleration.Z", m_acceleration.Z);
1791
1792 info.AddValue("m_description", m_description);
1793 info.AddValue("m_color", m_color);
1794 info.AddValue("m_text", m_text);
1795 info.AddValue("m_sitName", m_sitName);
1796 info.AddValue("m_touchName", m_touchName);
1797 info.AddValue("m_clickAction", m_clickAction);
1798 info.AddValue("m_shape", m_shape);
1799 info.AddValue("m_parentGroup", m_parentGroup);
1800 info.AddValue("PayPrice", PayPrice);
1801 }
1802
1803 public void GetProperties(IClientAPI client) 1680 public void GetProperties(IClientAPI client)
1804 { 1681 {
1805 client.SendObjectPropertiesReply( 1682 client.SendObjectPropertiesReply(
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index db0a2d2..6eb6ea4 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -66,8 +66,7 @@ namespace OpenSim.Region.Framework.Scenes
66 public ScriptControlled eventControls; 66 public ScriptControlled eventControls;
67 } 67 }
68 68
69 [Serializable] 69 public class ScenePresence : EntityBase
70 public class ScenePresence : EntityBase, ISerializable
71 { 70 {
72// ~ScenePresence() 71// ~ScenePresence()
73// { 72// {
@@ -2823,20 +2822,14 @@ namespace OpenSim.Region.Framework.Scenes
2823 DefaultTexture = textu.ToBytes(); 2822 DefaultTexture = textu.ToBytes();
2824 } 2823 }
2825 2824
2826 [Serializable]
2827 public class NewForce 2825 public class NewForce
2828 { 2826 {
2829 public float X; 2827 public float X;
2830 public float Y; 2828 public float Y;
2831 public float Z; 2829 public float Z;
2832
2833 public NewForce()
2834 {
2835 }
2836 } 2830 }
2837 2831
2838 [Serializable] 2832 public class ScenePartUpdate
2839 public class ScenePartUpdate : ISerializable
2840 { 2833 {
2841 public UUID FullID; 2834 public UUID FullID;
2842 public uint LastFullUpdateTime; 2835 public uint LastFullUpdateTime;
@@ -2848,37 +2841,6 @@ namespace OpenSim.Region.Framework.Scenes
2848 LastFullUpdateTime = 0; 2841 LastFullUpdateTime = 0;
2849 LastTerseUpdateTime = 0; 2842 LastTerseUpdateTime = 0;
2850 } 2843 }
2851
2852 protected ScenePartUpdate(SerializationInfo info, StreamingContext context)
2853 {
2854 //m_log.Debug("ScenePartUpdate Deserialize BGN");
2855
2856 if (info == null)
2857 {
2858 throw new ArgumentNullException("info");
2859 }
2860
2861 FullID = new UUID((Guid)info.GetValue("FullID", typeof(Guid)));
2862 LastFullUpdateTime = (uint)info.GetValue("LastFullUpdateTime", typeof(uint));
2863 LastTerseUpdateTime = (uint)info.GetValue("LastTerseUpdateTime", typeof(uint));
2864
2865 //m_log.Debug("ScenePartUpdate Deserialize END");
2866 }
2867
2868 [SecurityPermission(SecurityAction.LinkDemand,
2869 Flags = SecurityPermissionFlag.SerializationFormatter)]
2870 public virtual void GetObjectData(
2871 SerializationInfo info, StreamingContext context)
2872 {
2873 if (info == null)
2874 {
2875 throw new ArgumentNullException("info");
2876 }
2877
2878 info.AddValue("FullID", FullID.Guid);
2879 info.AddValue("LastFullUpdateTime", LastFullUpdateTime);
2880 info.AddValue("LastTerseUpdateTime", LastTerseUpdateTime);
2881 }
2882 } 2844 }
2883 2845
2884 public override void SetText(string text, Vector3 color, double alpha) 2846 public override void SetText(string text, Vector3 color, double alpha)
@@ -2992,13 +2954,6 @@ namespace OpenSim.Region.Framework.Scenes
2992 2954
2993 public ScenePresence() 2955 public ScenePresence()
2994 { 2956 {
2995/* JB
2996 if (Animations == null)
2997 {
2998 Animations = new AvatarAnimations();
2999 Animations.LoadAnims();
3000 }
3001*/
3002 if (DefaultTexture == null) 2957 if (DefaultTexture == null)
3003 { 2958 {
3004 Primitive.TextureEntry textu = AvatarAppearance.GetDefaultTexture(); 2959 Primitive.TextureEntry textu = AvatarAppearance.GetDefaultTexture();
@@ -3116,310 +3071,6 @@ namespace OpenSim.Region.Framework.Scenes
3116 */ 3071 */
3117 } 3072 }
3118 3073
3119 protected ScenePresence(SerializationInfo info, StreamingContext context)
3120 : base (info, context)
3121 {
3122 //m_log.Debug("ScenePresence Deserialize BGN");
3123
3124 if (info == null)
3125 {
3126 throw new ArgumentNullException("info");
3127 }
3128/* JB
3129 if (Animations == null)
3130 {
3131 Animations = new AvatarAnimations();
3132 Animations.LoadAnims();
3133 }
3134*/
3135 if (DefaultTexture == null)
3136 {
3137 Primitive.TextureEntry textu = AvatarAppearance.GetDefaultTexture();
3138 DefaultTexture = textu.ToBytes();
3139 }
3140
3141 m_animations = (AnimationSet)info.GetValue("m_animations", typeof(AnimationSet));
3142 m_updateflag = (bool)info.GetValue("m_updateflag", typeof(bool));
3143 m_movementflag = (byte)info.GetValue("m_movementflag", typeof(byte));
3144 m_forcesList = (List<NewForce>)info.GetValue("m_forcesList", typeof(List<NewForce>));
3145 m_updateCount = (short)info.GetValue("m_updateCount", typeof(short));
3146 m_requestedSitTargetID = (uint)info.GetValue("m_requestedSitTargetID", typeof(uint));
3147
3148 m_requestedSitOffset
3149 = new Vector3(
3150 (float)info.GetValue("m_requestedSitOffset.X", typeof(float)),
3151 (float)info.GetValue("m_requestedSitOffset.Y", typeof(float)),
3152 (float)info.GetValue("m_requestedSitOffset.Z", typeof(float)));
3153
3154 m_sitAvatarHeight = (float)info.GetValue("m_sitAvatarHeight", typeof(float));
3155 m_godlevel = (float)info.GetValue("m_godlevel", typeof(float));
3156 m_setAlwaysRun = (bool)info.GetValue("m_setAlwaysRun", typeof(bool));
3157
3158 m_bodyRot
3159 = new Quaternion(
3160 (float)info.GetValue("m_bodyRot.X", typeof(float)),
3161 (float)info.GetValue("m_bodyRot.Y", typeof(float)),
3162 (float)info.GetValue("m_bodyRot.Z", typeof(float)),
3163 (float)info.GetValue("m_bodyRot.W", typeof(float)));
3164
3165 IsRestrictedToRegion = (bool)info.GetValue("IsRestrictedToRegion", typeof(bool));
3166 m_newForce = (bool)info.GetValue("m_newForce", typeof(bool));
3167 //m_newAvatar = (bool)info.GetValue("m_newAvatar", typeof(bool));
3168 m_newCoarseLocations = (bool)info.GetValue("m_newCoarseLocations", typeof(bool));
3169 m_avHeight = (float)info.GetValue("m_avHeight", typeof(float));
3170 crossingFromRegion = (ulong)info.GetValue("crossingFromRegion", typeof(ulong));
3171
3172 List<float[]> Dir_Vectors_work = (List<float[]>)info.GetValue("Dir_Vectors", typeof(List<float[]>));
3173 List<Vector3> Dir_Vectors_work2 = new List<Vector3>();
3174
3175 foreach (float[] f3 in Dir_Vectors_work)
3176 {
3177 Dir_Vectors_work2.Add(new Vector3(f3[0], f3[1], f3[2]));
3178 }
3179
3180 Dir_Vectors = Dir_Vectors_work2.ToArray();
3181
3182 lastPhysPos
3183 = new Vector3(
3184 (float)info.GetValue("lastPhysPos.X", typeof(float)),
3185 (float)info.GetValue("lastPhysPos.Y", typeof(float)),
3186 (float)info.GetValue("lastPhysPos.Z", typeof(float)));
3187
3188 // Possibly we should store lastPhysRot. But there may well be not much point since rotation changes
3189 // wouldn't carry us across borders anyway
3190
3191 m_CameraCenter
3192 = new Vector3(
3193 (float)info.GetValue("m_CameraCenter.X", typeof(float)),
3194 (float)info.GetValue("m_CameraCenter.Y", typeof(float)),
3195 (float)info.GetValue("m_CameraCenter.Z", typeof(float)));
3196
3197 m_CameraAtAxis
3198 = new Vector3(
3199 (float)info.GetValue("m_CameraAtAxis.X", typeof(float)),
3200 (float)info.GetValue("m_CameraAtAxis.Y", typeof(float)),
3201 (float)info.GetValue("m_CameraAtAxis.Z", typeof(float)));
3202
3203 m_CameraLeftAxis
3204 = new Vector3(
3205 (float)info.GetValue("m_CameraLeftAxis.X", typeof(float)),
3206 (float)info.GetValue("m_CameraLeftAxis.Y", typeof(float)),
3207 (float)info.GetValue("m_CameraLeftAxis.Z", typeof(float)));
3208
3209 m_CameraUpAxis
3210 = new Vector3(
3211 (float)info.GetValue("m_CameraUpAxis.X", typeof(float)),
3212 (float)info.GetValue("m_CameraUpAxis.Y", typeof(float)),
3213 (float)info.GetValue("m_CameraUpAxis.Z", typeof(float)));
3214
3215 m_DrawDistance = (float)info.GetValue("m_DrawDistance", typeof(float));
3216 m_appearance = (AvatarAppearance)info.GetValue("m_appearance", typeof(AvatarAppearance));
3217
3218 m_knownChildRegions = (Dictionary<ulong, string>)info.GetValue("m_knownChildRegions", typeof(Dictionary<ulong, string>));
3219
3220 posLastSignificantMove
3221 = new Vector3(
3222 (float)info.GetValue("posLastSignificantMove.X", typeof(float)),
3223 (float)info.GetValue("posLastSignificantMove.Y", typeof(float)),
3224 (float)info.GetValue("posLastSignificantMove.Z", typeof(float)));
3225
3226 // m_partsUpdateQueue = (UpdateQueue)info.GetValue("m_partsUpdateQueue", typeof(UpdateQueue));
3227
3228 /*
3229 Dictionary<Guid, ScenePartUpdate> updateTimes_work
3230 = (Dictionary<Guid, ScenePartUpdate>)info.GetValue("m_updateTimes", typeof(Dictionary<Guid, ScenePartUpdate>));
3231
3232 foreach (Guid id in updateTimes_work.Keys)
3233 {
3234 m_updateTimes.Add(new UUID(id), updateTimes_work[id]);
3235 }
3236 */
3237 m_regionHandle = (ulong)info.GetValue("m_regionHandle", typeof(ulong));
3238 m_firstname = (string)info.GetValue("m_firstname", typeof(string));
3239 m_lastname = (string)info.GetValue("m_lastname", typeof(string));
3240 m_allowMovement = (bool)info.GetValue("m_allowMovement", typeof(bool));
3241 m_parentPosition = new Vector3((float)info.GetValue("m_parentPosition.X", typeof(float)),
3242 (float)info.GetValue("m_parentPosition.Y", typeof(float)),
3243 (float)info.GetValue("m_parentPosition.Z", typeof(float)));
3244
3245 m_isChildAgent = (bool)info.GetValue("m_isChildAgent", typeof(bool));
3246 m_parentID = (uint)info.GetValue("m_parentID", typeof(uint));
3247
3248// for OpenSim_v0.5
3249 currentParcelUUID = new UUID((Guid)info.GetValue("currentParcelUUID", typeof(Guid)));
3250
3251 lastKnownAllowedPosition
3252 = new Vector3(
3253 (float)info.GetValue("lastKnownAllowedPosition.X", typeof(float)),
3254 (float)info.GetValue("lastKnownAllowedPosition.Y", typeof(float)),
3255 (float)info.GetValue("lastKnownAllowedPosition.Z", typeof(float)));
3256
3257 sentMessageAboutRestrictedParcelFlyingDown = (bool)info.GetValue("sentMessageAboutRestrictedParcelFlyingDown", typeof(bool));
3258
3259 m_LastChildAgentUpdatePosition
3260 = new Vector3(
3261 (float)info.GetValue("m_LastChildAgentUpdatePosition.X", typeof(float)),
3262 (float)info.GetValue("m_LastChildAgentUpdatePosition.Y", typeof(float)),
3263 (float)info.GetValue("m_LastChildAgentUpdatePosition.Z", typeof(float)));
3264
3265 m_perfMonMS = (int)info.GetValue("m_perfMonMS", typeof(int));
3266 m_AgentControlFlags = (uint)info.GetValue("m_AgentControlFlags", typeof(uint));
3267
3268 m_headrotation
3269 = new Quaternion(
3270 (float)info.GetValue("m_headrotation.X", typeof(float)),
3271 (float)info.GetValue("m_headrotation.Y", typeof(float)),
3272 (float)info.GetValue("m_headrotation.Z", typeof(float)),
3273 (float)info.GetValue("m_headrotation.W", typeof(float)));
3274
3275 m_state = (byte)info.GetValue("m_state", typeof(byte));
3276
3277 //m_log.Debug("ScenePresence Deserialize END");
3278 }
3279
3280 [SecurityPermission(SecurityAction.LinkDemand,
3281 Flags = SecurityPermissionFlag.SerializationFormatter)]
3282 public override void GetObjectData(
3283 SerializationInfo info, StreamingContext context)
3284 {
3285 if (info == null)
3286 {
3287 throw new ArgumentNullException("info");
3288 }
3289
3290 base.GetObjectData(info, context);
3291
3292 info.AddValue("m_animations", m_animations);
3293 info.AddValue("m_updateflag", m_updateflag);
3294 info.AddValue("m_movementflag", m_movementflag);
3295 info.AddValue("m_forcesList", m_forcesList);
3296 info.AddValue("m_updateCount", m_updateCount);
3297 info.AddValue("m_requestedSitTargetID", m_requestedSitTargetID);
3298
3299 // Vector3
3300 info.AddValue("m_requestedSitOffset.X", m_requestedSitOffset.X);
3301 info.AddValue("m_requestedSitOffset.Y", m_requestedSitOffset.Y);
3302 info.AddValue("m_requestedSitOffset.Z", m_requestedSitOffset.Z);
3303
3304 info.AddValue("m_sitAvatarHeight", m_sitAvatarHeight);
3305 info.AddValue("m_godlevel", m_godlevel);
3306 info.AddValue("m_setAlwaysRun", m_setAlwaysRun);
3307
3308 // Quaternion
3309 info.AddValue("m_bodyRot.X", m_bodyRot.X);
3310 info.AddValue("m_bodyRot.Y", m_bodyRot.Y);
3311 info.AddValue("m_bodyRot.Z", m_bodyRot.Z);
3312 info.AddValue("m_bodyRot.W", m_bodyRot.W);
3313
3314 info.AddValue("IsRestrictedToRegion", IsRestrictedToRegion);
3315 info.AddValue("m_newForce", m_newForce);
3316 //info.AddValue("m_newAvatar", m_newAvatar);
3317 info.AddValue("m_newCoarseLocations", m_newCoarseLocations);
3318 info.AddValue("m_gotAPrimitivesInScene", false);
3319 info.AddValue("m_avHeight", m_avHeight);
3320
3321 // info.AddValue("m_regionInfo", m_regionInfo);
3322
3323 info.AddValue("crossingFromRegion", crossingFromRegion);
3324
3325 List<float[]> Dir_Vectors_work = new List<float[]>();
3326
3327 foreach (Vector3 v3 in Dir_Vectors)
3328 {
3329 Dir_Vectors_work.Add(new float[] { v3.X, v3.Y, v3.Z });
3330 }
3331
3332 info.AddValue("Dir_Vectors", Dir_Vectors_work);
3333
3334 // Vector3
3335 info.AddValue("lastPhysPos.X", lastPhysPos.X);
3336 info.AddValue("lastPhysPos.Y", lastPhysPos.Y);
3337 info.AddValue("lastPhysPos.Z", lastPhysPos.Z);
3338
3339 // Possibly we should retrieve lastPhysRot. But there may well be not much point since rotation changes
3340 // wouldn't carry us across borders anyway
3341
3342 // Vector3
3343 info.AddValue("m_CameraCenter.X", m_CameraCenter.X);
3344 info.AddValue("m_CameraCenter.Y", m_CameraCenter.Y);
3345 info.AddValue("m_CameraCenter.Z", m_CameraCenter.Z);
3346
3347 // Vector3
3348 info.AddValue("m_CameraAtAxis.X", m_CameraAtAxis.X);
3349 info.AddValue("m_CameraAtAxis.Y", m_CameraAtAxis.Y);
3350 info.AddValue("m_CameraAtAxis.Z", m_CameraAtAxis.Z);
3351
3352 // Vector3
3353 info.AddValue("m_CameraLeftAxis.X", m_CameraLeftAxis.X);
3354 info.AddValue("m_CameraLeftAxis.Y", m_CameraLeftAxis.Y);
3355 info.AddValue("m_CameraLeftAxis.Z", m_CameraLeftAxis.Z);
3356
3357 // Vector3
3358 info.AddValue("m_CameraUpAxis.X", m_CameraUpAxis.X);
3359 info.AddValue("m_CameraUpAxis.Y", m_CameraUpAxis.Y);
3360 info.AddValue("m_CameraUpAxis.Z", m_CameraUpAxis.Z);
3361
3362 info.AddValue("m_DrawDistance", m_DrawDistance);
3363 info.AddValue("m_appearance", m_appearance);
3364 info.AddValue("m_knownChildRegions", m_knownChildRegions);
3365
3366 // Vector3
3367 info.AddValue("posLastSignificantMove.X", posLastSignificantMove.X);
3368 info.AddValue("posLastSignificantMove.Y", posLastSignificantMove.Y);
3369 info.AddValue("posLastSignificantMove.Z", posLastSignificantMove.Z);
3370
3371 //info.AddValue("m_partsUpdateQueue", m_partsUpdateQueue);
3372
3373 /*
3374 Dictionary<Guid, ScenePartUpdate> updateTimes_work = new Dictionary<Guid, ScenePartUpdate>();
3375
3376 foreach (UUID id in m_updateTimes.Keys)
3377 {
3378 updateTimes_work.Add(id.UUID, m_updateTimes[id]);
3379 }
3380
3381 info.AddValue("m_updateTimes", updateTimes_work);
3382 */
3383
3384 info.AddValue("m_regionHandle", m_regionHandle);
3385 info.AddValue("m_firstname", m_firstname);
3386 info.AddValue("m_lastname", m_lastname);
3387 info.AddValue("m_allowMovement", m_allowMovement);
3388 //info.AddValue("m_physicsActor", m_physicsActor);
3389 info.AddValue("m_parentPosition.X", m_parentPosition.X);
3390 info.AddValue("m_parentPosition.Y", m_parentPosition.Y);
3391 info.AddValue("m_parentPosition.Z", m_parentPosition.Z);
3392 info.AddValue("m_isChildAgent", m_isChildAgent);
3393 info.AddValue("m_parentID", m_parentID);
3394
3395// for OpenSim_v0.5
3396 info.AddValue("currentParcelUUID", currentParcelUUID.Guid);
3397
3398 info.AddValue("lastKnownAllowedPosition.X", lastKnownAllowedPosition.X);
3399 info.AddValue("lastKnownAllowedPosition.Y", lastKnownAllowedPosition.Y);
3400 info.AddValue("lastKnownAllowedPosition.Z", lastKnownAllowedPosition.Z);
3401
3402 info.AddValue("sentMessageAboutRestrictedParcelFlyingDown", sentMessageAboutRestrictedParcelFlyingDown);
3403
3404 info.AddValue("m_LastChildAgentUpdatePosition.X", m_LastChildAgentUpdatePosition.X);
3405 info.AddValue("m_LastChildAgentUpdatePosition.Y", m_LastChildAgentUpdatePosition.Y);
3406 info.AddValue("m_LastChildAgentUpdatePosition.Z", m_LastChildAgentUpdatePosition.Z);
3407
3408 info.AddValue("m_perfMonMS", m_perfMonMS);
3409 info.AddValue("m_AgentControlFlags", m_AgentControlFlags);
3410
3411 info.AddValue("m_headrotation.W", m_headrotation.W);
3412 info.AddValue("m_headrotation.X", m_headrotation.X);
3413 info.AddValue("m_headrotation.Y", m_headrotation.Y);
3414 info.AddValue("m_headrotation.Z", m_headrotation.Z);
3415
3416 info.AddValue("m_state", m_state);
3417
3418 List<Guid> knownPrimUUID_work = new List<Guid>();
3419
3420 info.AddValue("m_knownPrimUUID", knownPrimUUID_work);
3421 }
3422
3423 internal void PushForce(PhysicsVector impulse) 3074 internal void PushForce(PhysicsVector impulse)
3424 { 3075 {
3425 if (PhysicsActor != null) 3076 if (PhysicsActor != null)
@@ -3514,7 +3165,6 @@ namespace OpenSim.Region.Framework.Scenes
3514 3165
3515 internal void SendControlToScripts(uint flags) 3166 internal void SendControlToScripts(uint flags)
3516 { 3167 {
3517
3518 ScriptControlled allflags = ScriptControlled.CONTROL_ZERO; 3168 ScriptControlled allflags = ScriptControlled.CONTROL_ZERO;
3519 3169
3520 if (MouseDown) 3170 if (MouseDown)
@@ -3671,7 +3321,6 @@ namespace OpenSim.Region.Framework.Scenes
3671 3321
3672 SceneObjectPart att = m_scene.GetSceneObjectPart(asset); 3322 SceneObjectPart att = m_scene.GetSceneObjectPart(asset);
3673 3323
3674
3675 // If this is null, then the asset has not yet appeared in world 3324 // If this is null, then the asset has not yet appeared in world
3676 // so we revisit this when it does 3325 // so we revisit this when it does
3677 // 3326 //
diff --git a/OpenSim/Region/Framework/Scenes/Types/UpdateQueue.cs b/OpenSim/Region/Framework/Scenes/Types/UpdateQueue.cs
index 2b7611f..b843311 100644
--- a/OpenSim/Region/Framework/Scenes/Types/UpdateQueue.cs
+++ b/OpenSim/Region/Framework/Scenes/Types/UpdateQueue.cs
@@ -34,8 +34,7 @@ using OpenSim.Region.Framework.Scenes;
34 34
35namespace OpenSim.Region.Framework.Scenes.Types 35namespace OpenSim.Region.Framework.Scenes.Types
36{ 36{
37 [Serializable] 37 public class UpdateQueue
38 public class UpdateQueue : ISerializable
39 { 38 {
40 private Queue<SceneObjectPart> m_queue; 39 private Queue<SceneObjectPart> m_queue;
41 40
@@ -89,46 +88,5 @@ namespace OpenSim.Region.Framework.Scenes.Types
89 88
90 return part; 89 return part;
91 } 90 }
92
93 protected UpdateQueue(SerializationInfo info, StreamingContext context)
94 {
95 //m_log.Debug("UpdateQueue Deserialize BGN");
96
97 if (info == null)
98 {
99 throw new ArgumentNullException("info");
100 }
101
102 m_queue = (Queue<SceneObjectPart>)info.GetValue("m_queue", typeof(Queue<SceneObjectPart>));
103 List<Guid> ids_work = (List<Guid>)info.GetValue("m_ids", typeof(List<Guid>));
104
105 foreach (Guid guid in ids_work)
106 {
107 m_ids.Add(new UUID(guid));
108 }
109
110 //m_log.Debug("UpdateQueue Deserialize END");
111 }
112
113 [SecurityPermission(SecurityAction.LinkDemand,
114 Flags = SecurityPermissionFlag.SerializationFormatter)]
115 public virtual void GetObjectData(
116 SerializationInfo info, StreamingContext context)
117 {
118 if (info == null)
119 {
120 throw new ArgumentNullException("info");
121 }
122
123 List<Guid> ids_work = new List<Guid>();
124
125 foreach (UUID uuid in m_ids)
126 {
127 ids_work.Add(uuid.Guid);
128 }
129
130 info.AddValue("m_queue", m_queue);
131 info.AddValue("m_ids", ids_work);
132 }
133 } 91 }
134} 92}