From a54339594c3f131ac709264653477a55f9b075ba Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Tue, 19 Feb 2002 20:02:16 +0000 Subject: [PATCH] Pick tiles pseudo randomly based on the coordinates. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1052 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../miso/client/ScrollingScene.java | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/tests/src/java/com/threerings/miso/client/ScrollingScene.java b/tests/src/java/com/threerings/miso/client/ScrollingScene.java index f6e1c944b..463809170 100644 --- a/tests/src/java/com/threerings/miso/client/ScrollingScene.java +++ b/tests/src/java/com/threerings/miso/client/ScrollingScene.java @@ -1,8 +1,10 @@ // -// $Id: ScrollingScene.java,v 1.1 2002/02/17 23:48:38 mdb Exp $ +// $Id: ScrollingScene.java,v 1.2 2002/02/19 20:02:16 mdb Exp $ package com.threerings.miso.scene; +import java.util.Random; + import com.threerings.media.tile.NoSuchTileException; import com.threerings.media.tile.NoSuchTileSetException; import com.threerings.media.tile.ObjectTile; @@ -20,16 +22,19 @@ public class ScrollingScene implements DisplayMisoScene throws NoSuchTileSetException, NoSuchTileException { // grab our four repeating tiles - _tiles[0] = (BaseTile)ctx.getTileManager().getTile(11, 0); - _tiles[1] = (BaseTile)ctx.getTileManager().getTile(12, 0); - _tiles[2] = (BaseTile)ctx.getTileManager().getTile(13, 0); - _tiles[3] = (BaseTile)ctx.getTileManager().getTile(14, 0); + _tiles[0] = (BaseTile)ctx.getTileManager().getTile(15, 0); + _tiles[1] = (BaseTile)ctx.getTileManager().getTile(15, 1); + _tiles[2] = (BaseTile)ctx.getTileManager().getTile(15, 2); + _tiles[3] = (BaseTile)ctx.getTileManager().getTile(15, 3); + _tiles[4] = (BaseTile)ctx.getTileManager().getTile(15, 4); } // documentation inherited from interface public BaseTile getBaseTile (int x, int y) { - int tidx = 2 * (Math.abs(x) % 2) + Math.abs(y) % 2; + long seed = ((x^y) ^ multiplier) & mask; + long hash = (seed * multiplier + addend) & mask; + int tidx = (int)((hash >> 10) % 5); return _tiles[tidx]; } @@ -51,5 +56,10 @@ public class ScrollingScene implements DisplayMisoScene return null; } - protected BaseTile[] _tiles = new BaseTile[4]; + protected BaseTile[] _tiles = new BaseTile[5]; + protected Random _rand = new Random(); + + protected final static long multiplier = 0x5DEECE66DL; + protected final static long addend = 0xBL; + protected final static long mask = (1L << 48) - 1; }