From 7cac50ee0029860c5e9564bd20e9463b961b4f22 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Tue, 21 Aug 2001 19:37:08 +0000 Subject: [PATCH] Clear out the occupant cache when changing rooms and cache all the occupants in a room when we first arrive. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@292 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../com/threerings/crowd/client/OccupantManager.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/java/com/threerings/crowd/client/OccupantManager.java b/src/java/com/threerings/crowd/client/OccupantManager.java index ca07c5f0d..c2d10cff5 100644 --- a/src/java/com/threerings/crowd/client/OccupantManager.java +++ b/src/java/com/threerings/crowd/client/OccupantManager.java @@ -1,9 +1,10 @@ // -// $Id: OccupantManager.java,v 1.2 2001/08/20 21:52:43 mdb Exp $ +// $Id: OccupantManager.java,v 1.3 2001/08/21 19:37:08 mdb Exp $ package com.threerings.cocktail.party.client; import java.util.ArrayList; +import java.util.Iterator; import com.threerings.cocktail.cher.dobj.*; import com.threerings.cocktail.cher.util.IntMap; @@ -75,11 +76,20 @@ public class OccupantManager // unsubscribe from the old place object if there was one if (_place != null) { _place.removeSubscriber(this); + // clear out the occupant cache for the previous location + _ocache.clear(); } // subscribe to the new one _place = place; _place.addSubscriber(this); + + // cache the occupant info for the occupants in this room + Iterator iter = _place.occupantInfo.elements(); + while (iter.hasNext()) { + OccupantInfo info = (OccupantInfo)iter.next(); + _ocache.put(info.getBodyOid(), info); + } } // inherit documentation