summaryrefslogtreecommitdiff
path: root/NET/worlds/scape/TCompressor.java
diff options
context:
space:
mode:
Diffstat (limited to 'NET/worlds/scape/TCompressor.java')
-rw-r--r--NET/worlds/scape/TCompressor.java647
1 files changed, 647 insertions, 0 deletions
diff --git a/NET/worlds/scape/TCompressor.java b/NET/worlds/scape/TCompressor.java
new file mode 100644
index 0000000..72ce751
--- /dev/null
+++ b/NET/worlds/scape/TCompressor.java
@@ -0,0 +1,647 @@
+/* */ package NET.worlds.scape;
+/* */
+/* */ import java.io.DataInputStream;
+/* */ import java.io.DataOutputStream;
+/* */ import java.io.IOException;
+/* */ import java.io.PrintStream;
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ public class TCompressor
+/* */ {
+/* */ private static final int CMAP_MAXPOSCOMP = 128;
+/* */ private static final int CMAP_DEFAULTAXIS = 0;
+/* */ private static final int CMAP_XUNITARY = 32;
+/* */ private static final int CMAP_YUNITARY = 64;
+/* */ private static final int CMAP_ZUNITARY = 96;
+/* */ private static final int CMAP_ROTATION = 16;
+/* */ private static final int CMAP_ROTSIGN1 = 8;
+/* */ private static final int CMAP_ROTSIGN2 = 4;
+/* */ private static final int CMAP_SCALE = 2;
+/* */ private static final int CMAP_UNIFORMSCALE = 1;
+/* */ private static final int MODE_SENDCMAP = 8388608;
+/* */ private static final int MODE_SENDZ = 4194304;
+/* */ private static final int MODE_MAXPOSCOMP = 128;
+/* */ private static final int MODE_SENDROTAXIS = 96;
+/* */ private static final int MODE_SENDROTATION = 16;
+/* */ private static final int MODE_SENDSCALE = 2;
+/* */ public static final int USER_SEND_POSITION = 32768;
+/* */ public static final int USER_SEND_ROTATION = 16384;
+/* */ public static final int USER_SEND_SCALE = 8192;
+/* */ public static final int USER_SEND_ALL = 57344;
+/* */ private static final int LOW21BITSMASK = 2097151;
+/* */ private static final int LOW18BITSMASK = 262143;
+/* */ private static final int LOW12BITSMASK = 4095;
+/* */ private static final int LOW10BITSMASK = 1023;
+/* */ private static final int LOW8BITSMASK = 255;
+/* */ private static final int BIT20 = 1048576;
+/* */ private static final double SCFACT = 16.0D;
+/* */ private static final double SCOFFSET = 121.6D;
+/* 88 */ static int wroteBytes = 0;
+/* */
+/* 90 */ public static boolean dontSend = false;
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ public static void compress(WObject w, Point3Temp defPos, Point3Temp defRAxis, float defRotation, Point3Temp defScale, int inputModes, DataOutputStream ds)
+/* */ throws IOException
+/* */ {
+/* 100 */ Point3Temp pos = w.getPosition();
+/* 101 */ Point3Temp rAxis = Point3Temp.make();
+/* 102 */ float rotation = w.getSpin(rAxis);
+/* 103 */ Point3Temp scale = w.getScale();
+/* */
+/* 105 */ if (dontSend)
+/* */ {
+/* 107 */ System.err.println("DONTSEND is TRUE on COMPRESS CALL");
+/* 108 */ return;
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* 119 */ int mode = inputModes;
+/* */
+/* 121 */ if ((mode & 0x8000) != 0)
+/* */ {
+/* */
+/* 124 */ if ((pos.x >= 0.0F) && (pos.x <= 4095.0D) &&
+/* 125 */ (pos.y >= 0.0F) && (pos.y <= 4095.0D) && (
+/* 126 */ ((pos.z >= 0.0F) && (pos.z <= 255.0D)) || (pos.z == defPos.z)))
+/* 127 */ mode |= 0x80;
+/* 128 */ if (pos.z != defPos.z) { mode |= 0x400000;
+/* */ }
+/* */ }
+/* */
+/* */
+/* 133 */ int outaxis1 = 0;int outaxis2 = 0;
+/* */
+/* 135 */ if (((mode & 0x4000) != 0) && (!rAxis.sameValue(defRAxis)))
+/* */ {
+/* 137 */ int axisFlag = 0;
+/* */
+/* */
+/* */
+/* */
+/* 142 */ float maxAxis = rAxis.x;
+/* 143 */ axisFlag = 32;
+/* */
+/* 145 */ if (Math.abs(rAxis.y) > Math.abs(maxAxis))
+/* */ {
+/* 147 */ maxAxis = rAxis.y;
+/* 148 */ axisFlag = 64;
+/* */ }
+/* 150 */ if (Math.abs(rAxis.z) > Math.abs(maxAxis))
+/* */ {
+/* 152 */ maxAxis = rAxis.z;
+/* 153 */ axisFlag = 96;
+/* */ }
+/* */
+/* 156 */ rAxis.x /= maxAxis;
+/* 157 */ rAxis.y /= maxAxis;
+/* 158 */ rAxis.z /= maxAxis;
+/* */
+/* 160 */ mode |= axisFlag;
+/* */
+/* 162 */ if (maxAxis < 0.0F) {
+/* 163 */ rotation *= -1.0F;
+/* */ }
+/* */
+/* 166 */ switch (axisFlag)
+/* */ {
+/* */ case 32:
+/* 169 */ if (rAxis.y < 0.0F) mode |= 0x8;
+/* 170 */ if (rAxis.z < 0.0F) mode |= 0x4;
+/* 171 */ outaxis1 = Math.round(Math.abs(255.0F * rAxis.y));
+/* 172 */ outaxis2 = Math.round(Math.abs(255.0F * rAxis.z));
+/* 173 */ break;
+/* */ case 64:
+/* 175 */ if (rAxis.x < 0.0F) mode |= 0x8;
+/* 176 */ if (rAxis.z < 0.0F) mode |= 0x4;
+/* 177 */ outaxis1 = Math.round(Math.abs(255.0F * rAxis.x));
+/* 178 */ outaxis2 = Math.round(Math.abs(255.0F * rAxis.z));
+/* 179 */ break;
+/* */ case 96:
+/* 181 */ if (rAxis.x < 0.0F) mode |= 0x8;
+/* 182 */ if (rAxis.y < 0.0F) mode |= 0x4;
+/* 183 */ outaxis1 = Math.round(Math.abs(255.0F * rAxis.x));
+/* 184 */ outaxis2 = Math.round(Math.abs(255.0F * rAxis.y));
+/* 185 */ break;
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* 194 */ if ((outaxis1 == 0) && (outaxis2 == 0) && (maxAxis < 0.0F))
+/* */ {
+/* 196 */ mode |= 0x8;
+/* 197 */ mode |= 0x4;
+/* */ }
+/* */
+/* 200 */ while (rotation >= 360.0F)
+/* 201 */ rotation -= 360.0F;
+/* 202 */ while (rotation < 0.0F) {
+/* 203 */ rotation += 360.0F;
+/* */ }
+/* 205 */ if (rotation != defRotation)
+/* */ {
+/* 207 */ mode |= 0x800000;
+/* 208 */ mode |= 0x10;
+/* */ }
+/* */ }
+/* */
+/* 212 */ if ((mode & 0x2000) != 0)
+/* */ {
+/* 214 */ if (!scale.sameValue(defScale))
+/* */ {
+/* 216 */ mode |= 0x800000;
+/* 217 */ mode |= 0x2;
+/* 218 */ if ((scale.x == scale.y) && (scale.x == scale.z)) {
+/* 219 */ mode |= 0x1;
+/* */ }
+/* */ }
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */
+/* 228 */ if ((mode & 0x800000) != 0)
+/* */ {
+/* 230 */ ds.writeByte(mode & 0xFF);
+/* 231 */ wroteBytes += 1;
+/* */ }
+/* */
+/* 234 */ if ((mode & 0x8000) != 0)
+/* */ {
+/* 236 */ if ((mode & 0x80) != 0)
+/* */ {
+/* 238 */ maxCompressXY(pos.x, pos.y, ds);
+/* 239 */ if (((mode & 0x400000) != 0) ||
+/* 240 */ ((mode & 0x800000) != 0))
+/* */ {
+/* 242 */ short iz = (short)Math.round(pos.z);
+/* 243 */ int outbyte = iz & 0xFF;
+/* 244 */ ds.writeByte(outbyte);
+/* 245 */ wroteBytes += 1;
+/* */ }
+/* */ }
+/* */ else
+/* */ {
+/* 250 */ minCompressXYZ(pos.x, pos.y, pos.z, ds);
+/* */ }
+/* */ }
+/* */
+/* */
+/* 255 */ if ((mode & 0x60) != 0)
+/* */ {
+/* 257 */ ds.writeByte(outaxis1);
+/* 258 */ ds.writeByte(outaxis2);
+/* 259 */ wroteBytes += 2;
+/* */ }
+/* */
+/* */
+/* 263 */ if ((mode & 0x10) != 0)
+/* */ {
+/* 265 */ int outbyte = (int)Math.round(256.0D * (rotation / 360.0D));
+/* 266 */ ds.writeByte(outbyte);
+/* 267 */ wroteBytes += 1;
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* 278 */ if ((mode & 0x2) != 0)
+/* */ {
+/* 280 */ double y = 16.0D * Math.log(scale.x / defScale.x) + 121.6D;
+/* 281 */ if (y < 0.0D) y = 0.0D;
+/* 282 */ if (y > 255.0D) y = 255.0D;
+/* 283 */ int outbyte = (int)Math.round(y);
+/* 284 */ ds.writeByte(outbyte);
+/* 285 */ wroteBytes += 1;
+/* 286 */ if ((mode & 0x1) == 0)
+/* */ {
+/* 288 */ y = 16.0D * Math.log(scale.y / defScale.y) + 121.6D;
+/* 289 */ if (y < 0.0D) y = 0.0D;
+/* 290 */ if (y > 255.0D) y = 255.0D;
+/* 291 */ outbyte = (int)Math.round(y);
+/* 292 */ ds.writeByte(outbyte);
+/* 293 */ wroteBytes += 1;
+/* */
+/* 295 */ y = 16.0D * Math.log(scale.z / defScale.z) + 121.6D;
+/* 296 */ if (y < 0.0D) y = 0.0D;
+/* 297 */ if (y > 255.0D) y = 255.0D;
+/* 298 */ outbyte = (int)Math.round(y);
+/* 299 */ ds.writeByte(outbyte);
+/* 300 */ wroteBytes += 1;
+/* */ }
+/* */ }
+/* */
+/* */
+/* 305 */ wroteBytes = 0;
+/* */ }
+/* */
+/* */
+/* */
+/* */ private static void maxCompressXY(float x, float y, DataOutputStream ds)
+/* */ throws IOException
+/* */ {
+/* 313 */ short ix = (short)Math.round(x);
+/* 314 */ short iy = (short)Math.round(y);
+/* */
+/* */
+/* 317 */ ix = (short)(ix & 0xFFF);
+/* 318 */ iy = (short)(iy & 0xFFF);
+/* */
+/* */
+/* */
+/* */
+/* 323 */ int posbyte = ix >>> 4;
+/* 324 */ ds.writeByte(posbyte);
+/* 325 */ wroteBytes += 1;
+/* */
+/* */
+/* 328 */ ix = (short)(ix << 4);
+/* 329 */ ix = (short)(ix & 0xFF);
+/* */
+/* 331 */ posbyte = ix | iy >>> 8;
+/* 332 */ ds.writeByte(posbyte);
+/* 333 */ wroteBytes += 1;
+/* */
+/* */
+/* 336 */ posbyte = iy & 0xFF;
+/* 337 */ ds.writeByte(posbyte);
+/* 338 */ wroteBytes += 1;
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ private static void minCompressXYZ(float x, float y, float z, DataOutputStream ds)
+/* */ throws IOException
+/* */ {
+/* 348 */ int xval = floatTo21bits(x);
+/* 349 */ int yval = floatTo21bits(y);
+/* 350 */ int zval = floatTo21bits(z);
+/* */
+/* */
+/* */
+/* 354 */ int outbits = xval << 10 | yval >>> 11;
+/* 355 */ ds.writeInt(outbits);
+/* 356 */ wroteBytes += 4;
+/* */
+/* 358 */ outbits = yval << 21 | zval;
+/* 359 */ ds.writeInt(outbits);
+/* 360 */ wroteBytes += 4;
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ private static int floatTo21bits(float f)
+/* */ {
+/* 370 */ for (int e = 0; e <= 3; e++)
+/* */ {
+/* 372 */ double decimal = Math.pow(10.0D, e - 2);
+/* 373 */ float limit = (float)(262144.0D * decimal);
+/* 374 */ float af = Math.abs(f);
+/* 375 */ if ((af < limit) || (e == 3))
+/* */ {
+/* 377 */ int m = (int)Math.round(af / decimal);
+/* 378 */ m &= 0x3FFFF;
+/* 379 */ m <<= 2;
+/* 380 */ m |= e;
+/* 381 */ if (f < 0.0F) m |= 0x100000;
+/* 382 */ return m;
+/* */ }
+/* */ }
+/* 385 */ return 0;
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ public static void decompress(WObject w, Point3Temp defPos, Point3Temp defRAxis, float defRotation, Point3Temp defScale, int inputModes, int len, DataInputStream ds)
+/* */ throws IOException
+/* */ {
+/* 397 */ int mode = inputModes;
+/* */
+/* */
+/* 400 */ Point3Temp pos = w.getPosition();
+/* 401 */ Point3Temp rAxis = Point3Temp.make();
+/* 402 */ float rotation = w.getSpin(rAxis);
+/* 403 */ Point3Temp scale = w.getScale();
+/* */
+/* 405 */ dontSend = true;
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* 416 */ if (len == 0)
+/* */ {
+/* 418 */ w.moveTo(defPos);
+/* 419 */ defScale.x /= scale.x;
+/* 420 */ defScale.y /= scale.y;
+/* 421 */ defScale.z /= scale.z;
+/* 422 */ w.scale(scale);
+/* 423 */ dontSend = false;
+/* 424 */ return;
+/* */ }
+/* */
+/* 427 */ if (len == 24)
+/* */ {
+/* 429 */ pos.x = ds.readFloat();
+/* 430 */ pos.y = ds.readFloat();
+/* 431 */ pos.z = ds.readFloat();
+/* */
+/* 433 */ scale.x = (ds.readFloat() / scale.x);
+/* 434 */ scale.y = (ds.readFloat() / scale.y);
+/* 435 */ scale.z = (ds.readFloat() / scale.z);
+/* */
+/* 437 */ w.moveTo(pos);
+/* 438 */ w.scale(scale);
+/* 439 */ dontSend = false;
+/* 440 */ return;
+/* */ }
+/* */
+/* 443 */ if (len > 4) {
+/* 444 */ mode |= 0x800000;
+/* */ } else {
+/* 446 */ mode |= 0x80;
+/* */ }
+/* 448 */ if (len == 4) {
+/* 449 */ mode |= 0x400000;
+/* */ }
+/* 451 */ if ((mode & 0x800000) != 0)
+/* */ {
+/* 453 */ int inbyte = ds.readUnsignedByte();
+/* 454 */ mode |= inbyte;
+/* */
+/* */
+/* 457 */ mode |= 0x400000;
+/* */ }
+/* */
+/* 460 */ if ((mode & 0x8000) != 0)
+/* */ {
+/* 462 */ if ((mode & 0x80) != 0)
+/* */ {
+/* 464 */ pos = maxDecompressXY(pos, ds);
+/* 465 */ if ((mode & 0x400000) != 0)
+/* */ {
+/* 467 */ int iz = ds.readUnsignedByte();
+/* 468 */ pos.z = iz;
+/* */ }
+/* */ }
+/* */ else
+/* */ {
+/* 473 */ pos = minDecompressXYZ(pos, ds);
+/* */ }
+/* 475 */ w.moveTo(pos);
+/* */ }
+/* */
+/* */
+/* */
+/* 480 */ if ((mode & 0x800000) == 0)
+/* */ {
+/* 482 */ dontSend = false;
+/* 483 */ return;
+/* */ }
+/* */
+/* */
+/* 487 */ if ((mode & 0x10) != 0) {
+/* 488 */ w.spin(rAxis.x, rAxis.y, rAxis.z, -rotation);
+/* */ }
+/* */
+/* */
+/* 492 */ rAxis.x = defRAxis.x;
+/* 493 */ rAxis.y = defRAxis.y;
+/* 494 */ rAxis.z = defRAxis.z;
+/* 495 */ if ((mode & 0x60) != 0)
+/* */ {
+/* 497 */ int inaxis1 = ds.readUnsignedByte();
+/* 498 */ int inaxis2 = ds.readUnsignedByte();
+/* */
+/* 500 */ switch (mode & 0x60)
+/* */ {
+/* */ case 0:
+/* */ break;
+/* */
+/* */
+/* */ case 32:
+/* 507 */ rAxis.x = 1.0F;
+/* 508 */ rAxis.y = ((float)(inaxis1 / 255.0D));
+/* 509 */ rAxis.z = ((float)(inaxis2 / 255.0D));
+/* 510 */ if ((mode & 0x8) != 0) { Point3Temp tmp529_527 = rAxis;tmp529_527.y = ((float)(tmp529_527.y * -1.0D)); }
+/* 511 */ if ((mode & 0x4) != 0) { Point3Temp tmp551_549 = rAxis;tmp551_549.z = ((float)(tmp551_549.z * -1.0D));
+/* */ }
+/* 513 */ if ((rAxis.y == 0.0F) && (rAxis.z == 0.0F) &&
+/* 514 */ ((mode & 0x8) != 0) && ((mode & 0x4) != 0)) {
+/* 515 */ rAxis.x = -1.0F;
+/* */ }
+/* 517 */ break;
+/* */
+/* */
+/* */ case 64:
+/* 521 */ rAxis.y = 1.0F;
+/* 522 */ rAxis.x = ((float)(inaxis1 / 255.0D));
+/* 523 */ rAxis.z = ((float)(inaxis2 / 255.0D));
+/* 524 */ if ((mode & 0x8) != 0) { Point3Temp tmp651_649 = rAxis;tmp651_649.x = ((float)(tmp651_649.x * -1.0D)); }
+/* 525 */ if ((mode & 0x4) != 0) { Point3Temp tmp673_671 = rAxis;tmp673_671.z = ((float)(tmp673_671.z * -1.0D));
+/* */ }
+/* 527 */ if ((rAxis.x == 0.0F) && (rAxis.z == 0.0F) &&
+/* 528 */ ((mode & 0x8) != 0) && ((mode & 0x4) != 0)) {
+/* 529 */ rAxis.y = -1.0F;
+/* */ }
+/* 531 */ break;
+/* */
+/* */
+/* */ case 96:
+/* 535 */ rAxis.z = 1.0F;
+/* 536 */ rAxis.x = ((float)(inaxis1 / 255.0D));
+/* 537 */ rAxis.y = ((float)(inaxis2 / 255.0D));
+/* 538 */ if ((mode & 0x8) != 0) { Point3Temp tmp773_771 = rAxis;tmp773_771.x = ((float)(tmp773_771.x * -1.0D)); }
+/* 539 */ if ((mode & 0x4) != 0) { Point3Temp tmp795_793 = rAxis;tmp795_793.y = ((float)(tmp795_793.y * -1.0D));
+/* */ }
+/* 541 */ if ((rAxis.x == 0.0F) && (rAxis.y == 0.0F) &&
+/* 542 */ ((mode & 0x8) != 0) && ((mode & 0x4) != 0)) {
+/* 543 */ rAxis.z = -1.0F;
+/* */ }
+/* */ break;
+/* */ }
+/* */
+/* */ }
+/* 549 */ if ((mode & 0x10) != 0)
+/* */ {
+/* 551 */ int inbyte = ds.readUnsignedByte();
+/* 552 */ rotation = (float)(360.0D * (inbyte / 256.0D));
+/* 553 */ w.worldSpin(rAxis.x, rAxis.y, rAxis.z, rotation);
+/* */ }
+/* */
+/* */
+/* 557 */ if ((mode & 0x2) != 0)
+/* */ {
+/* 559 */ int inbyte = ds.readUnsignedByte();
+/* 560 */ double s = defScale.x * Math.exp((inbyte - 121.6D) / 16.0D);
+/* 561 */ scale.x = ((float)s);
+/* */
+/* 563 */ if ((mode & 0x1) != 0)
+/* */ {
+/* 565 */ scale.y = scale.x;
+/* 566 */ scale.z = scale.x;
+/* */ }
+/* */ else
+/* */ {
+/* 570 */ inbyte = ds.readUnsignedByte();
+/* 571 */ s = defScale.y * Math.exp((inbyte - 121.6D) / 16.0D);
+/* 572 */ scale.y = ((float)s);
+/* 573 */ inbyte = ds.readUnsignedByte();
+/* 574 */ s = defScale.z * Math.exp((inbyte - 121.6D) / 16.0D);
+/* 575 */ scale.z = ((float)s);
+/* */ }
+/* 577 */ Point3Temp oldScale = w.getScale();
+/* 578 */ scale.x /= oldScale.x;
+/* 579 */ scale.y /= oldScale.y;
+/* 580 */ scale.z /= oldScale.z;
+/* 581 */ w.scale(scale);
+/* */ }
+/* */
+/* 584 */ dontSend = false;
+/* */ }
+/* */
+/* */ private static Point3Temp maxDecompressXY(Point3Temp pos, DataInputStream ds)
+/* */ throws IOException
+/* */ {
+/* 590 */ int ix = ds.readUnsignedByte();
+/* 591 */ ix <<= 4;
+/* */
+/* 593 */ int iy = ds.readUnsignedByte();
+/* 594 */ ix |= iy >>> 4;
+/* */
+/* 596 */ iy &= 0xF;
+/* 597 */ iy <<= 8;
+/* */
+/* 599 */ iy |= ds.readUnsignedByte();
+/* */
+/* 601 */ pos.x = ix;
+/* 602 */ pos.y = iy;
+/* */
+/* 604 */ return pos;
+/* */ }
+/* */
+/* */
+/* */
+/* */ private static Point3Temp minDecompressXYZ(Point3Temp pos, DataInputStream ds)
+/* */ throws IOException
+/* */ {
+/* 612 */ int i1 = ds.readInt();
+/* 613 */ int i2 = ds.readInt();
+/* */
+/* 615 */ int tmp = i1 >>> 10;
+/* 616 */ pos.x = floatFrom21bits(tmp);
+/* */
+/* 618 */ tmp = (i1 & 0x3FF) << 11;
+/* 619 */ tmp |= i2 >>> 21;
+/* 620 */ pos.y = floatFrom21bits(tmp);
+/* */
+/* 622 */ tmp = i2 & 0x1FFFFF;
+/* 623 */ pos.z = floatFrom21bits(tmp);
+/* */
+/* 625 */ return pos;
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */ private static float floatFrom21bits(int bits)
+/* */ {
+/* 633 */ int e = bits & 0x3;
+/* 634 */ int s = (bits & 0x100000) << 11 | 0x1;
+/* */
+/* 636 */ int m = (bits & 0xFFEFFFFF) >>> 2;
+/* 637 */ double d = Math.pow(10.0D, e - 2);
+/* */
+/* 639 */ return (float)(m * d * s);
+/* */ }
+/* */ }
+
+
+/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\scape\TCompressor.class
+ * Java compiler version: 6 (50.0)
+ * JD-Core Version: 0.7.1
+ */ \ No newline at end of file