tiles.rc: dynamically determine number of tiles

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@903 d9718cc8-9f43-0410-858b-315f434eb58c
This commit is contained in:
jason@long.name 2013-12-14 22:10:06 +00:00
parent 7f1dad1083
commit 2b093b3273

View file

@ -15,7 +15,7 @@ import java.util.*;
public class Tiles public class Tiles
{ {
static final Charset UTF8 = Charset.forName("UTF-8"); static final Charset UTF8 = Charset.forName("UTF-8");
static TileSpec [] tiles = new TileSpec[960]; static TileSpec [] tiles;
static { static {
try { try {
readTiles(); readTiles();
@ -29,7 +29,7 @@ public class Tiles
static void readTiles() static void readTiles()
throws IOException throws IOException
{ {
tiles = new TileSpec[960]; ArrayList<TileSpec> tilesList = new ArrayList<TileSpec>();
Properties tilesRc = new Properties(); Properties tilesRc = new Properties();
tilesRc.load( tilesRc.load(
@ -39,15 +39,16 @@ public class Tiles
) )
); );
for (int i = 0; i < tiles.length; i++) { for (int i = 0; ; i++) {
String tileName = Integer.toString(i); String tileName = Integer.toString(i);
String rawSpec = tilesRc.getProperty(tileName); String rawSpec = tilesRc.getProperty(tileName);
if (rawSpec == null) { if (rawSpec == null) {
continue; break;
} }
tiles[i] = TileSpec.parse(i, rawSpec, tilesRc); tilesList.add( TileSpec.parse(i, rawSpec, tilesRc) );
} }
tiles = tilesList.toArray(new TileSpec[0]);
for (int i = 0; i < tiles.length; i++) { for (int i = 0; i < tiles.length; i++) {
String tmp = tiles[i].getAttribute("becomes"); String tmp = tiles[i].getAttribute("becomes");