We shouldn't be using OidLists to report winners/losers/players knocked out.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3711 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Ray Greenwell
2005-09-27 01:50:29 +00:00
parent 484c3ff86d
commit 277af53513
@@ -25,6 +25,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import com.samskivert.util.ArrayIntSet;
import com.samskivert.util.Interval;
import com.samskivert.util.IntListUtil;
import com.samskivert.util.RepeatCallTracker;
@@ -35,7 +36,6 @@ import com.threerings.presents.data.ClientObject;
import com.threerings.presents.dobj.AttributeChangeListener;
import com.threerings.presents.dobj.AttributeChangedEvent;
import com.threerings.presents.dobj.DObject;
import com.threerings.presents.dobj.OidList;
import com.threerings.crowd.chat.server.SpeakProvider;
@@ -457,12 +457,10 @@ public class GameManager extends PlaceManager
return;
}
OidList knocky = new OidList(1);
knocky.add(user.getOid());
DObject place = CrowdServer.omgr.getObject(user.location);
if (place != null) {
place.postMessage(PLAYER_KNOCKED_OUT, new Object[] { knocky });
place.postMessage(PLAYER_KNOCKED_OUT,
new Object[] { new int[] { user.getOid() } });
}
}
@@ -996,13 +994,14 @@ public class GameManager extends PlaceManager
*/
protected void reportWinnersAndLosers ()
{
OidList winners = new OidList();
OidList losers = new OidList();
OidList places = new OidList();
int numPlayers = _playerOids.length;
Object[] args = new Object[] { winners, losers };
// set up 3 sets that will not need internal expanding
ArrayIntSet winners = new ArrayIntSet(numPlayers);
ArrayIntSet losers = new ArrayIntSet(numPlayers);
ArrayIntSet places = new ArrayIntSet(numPlayers);
for (int ii=0, nn=_playerOids.length; ii < nn; ii++) {
for (int ii=0; ii < numPlayers; ii++) {
BodyObject user = getPlayer(ii);
if (user != null) {
places.add(user.location);
@@ -1010,6 +1009,9 @@ public class GameManager extends PlaceManager
}
}
Object[] args =
new Object[] { winners.toIntArray(), losers.toIntArray() };
// now send a message event to each room
for (int ii=0, nn = places.size(); ii < nn; ii++) {
DObject place = CrowdServer.omgr.getObject(places.get(ii));