/* */ package NET.worlds.scape; /* */ /* */ import NET.worlds.console.Console; /* */ import NET.worlds.console.DialogReceiver; /* */ import NET.worlds.console.OkCancelDialog; /* */ import NET.worlds.core.IniFile; /* */ import NET.worlds.network.URL; /* */ import java.io.IOException; /* */ import java.io.PrintStream; /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public class VehicleShape /* */ extends PosableShape /* */ implements MouseDownHandler, DialogReceiver /* */ { /* */ static final int fourWheelDrive = 0; /* */ static final int frontWheelDrive = 1; /* */ static final int rearWheelDrive = 2; /* 26 */ private String promptString = "Take her for a spin?"; /* 27 */ public float rearEndRatio = 3.07F; /* 28 */ public float frontalArea = 42.5F; /* 29 */ public float wheelDiameter = 2.167F; /* 30 */ public float coeffKineticFriction = 0.05F; /* 31 */ public float coeffStaticFriction = 0.2F; /* 32 */ public float mass = 100.0F; /* 33 */ public float gearRatio1 = 2.88F; /* 34 */ public float gearRatio2 = 1.91F; /* 35 */ public float gearRatio3 = 1.33F; /* 36 */ public float gearRatio4 = 1.0F; /* 37 */ public float gearRatio5 = 0.7F; /* 38 */ public float maxEngineTorque = 300.0F; /* 39 */ public float tireAdhesiveLimit = 1.1F; /* 40 */ public float shockDampingCoeff = 3.0F; /* 41 */ public float shockLength = 0.15F; /* 42 */ public float rpmTorquePeak = 4200.0F; /* 43 */ public float idleRPM = 1000.0F; /* 44 */ public boolean stickShift = false; /* 45 */ public float initialGas = -1.0F; /* 46 */ public float adjustCogX = 0.0F; /* 47 */ public float adjustCogY = 0.0F; /* 48 */ public float adjustCogZ = 0.0F; /* 49 */ public int driveType = 2; /* 50 */ public boolean fixedCamera = true; /* 51 */ public float camX = 0.0F; /* 52 */ public float camY = -80.0F; /* 53 */ public float camZ = -120.0F; /* 54 */ public float camRoll = -10.0F; /* 55 */ public float camPitch = 0.0F; /* 56 */ public float camYaw = 0.0F; /* 57 */ public float camAimX = 15.0F; /* 58 */ public float camAimY = 0.0F; /* 59 */ public float camAimZ = 10.0F; /* 60 */ public float eyeHeight = 150.0F; /* */ /* */ /* 63 */ public String lastURL = ""; /* */ /* */ public Point3 centerOfGravity; /* */ public Point3 momentsOfInertia; /* */ public Point3[] tirePositions; /* 68 */ private boolean avatarSwitchPending = false; /* */ /* */ /* */ /* */ VehicleShape() {} /* */ /* */ /* */ VehicleShape(URL url) /* */ { /* 77 */ super(url); /* */ } /* */ /* */ /* 81 */ private static String[] vehicleShapeNames = { /* 82 */ "dash" }; /* */ /* */ /* */ public static boolean isVehicle(URL url) /* */ { /* 87 */ if (IniFile.gamma().getIniInt("enableVehicleShapes", 0) == 0) { /* 88 */ return false; /* */ } /* 90 */ String s = url.toString(); /* 91 */ for (int i = 0; i < vehicleShapeNames.length; i++) /* */ { /* 93 */ if (s.indexOf(vehicleShapeNames[i]) != -1) /* 94 */ return true; /* */ } /* 96 */ return false; /* */ } /* */ /* */ /* */ public boolean handle(MouseDownEvent event) /* */ { /* 102 */ if ((event.key & 0x1) == '\001') /* */ { /* 104 */ new OkCancelDialog(Console.getFrame(), this, /* 105 */ "Change Avatar", "No", "Yes", this.promptString, /* 106 */ true); /* */ } /* 108 */ return true; /* */ } /* */ /* */ public void dialogDone(Object who, boolean confirmed) /* */ { /* 113 */ if ((who instanceof OkCancelDialog)) /* */ { /* 115 */ if (confirmed) /* */ { /* */ /* */ /* */ /* 120 */ this.avatarSwitchPending = true; /* 121 */ boolean oldVIP = Console.getActive().getVIP(); /* 122 */ Console.getActive().setVIP(true); /* 123 */ Console.getActive().setAvatar(this.url); /* 124 */ Console.getActive().setVIP(oldVIP); /* */ } } } /* */ /* */ protected native void nativeAnalyzeShape(int paramInt, float paramFloat); /* */ /* */ protected native float nativeGetTirePosX(int paramInt); /* */ /* */ protected native float nativeGetTirePosY(int paramInt); /* */ /* */ protected native float nativeGetTirePosZ(int paramInt); /* */ /* */ protected native float nativeGetCogX(); /* */ /* */ protected native float nativeGetCogY(); /* */ /* */ protected native float nativeGetCogZ(); /* */ /* */ protected native float nativeGetMoiX(); /* */ /* */ protected native float nativeGetMoiY(); /* */ /* */ protected native float nativeGetMoiZ(); /* */ /* 147 */ public void prerender(Camera cam) { if ((!this.lastURL.equals(this.url.toString())) || (this.avatarSwitchPending)) /* */ { /* 149 */ this.lastURL = new String(this.url.toString()); /* */ /* 151 */ System.out.println("Analyze shape " + this.lastURL); /* */ /* 153 */ nativeAnalyzeShape(this.clumpID, this.mass); /* 154 */ this.tirePositions = new Point3[4]; /* 155 */ for (int i = 0; i < 4; i++) /* */ { /* 157 */ this.tirePositions[i] = new Point3(nativeGetTirePosX(i), /* 158 */ nativeGetTirePosY(i), nativeGetTirePosZ(i)); /* */ } /* */ /* 161 */ this.centerOfGravity = new Point3(nativeGetCogX(), nativeGetCogY(), /* 162 */ nativeGetCogZ()); /* 163 */ this.centerOfGravity.x += this.adjustCogX; /* 164 */ this.centerOfGravity.y += this.adjustCogY; /* 165 */ this.centerOfGravity.z += this.adjustCogZ; /* */ /* 167 */ this.momentsOfInertia = new Point3(nativeGetMoiX(), /* 168 */ nativeGetMoiY(), nativeGetMoiZ()); /* */ /* */ /* */ /* 172 */ if (this.avatarSwitchPending) /* */ { /* 174 */ Pilot p = Console.getActive().getPilot(); /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* 195 */ if ((p instanceof HoloPilot)) /* */ { /* 197 */ HoloPilot hp = (HoloPilot)p; /* 198 */ Drone d = hp.getInternalDrone(); /* 199 */ if (d != null) /* */ { /* 201 */ if ((d instanceof PosableDrone)) /* */ { /* 203 */ PosableDrone pd = (PosableDrone)d; /* 204 */ PosableShape ps = pd.getInternalPosableShape(); /* 205 */ if (ps != null) /* */ { /* 207 */ if ((ps instanceof VehicleShape)) /* */ { /* 209 */ VehicleShape vs = (VehicleShape)ps; /* 210 */ vs.fixedCamera = this.fixedCamera; /* 211 */ vs.camX = this.camX; /* 212 */ vs.camY = this.camY; /* 213 */ vs.camZ = this.camZ; /* 214 */ vs.camRoll = this.camRoll; /* 215 */ vs.camPitch = this.camPitch; /* 216 */ vs.camYaw = this.camYaw; /* 217 */ vs.camAimX = this.camAimX; /* 218 */ vs.camAimY = this.camAimY; /* 219 */ vs.camAimZ = this.camAimZ; /* 220 */ vs.eyeHeight = this.eyeHeight; /* 221 */ hp.setOutsideCameraMode( /* 222 */ 99, /* 223 */ 4); /* */ } /* */ } /* */ } /* */ } /* */ } /* */ /* */ /* 231 */ this.avatarSwitchPending = false; /* */ } /* */ } /* */ } /* */ /* */ /* */ /* */ /* 239 */ private static Object classCookie = new Object(); /* */ /* */ public Object properties(int index, int offset, int mode, Object value) /* */ throws NoSuchPropertyException /* */ { /* 244 */ Object ret = null; /* 245 */ switch (index - offset) { /* */ case 0: /* 247 */ if (mode == 0) { /* 248 */ ret = StringPropertyEditor.make( /* 249 */ new Property(this, index, "Prompt String")); /* 250 */ } else if (mode == 1) { /* 251 */ ret = new String(this.promptString); /* 252 */ } else if (mode == 2) { /* 253 */ this.promptString = new String((String)value); /* */ } /* 255 */ break; /* */ case 1: /* 257 */ if (mode == 0) { /* 258 */ ret = FloatPropertyEditor.make( /* 259 */ new Property(this, index, "Rear End Ratio")); /* 260 */ } else if (mode == 1) { /* 261 */ ret = new Float(this.rearEndRatio); /* 262 */ } else if (mode == 2) /* 263 */ this.rearEndRatio = ((Float)value).floatValue(); /* 264 */ break; /* */ case 2: /* 266 */ if (mode == 0) { /* 267 */ ret = FloatPropertyEditor.make( /* 268 */ new Property(this, index, "Frontal Area (sq.ft.)")); /* 269 */ } else if (mode == 1) { /* 270 */ ret = new Float(this.frontalArea); /* 271 */ } else if (mode == 2) /* 272 */ this.frontalArea = ((Float)value).floatValue(); /* 273 */ break; /* */ case 3: /* 275 */ if (mode == 0) { /* 276 */ ret = FloatPropertyEditor.make( /* 277 */ new Property(this, index, "Wheel Diameter (ft.)")); /* 278 */ } else if (mode == 1) { /* 279 */ ret = new Float(this.wheelDiameter); /* 280 */ } else if (mode == 2) /* 281 */ this.wheelDiameter = ((Float)value).floatValue(); /* 282 */ break; /* */ case 4: /* 284 */ if (mode == 0) { /* 285 */ ret = FloatPropertyEditor.make( /* 286 */ new Property(this, index, /* 287 */ "Coefficient of Kinetic Friction")); /* 288 */ } else if (mode == 1) { /* 289 */ ret = new Float(this.coeffKineticFriction); /* 290 */ } else if (mode == 2) /* 291 */ this.coeffKineticFriction = ((Float)value).floatValue(); /* 292 */ break; /* */ case 5: /* 294 */ if (mode == 0) { /* 295 */ ret = FloatPropertyEditor.make( /* 296 */ new Property(this, index, /* 297 */ "Coefficient of Static Friction")); /* 298 */ } else if (mode == 1) { /* 299 */ ret = new Float(this.coeffStaticFriction); /* 300 */ } else if (mode == 2) /* 301 */ this.coeffStaticFriction = ((Float)value).floatValue(); /* 302 */ break; /* */ case 6: /* 304 */ if (mode == 0) { /* 305 */ ret = FloatPropertyEditor.make( /* 306 */ new Property(this, index, "Mass (slugs)")); /* 307 */ } else if (mode == 1) { /* 308 */ ret = new Float(this.mass); /* 309 */ } else if (mode == 2) /* 310 */ this.mass = ((Float)value).floatValue(); /* 311 */ break; /* */ case 7: /* 313 */ if (mode == 0) { /* 314 */ ret = FloatPropertyEditor.make( /* 315 */ new Property(this, index, "1st Gear Ratio")); /* 316 */ } else if (mode == 1) { /* 317 */ ret = new Float(this.gearRatio1); /* 318 */ } else if (mode == 2) /* 319 */ this.gearRatio1 = ((Float)value).floatValue(); /* 320 */ break; /* */ case 8: /* 322 */ if (mode == 0) { /* 323 */ ret = FloatPropertyEditor.make( /* 324 */ new Property(this, index, "2nd Gear Ratio")); /* 325 */ } else if (mode == 1) { /* 326 */ ret = new Float(this.gearRatio2); /* 327 */ } else if (mode == 2) /* 328 */ this.gearRatio2 = ((Float)value).floatValue(); /* 329 */ break; /* */ case 9: /* 331 */ if (mode == 0) { /* 332 */ ret = FloatPropertyEditor.make( /* 333 */ new Property(this, index, "3rd Gear Ratio")); /* 334 */ } else if (mode == 1) { /* 335 */ ret = new Float(this.gearRatio3); /* 336 */ } else if (mode == 2) /* 337 */ this.gearRatio3 = ((Float)value).floatValue(); /* 338 */ break; /* */ case 10: /* 340 */ if (mode == 0) { /* 341 */ ret = FloatPropertyEditor.make( /* 342 */ new Property(this, index, "4th Gear Ratio")); /* 343 */ } else if (mode == 1) { /* 344 */ ret = new Float(this.gearRatio4); /* 345 */ } else if (mode == 2) /* 346 */ this.gearRatio4 = ((Float)value).floatValue(); /* 347 */ break; /* */ case 11: /* 349 */ if (mode == 0) { /* 350 */ ret = FloatPropertyEditor.make( /* 351 */ new Property(this, index, "5th Gear Ratio")); /* 352 */ } else if (mode == 1) { /* 353 */ ret = new Float(this.gearRatio5); /* 354 */ } else if (mode == 2) /* 355 */ this.gearRatio5 = ((Float)value).floatValue(); /* 356 */ break; /* */ case 12: /* 358 */ if (mode == 0) { /* 359 */ ret = FloatPropertyEditor.make( /* 360 */ new Property(this, index, /* 361 */ "Max. Engine Torque (ft-lbs)")); /* 362 */ } else if (mode == 1) { /* 363 */ ret = new Float(this.maxEngineTorque); /* 364 */ } else if (mode == 2) /* 365 */ this.maxEngineTorque = ((Float)value).floatValue(); /* 366 */ break; /* */ case 13: /* 368 */ if (mode == 0) { /* 369 */ ret = FloatPropertyEditor.make( /* 370 */ new Property(this, index, "Tire Adhesive Limit")); /* 371 */ } else if (mode == 1) { /* 372 */ ret = new Float(this.tireAdhesiveLimit); /* 373 */ } else if (mode == 2) /* 374 */ this.tireAdhesiveLimit = ((Float)value).floatValue(); /* 375 */ break; /* */ case 14: /* 377 */ if (mode == 0) { /* 378 */ ret = FloatPropertyEditor.make( /* 379 */ new Property(this, index, /* 380 */ "Shocks Damping Coefficient")); /* 381 */ } else if (mode == 1) { /* 382 */ ret = new Float(this.shockDampingCoeff); /* 383 */ } else if (mode == 2) /* 384 */ this.shockDampingCoeff = ((Float)value).floatValue(); /* 385 */ break; /* */ case 15: /* 387 */ if (mode == 0) { /* 388 */ ret = FloatPropertyEditor.make( /* 389 */ new Property(this, index, "Shock Length (ft)")); /* 390 */ } else if (mode == 1) { /* 391 */ ret = new Float(this.shockLength); /* 392 */ } else if (mode == 2) /* 393 */ this.shockLength = ((Float)value).floatValue(); /* 394 */ break; /* */ case 16: /* 396 */ if (mode == 0) { /* 397 */ ret = FloatPropertyEditor.make( /* 398 */ new Property(this, index, "Torque Peak (RPM)")); /* 399 */ } else if (mode == 1) { /* 400 */ ret = new Float(this.rpmTorquePeak); /* 401 */ } else if (mode == 2) /* 402 */ this.rpmTorquePeak = ((Float)value).floatValue(); /* 403 */ break; /* */ case 17: /* 405 */ if (mode == 0) { /* 406 */ ret = FloatPropertyEditor.make( /* 407 */ new Property(this, index, "Idle RPM")); /* 408 */ } else if (mode == 1) { /* 409 */ ret = new Float(this.idleRPM); /* 410 */ } else if (mode == 2) /* 411 */ this.idleRPM = ((Float)value).floatValue(); /* 412 */ break; /* */ case 18: /* 414 */ if (mode == 0) { /* 415 */ ret = BooleanPropertyEditor.make( /* 416 */ new Property(this, index, "Transmission Type"), /* 417 */ "Automatic", "Manual"); /* 418 */ } else if (mode == 1) { /* 419 */ ret = new Boolean(this.stickShift); /* 420 */ } else if (mode == 2) /* 421 */ this.stickShift = ((Boolean)value).booleanValue(); /* 422 */ break; /* */ case 19: /* 424 */ if (mode == 0) { /* 425 */ ret = FloatPropertyEditor.make( /* 426 */ new Property(this, index, "Gas (Gall., -1 for infinite)")); /* 427 */ } else if (mode == 1) { /* 428 */ ret = new Float(this.initialGas); /* 429 */ } else if (mode == 2) /* 430 */ this.initialGas = ((Float)value).floatValue(); /* 431 */ break; /* */ case 20: /* 433 */ if (mode == 0) { /* 434 */ ret = FloatPropertyEditor.make( /* 435 */ new Property(this, index, "Center of gravity X adjust")); /* 436 */ } else if (mode == 1) { /* 437 */ ret = new Float(this.adjustCogX); /* 438 */ } else if (mode == 2) /* 439 */ this.adjustCogX = ((Float)value).floatValue(); /* 440 */ break; /* */ case 21: /* 442 */ if (mode == 0) { /* 443 */ ret = FloatPropertyEditor.make( /* 444 */ new Property(this, index, "Center of gravity Y adjust")); /* 445 */ } else if (mode == 1) { /* 446 */ ret = new Float(this.adjustCogY); /* 447 */ } else if (mode == 2) /* 448 */ this.adjustCogY = ((Float)value).floatValue(); /* 449 */ break; /* */ case 22: /* 451 */ if (mode == 0) { /* 452 */ ret = FloatPropertyEditor.make( /* 453 */ new Property(this, index, "Center of gravity Z adjust")); /* 454 */ } else if (mode == 1) { /* 455 */ ret = new Float(this.adjustCogZ); /* 456 */ } else if (mode == 2) /* 457 */ this.adjustCogZ = ((Float)value).floatValue(); /* 458 */ break; /* */ case 23: /* 460 */ if (mode == 0) { /* 461 */ ret = BooleanPropertyEditor.make( /* 462 */ new Property(this, index, "Use fixed camera"), /* 463 */ "No", "Yes"); /* 464 */ } else if (mode == 1) { /* 465 */ ret = new Boolean(this.fixedCamera); /* 466 */ } else if (mode == 2) /* 467 */ this.fixedCamera = ((Boolean)value).booleanValue(); /* 468 */ break; /* */ case 24: /* 470 */ if (mode == 0) { /* 471 */ ret = FloatPropertyEditor.make( /* 472 */ new Property(this, index, "Camera X offset")); /* 473 */ } else if (mode == 1) { /* 474 */ ret = new Float(this.camX); /* 475 */ } else if (mode == 2) /* 476 */ this.camX = ((Float)value).floatValue(); /* 477 */ break; /* */ case 25: /* 479 */ if (mode == 0) { /* 480 */ ret = FloatPropertyEditor.make( /* 481 */ new Property(this, index, "Camera Y offset")); /* 482 */ } else if (mode == 1) { /* 483 */ ret = new Float(this.camY); /* 484 */ } else if (mode == 2) /* 485 */ this.camY = ((Float)value).floatValue(); /* 486 */ break; /* */ case 26: /* 488 */ if (mode == 0) { /* 489 */ ret = FloatPropertyEditor.make( /* 490 */ new Property(this, index, "Camera Z offset")); /* 491 */ } else if (mode == 1) { /* 492 */ ret = new Float(this.camZ); /* 493 */ } else if (mode == 2) /* 494 */ this.camZ = ((Float)value).floatValue(); /* 495 */ break; /* */ case 27: /* 497 */ if (mode == 0) { /* 498 */ ret = FloatPropertyEditor.make( /* 499 */ new Property(this, index, "Camera Roll")); /* 500 */ } else if (mode == 1) { /* 501 */ ret = new Float(this.camRoll); /* 502 */ } else if (mode == 2) /* 503 */ this.camRoll = ((Float)value).floatValue(); /* 504 */ break; /* */ case 28: /* 506 */ if (mode == 0) { /* 507 */ ret = FloatPropertyEditor.make( /* 508 */ new Property(this, index, "Camera Pitch")); /* 509 */ } else if (mode == 1) { /* 510 */ ret = new Float(this.camPitch); /* 511 */ } else if (mode == 2) /* 512 */ this.camPitch = ((Float)value).floatValue(); /* 513 */ break; /* */ case 29: /* 515 */ if (mode == 0) { /* 516 */ ret = FloatPropertyEditor.make( /* 517 */ new Property(this, index, "Camera Yaw")); /* 518 */ } else if (mode == 1) { /* 519 */ ret = new Float(this.camYaw); /* 520 */ } else if (mode == 2) /* 521 */ this.camYaw = ((Float)value).floatValue(); /* 522 */ break; /* */ case 30: /* 524 */ if (mode == 0) { /* 525 */ ret = FloatPropertyEditor.make( /* 526 */ new Property(this, index, "Camera Aim X")); /* 527 */ } else if (mode == 1) { /* 528 */ ret = new Float(this.camAimX); /* 529 */ } else if (mode == 2) /* 530 */ this.camAimX = ((Float)value).floatValue(); /* 531 */ break; /* */ case 31: /* 533 */ if (mode == 0) { /* 534 */ ret = FloatPropertyEditor.make( /* 535 */ new Property(this, index, "Camera Aim Y")); /* 536 */ } else if (mode == 1) { /* 537 */ ret = new Float(this.camAimY); /* 538 */ } else if (mode == 2) /* 539 */ this.camAimY = ((Float)value).floatValue(); /* 540 */ break; /* */ case 32: /* 542 */ if (mode == 0) { /* 543 */ ret = FloatPropertyEditor.make( /* 544 */ new Property(this, index, "Camera Aim Z")); /* 545 */ } else if (mode == 1) { /* 546 */ ret = new Float(this.camAimZ); /* 547 */ } else if (mode == 2) /* 548 */ this.camAimZ = ((Float)value).floatValue(); /* 549 */ break; /* */ case 33: /* 551 */ if (mode == 0) { /* 552 */ ret = FloatPropertyEditor.make( /* 553 */ new Property(this, index, "Camera Eye Height")); /* 554 */ } else if (mode == 1) { /* 555 */ ret = new Float(this.eyeHeight); /* 556 */ } else if (mode == 2) /* 557 */ this.eyeHeight = ((Float)value).floatValue(); /* 558 */ break; /* */ /* */ default: /* 561 */ ret = super.properties(index, offset + 34, mode, value); /* */ } /* 563 */ return ret; /* */ } /* */ /* */ public void saveState(Saver s) throws IOException /* */ { /* 568 */ s.saveVersion(2, classCookie); /* 569 */ s.saveBoolean(this.fixedCamera); /* 570 */ s.saveFloat(this.camX); /* 571 */ s.saveFloat(this.camY); /* 572 */ s.saveFloat(this.camZ); /* 573 */ s.saveFloat(this.camRoll); /* 574 */ s.saveFloat(this.camPitch); /* 575 */ s.saveFloat(this.camYaw); /* 576 */ s.saveFloat(this.camAimX); /* 577 */ s.saveFloat(this.camAimY); /* 578 */ s.saveFloat(this.camAimZ); /* 579 */ s.saveFloat(this.eyeHeight); /* */ /* 581 */ s.saveString(this.promptString); /* 582 */ s.saveFloat(this.rearEndRatio); /* 583 */ s.saveFloat(this.frontalArea); /* 584 */ s.saveFloat(this.wheelDiameter); /* 585 */ s.saveFloat(this.coeffKineticFriction); /* 586 */ s.saveFloat(this.coeffStaticFriction); /* 587 */ s.saveFloat(this.mass); /* 588 */ s.saveFloat(this.gearRatio1); /* 589 */ s.saveFloat(this.gearRatio2); /* 590 */ s.saveFloat(this.gearRatio3); /* 591 */ s.saveFloat(this.gearRatio4); /* 592 */ s.saveFloat(this.gearRatio5); /* 593 */ s.saveFloat(this.maxEngineTorque); /* 594 */ s.saveFloat(this.tireAdhesiveLimit); /* 595 */ s.saveFloat(this.shockDampingCoeff); /* 596 */ s.saveFloat(this.shockLength); /* 597 */ s.saveFloat(this.rpmTorquePeak); /* 598 */ s.saveFloat(this.idleRPM); /* 599 */ s.saveBoolean(this.stickShift); /* 600 */ s.saveFloat(this.initialGas); /* 601 */ s.saveFloat(this.adjustCogX); /* 602 */ s.saveFloat(this.adjustCogY); /* 603 */ s.saveFloat(this.adjustCogZ); /* 604 */ super.saveState(s); /* */ } /* */ /* */ public void restoreState(Restorer r) throws IOException, TooNewException /* */ { /* 609 */ switch (r.restoreVersion(classCookie)) { /* */ case 2: /* 611 */ this.fixedCamera = r.restoreBoolean(); /* 612 */ this.camX = r.restoreFloat(); /* 613 */ this.camY = r.restoreFloat(); /* 614 */ this.camZ = r.restoreFloat(); /* 615 */ this.camRoll = r.restoreFloat(); /* 616 */ this.camPitch = r.restoreFloat(); /* 617 */ this.camYaw = r.restoreFloat(); /* 618 */ this.camAimX = r.restoreFloat(); /* 619 */ this.camAimY = r.restoreFloat(); /* 620 */ this.camAimZ = r.restoreFloat(); /* 621 */ this.eyeHeight = r.restoreFloat(); /* */ case 1: /* 623 */ this.promptString = r.restoreString(); /* 624 */ this.rearEndRatio = r.restoreFloat(); /* 625 */ this.frontalArea = r.restoreFloat(); /* 626 */ this.wheelDiameter = r.restoreFloat(); /* 627 */ this.coeffKineticFriction = r.restoreFloat(); /* 628 */ this.coeffStaticFriction = r.restoreFloat(); /* 629 */ this.mass = r.restoreFloat(); /* 630 */ this.gearRatio1 = r.restoreFloat(); /* 631 */ this.gearRatio2 = r.restoreFloat(); /* 632 */ this.gearRatio3 = r.restoreFloat(); /* 633 */ this.gearRatio4 = r.restoreFloat(); /* 634 */ this.gearRatio5 = r.restoreFloat(); /* 635 */ this.maxEngineTorque = r.restoreFloat(); /* 636 */ this.tireAdhesiveLimit = r.restoreFloat(); /* 637 */ this.shockDampingCoeff = r.restoreFloat(); /* 638 */ this.shockLength = r.restoreFloat(); /* 639 */ this.rpmTorquePeak = r.restoreFloat(); /* 640 */ this.idleRPM = r.restoreFloat(); /* 641 */ this.stickShift = r.restoreBoolean(); /* 642 */ this.initialGas = r.restoreFloat(); /* 643 */ this.adjustCogX = r.restoreFloat(); /* 644 */ this.adjustCogY = r.restoreFloat(); /* 645 */ this.adjustCogZ = r.restoreFloat(); /* */ case 0: /* 647 */ super.restoreState(r); /* 648 */ break; /* */ /* */ default: /* 651 */ throw new TooNewException(); /* */ } /* */ } /* */ } /* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\scape\VehicleShape.class * Java compiler version: 6 (50.0) * JD-Core Version: 0.7.1 */