attempted fix of http://opensimulator.org/mantis/view.php?id=1166. This
is currently untested and may result in weirdness. Beware this changeset.0.6.0-stable
parent
382b9c18ed
commit
4999b00294
|
@ -2601,37 +2601,50 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
bytes[i++] = state;
|
bytes[i++] = state;
|
||||||
bytes[i++] = 0;
|
bytes[i++] = 0;
|
||||||
|
|
||||||
byte[] pb = position.GetBytes();
|
byte[] buff = position.GetBytes();
|
||||||
Array.Copy(pb, 0, bytes, i, pb.Length);
|
Array.Copy(buff, 0, bytes, i, buff.Length);
|
||||||
i += 12;
|
i += 12;
|
||||||
ushort ac = 32767;
|
|
||||||
|
|
||||||
ushort velx, vely, velz;
|
buff = velocity.GetBytes();
|
||||||
Vector3 vel = new Vector3(velocity.X, velocity.Y, velocity.Z);
|
Array.Copy(buff, 0, bytes, i, buff.Length);
|
||||||
|
i += 12;
|
||||||
|
|
||||||
vel = vel / 128.0f;
|
// this should be real value
|
||||||
vel.x += 1;
|
LLVector3 accel = new LLVector3(0, 0 ,0);
|
||||||
vel.y += 1;
|
buff = accel.GetBytes();
|
||||||
vel.z += 1;
|
Array.Copy(buff, 0, bytes, i, buff.Length);
|
||||||
//vel
|
i += 12;
|
||||||
velx = (ushort)(32768 * (vel.x));
|
|
||||||
vely = (ushort)(32768 * (vel.y));
|
|
||||||
velz = (ushort)(32768 * (vel.z));
|
|
||||||
|
|
||||||
bytes[i++] = (byte)(velx % 256);
|
|
||||||
bytes[i++] = (byte)((velx >> 8) % 256);
|
|
||||||
bytes[i++] = (byte)(vely % 256);
|
|
||||||
bytes[i++] = (byte)((vely >> 8) % 256);
|
|
||||||
bytes[i++] = (byte)(velz % 256);
|
|
||||||
bytes[i++] = (byte)((velz >> 8) % 256);
|
|
||||||
|
|
||||||
//accel
|
|
||||||
bytes[i++] = (byte)(ac % 256);
|
// ushort ac = 32767;
|
||||||
bytes[i++] = (byte)((ac >> 8) % 256);
|
|
||||||
bytes[i++] = (byte)(ac % 256);
|
// ushort velx, vely, velz;
|
||||||
bytes[i++] = (byte)((ac >> 8) % 256);
|
// Vector3 vel = new Vector3(velocity.X, velocity.Y, velocity.Z);
|
||||||
bytes[i++] = (byte)(ac % 256);
|
|
||||||
bytes[i++] = (byte)((ac >> 8) % 256);
|
// vel = vel / 128.0f;
|
||||||
|
// vel.x += 1;
|
||||||
|
// vel.y += 1;
|
||||||
|
// vel.z += 1;
|
||||||
|
// //vel
|
||||||
|
// velx = (ushort)(32768 * (vel.x));
|
||||||
|
// vely = (ushort)(32768 * (vel.y));
|
||||||
|
// velz = (ushort)(32768 * (vel.z));
|
||||||
|
|
||||||
|
// bytes[i++] = (byte)(velx % 256);
|
||||||
|
// bytes[i++] = (byte)((velx >> 8) % 256);
|
||||||
|
// bytes[i++] = (byte)(vely % 256);
|
||||||
|
// bytes[i++] = (byte)((vely >> 8) % 256);
|
||||||
|
// bytes[i++] = (byte)(velz % 256);
|
||||||
|
// bytes[i++] = (byte)((velz >> 8) % 256);
|
||||||
|
|
||||||
|
// //accel
|
||||||
|
// bytes[i++] = (byte)(ac % 256);
|
||||||
|
// bytes[i++] = (byte)((ac >> 8) % 256);
|
||||||
|
// bytes[i++] = (byte)(ac % 256);
|
||||||
|
// bytes[i++] = (byte)((ac >> 8) % 256);
|
||||||
|
// bytes[i++] = (byte)(ac % 256);
|
||||||
|
// bytes[i++] = (byte)((ac >> 8) % 256);
|
||||||
|
|
||||||
ushort rw, rx, ry, rz;
|
ushort rw, rx, ry, rz;
|
||||||
rw = (ushort)(32768 * (rotation.W + 1));
|
rw = (ushort)(32768 * (rotation.W + 1));
|
||||||
|
@ -2649,25 +2662,31 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
bytes[i++] = (byte)(rw % 256);
|
bytes[i++] = (byte)(rw % 256);
|
||||||
bytes[i++] = (byte)((rw >> 8) % 256);
|
bytes[i++] = (byte)((rw >> 8) % 256);
|
||||||
|
|
||||||
//rotation vel
|
// //rotation vel
|
||||||
ushort rvelx, rvely, rvelz;
|
// ushort rvelx, rvely, rvelz;
|
||||||
Vector3 rvel = new Vector3(rotationalvelocity.X, rotationalvelocity.Y, rotationalvelocity.Z);
|
// Vector3 rvel = new Vector3(rotationalvelocity.X, rotationalvelocity.Y, rotationalvelocity.Z);
|
||||||
|
|
||||||
|
// rvel = rvel / 128.0f;
|
||||||
|
// rvel.x += 1;
|
||||||
|
// rvel.y += 1;
|
||||||
|
// rvel.z += 1;
|
||||||
|
// //vel
|
||||||
|
// rvelx = (ushort)(32768 * (rvel.x));
|
||||||
|
// rvely = (ushort)(32768 * (rvel.y));
|
||||||
|
// rvelz = (ushort)(32768 * (rvel.z));
|
||||||
|
|
||||||
|
// bytes[i++] = (byte)(rvelx % 256);
|
||||||
|
// bytes[i++] = (byte)((rvelx >> 8) % 256);
|
||||||
|
// bytes[i++] = (byte)(rvely % 256);
|
||||||
|
// bytes[i++] = (byte)((rvely >> 8) % 256);
|
||||||
|
// bytes[i++] = (byte)(rvelz % 256);
|
||||||
|
// bytes[i++] = (byte)((rvelz >> 8) % 256);
|
||||||
|
|
||||||
|
buff = rotationalvelocity.GetBytes();
|
||||||
|
Array.Copy(buff, 0, bytes, i, buff.Length);
|
||||||
|
i += 12;
|
||||||
|
|
||||||
rvel = rvel / 128.0f;
|
|
||||||
rvel.x += 1;
|
|
||||||
rvel.y += 1;
|
|
||||||
rvel.z += 1;
|
|
||||||
//vel
|
|
||||||
rvelx = (ushort)(32768 * (rvel.x));
|
|
||||||
rvely = (ushort)(32768 * (rvel.y));
|
|
||||||
rvelz = (ushort)(32768 * (rvel.z));
|
|
||||||
|
|
||||||
bytes[i++] = (byte)(rvelx % 256);
|
|
||||||
bytes[i++] = (byte)((rvelx >> 8) % 256);
|
|
||||||
bytes[i++] = (byte)(rvely % 256);
|
|
||||||
bytes[i++] = (byte)((rvely >> 8) % 256);
|
|
||||||
bytes[i++] = (byte)(rvelz % 256);
|
|
||||||
bytes[i++] = (byte)((rvelz >> 8) % 256);
|
|
||||||
dat.Data = bytes;
|
dat.Data = bytes;
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue