aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorSean Dague2009-03-25 20:15:46 +0000
committerSean Dague2009-03-25 20:15:46 +0000
commit6323516a834b5f3dc8056b4107e216c341a42166 (patch)
tree28a8a27afa123a36fe697e12fb99ba9646197b0c
parentiar: centralize user uuid gathering (diff)
downloadopensim-SC_OLD-6323516a834b5f3dc8056b4107e216c341a42166.zip
opensim-SC_OLD-6323516a834b5f3dc8056b4107e216c341a42166.tar.gz
opensim-SC_OLD-6323516a834b5f3dc8056b4107e216c341a42166.tar.bz2
opensim-SC_OLD-6323516a834b5f3dc8056b4107e216c341a42166.tar.xz
* Appearance patches suite: These patches are applied to allow libomv bots to wear outfits in the future.
This functionality will be upstreamed later. ** Fixed call of new AvatarAppearance without arguments, which caused bots look like clouds of gas ** Added a SendAvatarData in ScenePresence.SetAppearance, which is expected after SetAppearance is run ** Fixed AssetXferUploader: CallbackID wasn't being passed on on multiple packets asset uploads ** Set VisualParams in AvatarAppearance to stop the alien looking bot from spawning and now looks a little better. *** TODO: Set better VisualParams value then 150 to everything
-rw-r--r--OpenSim/Client/Linden/LLStandaloneLoginService.cs2
-rw-r--r--OpenSim/Framework/AvatarAppearance.cs63
-rw-r--r--OpenSim/Region/Communications/Local/LocalBackEndServices.cs2
-rw-r--r--OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs4
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs5
5 files changed, 47 insertions, 29 deletions
diff --git a/OpenSim/Client/Linden/LLStandaloneLoginService.cs b/OpenSim/Client/Linden/LLStandaloneLoginService.cs
index 2c97eee..e6949a6 100644
--- a/OpenSim/Client/Linden/LLStandaloneLoginService.cs
+++ b/OpenSim/Client/Linden/LLStandaloneLoginService.cs
@@ -196,7 +196,7 @@ namespace OpenSim.Client.Linden
196 if (agent.Appearance == null) 196 if (agent.Appearance == null)
197 { 197 {
198 m_log.WarnFormat("[INTER]: Appearance not found for {0} {1}. Creating default.", agent.firstname, agent.lastname); 198 m_log.WarnFormat("[INTER]: Appearance not found for {0} {1}. Creating default.", agent.firstname, agent.lastname);
199 agent.Appearance = new AvatarAppearance(); 199 agent.Appearance = new AvatarAppearance(agent.AgentID);
200 } 200 }
201 201
202 if (m_regionsConnector.RegionLoginsEnabled) 202 if (m_regionsConnector.RegionLoginsEnabled)
diff --git a/OpenSim/Framework/AvatarAppearance.cs b/OpenSim/Framework/AvatarAppearance.cs
index 9e33ebc..9544d5a 100644
--- a/OpenSim/Framework/AvatarAppearance.cs
+++ b/OpenSim/Framework/AvatarAppearance.cs
@@ -38,7 +38,7 @@ namespace OpenSim.Framework
38 { 38 {
39// private static readonly ILog m_log 39// private static readonly ILog m_log
40// = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 40// = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
41 41
42 // these are guessed at by the list here - 42 // these are guessed at by the list here -
43 // http://wiki.secondlife.com/wiki/Avatar_Appearance. We'll 43 // http://wiki.secondlife.com/wiki/Avatar_Appearance. We'll
44 // correct them over time for when were are wrong. 44 // correct them over time for when were are wrong.
@@ -104,127 +104,127 @@ namespace OpenSim.Framework
104 get { return m_wearables[BODY].ItemID; } 104 get { return m_wearables[BODY].ItemID; }
105 set { m_wearables[BODY].ItemID = value; } 105 set { m_wearables[BODY].ItemID = value; }
106 } 106 }
107 107
108 public virtual UUID BodyAsset { 108 public virtual UUID BodyAsset {
109 get { return m_wearables[BODY].AssetID; } 109 get { return m_wearables[BODY].AssetID; }
110 set { m_wearables[BODY].AssetID = value; } 110 set { m_wearables[BODY].AssetID = value; }
111 } 111 }
112 112
113 public virtual UUID SkinItem { 113 public virtual UUID SkinItem {
114 get { return m_wearables[SKIN].ItemID; } 114 get { return m_wearables[SKIN].ItemID; }
115 set { m_wearables[SKIN].ItemID = value; } 115 set { m_wearables[SKIN].ItemID = value; }
116 } 116 }
117 117
118 public virtual UUID SkinAsset { 118 public virtual UUID SkinAsset {
119 get { return m_wearables[SKIN].AssetID; } 119 get { return m_wearables[SKIN].AssetID; }
120 set { m_wearables[SKIN].AssetID = value; } 120 set { m_wearables[SKIN].AssetID = value; }
121 } 121 }
122 122
123 public virtual UUID HairItem { 123 public virtual UUID HairItem {
124 get { return m_wearables[HAIR].ItemID; } 124 get { return m_wearables[HAIR].ItemID; }
125 set { m_wearables[HAIR].ItemID = value; } 125 set { m_wearables[HAIR].ItemID = value; }
126 } 126 }
127 127
128 public virtual UUID HairAsset { 128 public virtual UUID HairAsset {
129 get { return m_wearables[HAIR].AssetID; } 129 get { return m_wearables[HAIR].AssetID; }
130 set { m_wearables[HAIR].AssetID = value; } 130 set { m_wearables[HAIR].AssetID = value; }
131 } 131 }
132 132
133 public virtual UUID EyesItem { 133 public virtual UUID EyesItem {
134 get { return m_wearables[EYES].ItemID; } 134 get { return m_wearables[EYES].ItemID; }
135 set { m_wearables[EYES].ItemID = value; } 135 set { m_wearables[EYES].ItemID = value; }
136 } 136 }
137 137
138 public virtual UUID EyesAsset { 138 public virtual UUID EyesAsset {
139 get { return m_wearables[EYES].AssetID; } 139 get { return m_wearables[EYES].AssetID; }
140 set { m_wearables[EYES].AssetID = value; } 140 set { m_wearables[EYES].AssetID = value; }
141 } 141 }
142 142
143 public virtual UUID ShirtItem { 143 public virtual UUID ShirtItem {
144 get { return m_wearables[SHIRT].ItemID; } 144 get { return m_wearables[SHIRT].ItemID; }
145 set { m_wearables[SHIRT].ItemID = value; } 145 set { m_wearables[SHIRT].ItemID = value; }
146 } 146 }
147 147
148 public virtual UUID ShirtAsset { 148 public virtual UUID ShirtAsset {
149 get { return m_wearables[SHIRT].AssetID; } 149 get { return m_wearables[SHIRT].AssetID; }
150 set { m_wearables[SHIRT].AssetID = value; } 150 set { m_wearables[SHIRT].AssetID = value; }
151 } 151 }
152 152
153 public virtual UUID PantsItem { 153 public virtual UUID PantsItem {
154 get { return m_wearables[PANTS].ItemID; } 154 get { return m_wearables[PANTS].ItemID; }
155 set { m_wearables[PANTS].ItemID = value; } 155 set { m_wearables[PANTS].ItemID = value; }
156 } 156 }
157 157
158 public virtual UUID PantsAsset { 158 public virtual UUID PantsAsset {
159 get { return m_wearables[PANTS].AssetID; } 159 get { return m_wearables[PANTS].AssetID; }
160 set { m_wearables[PANTS].AssetID = value; } 160 set { m_wearables[PANTS].AssetID = value; }
161 } 161 }
162 162
163 public virtual UUID ShoesItem { 163 public virtual UUID ShoesItem {
164 get { return m_wearables[SHOES].ItemID; } 164 get { return m_wearables[SHOES].ItemID; }
165 set { m_wearables[SHOES].ItemID = value; } 165 set { m_wearables[SHOES].ItemID = value; }
166 } 166 }
167 167
168 public virtual UUID ShoesAsset { 168 public virtual UUID ShoesAsset {
169 get { return m_wearables[SHOES].AssetID; } 169 get { return m_wearables[SHOES].AssetID; }
170 set { m_wearables[SHOES].AssetID = value; } 170 set { m_wearables[SHOES].AssetID = value; }
171 } 171 }
172 172
173 public virtual UUID SocksItem { 173 public virtual UUID SocksItem {
174 get { return m_wearables[SOCKS].ItemID; } 174 get { return m_wearables[SOCKS].ItemID; }
175 set { m_wearables[SOCKS].ItemID = value; } 175 set { m_wearables[SOCKS].ItemID = value; }
176 } 176 }
177 177
178 public virtual UUID SocksAsset { 178 public virtual UUID SocksAsset {
179 get { return m_wearables[SOCKS].AssetID; } 179 get { return m_wearables[SOCKS].AssetID; }
180 set { m_wearables[SOCKS].AssetID = value; } 180 set { m_wearables[SOCKS].AssetID = value; }
181 } 181 }
182 182
183 public virtual UUID JacketItem { 183 public virtual UUID JacketItem {
184 get { return m_wearables[JACKET].ItemID; } 184 get { return m_wearables[JACKET].ItemID; }
185 set { m_wearables[JACKET].ItemID = value; } 185 set { m_wearables[JACKET].ItemID = value; }
186 } 186 }
187 187
188 public virtual UUID JacketAsset { 188 public virtual UUID JacketAsset {
189 get { return m_wearables[JACKET].AssetID; } 189 get { return m_wearables[JACKET].AssetID; }
190 set { m_wearables[JACKET].AssetID = value; } 190 set { m_wearables[JACKET].AssetID = value; }
191 } 191 }
192 192
193 public virtual UUID GlovesItem { 193 public virtual UUID GlovesItem {
194 get { return m_wearables[GLOVES].ItemID; } 194 get { return m_wearables[GLOVES].ItemID; }
195 set { m_wearables[GLOVES].ItemID = value; } 195 set { m_wearables[GLOVES].ItemID = value; }
196 } 196 }
197 197
198 public virtual UUID GlovesAsset { 198 public virtual UUID GlovesAsset {
199 get { return m_wearables[GLOVES].AssetID; } 199 get { return m_wearables[GLOVES].AssetID; }
200 set { m_wearables[GLOVES].AssetID = value; } 200 set { m_wearables[GLOVES].AssetID = value; }
201 } 201 }
202 202
203 public virtual UUID UnderShirtItem { 203 public virtual UUID UnderShirtItem {
204 get { return m_wearables[UNDERSHIRT].ItemID; } 204 get { return m_wearables[UNDERSHIRT].ItemID; }
205 set { m_wearables[UNDERSHIRT].ItemID = value; } 205 set { m_wearables[UNDERSHIRT].ItemID = value; }
206 } 206 }
207 207
208 public virtual UUID UnderShirtAsset { 208 public virtual UUID UnderShirtAsset {
209 get { return m_wearables[UNDERSHIRT].AssetID; } 209 get { return m_wearables[UNDERSHIRT].AssetID; }
210 set { m_wearables[UNDERSHIRT].AssetID = value; } 210 set { m_wearables[UNDERSHIRT].AssetID = value; }
211 } 211 }
212 212
213 public virtual UUID UnderPantsItem { 213 public virtual UUID UnderPantsItem {
214 get { return m_wearables[UNDERPANTS].ItemID; } 214 get { return m_wearables[UNDERPANTS].ItemID; }
215 set { m_wearables[UNDERPANTS].ItemID = value; } 215 set { m_wearables[UNDERPANTS].ItemID = value; }
216 } 216 }
217 217
218 public virtual UUID UnderPantsAsset { 218 public virtual UUID UnderPantsAsset {
219 get { return m_wearables[UNDERPANTS].AssetID; } 219 get { return m_wearables[UNDERPANTS].AssetID; }
220 set { m_wearables[UNDERPANTS].AssetID = value; } 220 set { m_wearables[UNDERPANTS].AssetID = value; }
221 } 221 }
222 222
223 public virtual UUID SkirtItem { 223 public virtual UUID SkirtItem {
224 get { return m_wearables[SKIRT].ItemID; } 224 get { return m_wearables[SKIRT].ItemID; }
225 set { m_wearables[SKIRT].ItemID = value; } 225 set { m_wearables[SKIRT].ItemID = value; }
226 } 226 }
227 227
228 public virtual UUID SkirtAsset { 228 public virtual UUID SkirtAsset {
229 get { return m_wearables[SKIRT].AssetID; } 229 get { return m_wearables[SKIRT].AssetID; }
230 set { m_wearables[SKIRT].AssetID = value; } 230 set { m_wearables[SKIRT].AssetID = value; }
@@ -242,6 +242,15 @@ namespace OpenSim.Framework
242 m_wearables[PANTS].ItemID = PANTS_ITEM; 242 m_wearables[PANTS].ItemID = PANTS_ITEM;
243 } 243 }
244 244
245 public virtual void SetDefaultParams(byte[] vparams)
246 {
247 // TODO: Figure out better values then 'fat scientist 150' or 'alien 0'
248 for (int i = 0; i < VISUALPARAM_COUNT; i++)
249 {
250 vparams[i] = 150;
251 }
252 }
253
245 protected Primitive.TextureEntry m_texture; 254 protected Primitive.TextureEntry m_texture;
246 255
247 public virtual Primitive.TextureEntry Texture 256 public virtual Primitive.TextureEntry Texture
@@ -280,6 +289,8 @@ namespace OpenSim.Framework
280 m_serial = 0; 289 m_serial = 0;
281 m_owner = owner; 290 m_owner = owner;
282 m_visualparams = new byte[VISUALPARAM_COUNT]; 291 m_visualparams = new byte[VISUALPARAM_COUNT];
292 // This sets Visual Params with *less* weirder values then default. Instead of a ugly alien, it looks like a fat scientist
293 SetDefaultParams(m_visualparams);
283 SetDefaultWearables(); 294 SetDefaultWearables();
284 m_texture = GetDefaultTexture(); 295 m_texture = GetDefaultTexture();
285 } 296 }
diff --git a/OpenSim/Region/Communications/Local/LocalBackEndServices.cs b/OpenSim/Region/Communications/Local/LocalBackEndServices.cs
index c52f825..2760b1e 100644
--- a/OpenSim/Region/Communications/Local/LocalBackEndServices.cs
+++ b/OpenSim/Region/Communications/Local/LocalBackEndServices.cs
@@ -320,7 +320,7 @@ namespace OpenSim.Region.Communications.Local
320 else 320 else
321 { 321 {
322 m_log.WarnFormat("[INTER]: Appearance not found for {0} {1}. Creating default.", agent.firstname, agent.lastname); 322 m_log.WarnFormat("[INTER]: Appearance not found for {0} {1}. Creating default.", agent.firstname, agent.lastname);
323 agent.Appearance = new AvatarAppearance(); 323 agent.Appearance = new AvatarAppearance(agent.AgentID);
324 } 324 }
325 325
326 TriggerExpectUser(regionHandle, agent); 326 TriggerExpectUser(regionHandle, agent);
diff --git a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs
index 7803209..8bdf084 100644
--- a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs
+++ b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AssetXferUploader.cs
@@ -43,6 +43,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
43 private UUID InventFolder = UUID.Zero; 43 private UUID InventFolder = UUID.Zero;
44 private sbyte invType = 0; 44 private sbyte invType = 0;
45 private bool m_createItem = false; 45 private bool m_createItem = false;
46 private uint m_createItemCallback = 0;
46 private string m_description = String.Empty; 47 private string m_description = String.Empty;
47 private bool m_dumpAssetToFile; 48 private bool m_dumpAssetToFile;
48 private bool m_finished = false; 49 private bool m_finished = false;
@@ -148,7 +149,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
148 m_finished = true; 149 m_finished = true;
149 if (m_createItem) 150 if (m_createItem)
150 { 151 {
151 DoCreateItem(0); 152 DoCreateItem(m_createItemCallback);
152 } 153 }
153 else if (m_storeLocal) 154 else if (m_storeLocal)
154 { 155 {
@@ -205,6 +206,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
205 else 206 else
206 { 207 {
207 m_createItem = true; //set flag so the inventory item is created when upload is complete 208 m_createItem = true; //set flag so the inventory item is created when upload is complete
209 m_createItemCallback = callbackID;
208 } 210 }
209 } 211 }
210 } 212 }
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index d6607b3..a6d1ad3 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -2389,6 +2389,11 @@ namespace OpenSim.Region.Framework.Scenes
2389 UpdateMovementAnimations(); 2389 UpdateMovementAnimations();
2390 m_startAnimationSet = true; 2390 m_startAnimationSet = true;
2391 } 2391 }
2392
2393 Quaternion rot = m_bodyRot;
2394 m_controllingClient.SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_grouptitle, m_uuid, LocalId,
2395 m_pos, m_appearance.Texture.ToBytes(), m_parentID, rot);
2396
2392 } 2397 }
2393 2398
2394 public void SetWearable(int wearableId, AvatarWearable wearable) 2399 public void SetWearable(int wearableId, AvatarWearable wearable)