diff --git a/src/java/com/threerings/crowd/client/LocationDirector.java b/src/java/com/threerings/crowd/client/LocationDirector.java index 3ea38fe6e..b93288a16 100644 --- a/src/java/com/threerings/crowd/client/LocationDirector.java +++ b/src/java/com/threerings/crowd/client/LocationDirector.java @@ -1,5 +1,5 @@ // -// $Id: LocationDirector.java,v 1.25 2002/08/14 19:07:49 mdb Exp $ +// $Id: LocationDirector.java,v 1.26 2002/10/27 21:24:58 mdb Exp $ package com.threerings.crowd.client; @@ -334,6 +334,25 @@ public class LocationDirector extends BasicDirector client.getDObjectManager().subscribeToObject(cloid, sub); } + // documentation inherited from interface + public void clientDidLogoff (Client client) + { + super.clientDidLogoff(client); + + // clear ourselves out and inform observers of our departure + didLeavePlace(); + + // let our observers know that we're no longer in a location + _observers.apply(_didChangeOp); + + // clear out everything else (it's possible that we were logged + // off in the middle of a change location request) + _pendingPlaceId = -1; + _previousPlaceId = -1; + _lastRequestTime = 0L; + _lservice = null; + } + // documentation inherited protected void fetchServices (Client client) { @@ -348,20 +367,6 @@ public class LocationDirector extends BasicDirector // we'll want to be going there straight away } - // documentation inherited from interface - public void clientDidLogoff (Client client) - { - super.clientDidLogoff(client); - - // clear ourselves out and inform observers of our departure - didLeavePlace(); - - // let our observers know that we're no longer in a location - _observers.apply(_didChangeOp); - - _lservice = null; - } - // documentation inherited from interface public void moveSucceeded (PlaceConfig config) { diff --git a/src/java/com/threerings/whirled/client/SceneDirector.java b/src/java/com/threerings/whirled/client/SceneDirector.java index 69d484336..ffdb0468c 100644 --- a/src/java/com/threerings/whirled/client/SceneDirector.java +++ b/src/java/com/threerings/whirled/client/SceneDirector.java @@ -1,5 +1,5 @@ // -// $Id: SceneDirector.java,v 1.20 2002/08/14 19:07:57 mdb Exp $ +// $Id: SceneDirector.java,v 1.21 2002/10/27 21:24:58 mdb Exp $ package com.threerings.whirled.client; @@ -348,7 +348,12 @@ public class SceneDirector extends BasicDirector { super.clientDidLogoff(client); + // clear out our business clearScene(); + _pendingSceneId = -1; + releaseSceneModel(_pendingModel); + _previousSceneId = -1; + _sservice = null; } // documentation inherited from interface diff --git a/src/java/com/threerings/whirled/spot/client/SpotSceneDirector.java b/src/java/com/threerings/whirled/spot/client/SpotSceneDirector.java index c6f681f18..232ca17d6 100644 --- a/src/java/com/threerings/whirled/spot/client/SpotSceneDirector.java +++ b/src/java/com/threerings/whirled/spot/client/SpotSceneDirector.java @@ -1,5 +1,5 @@ // -// $Id: SpotSceneDirector.java,v 1.18 2002/08/14 19:07:57 mdb Exp $ +// $Id: SpotSceneDirector.java,v 1.19 2002/10/27 21:24:58 mdb Exp $ package com.threerings.whirled.spot.client; @@ -259,6 +259,19 @@ public class SpotSceneDirector extends BasicDirector _sservice = (SpotService)client.requireService(SpotService.class); } + // documentation inherited + public void clientDidLogoff (Client client) + { + super.clientDidLogoff(client); + + // clear out our business + _locationId = -1; + _pendingLocId = -1; + _changeObserver = null; + _clobj = null; + _sservice = null; + } + // documentation inherited from interface public void changeLocSucceeded (int clusterOid) { diff --git a/src/java/com/threerings/whirled/zone/client/ZoneDirector.java b/src/java/com/threerings/whirled/zone/client/ZoneDirector.java index e19686be5..8fd070b9a 100644 --- a/src/java/com/threerings/whirled/zone/client/ZoneDirector.java +++ b/src/java/com/threerings/whirled/zone/client/ZoneDirector.java @@ -1,5 +1,5 @@ // -// $Id: ZoneDirector.java,v 1.9 2002/08/14 19:07:58 mdb Exp $ +// $Id: ZoneDirector.java,v 1.10 2002/10/27 21:24:58 mdb Exp $ package com.threerings.whirled.zone.client; @@ -128,6 +128,16 @@ public class ZoneDirector extends BasicDirector _zservice = (ZoneService)client.requireService(ZoneService.class); } + // documentation inherited + public void clientDidLogoff (Client client) + { + super.clientDidLogoff(client); + + // clear out our business + _zservice = null; + _summary = null; + } + /** * Called in response to a successful {@link ZoneService#moveTo} * request.