summaryrefslogtreecommitdiff
path: root/NET/worlds/scape/VehicleShape.java
diff options
context:
space:
mode:
Diffstat (limited to 'NET/worlds/scape/VehicleShape.java')
-rw-r--r--NET/worlds/scape/VehicleShape.java660
1 files changed, 660 insertions, 0 deletions
diff --git a/NET/worlds/scape/VehicleShape.java b/NET/worlds/scape/VehicleShape.java
new file mode 100644
index 0000000..6337ace
--- /dev/null
+++ b/NET/worlds/scape/VehicleShape.java
@@ -0,0 +1,660 @@
+/* */ 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
+ */ \ No newline at end of file