/* */ package NET.worlds.scape; /* */ /* */ import NET.worlds.console.Console; /* */ import NET.worlds.console.Gamma; /* */ import NET.worlds.console.GammaFrame; /* */ import NET.worlds.console.RightMenu; /* */ import NET.worlds.core.Debug; /* */ import NET.worlds.core.IniFile; /* */ import NET.worlds.network.NetworkObject; /* */ import NET.worlds.network.URL; /* */ import NET.worlds.network.WorldServer; /* */ import java.io.DataInputStream; /* */ import java.io.IOException; /* */ import java.lang.reflect.Field; /* */ import java.util.Enumeration; /* */ import java.util.Vector; /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public class WObject /* */ extends Transform /* */ implements Prerenderable /* */ { /* 231 */ private boolean mouseOver = false; /* */ private String _toolTipText; /* */ /* */ public boolean getMouseOver() { /* 235 */ if (this.mouseOver) { /* 236 */ return true; /* */ } /* */ try /* */ { /* 240 */ obj = (WObject)getOwner(); /* */ } catch (ClassCastException c) { WObject obj; /* 242 */ return false; /* */ } /* */ WObject obj; /* 245 */ if (obj == null) { /* 246 */ return false; /* */ } /* 248 */ return obj.getMouseOver(); /* */ } /* */ /* */ /* */ public void setMouseOver(boolean m) /* */ { /* 254 */ this.mouseOver = m; /* */ } /* */ /* */ /* */ public String getToolTipText() /* */ { /* 260 */ if (this._toolTipText != null) { /* 261 */ return this._toolTipText; /* */ } /* */ try /* */ { /* 265 */ obj = (WObject)getOwner(); /* */ } catch (ClassCastException c) { WObject obj; /* 267 */ return null; /* */ } /* */ WObject obj; /* 270 */ if (obj == null) { /* 271 */ return null; /* */ } /* 273 */ return obj.getToolTipText(); /* */ } /* */ /* */ /* */ public void setToolTipText(String newText) /* */ { /* 279 */ this._toolTipText = newText; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ public void setName(String v) /* */ { /* 289 */ super.setName(getBangName(v)); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ private String getBangName(String s) /* */ { /* 298 */ boolean hasBang = s.startsWith("!"); /* */ /* 300 */ if (hasBang != isDynamic()) { /* 301 */ if (hasBang) { /* 302 */ return s.substring(1); /* */ } /* 304 */ return "!" + s; /* */ } /* */ /* 307 */ return s; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ public void markEdited() /* */ { /* 316 */ if (!isDynamic()) { /* 317 */ super.markEdited(); /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ public void getChildren(DeepEnumeration d) /* */ { /* 328 */ if (this.contents != null) /* 329 */ d.addChildVector(this.contents); /* 330 */ if (this.eventHandlers != null) /* 331 */ d.addChildVector(this.eventHandlers); /* 332 */ if (this.actions != null) /* 333 */ d.addChildVectorAction(this.actions); /* 334 */ if (this._sharer != null) { /* 335 */ d.addChildElement(this._sharer); /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* 354 */ private Vector contents = null; /* */ private Shadow shadow; /* */ public static boolean shadowsOn; /* */ /* */ public void add(WObject child) /* */ { /* 360 */ super.add(child); /* */ /* */ /* 363 */ if (hasClump()) { /* 364 */ child.recursiveAddRwChildren(this); /* */ } /* 366 */ if (child._sharer != null) { /* 367 */ child._sharer.adjustShare(); /* */ } /* 369 */ if (this.contents == null) /* 370 */ this.contents = new Vector(); /* 371 */ this.contents.addElement(child); /* */ } /* */ /* */ /* */ /* */ public Enumeration getContents() /* */ { /* 378 */ if (this.contents == null) { /* 379 */ return new Vector().elements(); /* */ } /* 381 */ return this.contents.elements(); /* */ } /* */ /* */ /* */ /* */ /* */ public boolean hasContents() /* */ { /* 389 */ return this.contents != null; /* */ } /* */ /* */ /* */ /* */ public boolean contentsContain(WObject w) /* */ { /* 396 */ if (this.contents == null) { /* 397 */ return false; /* */ } /* 399 */ return this.contents.contains(w); /* */ } /* */ /* */ /* */ protected void noteUnadding(SuperRoot child) /* */ { /* 405 */ if ((this.contents != null) && (this.contents.removeElement(child)) && /* 406 */ (this.contents.size() == 0)) { /* 407 */ this.contents = null; /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public void makeShadow() /* */ { /* 425 */ assert (this.shadow == null); /* 426 */ this.shadow = new DiskShadow(this); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public void detach() /* */ { /* 440 */ if (this.clumpID != 0) { /* 441 */ markVoid(); /* */ } /* 443 */ super.detach(); /* */ /* 445 */ if (this._sharer != null) { /* 446 */ this._sharer.adjustShare(); /* */ } /* 448 */ if (this.shadow != null) { /* 449 */ this.shadow.adjustShadow(this); /* 450 */ this.shadow = null; /* */ } /* */ } /* */ /* */ /* */ /* */ /* 457 */ protected boolean discarded = false; /* */ protected int clumpID; /* */ /* */ public void discard() { /* 461 */ super.discard(); /* */ /* 463 */ this.discarded = true; /* */ /* 465 */ if (this.contents != null) { /* 466 */ int i = this.contents.size(); /* 467 */ do { ((WObject)this.contents.elementAt(i)).discard();i--; /* 466 */ } while (i >= 0); /* */ } /* */ /* 469 */ if (this.eventHandlers != null) { /* 470 */ int i = this.eventHandlers.size(); /* 471 */ do { removeHandler((SuperRoot)this.eventHandlers.elementAt(i));i--; /* 470 */ } while (i >= 0); /* */ } /* */ /* 473 */ if (this.actions != null) { /* 474 */ int i = this.actions.size(); /* 475 */ do { removeAction((Action)this.actions.elementAt(i));i--; /* 474 */ } while (i >= 0); /* */ } /* */ /* 477 */ releaseAuxilaryData(); /* */ } /* */ /* */ protected void finalize() /* */ { /* 482 */ if (!this.discarded) { /* 483 */ releaseAuxilaryData(); /* */ } /* */ /* 486 */ super.finalize(); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public void reclump() /* */ { /* 505 */ if (this.clumpID != 0) { /* 506 */ assert ((this.flags & 0x200000) == 0); /* 507 */ this.flags |= 0x200000; /* */ /* 509 */ markVoid(); /* */ /* */ /* */ /* */ /* */ /* 515 */ recursiveAddRwChildren((WObject)getOwner()); /* */ /* 517 */ assert ((this.flags & 0x200000) != 0); /* 518 */ this.flags &= 0xFFDFFFFF; /* */ } /* */ } /* */ /* */ public boolean isReclumping() { /* 523 */ return (this.flags & 0x200000) != 0; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ protected void noteTransformChange() /* */ { /* 542 */ setClumpMatrix(); /* 543 */ updateHighlight(); /* */ /* 545 */ if (this.shadow != null) { /* 546 */ this.shadow.adjustShadow(this); /* */ } /* 548 */ if (this._transformAttribute != null) { /* 549 */ this._transformAttribute.noteChange(); /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ /* */ protected void markVoid() /* */ { /* 559 */ if (this.contents != null) { /* 560 */ int i = this.contents.size(); /* 561 */ do { ((WObject)this.contents.elementAt(i)).markVoid();i--; /* 560 */ } while (i >= 0); /* */ } /* */ /* */ /* 564 */ Room r = getRoomFromClump(); /* */ /* 566 */ if ((this instanceof FrameHandler)) { /* 567 */ r.removeFrameHandler((FrameHandler)this, this); /* */ } /* 569 */ if (this.eventHandlers != null) { /* 570 */ int i = this.eventHandlers.size(); /* 571 */ do { Object f = this.eventHandlers.elementAt(i); /* 572 */ if ((f instanceof FrameHandler)) { /* 573 */ r.removeFrameHandler((FrameHandler)f, this); /* */ } /* 570 */ i--; } while (i >= 0); /* */ } /* */ /* */ /* */ /* */ /* 576 */ voidClump(); /* */ /* 578 */ if (this.shadow != null) { /* 579 */ this.shadow.adjustShadow(this); /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ protected void addRwChildren(WObject parent) /* */ { /* 597 */ addNewRwChild(parent); /* */ } /* */ /* */ public void recursiveAddRwChildren(WObject parent) { /* 601 */ addRwChildren(parent); /* */ /* 603 */ if (this.contents != null) { /* 604 */ int end = this.contents.size(); /* 605 */ for (int i = 0; i < end; i++) { /* 606 */ ((WObject)this.contents.elementAt(i)).recursiveAddRwChildren(this); /* */ } /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ protected final void addNewRwChild(WObject container) /* */ { /* 621 */ assert (this.clumpID == 0); /* */ /* 623 */ createClump(); /* */ /* 625 */ newRwClumpChildHelper(container); /* */ } /* */ /* */ /* */ /* */ protected void newRwClumpChildHelper(WObject container) /* */ { /* 632 */ assert (container != null); /* */ /* */ /* 635 */ addChildToClump(container); /* */ /* */ /* 638 */ newRwChildHelper(); /* */ /* */ /* */ /* */ /* 643 */ if (!getVisible()) { /* 644 */ updateVisible(); /* */ } /* */ /* 647 */ if (this.shadow != null) { /* 648 */ this.shadow.adjustShadow(this); /* */ } /* */ else { /* 651 */ if (getShadowedLocally() ? !getLocalShadowed() : !shadowsOn) { /* 652 */ return; /* */ } /* */ /* 655 */ if (inRoomContents()) /* */ { /* 657 */ if ((getOwner() instanceof Room)) { /* 658 */ makeShadow(); /* */ } /* */ } /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ protected void newRwChildHelper() /* */ { /* 669 */ initClumpData(); /* */ /* 671 */ setClumpMatrix(); /* */ /* */ /* 674 */ Room r = getRoom(); /* */ /* 676 */ if ((this instanceof FrameHandler)) { /* 677 */ r.addFrameHandler((FrameHandler)this, this); /* */ } /* 679 */ if (this.eventHandlers != null) { /* 680 */ for (int i = 0; i < this.eventHandlers.size(); i++) { /* 681 */ Object f = this.eventHandlers.elementAt(i); /* 682 */ if ((f instanceof FrameHandler)) { /* 683 */ r.addFrameHandler((FrameHandler)f, this); /* */ } /* */ } /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public final boolean hasClump() /* */ { /* 700 */ return this.clumpID != 0; /* */ } /* */ /* */ /* */ /* */ public final int getID() /* */ { /* 707 */ return this.clumpID; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public Point3Temp inCamSpace(Camera cam) /* */ { /* 724 */ Point3Temp p = Point3Temp.make(); /* 725 */ return nativeInCamSpace(cam, p) ? p : null; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public Transform getObjectToWorldMatrix() /* */ { /* 776 */ if (hasClump()) { /* 777 */ return getObjectToWorldMatrix(Transform.make()); /* */ } /* 779 */ Transform t = getTransform(); /* */ /* 781 */ SuperRoot o = getOwner(); /* 782 */ if ((o instanceof WObject)) { /* 783 */ Transform ot = ((WObject)o).getObjectToWorldMatrix(); /* 784 */ t.post(ot); /* 785 */ ot.recycle(); /* */ } /* */ /* 788 */ return t; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public Point3Temp getWorldPosition() /* */ { /* 805 */ Transform t = getObjectToWorldMatrix(); /* 806 */ Point3Temp ret = t.getPosition(); /* 807 */ t.recycle(); /* 808 */ return ret; /* */ } /* */ /* 811 */ protected int highlightID = 0; /* */ protected static final int isVisibleMask = 1; /* */ protected static final int isBumpableMask = 2; /* */ protected static final int isHologramRoughCutMask = 4; /* */ protected static final int isMirrored = 4; /* */ protected static final int isOptimizableMask = 8; /* */ protected static final int isDrawFirstOnIntersectionMask = 16; /* */ protected static final int isDrawOrderUnimportantMask = 32; /* */ protected static final int isMaterialVisible = 64; /* */ protected static final int isHighlitMask = 128; /* */ protected static final int isAutoGapMask = 256; /* */ protected static final int isAutoGapFromLocalMask = 512; /* */ protected static final int isDisablePixelDoublingMask = 1024; /* */ /* */ public BoundBoxTemp getClumpBBox() { /* 826 */ Point3Temp start = Point3Temp.make(); /* 827 */ Point3Temp right = Point3Temp.make(); /* */ /* 829 */ getClumpBBox(start, right); /* */ /* 831 */ return BoundBoxTemp.make(start, right); /* */ } /* */ /* */ /* */ /* */ protected static final int isSharerMode0 = 2048; /* */ /* */ /* */ protected static final int isSharerMode1 = 4096; /* */ /* */ /* */ protected static final int isSharerMode2 = 8192; /* */ /* */ /* */ protected static final int duringRestore = 16384; /* */ /* */ /* */ protected static final int isShadowedLocally = 32768; /* */ /* */ protected static final int isShadowed = 65536; /* */ /* */ protected static final int isAutobuiltMask = 131072; /* */ /* */ protected static final int isHologramViewplaneAlignedMask = 262144; /* */ /* */ protected static final int isDontConnect = 262144; /* */ /* */ protected static final int isSurfaceUFlippedMask = 524288; /* */ /* */ protected static final int isSurfaceVFlippedMask = 1048576; /* */ /* */ protected static final int isReclumpingMask = 2097152; /* */ /* */ protected static final int isHologramAutosize = 4194304; /* */ /* 866 */ protected int flags = 3; /* */ Vector eventHandlers; /* */ /* */ public WObject setHighlit(boolean b) { /* 870 */ if (b) { /* 871 */ this.flags |= 0x80; /* */ } else { /* 873 */ this.flags &= 0xFF7F; /* */ } /* 875 */ updateHighlight(); /* 876 */ return this; /* */ } /* */ /* */ public final boolean getHighlit() { /* 880 */ return (this.flags & 0x80) != 0; /* */ } /* */ /* */ public void setAutobuilt(boolean b) { /* 884 */ if (b) { /* 885 */ this.flags |= 0x20000; /* */ } else { /* 887 */ this.flags &= 0xFFFDFFFF; /* */ } /* */ } /* */ /* */ public final boolean getAutobuilt() /* */ { /* 893 */ return (this.flags & 0x20000) != 0; /* */ } /* */ /* */ /* */ /* */ /* */ public WObject setOptimizable(boolean b) /* */ { /* 901 */ if (b) { /* 902 */ this.flags |= 0x8; /* */ } else { /* 904 */ this.flags &= 0xFFFFFFF7; /* */ } /* 906 */ return this; /* */ } /* */ /* */ public final boolean getOptimizable() { /* 910 */ return (this.flags & 0x8) != 0; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ final void setSharerMode(int mode) /* */ { /* 920 */ assert ((mode >= 0) && (mode < 8)); /* */ /* 922 */ this.flags &= 0xC7FF; /* 923 */ this.flags |= mode << 11; /* */ /* */ /* 926 */ setName(getName()); /* */ } /* */ /* */ final int getSharerMode() { /* 930 */ return this.flags >>> 11 & 0x7; /* */ } /* */ /* */ /* */ /* */ /* */ public final boolean isDynamic() /* */ { /* 938 */ return (getSharerMode() & 0x4) != 0; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ public WObject setLocalAutoGap(boolean b) /* */ { /* 947 */ if (b) { /* 948 */ this.flags |= 0x100; /* */ } else { /* 950 */ this.flags &= 0xFEFF; /* */ } /* */ /* */ /* 954 */ if ((this instanceof Room)) { /* 955 */ for (Enumeration e = getDeepOwned(); e.hasMoreElements();) { /* 956 */ Object o = e.nextElement(); /* 957 */ if ((o instanceof WObject)) { /* 958 */ ((WObject)o).noteTransformChange(); /* */ } /* */ } /* */ } /* 962 */ return this; /* */ } /* */ /* */ public final boolean getLocalAutoGap() { /* 966 */ return (this.flags & 0x100) != 0; /* */ } /* */ /* */ public WObject setAutoGapFromRoom(boolean b) { /* 970 */ if (b) { /* 971 */ this.flags &= 0xFDFF; /* */ } else { /* 973 */ this.flags |= 0x200; /* */ } /* 975 */ noteTransformChange(); /* 976 */ return this; /* */ } /* */ /* */ public final boolean getAutoGapFromRoom() { /* 980 */ return (this.flags & 0x200) == 0; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ public boolean getAutoGap() /* */ { /* 989 */ return (getAutoGapFromRoom() ? getRoom() : this).getLocalAutoGap(); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ public void setVisible(boolean b) /* */ { /* 998 */ if (b != getVisible()) { /* 999 */ if (b) { /* 1000 */ this.flags |= 0x1; /* */ } else { /* 1002 */ this.flags &= 0xFFFFFFFE; /* */ } /* 1004 */ updateVisible(); /* */ /* 1006 */ if (this.shadow != null) { /* 1007 */ this.shadow.adjustShadow(this); /* */ } /* 1009 */ if (this._visibilityAttribute != null) { /* 1010 */ this._visibilityAttribute.noteChange(); /* */ } /* */ } /* */ } /* */ /* */ /* */ public boolean getLocalShadowed() /* */ { /* 1018 */ return (this.flags & 0x10000) != 0; /* */ } /* */ /* */ public void setLocalShadowed(boolean b) { /* 1022 */ if (b) { /* 1023 */ this.flags |= 0x10000; /* */ } else { /* 1025 */ this.flags &= 0xFFFEFFFF; /* */ } /* */ } /* */ /* */ /* */ /* */ public boolean getShadowedLocally() /* */ { /* 1033 */ return (this.flags & 0x8000) != 0; /* */ } /* */ /* */ public void setShadowedLocally(boolean b) { /* 1037 */ if (b) { /* 1038 */ this.flags |= 0x8000; /* */ } else { /* 1040 */ this.flags &= 0xFFFF7FFF; /* */ } /* */ } /* */ /* */ /* */ public final boolean getVisible() /* */ { /* 1047 */ return (this.flags & 0x1) != 0; /* */ } /* */ /* */ /* */ /* */ public WObject setBumpable(boolean b) /* */ { /* 1054 */ if (b) { /* 1055 */ this.flags |= 0x2; /* */ } else { /* 1057 */ this.flags &= 0xFFFFFFFD; /* */ } /* 1059 */ if (this._bumpableAttribute != null) { /* 1060 */ this._bumpableAttribute.noteChange(); /* */ } /* 1062 */ return this; /* */ } /* */ /* */ public final boolean getBumpable() { /* 1066 */ return (this.flags & 0x2) != 0; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public boolean deliver(Event event) /* */ { /* 1085 */ event.receiver = this; /* 1086 */ boolean delivered = event.deliver(this); /* */ /* 1088 */ if (this.eventHandlers != null) { /* 1089 */ for (Enumeration e = this.eventHandlers.elements(); e.hasMoreElements();) { /* 1090 */ event.receiver = this; /* 1091 */ if (event.deliver(e.nextElement())) /* 1092 */ delivered = true; /* */ } /* */ } /* 1095 */ if (delivered) { /* 1096 */ return true; /* */ } /* 1098 */ if ((event instanceof UserEvent)) { /* 1099 */ Object o = getOwner(); /* 1100 */ if ((o instanceof WObject)) { /* 1101 */ return ((WObject)o).deliver(event); /* */ } /* */ } /* 1104 */ return false; /* */ } /* */ /* */ public Enumeration getHandlers() /* */ { /* 1109 */ if (this.eventHandlers == null) { /* 1110 */ return new Vector().elements(); /* */ } /* 1112 */ return this.eventHandlers.elements(); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ public boolean hasHandler(SuperRoot h) /* */ { /* 1121 */ return (this.eventHandlers != null) && (this.eventHandlers.indexOf(h) != -1); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ public WObject addHandler(SuperRoot h) /* */ { /* 1130 */ if (this.eventHandlers == null) /* 1131 */ this.eventHandlers = new Vector(); /* 1132 */ this.eventHandlers.addElement(h); /* */ /* */ /* 1135 */ if ((this.clumpID != 0) && ((h instanceof FrameHandler))) { /* 1136 */ getRoomFromClump().addFrameHandler((FrameHandler)h, this); /* */ } /* 1138 */ super.add(h); /* 1139 */ return this; /* */ } /* */ /* */ /* */ /* */ /* */ public Room getRoom() /* */ { /* 1147 */ return this.clumpID != 0 ? getRoomFromClump() : getRoomNotFromClump(); /* */ } /* */ /* */ /* */ /* */ public Room getRoomNotFromClump() /* */ { /* 1154 */ SuperRoot o = getOwner(); /* 1155 */ if ((o instanceof WObject)) { /* 1156 */ return ((WObject)o).getRoomNotFromClump(); /* */ } /* 1158 */ return null; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public World getWorld() /* */ { /* 1180 */ if (this.clumpID != 0) { /* 1181 */ return getRoomFromClump().getWorld(); /* */ } /* 1183 */ Room r = getRoomNotFromClump(); /* 1184 */ return r == null ? null : r.getWorld(); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ public boolean isActive() /* */ { /* 1193 */ if (this.clumpID != 0) { /* 1194 */ return true; /* */ } /* 1196 */ return super.isActive(); /* */ } /* */ /* */ /* */ /* */ public void removeHandler(SuperRoot h) /* */ { /* 1203 */ if (this.eventHandlers.contains(h)) { /* 1204 */ h.detach(); /* */ /* 1206 */ this.eventHandlers.removeElement(h); /* 1207 */ if (this.eventHandlers.size() == 0) { /* 1208 */ this.eventHandlers = null; /* */ } /* 1210 */ if ((this.clumpID != 0) && ((h instanceof FrameHandler))) { /* 1211 */ getRoomFromClump().removeFrameHandler((FrameHandler)h, this); /* */ } /* */ } /* */ } /* */ /* */ /* */ /* 1218 */ protected Vector actions = null; /* */ /* */ /* */ /* */ public Enumeration getActions() /* */ { /* 1224 */ if (this.actions == null) /* 1225 */ return new Vector().elements(); /* 1226 */ return this.actions.elements(); /* */ } /* */ /* */ /* */ /* */ public boolean hasActions() /* */ { /* 1233 */ return this.actions != null; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ public WObject addAction(Action a) /* */ { /* 1242 */ if (this.actions == null) { /* 1243 */ this.actions = new Vector(); /* */ } /* 1245 */ this.actions.addElement(a); /* */ /* 1247 */ super.add(a); /* 1248 */ return this; /* */ } /* */ /* */ /* */ /* */ public void removeAction(Action a) /* */ { /* 1255 */ assert (a.getOwner() == this); /* */ /* 1257 */ a.detach(); /* */ /* 1259 */ this.actions.removeElement(a); /* 1260 */ if (this.actions.size() == 0) { /* 1261 */ this.actions = null; /* */ } /* */ } /* */ /* */ /* */ public void rightMenu() /* */ { /* 1268 */ RightMenu rm = new RightMenu(this, getActions()); /* */ } /* */ /* */ /* */ public void doAction(String actionLabel, Event evt) /* */ { /* 1274 */ if ((actionLabel == null) || (actionLabel.equals(""))) { /* 1275 */ return; /* */ } /* 1277 */ if ((Gamma.getShaper() != null) && /* 1278 */ (actionLabel.equals("Edit Properties..."))) { /* 1279 */ Console.getFrame().getEditTile().viewProperties(this); /* 1280 */ } else if (this.actions != null) { /* 1281 */ int i = 0; /* 1282 */ while (i < this.actions.size()) { /* 1283 */ Action candidate = (Action)this.actions.elementAt(i); /* 1284 */ i++; /* 1285 */ if (actionLabel.equals(candidate.rightMenuLabel)) { /* 1286 */ RunningActionHandler.trigger(candidate, getWorld(), evt); /* */ } /* */ } /* */ } /* */ } /* */ /* */ /* 1293 */ protected BumpCalc bumpCalc = null; /* */ static BumpCalc standardBoxBumpCalc; /* */ /* 1296 */ public WObject setBumpCalc(BumpCalc b) { if (this.bumpCalc != null) { /* 1297 */ this.bumpCalc.detach(); /* */ } /* 1299 */ this.bumpCalc = b; /* 1300 */ if (this.bumpCalc != null) { /* 1301 */ super.add(this.bumpCalc); /* */ } /* 1303 */ return this; /* */ } /* */ /* */ static /* */ { /* 227 */ nativeInit(); /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* 418 */ shadowsOn = IniFile.gamma().getIniInt("shadows", 0) != 0; /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* 1306 */ standardBoxBumpCalc = new BoxBumpCalc(); /* */ /* */ /* 1309 */ standardBoxBumpCalc.setName("defaultBoxBumpCalc"); /* */ } /* */ /* */ /* */ /* */ public BumpCalc getBumpCalc(BumpEventTemp b) /* */ { /* 1316 */ if (this.bumpCalc == null) /* 1317 */ return standardBoxBumpCalc; /* 1318 */ return this.bumpCalc; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ public Point3Temp getPlaneExtent() /* */ { /* 1327 */ return Point3Temp.make(); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ public BoundBoxTemp getBoundBox() /* */ { /* 1337 */ if (getVisible()) { /* 1338 */ return getClumpBBox(); /* */ } /* 1340 */ Transform xfrm = getObjectToWorldMatrix(); /* */ /* 1342 */ BoundBoxTemp ret = BoundBoxTemp.make(xfrm.getPosition(), /* 1343 */ getPlaneExtent().times(xfrm)); /* 1344 */ xfrm.recycle(); /* */ /* 1346 */ return ret; /* */ } /* */ /* */ /* */ /* */ public float getMinXYExtent() /* */ { /* 1353 */ if (getVisible()) { /* 1354 */ return getClumpMinXYExtent(); /* */ } /* 1356 */ BoundBoxTemp box = getBoundBox(); /* 1357 */ float x = box.hi.x - box.lo.x; /* 1358 */ float y = box.hi.y - box.lo.y; /* */ /* 1360 */ return x < y ? x : y; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public void detectBump(BumpEventTemp b) /* */ { /* 1373 */ BoundBoxTemp box = getBoundBox(); /* 1374 */ if ((!box.isEmpty()) && (b.bound.overlaps(box))) { /* 1375 */ getBumpCalc(b).detectBump(b, this); /* */ } /* 1377 */ if (this.contents != null) { /* 1378 */ int i = this.contents.size(); /* 1379 */ do { WObject w = (WObject)this.contents.elementAt(i); /* 1380 */ if ((w.getBumpable()) && (b.source != w)) { /* 1381 */ w.detectBump(b); /* */ } /* 1378 */ i--; } while (i >= 0); /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public void premoveThrough(Point3Temp motion) /* */ { /* 1390 */ Point3Temp pos = getPosition(); /* */ /* 1392 */ moveThrough(Point3Temp.make(motion).times(this).minus(pos)); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ protected WObject changeRoom(Room newRoom, Transform invPos) /* */ { /* 1494 */ detach(); /* 1495 */ newRoom.add(this); /* 1496 */ makeIdentity(); /* 1497 */ pre(invPos); /* 1498 */ return this; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ public Object properties(int index, int offset, int mode, Object value) /* */ throws NoSuchPropertyException /* */ { /* 1509 */ Object ret = null; /* */ /* 1511 */ switch (index - offset) { /* */ case 0: /* 1513 */ if (mode == 0) { /* 1514 */ ret = /* 1515 */ PropAdder.make(new VectorProperty(this, index, "Contents")); /* 1516 */ } else if (mode == 1) { /* 1517 */ if (this.contents != null) /* 1518 */ ret = this.contents.clone(); /* 1519 */ } else if (mode == 4) { /* 1520 */ ((WObject)value).detach(); /* 1521 */ } else if (mode == 3) { /* 1522 */ add((WObject)value); /* 1523 */ } else if ((mode == 5) && ((value instanceof WObject)) && /* 1524 */ (!(value instanceof Room))) /* 1525 */ ret = value; /* 1526 */ break; /* */ case 1: /* 1528 */ if (mode == 0) { /* 1529 */ ret = PropAdder.make(new VectorProperty(this, index, /* 1530 */ "Event Handlers")); /* 1531 */ } else if (mode == 1) { /* 1532 */ if (this.eventHandlers != null) /* 1533 */ ret = this.eventHandlers.clone(); /* 1534 */ } else if (mode == 4) { /* 1535 */ removeHandler((SuperRoot)value); /* 1536 */ } else if (mode == 3) { /* 1537 */ addHandler((SuperRoot)value); /* 1538 */ } else if ((mode == 5) && ( /* 1539 */ ((value instanceof SwitchableBehavior)) || ((value instanceof Sensor)))) /* 1540 */ ret = value; /* 1541 */ break; /* */ case 2: /* 1543 */ if (mode == 0) { /* 1544 */ ret = /* 1545 */ PropAdder.make(new VectorProperty(this, index, "Actions")); /* 1546 */ } else if (mode == 1) { /* 1547 */ if (this.actions != null) /* 1548 */ ret = this.actions.clone(); /* 1549 */ } else if (mode == 4) { /* 1550 */ removeAction((Action)value); /* 1551 */ } else if (mode == 3) { /* 1552 */ addAction((Action)value); /* 1553 */ } else if ((mode == 5) && ((value instanceof Action))) /* 1554 */ ret = value; /* 1555 */ break; /* */ case 3: /* 1557 */ if (mode == 0) { /* 1558 */ ret = BooleanPropertyEditor.make(new Property(this, index, /* 1559 */ "Bumpable"), "No", "Yes"); /* 1560 */ } else if (mode == 1) { /* 1561 */ ret = new Boolean(getBumpable()); /* 1562 */ } else if (mode == 2) /* 1563 */ setBumpable(((Boolean)value).booleanValue()); /* 1564 */ break; /* */ case 4: /* 1566 */ if (mode == 0) { /* 1567 */ ret = BooleanPropertyEditor.make(new Property(this, index, /* 1568 */ "Visible"), "No", "Yes"); /* 1569 */ } else if (mode == 1) { /* 1570 */ ret = new Boolean(getVisible()); /* 1571 */ } else if (mode == 2) /* 1572 */ setVisible(((Boolean)value).booleanValue()); /* 1573 */ break; /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ case 5: /* 1586 */ if (mode == 0) { /* 1587 */ ret = IntegerPropertyEditor.make(new Property(this, index, /* 1588 */ "Sharing Mode (100 for help)", true)); /* 1589 */ } else if (mode == 1) { /* 1590 */ ret = new Integer(getSharerMode()); /* 1591 */ } else if (mode == 2) { /* 1592 */ int val = ((Integer)value).intValue(); /* 1593 */ if (((this instanceof Room)) && (val >= 0) && (val <= 5)) { /* 1594 */ Console.println("A Room's sharing mode\nmust be 2, and is\nautomatically set by the shaper."); /* */ /* */ } /* 1597 */ else if ((val != 0) && (val != 3) && (val != 5)) { /* 1598 */ Console.println("0 = default (chooses 2 or 3 for you)"); /* 1599 */ Console.println("2 = static (stored in .world)"); /* 1600 */ Console.println("3 = forwarded static"); /* 1601 */ Console.println("4 = dynamic (stored only on server)"); /* 1602 */ Console.println("5 = forwarded dynamic"); /* 1603 */ Console.println("Modes 2, and 4, are not generally\nsupported, except that mode 2\nis required for Rooms"); /* */ /* */ } /* 1606 */ else if ((val == 5) && (getSourceURL() == null)) { /* 1607 */ Console.println("Only WObjects read from files may be forwarded dynamic."); /* */ } /* */ else { /* 1610 */ getSharer().setMode(val); /* */ } } /* 1612 */ break; /* */ /* */ case 6: /* 1615 */ if (mode == 0) { /* 1616 */ ret = PropAdder.make(new VectorProperty(this, index, /* 1617 */ "Shared Attributes")); /* 1618 */ } else if (mode == 1) { /* 1619 */ if (this._sharer != null) { /* 1620 */ ret = this._sharer.getAttributesList(); /* */ } else /* 1622 */ ret = new Vector(); /* 1623 */ } else if (mode == 4) { /* 1624 */ removeShareableAttribute((Attribute)value); /* 1625 */ } else if (mode == 3) { /* 1626 */ addShareableAttribute((Attribute)value); /* 1627 */ } else if ((mode == 5) && ((value instanceof Attribute))) /* 1628 */ ret = value; /* 1629 */ break; /* */ case 7: /* 1631 */ if (mode == 0) { /* 1632 */ ret = StringPropertyEditor.make(new Property(this, index, /* 1633 */ "Tool Tip Text")); /* */ } /* 1635 */ else if (mode == 1) { /* 1636 */ ret = getToolTipText(); /* 1637 */ } else if (mode == 2) { /* 1638 */ setToolTipText((String)value); /* */ } /* 1640 */ break; /* */ case 8: /* 1642 */ if (mode == 0) { /* 1643 */ ret = BooleanPropertyEditor.make(new Property(this, index, /* 1644 */ "Mouse Change"), "No", "Yes"); /* 1645 */ } else if (mode == 1) { /* 1646 */ ret = new Boolean(getMouseOver()); /* 1647 */ } else if (mode == 2) { /* 1648 */ setMouseOver(((Boolean)value).booleanValue()); /* */ } /* 1650 */ break; /* */ /* */ default: /* 1653 */ ret = super.properties(index, offset + 9, mode, value); /* */ } /* */ /* 1656 */ return ret; /* */ } /* */ /* */ /* */ /* 1661 */ private static Object classCookie = new Object(); /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static void saveUnsharedWObjects(Saver s, Vector v) /* */ throws IOException /* */ { /* 1671 */ int length = 0; /* 1672 */ for (Enumeration en = v.elements(); en.hasMoreElements();) { /* 1673 */ WObject w = (WObject)en.nextElement(); /* 1674 */ if (((w instanceof Persister)) && (!(w instanceof NonPersister)) && /* 1675 */ (!w.isDynamic())) { /* 1676 */ length++; /* */ } /* */ } /* 1679 */ s.saveInt(length); /* 1680 */ for (Enumeration en = v.elements(); en.hasMoreElements();) { /* 1681 */ WObject w = (WObject)en.nextElement(); /* 1682 */ if (((w instanceof Persister)) && (!(w instanceof NonPersister)) && /* 1683 */ (!w.isDynamic())) { /* 1684 */ s.save(w); /* */ } /* */ } /* */ } /* */ /* */ public void saveState(Saver s) throws IOException { /* 1690 */ s.saveVersion(10, classCookie); /* 1691 */ super.saveState(s); /* */ /* 1693 */ s.saveInt(this.flags & 0xFF7F); /* */ /* */ /* 1696 */ if (this.contents == null) { /* 1697 */ s.saveBoolean(false); /* */ } else { /* 1699 */ s.saveBoolean(true); /* 1700 */ saveUnsharedWObjects(s, this.contents); /* */ } /* */ /* 1703 */ s.saveVectorMaybeNull(this.eventHandlers); /* 1704 */ s.saveVectorMaybeNull(this.actions); /* 1705 */ s.saveMaybeNull(this.bumpCalc); /* */ /* */ /* 1708 */ if ((this._sharer != null) && (this._sharer.isEmpty())) { /* 1709 */ s.saveMaybeNull(null); /* */ } else { /* 1711 */ s.saveMaybeNull(this._sharer); /* */ } /* 1713 */ s.saveString(getToolTipText()); /* 1714 */ s.saveBoolean(getMouseOver()); /* */ } /* */ /* */ public void restoreState(Restorer r) throws IOException, TooNewException /* */ { /* 1719 */ restoreWObjectState(r); /* */ } /* */ /* */ public void restoreWObjectState(Restorer r) throws IOException, TooNewException /* */ { /* 1724 */ Vector newContents = null; /* 1725 */ Vector newActions = null; /* 1726 */ Vector newHandlers = null; /* */ /* */ /* */ /* 1730 */ int vers = r.restoreVersion(classCookie); /* 1731 */ switch (vers) { /* */ case 0: /* 1733 */ r.setOldFlag(); /* 1734 */ super.restoreState(r); /* */ /* 1736 */ this.flags = r.restoreInt(); /* 1737 */ r.restoreMaybeNull(); /* 1738 */ this.flags |= 0x4000; /* */ /* 1740 */ newContents = r.restoreVectorMaybeNull(); /* 1741 */ newHandlers = r.restoreVectorMaybeNull(); /* 1742 */ newActions = new Vector(); /* 1743 */ break; /* */ case 1: /* 1745 */ r.setOldFlag(); /* 1746 */ super.restoreState(r); /* */ /* 1748 */ this.flags = r.restoreInt(); /* 1749 */ r.restoreMaybeNull(); /* 1750 */ this.flags |= 0x4000; /* */ /* 1752 */ newContents = r.restoreVectorMaybeNull(); /* 1753 */ newHandlers = r.restoreVectorMaybeNull(); /* 1754 */ newActions = r.restoreVectorMaybeNull(); /* 1755 */ break; /* */ case 2: /* 1757 */ r.setOldFlag(); /* 1758 */ super.restoreState(r); /* 1759 */ this.flags = (r.restoreInt() | 0x4000); /* 1760 */ newContents = r.restoreVectorMaybeNull(); /* 1761 */ newHandlers = r.restoreVectorMaybeNull(); /* 1762 */ newActions = r.restoreVectorMaybeNull(); /* 1763 */ break; /* */ case 3: /* 1765 */ super.restoreState(r); /* 1766 */ this.flags = (r.restoreInt() | 0x4000); /* 1767 */ newContents = r.restoreVectorMaybeNull(); /* 1768 */ newHandlers = r.restoreVectorMaybeNull(); /* 1769 */ newActions = r.restoreVectorMaybeNull(); /* 1770 */ r.restore(); /* 1771 */ break; /* */ case 4: /* 1773 */ super.restoreState(r); /* 1774 */ this.flags = (r.restoreInt() | 0x4000); /* 1775 */ newContents = r.restoreVectorMaybeNull(); /* 1776 */ newHandlers = r.restoreVectorMaybeNull(); /* 1777 */ newActions = r.restoreVectorMaybeNull(); /* 1778 */ r.restore(); /* 1779 */ this._sharer = ((Sharer)r.restoreMaybeNull()); /* 1780 */ break; /* */ case 5: /* */ case 7: /* */ case 8: /* 1784 */ super.restoreState(r); /* 1785 */ this.flags = (r.restoreInt() | 0x4000); /* 1786 */ newContents = r.restoreVectorMaybeNull(); /* 1787 */ newHandlers = r.restoreVectorMaybeNull(); /* 1788 */ newActions = r.restoreVectorMaybeNull(); /* 1789 */ setBumpCalc((BumpCalc)r.restoreMaybeNull()); /* 1790 */ this._sharer = ((Sharer)r.restoreMaybeNull()); /* 1791 */ break; /* */ case 9: /* 1793 */ super.restoreState(r); /* 1794 */ this.flags = (r.restoreInt() | 0x4000); /* 1795 */ newContents = r.restoreVectorMaybeNull(); /* 1796 */ newHandlers = r.restoreVectorMaybeNull(); /* 1797 */ newActions = r.restoreVectorMaybeNull(); /* 1798 */ setBumpCalc((BumpCalc)r.restoreMaybeNull()); /* 1799 */ this._sharer = ((Sharer)r.restoreMaybeNull()); /* 1800 */ setToolTipText(r.restoreString()); /* 1801 */ break; /* */ case 10: /* */ try { /* 1804 */ super.restoreState(r); /* 1805 */ this.flags = (r.restoreInt() | 0x4000); /* 1806 */ newContents = r.restoreVectorMaybeNull(); /* 1807 */ newHandlers = r.restoreVectorMaybeNull(); /* 1808 */ newActions = r.restoreVectorMaybeNull(); /* 1809 */ setBumpCalc((BumpCalc)r.restoreMaybeNull()); /* 1810 */ this._sharer = ((Sharer)r.restoreMaybeNull()); /* */ /* */ /* 1813 */ setToolTipText(null); /* 1814 */ if (!r.restoreBoolean()) { /* 1815 */ short len = r.restoreShort(); /* 1816 */ for (int i = 0; i < len; i++) { /* 1817 */ r.restoreByte(); /* */ } /* */ } /* */ /* 1821 */ setMouseOver(r.restoreBoolean()); /* */ } catch (Exception ex) { /* 1823 */ Debug.LogDebug(ex.toString()); /* 1824 */ Debug.LogDebug(ex.getMessage()); /* 1825 */ ex.printStackTrace(); /* */ /* */ /* 1828 */ Debug.LogDebug("error: " + toString()); /* 1829 */ Debug.LogDebug("location: " + ((DataInputStream)r.is).available()); /* 1830 */ Class aClass = getClass(); /* 1831 */ Field[] fields = aClass.getFields(); /* */ Field[] arrayOfField1; /* 1833 */ int j = (arrayOfField1 = fields).length; for (int i = 0; i < j; i++) { Field field = arrayOfField1[i]; /* */ try { /* 1835 */ Debug.LogDebug(field.toString()); /* 1836 */ if (field.get(this) != null) { /* 1837 */ Debug.LogDebug(" : " + field.get(this).toString()); /* */ } /* */ } /* */ catch (IllegalArgumentException e) { /* 1841 */ e.printStackTrace(); /* */ } /* */ catch (IllegalAccessException e) { /* 1844 */ e.printStackTrace(); /* */ } /* */ } /* */ /* */ try /* */ { /* 1850 */ throw ex; /* */ } /* */ catch (Exception e) { /* 1853 */ e.printStackTrace(); /* */ } /* */ } /* */ /* */ case 6: /* 1858 */ super.restoreState(r); /* 1859 */ this.flags = (r.restoreInt() | 0x4000); /* 1860 */ newContents = r.restoreVectorMaybeNull(); /* 1861 */ newHandlers = r.restoreVectorMaybeNull(); /* 1862 */ newActions = r.restoreVectorMaybeNull(); /* 1863 */ setBumpCalc((BumpCalc)r.restoreMaybeNull()); /* 1864 */ this._sharer = ((Sharer)r.restoreMaybeNull()); /* 1865 */ r.restoreString(); /* 1866 */ break; /* */ default: /* 1868 */ throw new TooNewException(); /* */ } /* */ /* 1871 */ if (vers < 8) { /* 1872 */ this.flags &= 0xFFFFFFBF; /* */ } /* 1874 */ if (newContents != null) { /* 1875 */ for (int i = 0; i < newContents.size(); i++) /* 1876 */ add((WObject)newContents.elementAt(i)); /* */ } /* 1878 */ if (newActions != null) { /* 1879 */ for (int i = 0; i < newActions.size(); i++) /* 1880 */ addAction((Action)newActions.elementAt(i)); /* */ } /* 1882 */ if (newHandlers != null) { /* 1883 */ for (int i = 0; i < newHandlers.size(); i++) /* 1884 */ addHandler((SuperRoot)newHandlers.elementAt(i)); /* */ } /* 1886 */ if (this._sharer != null) /* 1887 */ super.add(this._sharer); /* */ } /* */ /* 1890 */ public static boolean replaceWithMontyDoor = IniFile.gamma().getIniInt( /* 1891 */ "replaceWithMontyDoor", 0) != 0; /* */ /* */ public void postRestore(int version) /* */ { /* 1895 */ super.postRestore(version); /* */ /* */ /* */ /* 1899 */ if (version < 7) { /* 1900 */ for (Enumeration en = getHandlers(); en.hasMoreElements();) { /* 1901 */ SuperRoot h = (SuperRoot)en.nextElement(); /* 1902 */ if (h.getOwner() != this) { /* 1903 */ SuperRoot newH = (SuperRoot)h.clone(); /* */ /* */ /* 1906 */ this.eventHandlers.removeElement(h); /* 1907 */ if (this.eventHandlers.size() == 0) /* 1908 */ this.eventHandlers = null; /* 1909 */ if ((this.clumpID != 0) && ((h instanceof FrameHandler))) { /* 1910 */ getRoomFromClump().removeFrameHandler((FrameHandler)h, /* 1911 */ this); /* */ } /* */ /* 1914 */ addHandler(newH); /* */ } /* */ } /* */ } /* */ /* */ /* */ /* 1921 */ if ((replaceWithMontyDoor) && (getClass() == WObject.class)) { /* 1922 */ replaceMonty(); /* */ } /* 1924 */ if (this._sharer != null) { /* 1925 */ this._sharer.ownerPostRestore(); /* */ } /* 1927 */ this.flags &= 0xBFFF; /* 1928 */ if (isDynamic()) { /* 1929 */ getSharer(); /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ private void replaceMonty() /* */ { /* 1951 */ if ((this.actions == null) || (this.actions.size() != 3) || /* 1952 */ (!(getOwner() instanceof WObject))) { /* 1953 */ return; /* */ } /* 1955 */ int stage = 0; /* */ try { /* 1957 */ if (!(this.actions.elementAt(0) instanceof SetURLAction)) /* 1958 */ return; /* 1959 */ SetURLAction sua = (SetURLAction)this.actions.elementAt(0); /* 1960 */ if ((!sua._propName.equals("File")) || (sua._roomName == null)) /* 1961 */ return; /* 1962 */ stage = 1; /* */ /* 1964 */ Object db = this.actions.elementAt(1); /* 1965 */ Object cancel = this.actions.elementAt(2); /* 1966 */ if ((!(db instanceof DialogAction)) || /* 1967 */ (cancel.getClass() != db.getClass()) || /* 1968 */ (((DialogAction)cancel).cancelOnly == ((DialogAction)db).cancelOnly)) /* 1969 */ return; /* 1970 */ if (((DialogAction)db).cancelOnly) /* 1971 */ db = cancel; /* 1972 */ stage = 2; /* */ /* 1974 */ if (!(this.actions.elementAt(0) instanceof SetURLAction)) /* 1975 */ return; /* 1976 */ stage = 3; /* */ /* 1978 */ if ((this.contents == null) || (this.contents.size() < 2) || (this.contents.size() > 3) || /* 1979 */ (((WObject)this.contents.elementAt(0)).getClass() != Rect.class) || /* 1980 */ (((WObject)this.contents.elementAt(1)).getClass() != Portal.class)) /* 1981 */ return; /* 1982 */ stage = 4; /* */ /* 1984 */ boolean isTwoPart = this.contents.size() == 3; /* */ /* 1986 */ Rect top = (Rect)this.contents.elementAt(0); /* 1987 */ Portal port = (Portal)this.contents.elementAt(1); /* 1988 */ Rect bottom = null; /* */ /* 1990 */ if (isTwoPart) { /* 1991 */ if (((WObject)this.contents.elementAt(2)).getClass() != Rect.class) /* 1992 */ return; /* 1993 */ bottom = (Rect)this.contents.elementAt(2); /* */ } /* 1995 */ stage = 5; /* */ /* 1997 */ if ((top.eventHandlers == null) || /* 1998 */ (top.eventHandlers.size() != 1) || /* 1999 */ (top.eventHandlers.elementAt(0).getClass() != ClickSensor.class)) /* 2000 */ return; /* 2001 */ stage = 6; /* */ /* 2003 */ ClickSensor cs = (ClickSensor)top.eventHandlers.elementAt(0); /* 2004 */ if (cs.countActions() != 1) /* 2005 */ return; /* 2006 */ stage = 7; /* */ /* 2008 */ if ((top.actions == null) || /* 2009 */ (top.actions.size() != 3) || /* 2010 */ (((Action)top.actions.elementAt(2)).getClass() != SequenceAction.class)) /* 2011 */ return; /* 2012 */ stage = 8; /* */ /* 2014 */ SequenceAction seq = (SequenceAction)top.actions.elementAt(2); /* 2015 */ if (seq.actions != null) { /* 2016 */ if (seq.actions.size() == (isTwoPart ? 9 : 7)) {} /* 2017 */ } else return; /* 2018 */ stage = 9; /* */ /* 2020 */ if ((port.actions == null) || (port.actions.size() != 2) || /* 2021 */ (port._farSideRoomName == null) || /* 2022 */ (port._farSidePortalName == null)) /* 2023 */ return; /* 2024 */ stage = 10; /* */ /* 2026 */ URL texture = (isTwoPart ? bottom : top).getMaterial().textureName; /* 2027 */ if (texture == null) /* 2028 */ return; /* 2029 */ stage = 11; /* */ /* 2031 */ MontyDoor md = new MontyDoor(); /* */ /* 2033 */ md.setsAvatar = (db instanceof SelectAvatarAction); /* 2034 */ if (!md.setsAvatar) { /* 2035 */ if (!(db instanceof SendURLAction)) { /* 2036 */ return; /* */ } /* 2038 */ md.description = ((SendURLAction)db).description; /* 2039 */ md.url = ((SendURLAction)db).destination; /* */ } else { /* 2041 */ md.url = ((SelectAvatarAction)db).url; } /* 2042 */ stage = 12; /* */ /* 2044 */ md.viewURL = sua._value; /* 2045 */ md.viewName = sua._targetName; /* 2046 */ md.setFarSideInfo(null, sua._roomName, port._farSidePortalName); /* */ /* 2048 */ md.post(port); /* 2049 */ md.post(this); /* */ /* 2051 */ String texName = texture.getInternal(); /* 2052 */ if (isTwoPart) { /* 2053 */ if (texName.endsWith("b.cmp")) { /* 2054 */ int len = texName.length(); /* 2055 */ texName = texName.substring(0, len - 5) + "m2v*.mov"; /* */ } else { /* 2057 */ Console.println("Texture: " + texName); /* 2058 */ return; /* */ } /* */ } /* 2061 */ stage = 13; /* 2062 */ md.setMaterial(new Material(URL.make(texName))); /* */ /* 2064 */ ((WObject)getOwner()).add(md); /* 2065 */ detach(); /* 2066 */ port.detach(); /* */ /* 2068 */ md.reset(); /* 2069 */ stage = 100; /* */ } finally { /* 2071 */ if (stage != 100) { /* 2072 */ Console.println( /* 2073 */ "Failed MontyDoor conversion of " + getName() + " in stage " + stage + ".\n"); /* */ } /* */ } /* 2071 */ if (stage != 100) { /* 2072 */ Console.println( /* 2073 */ "Failed MontyDoor conversion of " + getName() + " in stage " + stage + ".\n"); /* */ } /* */ } /* */ /* */ /* */ /* */ public String toString() /* */ { /* 2081 */ String base = getName(); /* */ /* 2083 */ if (!isActive()) { /* 2084 */ base = base + "(inactive)"; /* */ } /* 2086 */ base = base + toTransformSubstring(); /* */ /* 2088 */ if (this.contents == null) { /* 2089 */ return base; /* */ } /* 2091 */ return base + this.contents.toString(); /* */ } /* */ /* */ public static String getSaveExtension() /* */ { /* 2096 */ return "wob"; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public WObject getServed() /* */ { /* 2107 */ int mode = getSharerMode(); /* 2108 */ if (mode == 0) { /* 2109 */ Sharer s = getSharer(); /* 2110 */ if (s != null) { /* 2111 */ mode = s.getMode(); /* */ } /* */ } /* */ /* 2115 */ if ((mode & 0x1) == 0) /* */ { /* */ /* */ /* 2119 */ return this; /* */ } /* */ /* 2122 */ SuperRoot r = getOwner(); /* 2123 */ if ((r != null) && ((r instanceof WObject))) { /* 2124 */ return ((WObject)r).getServed(); /* */ } /* 2126 */ return null; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ public void prerender(Camera cam) /* */ { /* 2136 */ WorldScriptManager.getInstance().onPrerender(this, cam); /* */ } /* */ /* */ /* */ /* */ /* */ public WorldServer getServer() /* */ { /* 2144 */ WObject wo = getServed(); /* */ NetworkObject no; /* 2146 */ NetworkObject no; if ((wo instanceof Room)) { /* 2147 */ no = ((Room)wo).getNetworkRoom(); /* */ } else { /* 2149 */ no = (NetworkObject)wo; /* */ } /* */ /* 2152 */ if (no == null) { /* 2153 */ return null; /* */ } /* */ /* 2156 */ assert (no != this); /* */ /* 2158 */ return no.getServer(); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* 2173 */ private Sharer _sharer = null; /* */ /* */ /* */ public VisiAttribute _visibilityAttribute; /* */ /* */ /* */ public TransAttribute _transformAttribute; /* */ /* */ public BumpAttribute _bumpableAttribute; /* */ /* */ /* */ public Enumeration getAttributes() /* */ { /* 2186 */ return getSharer().getAttributes(); /* */ } /* */ /* */ public Sharer getSharer() { /* 2190 */ if (this._sharer == null) /* */ { /* 2192 */ assert ((this.flags & 0x4000) == 0); /* */ /* 2194 */ this._sharer = new Sharer(); /* 2195 */ super.add(this._sharer); /* */ } /* 2197 */ return this._sharer; /* */ } /* */ /* */ public boolean hasSharer() { /* 2201 */ return this._sharer != null; /* */ } /* */ /* */ public Attribute getAttribute(int attrID) { /* 2205 */ return getSharer().getAttribute(attrID); /* */ } /* */ /* */ public int addAttribute(Attribute a) { /* 2209 */ return getSharer().addAttribute(a); /* */ } /* */ /* */ public int addShareableAttribute(Attribute a) /* */ { /* 2214 */ return addAttribute(a); /* */ } /* */ /* */ public void removeAttribute(Attribute a) { /* 2218 */ getSharer().removeAttribute(a); /* */ } /* */ /* */ public void removeShareableAttribute(Attribute a) /* */ { /* 2223 */ removeAttribute(a); /* */ } /* */ /* */ public boolean isShared() { /* 2227 */ return this._sharer != null; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ public boolean acceptsLeftClicks() /* */ { /* 2237 */ return getMouseOver(); /* */ } /* */ /* */ /* */ public void releaseAuxilaryData() /* */ { /* 2243 */ if (this._sharer != null) { /* 2244 */ this._sharer.releaseAuxilaryData(); /* */ } /* */ } /* */ /* */ public static native void nativeInit(); /* */ /* */ native void createClump(); /* */ /* */ public native boolean nativeInCamSpace(Camera paramCamera, Point3Temp paramPoint3Temp); /* */ /* */ protected native void voidClump(); /* */ /* */ protected native int extractClump(); /* */ /* */ native void addChildToClump(WObject paramWObject); /* */ /* */ native void setClumpMatrix(); /* */ /* */ private native void initClumpData(); /* */ /* */ native void doneWithEditing(); /* */ /* */ native int getNumVerts(); /* */ /* */ private native Transform getObjectToWorldMatrix(Transform paramTransform); /* */ /* */ protected native Transform getJointedObjectToWorldMatrix(Transform paramTransform); /* */ /* */ public native void updateHighlight(); /* */ /* */ public native void getClumpBBox(Point3Temp paramPoint3Temp1, Point3Temp paramPoint3Temp2); /* */ /* */ protected native void updateVisible(); /* */ /* */ public native Room getRoomFromClump(); /* */ /* */ public native boolean inRoomContents(); /* */ /* */ public native float getClumpMinXYExtent(); /* */ /* */ /* Error */ /* */ public void moveThrough(Point3Temp motion) /* */ { /* */ // Byte code: /* */ // 0: aload_0 /* */ // 1: invokevirtual 414 NET/worlds/scape/WObject:getRoom ()LNET/worlds/scape/Room; /* */ // 4: ifnull +10 -> 14 /* */ // 7: aload_0 /* */ // 8: invokevirtual 705 NET/worlds/scape/WObject:getBumpable ()Z /* */ // 11: ifne +10 -> 21 /* */ // 14: aload_0 /* */ // 15: aload_1 /* */ // 16: invokevirtual 726 NET/worlds/scape/WObject:moveBy (LNET/worlds/scape/Point3Temp;)LNET/worlds/scape/Transform; /* */ // 19: pop /* */ // 20: return /* */ // 21: aload_0 /* */ // 22: invokevirtual 414 NET/worlds/scape/WObject:getRoom ()LNET/worlds/scape/Room; /* */ // 25: invokevirtual 730 NET/worlds/scape/Room:hasClump ()Z /* */ // 28: ifne +4 -> 32 /* */ // 31: return /* */ // 32: invokestatic 731 NET/worlds/core/Std:getRealTime ()I /* */ // 35: istore_2 /* */ // 36: aload_0 /* */ // 37: astore_3 /* */ // 38: iconst_4 /* */ // 39: istore 4 /* */ // 41: goto +293 -> 334 /* */ // 44: iload_2 /* */ // 45: aload_3 /* */ // 46: aload_1 /* */ // 47: invokestatic 736 NET/worlds/scape/BumpEventTemp:make (ILNET/worlds/scape/WObject;LNET/worlds/scape/Point3Temp;)LNET/worlds/scape/BumpEventTemp; /* */ // 50: astore 5 /* */ // 52: aload 5 /* */ // 54: getfield 739 NET/worlds/scape/BumpEventTemp:target LNET/worlds/scape/WObject; /* */ // 57: ifnonnull +21 -> 78 /* */ // 60: aload_3 /* */ // 61: aload 5 /* */ // 63: getfield 742 NET/worlds/scape/BumpEventTemp:fullPath LNET/worlds/scape/Point3Temp; /* */ // 66: invokevirtual 726 NET/worlds/scape/WObject:moveBy (LNET/worlds/scape/Point3Temp;)LNET/worlds/scape/Transform; /* */ // 69: pop /* */ // 70: aload 5 /* */ // 72: invokevirtual 745 NET/worlds/scape/BumpEventTemp:recycle ()V /* */ // 75: goto +264 -> 339 /* */ // 78: aload 5 /* */ // 80: aload_3 /* */ // 81: invokevirtual 414 NET/worlds/scape/WObject:getRoom ()LNET/worlds/scape/Room; /* */ // 84: putfield 746 NET/worlds/scape/BumpEventTemp:postBumpRoom LNET/worlds/scape/Room; /* */ // 87: aload 5 /* */ // 89: aload_3 /* */ // 90: invokevirtual 450 NET/worlds/scape/WObject:getObjectToWorldMatrix ()LNET/worlds/scape/Transform; /* */ // 93: aload 5 /* */ // 95: getfield 749 NET/worlds/scape/BumpEventTemp:path LNET/worlds/scape/Point3Temp; /* */ // 98: invokevirtual 752 NET/worlds/scape/Transform:moveBy (LNET/worlds/scape/Point3Temp;)LNET/worlds/scape/Transform; /* */ // 101: putfield 753 NET/worlds/scape/BumpEventTemp:postBumpPosition LNET/worlds/scape/Transform; /* */ // 104: aload 5 /* */ // 106: aload 5 /* */ // 108: getfield 742 NET/worlds/scape/BumpEventTemp:fullPath LNET/worlds/scape/Point3Temp; /* */ // 111: invokestatic 715 NET/worlds/scape/Point3Temp:make (LNET/worlds/scape/Point3Temp;)LNET/worlds/scape/Point3Temp; /* */ // 114: fconst_1 /* */ // 115: aload 5 /* */ // 117: getfield 756 NET/worlds/scape/BumpEventTemp:fraction F /* */ // 120: fsub /* */ // 121: invokevirtual 759 NET/worlds/scape/Point3Temp:times (F)LNET/worlds/scape/Point3Temp; /* */ // 124: putfield 762 NET/worlds/scape/BumpEventTemp:postBumpPath LNET/worlds/scape/Point3Temp; /* */ // 127: aload_3 /* */ // 128: invokevirtual 447 NET/worlds/scape/WObject:getTransform ()LNET/worlds/scape/Transform; /* */ // 131: astore 6 /* */ // 133: aload_0 /* */ // 134: invokevirtual 414 NET/worlds/scape/WObject:getRoom ()LNET/worlds/scape/Room; /* */ // 137: astore 7 /* */ // 139: aload 5 /* */ // 141: getfield 739 NET/worlds/scape/BumpEventTemp:target LNET/worlds/scape/WObject; /* */ // 144: aload 5 /* */ // 146: invokevirtual 554 NET/worlds/scape/WObject:deliver (LNET/worlds/scape/Event;)Z /* */ // 149: pop /* */ // 150: aload_3 /* */ // 151: aload 5 /* */ // 153: invokevirtual 554 NET/worlds/scape/WObject:deliver (LNET/worlds/scape/Event;)Z /* */ // 156: pop /* */ // 157: aload_3 /* */ // 158: aload 6 /* */ // 160: invokevirtual 765 NET/worlds/scape/WObject:isTransformEqual (LNET/worlds/scape/Transform;)Z /* */ // 163: ifeq +12 -> 175 /* */ // 166: aload 7 /* */ // 168: aload_0 /* */ // 169: invokevirtual 414 NET/worlds/scape/WObject:getRoom ()LNET/worlds/scape/Room; /* */ // 172: if_acmpeq +26 -> 198 /* */ // 175: aload 6 /* */ // 177: invokevirtual 455 NET/worlds/scape/Transform:recycle ()V /* */ // 180: aload 5 /* */ // 182: invokevirtual 745 NET/worlds/scape/BumpEventTemp:recycle ()V /* */ // 185: goto +154 -> 339 /* */ // 188: astore 8 /* */ // 190: aload 6 /* */ // 192: invokevirtual 455 NET/worlds/scape/Transform:recycle ()V /* */ // 195: aload 8 /* */ // 197: athrow /* */ // 198: aload 6 /* */ // 200: invokevirtual 455 NET/worlds/scape/Transform:recycle ()V /* */ // 203: aload 5 /* */ // 205: getfield 746 NET/worlds/scape/BumpEventTemp:postBumpRoom LNET/worlds/scape/Room; /* */ // 208: invokevirtual 769 NET/worlds/scape/Room:getObjectToWorldMatrix ()LNET/worlds/scape/Transform; /* */ // 211: astore 7 /* */ // 213: aload 7 /* */ // 215: invokevirtual 770 NET/worlds/scape/Transform:invert ()LNET/worlds/scape/Transform; /* */ // 218: pop /* */ // 219: aload_3 /* */ // 220: invokevirtual 414 NET/worlds/scape/WObject:getRoom ()LNET/worlds/scape/Room; /* */ // 223: aload 5 /* */ // 225: getfield 746 NET/worlds/scape/BumpEventTemp:postBumpRoom LNET/worlds/scape/Room; /* */ // 228: if_acmpeq +38 -> 266 /* */ // 231: aload 7 /* */ // 233: aload 5 /* */ // 235: getfield 753 NET/worlds/scape/BumpEventTemp:postBumpPosition LNET/worlds/scape/Transform; /* */ // 238: invokevirtual 773 NET/worlds/scape/Transform:pre (LNET/worlds/scape/Transform;)LNET/worlds/scape/Transform; /* */ // 241: pop /* */ // 242: aload_3 /* */ // 243: aload 5 /* */ // 245: getfield 746 NET/worlds/scape/BumpEventTemp:postBumpRoom LNET/worlds/scape/Room; /* */ // 248: aload 7 /* */ // 250: invokevirtual 776 NET/worlds/scape/WObject:changeRoom (LNET/worlds/scape/Room;LNET/worlds/scape/Transform;)LNET/worlds/scape/WObject; /* */ // 253: astore_3 /* */ // 254: aload_3 /* */ // 255: ifnonnull +33 -> 288 /* */ // 258: aload 5 /* */ // 260: invokevirtual 745 NET/worlds/scape/BumpEventTemp:recycle ()V /* */ // 263: goto +76 -> 339 /* */ // 266: aload_3 /* */ // 267: invokevirtual 780 NET/worlds/scape/WObject:makeIdentity ()LNET/worlds/scape/Transform; /* */ // 270: pop /* */ // 271: aload_3 /* */ // 272: aload 7 /* */ // 274: invokevirtual 783 NET/worlds/scape/WObject:pre (LNET/worlds/scape/Transform;)LNET/worlds/scape/Transform; /* */ // 277: pop /* */ // 278: aload_3 /* */ // 279: aload 5 /* */ // 281: getfield 753 NET/worlds/scape/BumpEventTemp:postBumpPosition LNET/worlds/scape/Transform; /* */ // 284: invokevirtual 783 NET/worlds/scape/WObject:pre (LNET/worlds/scape/Transform;)LNET/worlds/scape/Transform; /* */ // 287: pop /* */ // 288: aload 5 /* */ // 290: getfield 753 NET/worlds/scape/BumpEventTemp:postBumpPosition LNET/worlds/scape/Transform; /* */ // 293: invokevirtual 455 NET/worlds/scape/Transform:recycle ()V /* */ // 296: aload 5 /* */ // 298: aconst_null /* */ // 299: putfield 753 NET/worlds/scape/BumpEventTemp:postBumpPosition LNET/worlds/scape/Transform; /* */ // 302: aload 7 /* */ // 304: invokevirtual 455 NET/worlds/scape/Transform:recycle ()V /* */ // 307: aload 5 /* */ // 309: getfield 762 NET/worlds/scape/BumpEventTemp:postBumpPath LNET/worlds/scape/Point3Temp; /* */ // 312: astore_1 /* */ // 313: goto +13 -> 326 /* */ // 316: astore 9 /* */ // 318: aload 5 /* */ // 320: invokevirtual 745 NET/worlds/scape/BumpEventTemp:recycle ()V /* */ // 323: aload 9 /* */ // 325: athrow /* */ // 326: aload 5 /* */ // 328: invokevirtual 745 NET/worlds/scape/BumpEventTemp:recycle ()V /* */ // 331: iinc 4 -1 /* */ // 334: iload 4 /* */ // 336: ifgt -292 -> 44 /* */ // 339: return /* */ // Line number table: /* */ // Java source line #1405 -> byte code offset #0 /* */ // Java source line #1406 -> byte code offset #14 /* */ // Java source line #1407 -> byte code offset #20 /* */ // Java source line #1412 -> byte code offset #21 /* */ // Java source line #1413 -> byte code offset #31 /* */ // Java source line #1415 -> byte code offset #32 /* */ // Java source line #1419 -> byte code offset #36 /* */ // Java source line #1421 -> byte code offset #38 /* */ // Java source line #1425 -> byte code offset #44 /* */ // Java source line #1428 -> byte code offset #52 /* */ // Java source line #1429 -> byte code offset #60 /* */ // Java source line #1480 -> byte code offset #70 /* */ // Java source line #1430 -> byte code offset #75 /* */ // Java source line #1433 -> byte code offset #78 /* */ // Java source line #1434 -> byte code offset #87 /* */ // Java source line #1435 -> byte code offset #93 /* */ // Java source line #1434 -> byte code offset #98 /* */ // Java source line #1436 -> byte code offset #104 /* */ // Java source line #1437 -> byte code offset #114 /* */ // Java source line #1436 -> byte code offset #121 /* */ // Java source line #1439 -> byte code offset #127 /* */ // Java source line #1441 -> byte code offset #133 /* */ // Java source line #1443 -> byte code offset #139 /* */ // Java source line #1444 -> byte code offset #150 /* */ // Java source line #1447 -> byte code offset #157 /* */ // Java source line #1450 -> byte code offset #175 /* */ // Java source line #1480 -> byte code offset #180 /* */ // Java source line #1448 -> byte code offset #185 /* */ // Java source line #1449 -> byte code offset #188 /* */ // Java source line #1450 -> byte code offset #190 /* */ // Java source line #1451 -> byte code offset #195 /* */ // Java source line #1450 -> byte code offset #198 /* */ // Java source line #1458 -> byte code offset #203 /* */ // Java source line #1459 -> byte code offset #213 /* */ // Java source line #1460 -> byte code offset #219 /* */ // Java source line #1461 -> byte code offset #231 /* */ // Java source line #1462 -> byte code offset #242 /* */ // Java source line #1465 -> byte code offset #254 /* */ // Java source line #1480 -> byte code offset #258 /* */ // Java source line #1466 -> byte code offset #263 /* */ // Java source line #1468 -> byte code offset #266 /* */ // Java source line #1469 -> byte code offset #271 /* */ // Java source line #1470 -> byte code offset #278 /* */ // Java source line #1472 -> byte code offset #288 /* */ // Java source line #1473 -> byte code offset #296 /* */ // Java source line #1474 -> byte code offset #302 /* */ // Java source line #1477 -> byte code offset #307 /* */ // Java source line #1479 -> byte code offset #313 /* */ // Java source line #1480 -> byte code offset #318 /* */ // Java source line #1481 -> byte code offset #323 /* */ // Java source line #1480 -> byte code offset #326 /* */ // Java source line #1421 -> byte code offset #331 /* */ // Java source line #1483 -> byte code offset #339 /* */ // Local variable table: /* */ // start length slot name signature /* */ // 0 340 0 this WObject /* */ // 0 340 1 motion Point3Temp /* */ // 35 10 2 now int /* */ // 37 242 3 me WObject /* */ // 39 296 4 loopCount int /* */ // 50 277 5 be BumpEventTemp /* */ // 131 68 6 t Transform /* */ // 137 30 7 r Room /* */ // 211 92 7 invPos Transform /* */ // 188 8 8 localObject1 Object /* */ // 316 8 9 localObject2 Object /* */ // Exception table: /* */ // from to target type /* */ // 133 175 188 finally /* */ // 52 70 316 finally /* */ // 78 180 316 finally /* */ // 188 258 316 finally /* */ // 266 316 316 finally /* */ } /* */ /* */ public void notifyRegister(int wid) {} /* */ } /* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\scape\WObject.class * Java compiler version: 6 (50.0) * JD-Core Version: 0.7.1 */