From d0fbfd92a2e6da0cff7864bdcf554c32e0c5ad38 Mon Sep 17 00:00:00 2001 From: Jason Long Date: Sat, 21 Jun 2014 21:04:07 -0400 Subject: [PATCH] tile-names: BuildingInfo: allow dyn-numbered tiles --- src/micropolisj/engine/MapScanner.java | 4 ++-- src/micropolisj/engine/TileSpec.java | 8 ++++---- src/micropolisj/engine/Tiles.java | 10 +++++----- src/micropolisj/engine/ToolStroke.java | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/micropolisj/engine/MapScanner.java b/src/micropolisj/engine/MapScanner.java index c04bd95..2163902 100644 --- a/src/micropolisj/engine/MapScanner.java +++ b/src/micropolisj/engine/MapScanner.java @@ -170,7 +170,7 @@ class MapScanner extends TileBehavior { for (int x = xorg; x < xorg+bi.width; x++) { - city.setTile(x, y, (char) bi.members[i]); + city.setTile(x, y, (char) bi.members[i].tileNumber); i++; } } @@ -406,7 +406,7 @@ class MapScanner extends TileBehavior int xx = xorg + x; int yy = yorg + y; - TileSpec ts = Tiles.get(bi.members[i]); + TileSpec ts = bi.members[i]; if (powerOn && ts.onPower != null) { ts = ts.onPower; } diff --git a/src/micropolisj/engine/TileSpec.java b/src/micropolisj/engine/TileSpec.java index 63a685a..174935f 100644 --- a/src/micropolisj/engine/TileSpec.java +++ b/src/micropolisj/engine/TileSpec.java @@ -60,7 +60,7 @@ public class TileSpec { int width; int height; - short [] members; + TileSpec [] members; } public BuildingInfo getBuildingInfo() @@ -79,14 +79,14 @@ public class TileSpec bi.width = Integer.parseInt(p2[0]); bi.height = Integer.parseInt(p2[1]); - bi.members = new short[bi.width*bi.height]; - int startTile = tileNumber; + bi.members = new TileSpec[bi.width*bi.height]; + int startTile = Integer.parseInt(name); if (bi.width >= 3) { startTile--; } if (bi.height >= 3) { startTile -= bi.width; } for (int row = 0; row < bi.height; row++) { for (int col = 0; col < bi.width; col++) { - bi.members[row*bi.width+col] = (short)startTile; + bi.members[row*bi.width+col] = tileMap.get(Integer.toString(startTile)); startTile++; } } diff --git a/src/micropolisj/engine/Tiles.java b/src/micropolisj/engine/Tiles.java index 1ca541a..5482713 100644 --- a/src/micropolisj/engine/Tiles.java +++ b/src/micropolisj/engine/Tiles.java @@ -64,17 +64,17 @@ public class Tiles TileSpec.BuildingInfo bi = tiles[i].getBuildingInfo(); if (bi != null) { for (int j = 0; j < bi.members.length; j++) { - int tid = bi.members[j]; + TileSpec memberTile = bi.members[j]; int offx = (bi.width >= 3 ? -1 : 0) + j % bi.width; int offy = (bi.height >= 3 ? -1 : 0) + j / bi.width; - if (tiles[tid].owner == null && + if (memberTile.owner == null && (offx != 0 || offy != 0) ) { - tiles[tid].owner = tiles[i]; - tiles[tid].ownerOffsetX = offx; - tiles[tid].ownerOffsetY = offy; + memberTile.owner = tiles[i]; + memberTile.ownerOffsetX = offx; + memberTile.ownerOffsetY = offy; } } } diff --git a/src/micropolisj/engine/ToolStroke.java b/src/micropolisj/engine/ToolStroke.java index fcf5e82..25b5d5d 100644 --- a/src/micropolisj/engine/ToolStroke.java +++ b/src/micropolisj/engine/ToolStroke.java @@ -164,7 +164,7 @@ public class ToolStroke { for (int columnNum = 0; columnNum < bi.width; columnNum++) { - eff.setTile(columnNum, rowNum, (char) bi.members[i]); + eff.setTile(columnNum, rowNum, (char) bi.members[i].tileNumber); i++; } }