Oh the price we pay for wanting to be able to logoff and log back on

without exiting the client.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1843 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2002-10-27 21:24:58 +00:00
parent 14a313486b
commit 6781e1da56
4 changed files with 51 additions and 18 deletions
@@ -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)
{
@@ -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
@@ -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)
{
@@ -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.