aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack
diff options
context:
space:
mode:
authorUbitUmarov2019-03-07 18:20:17 +0000
committerUbitUmarov2019-03-07 18:20:17 +0000
commit95c4de614427ca9d6b376408b0b56b6167bb41ce (patch)
tree7e4cd3df923a3a35362f9d6a63a779d4adc2c0dc /OpenSim/Region/ClientStack
parentvegetation is special (diff)
downloadopensim-SC-95c4de614427ca9d6b376408b0b56b6167bb41ce.zip
opensim-SC-95c4de614427ca9d6b376408b0b56b6167bb41ce.tar.gz
opensim-SC-95c4de614427ca9d6b376408b0b56b6167bb41ce.tar.bz2
opensim-SC-95c4de614427ca9d6b376408b0b56b6167bb41ce.tar.xz
grass even more
Diffstat (limited to 'OpenSim/Region/ClientStack')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs45
1 files changed, 38 insertions, 7 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index f984009..4d62bbe 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -6266,7 +6266,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
6266 if(pcode == PCode.Grass || pcode == PCode.Tree || pcode == PCode.NewTree) 6266 if(pcode == PCode.Grass || pcode == PCode.Tree || pcode == PCode.NewTree)
6267 { 6267 {
6268 zc.AddUInt(part.LocalId); 6268 zc.AddUInt(part.LocalId);
6269 zc.AddByte(state); // state 6269 if(pcode == PCode.Grass)
6270 zc.AddByte(state); // state
6271 else
6272 zc.AddZeros(1);
6270 zc.AddUUID(part.UUID); 6273 zc.AddUUID(part.UUID);
6271 zc.AddZeros(4); // crc unused 6274 zc.AddZeros(4); // crc unused
6272 zc.AddByte((byte)pcode); 6275 zc.AddByte((byte)pcode);
@@ -6278,22 +6281,50 @@ namespace OpenSim.Region.ClientStack.LindenUDP
6278 // objectdata block 6281 // objectdata block
6279 zc.AddByte(60); // fixed object block size 6282 zc.AddByte(60); // fixed object block size
6280 zc.AddVector3(part.RelativePosition); 6283 zc.AddVector3(part.RelativePosition);
6281 zc.AddZeros(24); 6284 if (pcode == PCode.Grass)
6282 Quaternion rot = part.RotationOffset; 6285 zc.AddZeros(48);
6283 rot.Normalize(); 6286 else
6284 zc.AddNormQuat(rot); 6287 {
6285 zc.AddZeros(12); 6288 zc.AddZeros(24);
6289 Quaternion rot = part.RotationOffset;
6290 rot.Normalize();
6291 zc.AddNormQuat(rot);
6292 zc.AddZeros(12);
6293 }
6286 6294
6287 zc.AddUInt(part.ParentID); 6295 zc.AddUInt(part.ParentID);
6288 zc.AddUInt((uint)primflags); //update flags 6296 zc.AddUInt((uint)primflags); //update flags
6289 6297
6298 if (pcode == PCode.Grass)
6299 {
6300 //pbs volume data 23
6301 //texture entry 2
6302 //texture anim 1
6303 //name value 2
6304 // data 1
6305 // text 5
6306 // media url 1
6307 // particle system 1
6308 // Extraparams 1
6309 // sound id 16
6310 // ownwer 16
6311 // sound gain 4
6312 // sound flags 1
6313 // sound radius 4
6314 // jointtype 1
6315 // joint pivot 12
6316 // joint offset 12
6317 zc.AddZeros(23 + 2 + 1 + 2 + 1 + 5 + 1 + 1 + 1 + 16 + 16 + 4 + 1 + 4 + 1 + 12 + 12);
6318 return;
6319 }
6320
6290 //pbs volume data 23 6321 //pbs volume data 23
6291 //texture entry 2 6322 //texture entry 2
6292 //texture anim 1 6323 //texture anim 1
6293 //name value 2 6324 //name value 2
6294 zc.AddZeros(23 + 2 + 1 + 2); 6325 zc.AddZeros(23 + 2 + 1 + 2);
6295 6326
6296 //data 6327 //data: the tree type
6297 zc.AddByte(1); 6328 zc.AddByte(1);
6298 zc.AddZeros(1); 6329 zc.AddZeros(1);
6299 zc.AddByte(state); 6330 zc.AddByte(state);