 import com.threerings.crowd.chat.data.ChatCodes;
 import com.threerings.crowd.client.LocationAdapter;
 import com.threerings.crowd.client.LocationDirector;
+import com.threerings.crowd.data.BodyObject;
 import com.threerings.crowd.data.PlaceObject;
 
 import com.threerings.whirled.client.SceneDirector;
 import com.threerings.whirled.data.SceneModel;
-import com.threerings.whirled.data.ScenedBodyObject;
 import com.threerings.whirled.util.WhirledContext;
 
 import com.threerings.whirled.spot.data.ClusteredBodyObject;
 import com.threerings.whirled.spot.data.Location;
 import com.threerings.whirled.spot.data.Portal;
+import com.threerings.whirled.spot.data.SceneLocation;
 import com.threerings.whirled.spot.data.SpotCodes;
 import com.threerings.whirled.spot.data.SpotScene;
+import com.threerings.whirled.spot.data.SpotSceneObject;
 
 /**
  * Extends the standard scene director with facilities to move between locations within a scene.

        _scdir = scdir;

        // wire ourselves up to hear about leave place notifications
        locdir.addLocationObserver(new LocationAdapter(null, function (place :PlaceObject) :void {
            handleDeparture();
        }));
    }

    /**


        // sanity check the server's notion of what scene we're in with our notion of it
        var sceneId :int = _scdir.getScene().getId();
        if (sceneId != _self.getSceneId()) {
            log.warning("Client and server differ in opinion of what scene we're in " +
                        "[sSceneId=" + _self.getSceneId() + ", cSceneId=" + sceneId + "].");
            return false;
        }

