summaryrefslogtreecommitdiff
path: root/NET/worlds/scape/WObject.java
diff options
context:
space:
mode:
authorFuwn <[email protected]>2021-05-03 16:38:41 -0700
committerFuwn <[email protected]>2021-05-03 16:38:41 -0700
commite1e781bb2135ef78592226f1a3eaba4925702f1f (patch)
tree8a5b590463ed413e1c6eabb719130e701b95ca63 /NET/worlds/scape/WObject.java
downloadworlds.jar-main.tar.xz
worlds.jar-main.zip
:star:HEADmain
Diffstat (limited to 'NET/worlds/scape/WObject.java')
-rw-r--r--NET/worlds/scape/WObject.java3633
1 files changed, 3633 insertions, 0 deletions
diff --git a/NET/worlds/scape/WObject.java b/NET/worlds/scape/WObject.java
new file mode 100644
index 0000000..7e29700
--- /dev/null
+++ b/NET/worlds/scape/WObject.java
@@ -0,0 +1,3633 @@
+/* */ 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<WObject> 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<WObject> 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<Object> 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<Object> 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<Object> 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<Object> 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<Action> actions = null;
+/* */
+/* */
+/* */
+/* */ public Enumeration<Action> 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<WObject> v)
+/* */ throws IOException
+/* */ {
+/* 1671 */ int length = 0;
+/* 1672 */ for (Enumeration<WObject> 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<WObject> 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<Object> newContents = null;
+/* 1725 */ Vector<Object> newActions = null;
+/* 1726 */ Vector<Object> 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<? extends WObject> 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<Object> 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<Attribute> 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
+ */ \ No newline at end of file