diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/AvatarAppearance.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/AvatarAppearance.cs | 123 |
1 files changed, 62 insertions, 61 deletions
diff --git a/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs b/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs index 8f29507..860399c 100644 --- a/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs +++ b/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs | |||
@@ -37,14 +37,54 @@ namespace OpenSim.Region.Environment.Scenes | |||
37 | [Serializable] | 37 | [Serializable] |
38 | public class AvatarAppearance : ISerializable | 38 | public class AvatarAppearance : ISerializable |
39 | { | 39 | { |
40 | protected float m_avatarHeight; | ||
40 | protected LLUUID m_scenePresenceID; | 41 | protected LLUUID m_scenePresenceID; |
42 | protected LLObject.TextureEntry m_textureEntry; | ||
43 | protected byte[] m_visualParams; | ||
44 | protected AvatarWearable[] m_wearables; | ||
45 | |||
46 | protected int m_wearablesSerial = 1; | ||
47 | |||
48 | public AvatarAppearance() | ||
49 | { | ||
50 | } | ||
51 | |||
52 | public AvatarAppearance(LLUUID avatarID, AvatarWearable[] wearables, byte[] visualParams) | ||
53 | { | ||
54 | m_scenePresenceID = avatarID; | ||
55 | m_wearablesSerial = 1; | ||
56 | m_wearables = wearables; | ||
57 | m_visualParams = visualParams; | ||
58 | m_textureEntry = GetDefaultTextureEntry(); | ||
59 | } | ||
60 | |||
61 | protected AvatarAppearance(SerializationInfo info, StreamingContext context) | ||
62 | { | ||
63 | //System.Console.WriteLine("AvatarAppearance Deserialize BGN"); | ||
64 | |||
65 | if (info == null) | ||
66 | { | ||
67 | throw new ArgumentNullException("info"); | ||
68 | } | ||
69 | |||
70 | m_scenePresenceID = new LLUUID((Guid) info.GetValue("m_scenePresenceID", typeof (Guid))); | ||
71 | m_wearablesSerial = (int) info.GetValue("m_wearablesSerial", typeof (int)); | ||
72 | m_visualParams = (byte[]) info.GetValue("m_visualParams", typeof (byte[])); | ||
73 | m_wearables = (AvatarWearable[]) info.GetValue("m_wearables", typeof (AvatarWearable[])); | ||
74 | |||
75 | byte[] m_textureEntry_work = (byte[]) info.GetValue("m_textureEntry", typeof (byte[])); | ||
76 | m_textureEntry = new LLObject.TextureEntry(m_textureEntry_work, 0, m_textureEntry_work.Length); | ||
77 | |||
78 | m_avatarHeight = (float) info.GetValue("m_avatarHeight", typeof (float)); | ||
79 | |||
80 | //System.Console.WriteLine("AvatarAppearance Deserialize END"); | ||
81 | } | ||
41 | 82 | ||
42 | public LLUUID ScenePresenceID | 83 | public LLUUID ScenePresenceID |
43 | { | 84 | { |
44 | get { return m_scenePresenceID; } | 85 | get { return m_scenePresenceID; } |
45 | set { m_scenePresenceID = value; } | 86 | set { m_scenePresenceID = value; } |
46 | } | 87 | } |
47 | protected int m_wearablesSerial = 1; | ||
48 | 88 | ||
49 | public int WearablesSerial | 89 | public int WearablesSerial |
50 | { | 90 | { |
@@ -52,51 +92,52 @@ namespace OpenSim.Region.Environment.Scenes | |||
52 | set { m_wearablesSerial = value; } | 92 | set { m_wearablesSerial = value; } |
53 | } | 93 | } |
54 | 94 | ||
55 | protected byte[] m_visualParams; | ||
56 | |||
57 | public byte[] VisualParams | 95 | public byte[] VisualParams |
58 | { | 96 | { |
59 | get { return m_visualParams; } | 97 | get { return m_visualParams; } |
60 | set { m_visualParams = value; } | 98 | set { m_visualParams = value; } |
61 | } | 99 | } |
62 | 100 | ||
63 | protected AvatarWearable[] m_wearables; | ||
64 | |||
65 | public AvatarWearable[] Wearables | 101 | public AvatarWearable[] Wearables |
66 | { | 102 | { |
67 | get { return m_wearables; } | 103 | get { return m_wearables; } |
68 | set { m_wearables = value; } | 104 | set { m_wearables = value; } |
69 | } | 105 | } |
70 | 106 | ||
71 | protected LLObject.TextureEntry m_textureEntry; | ||
72 | |||
73 | public LLObject.TextureEntry TextureEntry | 107 | public LLObject.TextureEntry TextureEntry |
74 | { | 108 | { |
75 | get { return m_textureEntry; } | 109 | get { return m_textureEntry; } |
76 | set { m_textureEntry = value; } | 110 | set { m_textureEntry = value; } |
77 | } | 111 | } |
78 | 112 | ||
79 | protected float m_avatarHeight = 0; | ||
80 | |||
81 | public float AvatarHeight | 113 | public float AvatarHeight |
82 | { | 114 | { |
83 | get { return m_avatarHeight; } | 115 | get { return m_avatarHeight; } |
84 | set { m_avatarHeight = value; } | 116 | set { m_avatarHeight = value; } |
85 | } | 117 | } |
86 | 118 | ||
87 | public AvatarAppearance() | 119 | #region ISerializable Members |
88 | { | ||
89 | } | ||
90 | 120 | ||
91 | public AvatarAppearance(LLUUID avatarID, AvatarWearable[] wearables, byte[] visualParams) | 121 | [SecurityPermission(SecurityAction.LinkDemand, |
122 | Flags = SecurityPermissionFlag.SerializationFormatter)] | ||
123 | public virtual void GetObjectData( | ||
124 | SerializationInfo info, StreamingContext context) | ||
92 | { | 125 | { |
93 | m_scenePresenceID = avatarID; | 126 | if (info == null) |
94 | m_wearablesSerial = 1; | 127 | { |
95 | m_wearables = wearables; | 128 | throw new ArgumentNullException("info"); |
96 | m_visualParams = visualParams; | 129 | } |
97 | m_textureEntry = GetDefaultTextureEntry(); | 130 | |
131 | info.AddValue("m_scenePresenceID", m_scenePresenceID.UUID); | ||
132 | info.AddValue("m_wearablesSerial", m_wearablesSerial); | ||
133 | info.AddValue("m_visualParams", m_visualParams); | ||
134 | info.AddValue("m_wearables", m_wearables); | ||
135 | info.AddValue("m_textureEntry", m_textureEntry.ToBytes()); | ||
136 | info.AddValue("m_avatarHeight", m_avatarHeight); | ||
98 | } | 137 | } |
99 | 138 | ||
139 | #endregion | ||
140 | |||
100 | /// <summary> | 141 | /// <summary> |
101 | /// | 142 | /// |
102 | /// </summary> | 143 | /// </summary> |
@@ -115,8 +156,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
115 | // Teravus : Nifty AV Height Getting Maaaaagical formula. Oh how we love turning 0-255 into meters. | 156 | // Teravus : Nifty AV Height Getting Maaaaagical formula. Oh how we love turning 0-255 into meters. |
116 | // (float)m_visualParams[25] = Height | 157 | // (float)m_visualParams[25] = Height |
117 | // (float)m_visualParams[125] = LegLength | 158 | // (float)m_visualParams[125] = LegLength |
118 | m_avatarHeight = (1.50856f + (((float) m_visualParams[25]/255.0f)*(2.525506f - 1.50856f))) | 159 | m_avatarHeight = (1.50856f + ((m_visualParams[25] / 255.0f) * (2.525506f - 1.50856f))) |
119 | + (((float) m_visualParams[125]/255.0f)/1.5f); | 160 | + ((m_visualParams[125] / 255.0f) / 1.5f); |
120 | } | 161 | } |
121 | 162 | ||
122 | /// <summary> | 163 | /// <summary> |
@@ -152,45 +193,5 @@ namespace OpenSim.Region.Environment.Scenes | |||
152 | textu.CreateFace(6).TextureID = new LLUUID("00000000-0000-1111-9999-000000000011"); | 193 | textu.CreateFace(6).TextureID = new LLUUID("00000000-0000-1111-9999-000000000011"); |
153 | return textu; | 194 | return textu; |
154 | } | 195 | } |
155 | |||
156 | protected AvatarAppearance(SerializationInfo info, StreamingContext context) | ||
157 | { | ||
158 | //System.Console.WriteLine("AvatarAppearance Deserialize BGN"); | ||
159 | |||
160 | if (info == null) | ||
161 | { | ||
162 | throw new ArgumentNullException("info"); | ||
163 | } | ||
164 | |||
165 | m_scenePresenceID = new LLUUID((Guid)info.GetValue("m_scenePresenceID", typeof(Guid))); | ||
166 | m_wearablesSerial = (int)info.GetValue("m_wearablesSerial", typeof(int)); | ||
167 | m_visualParams = (byte[])info.GetValue("m_visualParams", typeof(byte[])); | ||
168 | m_wearables = (AvatarWearable[])info.GetValue("m_wearables", typeof(AvatarWearable[])); | ||
169 | |||
170 | byte[] m_textureEntry_work = (byte[])info.GetValue("m_textureEntry", typeof(byte[])); | ||
171 | m_textureEntry = new LLObject.TextureEntry(m_textureEntry_work, 0, m_textureEntry_work.Length); | ||
172 | |||
173 | m_avatarHeight = (float)info.GetValue("m_avatarHeight", typeof(float)); | ||
174 | |||
175 | //System.Console.WriteLine("AvatarAppearance Deserialize END"); | ||
176 | } | ||
177 | |||
178 | [SecurityPermission(SecurityAction.LinkDemand, | ||
179 | Flags = SecurityPermissionFlag.SerializationFormatter)] | ||
180 | public virtual void GetObjectData( | ||
181 | SerializationInfo info, StreamingContext context) | ||
182 | { | ||
183 | if (info == null) | ||
184 | { | ||
185 | throw new ArgumentNullException("info"); | ||
186 | } | ||
187 | |||
188 | info.AddValue("m_scenePresenceID", m_scenePresenceID.UUID); | ||
189 | info.AddValue("m_wearablesSerial", m_wearablesSerial); | ||
190 | info.AddValue("m_visualParams", m_visualParams); | ||
191 | info.AddValue("m_wearables", m_wearables); | ||
192 | info.AddValue("m_textureEntry", m_textureEntry.ToBytes()); | ||
193 | info.AddValue("m_avatarHeight", m_avatarHeight); | ||
194 | } | ||
195 | } | 196 | } |
196 | } | 197 | } \ No newline at end of file |