From aed0f94e50386864cb459db805b1ed266c5cc7cb Mon Sep 17 00:00:00 2001 From: Ray Greenwell Date: Thu, 13 Oct 2005 08:52:13 +0000 Subject: [PATCH] Fixed my own retarded (broken) implementation of pickRandom. If a list had been passed in with 3 elements and the first one was the 'skip', then the second one would get picked 100% of the time. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3730 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- src/java/com/threerings/util/RandomUtil.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/java/com/threerings/util/RandomUtil.java b/src/java/com/threerings/util/RandomUtil.java index 238840de4..8782f52f4 100644 --- a/src/java/com/threerings/util/RandomUtil.java +++ b/src/java/com/threerings/util/RandomUtil.java @@ -170,15 +170,17 @@ public class RandomUtil int size = values.size(); if (size < 2) { throw new IllegalArgumentException( - "Must have at least one element [size=" + size + "]"); + "Must have at least two elements [size=" + size + "]"); } int pick = getInt(size - 1); - Object val = values.get(pick); - if (val == skip) { - val = values.get(pick + 1); + for (int ii = 0; ii < size; ii++) { + Object val = values.get(ii); + if ((val != skip) && (pick-- == 0)) { + return val; + } } - return val; + return null; } /**