diff --git a/src/java/com/threerings/whirled/client/SceneDirector.java b/src/java/com/threerings/whirled/client/SceneDirector.java index c5f4c254..ef5a66ab 100644 --- a/src/java/com/threerings/whirled/client/SceneDirector.java +++ b/src/java/com/threerings/whirled/client/SceneDirector.java @@ -208,6 +208,15 @@ public class SceneDirector extends BasicDirector return _pendingModel; } + /** + * Returns the scene id set in preparation for a scene transition. As with + * {@link #getPendingModel}, this is for cooperating directors. + */ + public int getPendingSceneId () + { + return _pendingSceneId; + } + // from interface SceneService.SceneMoveListener public void moveSucceeded (int placeId, PlaceConfig config) { diff --git a/src/java/com/threerings/whirled/zone/client/ZoneDirector.java b/src/java/com/threerings/whirled/zone/client/ZoneDirector.java index 15d8ef97..3693e317 100644 --- a/src/java/com/threerings/whirled/zone/client/ZoneDirector.java +++ b/src/java/com/threerings/whirled/zone/client/ZoneDirector.java @@ -143,17 +143,16 @@ public class ZoneDirector extends BasicDirector // check the version of our cached copy of the scene to which we're requesting to move; if // we were unable to load it, assume a cached version of zero int sceneVers = 0; - int sceneId = -1; + int sceneId = _scdir.getPendingSceneId(); SceneModel pendingModel = _scdir.getPendingModel(); if (pendingModel != null) { sceneVers = pendingModel.version; - sceneId = pendingModel.sceneId; } // issue a moveTo request log.info("Issuing zoned moveTo(" + ZoneUtil.toString(_pendingZoneId) + ", " + sceneId + ", " + sceneVers + ")."); - _zservice.moveTo(_ctx.getClient(), _pendingZoneId, + sceneId, sceneVers, this); + _zservice.moveTo(_ctx.getClient(), _pendingZoneId, sceneId, sceneVers, this); } @Override