tiles.rc: move BURNBIT knowledge from source code to tiles.rc
git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@743 d9718cc8-9f43-0410-858b-315f434eb58c
This commit is contained in:
parent
cc4ba189ce
commit
c2cfeb540c
8 changed files with 44 additions and 38 deletions
|
@ -38,8 +38,8 @@ class Animate
|
|||
static int [] AniTabC = { IND1, 0, IND2, IND4, 0, 0, IND6, IND8 };
|
||||
static int [] AniTabD = { IND1, 0, IND3, IND5, 0, 0, IND7, IND9 };
|
||||
|
||||
static final int ASCBIT = (CONDBIT | BURNBIT);
|
||||
static final int REGBIT = (CONDBIT | BURNBIT);
|
||||
static final int ASCBIT = (CONDBIT);
|
||||
static final int REGBIT = (CONDBIT);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -479,7 +479,7 @@ public class MapGenerator
|
|||
|
||||
if ((map[mapY][mapX] & LOMASK) == DIRT)
|
||||
{
|
||||
map[mapY][mapX] = WOODS | BULLBIT | BURNBIT;
|
||||
map[mapY][mapX] = WOODS | BULLBIT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -532,7 +532,7 @@ public class MapGenerator
|
|||
temp -= 8;
|
||||
}
|
||||
}
|
||||
map[mapY][mapX] = (char)(temp | BULLBIT | BURNBIT);
|
||||
map[mapY][mapX] = (char)(temp | BULLBIT);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -509,7 +509,7 @@ class MapScanner
|
|||
{
|
||||
for (int x = xpos-1; x <= xpos+1; x++)
|
||||
{
|
||||
city.setTile(x, y, (char)(base | BURNBIT | CONDBIT | (x == xpos && y == ypos ? BULLBIT : 0)));
|
||||
city.setTile(x, y, (char)(base | CONDBIT | (x == xpos && y == ypos ? BULLBIT : 0)));
|
||||
base++;
|
||||
}
|
||||
}
|
||||
|
@ -631,13 +631,13 @@ class MapScanner
|
|||
{
|
||||
if ((city.map[ypos-1][xpos+1] & LOMASK) == RADAR) {
|
||||
city.setTile(xpos+1,ypos-1, (char)
|
||||
(RADAR_ANIM + CONDBIT + BURNBIT)
|
||||
(RADAR_ANIM + CONDBIT)
|
||||
);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
city.setTile(xpos+1,ypos-1,(char)(RADAR + CONDBIT + BURNBIT));
|
||||
city.setTile(xpos+1,ypos-1,(char)(RADAR + CONDBIT));
|
||||
}
|
||||
|
||||
if (powerOn) {
|
||||
|
@ -759,7 +759,7 @@ class MapScanner
|
|||
{ //not rubble, radiactive, on fire or flooded
|
||||
|
||||
city.setTile(xx,yy,(char)
|
||||
(zoneBase+CONDBIT+BURNBIT)
|
||||
(zoneBase+CONDBIT)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -1080,7 +1080,7 @@ class MapScanner
|
|||
assert houseNumber >= 0 && houseNumber < 12;
|
||||
|
||||
assert city.testBounds(xx, yy);
|
||||
city.setTile(xx, yy, (char)((HOUSE + houseNumber) | BULLBIT | BURNBIT | CONDBIT));
|
||||
city.setTile(xx, yy, (char)((HOUSE + houseNumber) | BULLBIT | CONDBIT));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1207,7 +1207,7 @@ class MapScanner
|
|||
{
|
||||
// downgrade from full-size zone to 8 little houses
|
||||
|
||||
city.setTile(xpos, ypos, (char)(FREEZ | BULLBIT | BURNBIT | CONDBIT));
|
||||
city.setTile(xpos, ypos, (char)(FREEZ | BULLBIT | CONDBIT));
|
||||
for (int x = xpos-1; x <= xpos+1; x++)
|
||||
{
|
||||
for (int y = ypos-1; y <= ypos+1; y++)
|
||||
|
@ -1218,7 +1218,7 @@ class MapScanner
|
|||
{
|
||||
// pick a random small house
|
||||
int houseNumber = value * 3 + PRNG.nextInt(3);
|
||||
city.setTile(x, y, (char) ((HOUSE + houseNumber) | BULLBIT | BURNBIT | CONDBIT));
|
||||
city.setTile(x, y, (char) ((HOUSE + houseNumber) | BULLBIT | CONDBIT));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1243,7 +1243,7 @@ class MapScanner
|
|||
int loc = city.map[y][x] & LOMASK;
|
||||
if (loc >= LHTHR && loc <= HHTHR)
|
||||
{ //little house
|
||||
city.setTile(x, y, (char)((Brdr[z] + FREEZ - 4) | BULLBIT | BURNBIT | CONDBIT));
|
||||
city.setTile(x, y, (char)((Brdr[z] + FREEZ - 4) | BULLBIT | CONDBIT));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -1342,7 +1342,7 @@ class MapScanner
|
|||
int tile = city.getTile(xpos+dx[z], ypos+dy[z]) & LOMASK;
|
||||
if (tile >= COALBASE && tile < COALBASE + 4*4) {
|
||||
city.setTile(xpos + dx[z], ypos + dy[z],
|
||||
(char) (SmTb[z] | CONDBIT | PWRBIT | BURNBIT)
|
||||
(char) (SmTb[z] | CONDBIT | PWRBIT)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -1374,7 +1374,7 @@ class MapScanner
|
|||
for (int x = 0; x < 4; x++, zoneBase++)
|
||||
{
|
||||
city.setTile(xpos - 1 + x, ypos - 1 + y,
|
||||
(char) (zoneBase | BURNBIT | CONDBIT | (x == 1 && y == 1 ? (PWRBIT) : 0)));
|
||||
(char) (zoneBase | CONDBIT | (x == 1 && y == 1 ? (PWRBIT) : 0)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1965,7 +1965,7 @@ public class Micropolis
|
|||
for (int y = 0; y < DEFAULT_HEIGHT; y++)
|
||||
{
|
||||
int z = dis.readShort();
|
||||
z &= ~(1024 | 2048); // clear ZONEBIT,ANIMBIT on import
|
||||
z &= ~(1024 | 2048 | 8192); // clear ZONEBIT,ANIMBIT,BURNBIT on import
|
||||
map[y][x] = (char) z;
|
||||
}
|
||||
}
|
||||
|
@ -1979,6 +1979,9 @@ public class Micropolis
|
|||
for (int y = 0; y < DEFAULT_HEIGHT; y++)
|
||||
{
|
||||
int z = map[y][x];
|
||||
if (isCombustible(z)) {
|
||||
z |= 8192; //synthesize BURNBIT on export
|
||||
}
|
||||
if (isAnimated(z)) {
|
||||
z |= 2048; //synthesize ANIMBIT on export
|
||||
}
|
||||
|
|
|
@ -201,19 +201,19 @@ class RoadLikeTool extends ToolStroke
|
|||
return false;
|
||||
|
||||
case LHPOWER: // rail on power
|
||||
eff.setTile(0, 0, (char) (RAILVPOWERH | CONDBIT | BURNBIT | BULLBIT));
|
||||
eff.setTile(0, 0, (char) (RAILVPOWERH | CONDBIT | BULLBIT));
|
||||
break;
|
||||
|
||||
case LVPOWER: // rail on power
|
||||
eff.setTile(0, 0, (char) (RAILHPOWERV | CONDBIT | BURNBIT | BULLBIT));
|
||||
eff.setTile(0, 0, (char) (RAILHPOWERV | CONDBIT | BULLBIT));
|
||||
break;
|
||||
|
||||
case TileConstants.ROADS: // rail on road (case 1)
|
||||
eff.setTile(0, 0, (char) (VRAILROAD | BURNBIT | BULLBIT));
|
||||
eff.setTile(0, 0, (char) (VRAILROAD | BULLBIT));
|
||||
break;
|
||||
|
||||
case ROADS2: // rail on road (case 2)
|
||||
eff.setTile(0, 0, (char) (HRAILROAD | BURNBIT | BULLBIT));
|
||||
eff.setTile(0, 0, (char) (HRAILROAD | BULLBIT));
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -228,7 +228,7 @@ class RoadLikeTool extends ToolStroke
|
|||
}
|
||||
|
||||
//rail on dirt
|
||||
eff.setTile(0, 0, (char) (LHRAIL | BULLBIT | BURNBIT));
|
||||
eff.setTile(0, 0, (char) (LHRAIL | BULLBIT));
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -304,19 +304,19 @@ class RoadLikeTool extends ToolStroke
|
|||
return false;
|
||||
|
||||
case LHPOWER: //road on power
|
||||
eff.setTile(0, 0, (char) (VROADPOWER | CONDBIT | BURNBIT | BULLBIT));
|
||||
eff.setTile(0, 0, (char) (VROADPOWER | CONDBIT | BULLBIT));
|
||||
break;
|
||||
|
||||
case LVPOWER: //road on power #2
|
||||
eff.setTile(0, 0, (char) (HROADPOWER | CONDBIT | BURNBIT | BULLBIT));
|
||||
eff.setTile(0, 0, (char) (HROADPOWER | CONDBIT | BULLBIT));
|
||||
break;
|
||||
|
||||
case LHRAIL: //road on rail
|
||||
eff.setTile(0, 0, (char) (HRAILROAD | BURNBIT | BULLBIT));
|
||||
eff.setTile(0, 0, (char) (HRAILROAD | BULLBIT));
|
||||
break;
|
||||
|
||||
case LVRAIL: //road on rail #2
|
||||
eff.setTile(0, 0, (char) (VRAILROAD | BURNBIT | BULLBIT));
|
||||
eff.setTile(0, 0, (char) (VRAILROAD | BULLBIT));
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -332,7 +332,7 @@ class RoadLikeTool extends ToolStroke
|
|||
|
||||
// road on dirt;
|
||||
// just build a plain road, fixZone will fix it.
|
||||
eff.setTile(0, 0, (char) (TileConstants.ROADS | BULLBIT | BURNBIT));
|
||||
eff.setTile(0, 0, (char) (TileConstants.ROADS | BULLBIT));
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -422,19 +422,19 @@ class RoadLikeTool extends ToolStroke
|
|||
return false;
|
||||
|
||||
case TileConstants.ROADS: // wire on E/W road
|
||||
eff.setTile(0, 0, (char) (HROADPOWER | CONDBIT | BURNBIT | BULLBIT));
|
||||
eff.setTile(0, 0, (char) (HROADPOWER | CONDBIT | BULLBIT));
|
||||
break;
|
||||
|
||||
case ROADS2: // wire on N/S road
|
||||
eff.setTile(0, 0, (char) (VROADPOWER | CONDBIT | BURNBIT | BULLBIT));
|
||||
eff.setTile(0, 0, (char) (VROADPOWER | CONDBIT | BULLBIT));
|
||||
break;
|
||||
|
||||
case LHRAIL: // wire on E/W railroad tracks
|
||||
eff.setTile(0, 0, (char) (RAILHPOWERV | CONDBIT | BURNBIT | BULLBIT));
|
||||
eff.setTile(0, 0, (char) (RAILHPOWERV | CONDBIT | BULLBIT));
|
||||
break;
|
||||
|
||||
case LVRAIL: // wire on N/S railroad tracks
|
||||
eff.setTile(0, 0, (char) (RAILVPOWERH | CONDBIT | BURNBIT | BULLBIT));
|
||||
eff.setTile(0, 0, (char) (RAILVPOWERH | CONDBIT | BULLBIT));
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -449,7 +449,7 @@ class RoadLikeTool extends ToolStroke
|
|||
}
|
||||
|
||||
//wire on dirt
|
||||
eff.setTile(0, 0, (char) (LHPOWER | CONDBIT | BULLBIT | BURNBIT));
|
||||
eff.setTile(0, 0, (char) (LHPOWER | CONDBIT | BULLBIT));
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -210,7 +210,7 @@ public class TileConstants
|
|||
//
|
||||
public static final char PWRBIT = 32768; // bit 15 ... currently powered
|
||||
public static final char CONDBIT = 16384; // bit 14 ... can conduct power
|
||||
public static final char BURNBIT = 8192; // bit 13 ... is combustible
|
||||
// bit 13 ... unused
|
||||
public static final char BULLBIT = 4096; // bit 12 ... is bulldozable
|
||||
// bit 11 ... unused
|
||||
// bit 10 ... unused
|
||||
|
@ -300,7 +300,8 @@ public class TileConstants
|
|||
|
||||
public static boolean isCombustible(int tile)
|
||||
{
|
||||
return (tile & BURNBIT) != 0;
|
||||
TileSpec spec = Tiles.get(tile & LOMASK);
|
||||
return spec != null && spec.canBurn;
|
||||
}
|
||||
|
||||
public static boolean isFire(int tile)
|
||||
|
|
|
@ -6,6 +6,7 @@ public class TileSpec
|
|||
{
|
||||
int tileNumber;
|
||||
TileSpec animNext;
|
||||
boolean canBurn;
|
||||
boolean zone;
|
||||
|
||||
Map<String,String> attributes;
|
||||
|
@ -69,6 +70,7 @@ public class TileSpec
|
|||
}
|
||||
}
|
||||
|
||||
this.canBurn = getBooleanAttribute("noburn");
|
||||
this.zone = getBooleanAttribute("zone");
|
||||
}
|
||||
|
||||
|
|
|
@ -182,7 +182,7 @@ public class ToolStroke
|
|||
for (int columnNum = 0; columnNum < width; columnNum++)
|
||||
{
|
||||
eff.setTile(columnNum, rowNum, (char) (
|
||||
tileBase | BURNBIT | CONDBIT
|
||||
tileBase | CONDBIT
|
||||
));
|
||||
tileBase++;
|
||||
}
|
||||
|
@ -240,9 +240,9 @@ public class ToolStroke
|
|||
int z = inPreview ? 0 : city.PRNG.nextInt(5);
|
||||
int tile;
|
||||
if (z < 4) {
|
||||
tile = (WOODS2 + z) | BURNBIT | BULLBIT;
|
||||
tile = (WOODS2 + z) | BULLBIT;
|
||||
} else {
|
||||
tile = FOUNTAIN | BURNBIT | BULLBIT;
|
||||
tile = FOUNTAIN | BULLBIT;
|
||||
}
|
||||
|
||||
eff.spend(cost);
|
||||
|
@ -340,7 +340,7 @@ public class ToolStroke
|
|||
}
|
||||
}
|
||||
|
||||
eff.setTile(0, 0, (RoadTable[adjTile] | BULLBIT | BURNBIT));
|
||||
eff.setTile(0, 0, (RoadTable[adjTile] | BULLBIT));
|
||||
} //endif on a road tile
|
||||
|
||||
else if (tile >= LHRAIL && tile <= LVRAIL10)
|
||||
|
@ -400,7 +400,7 @@ public class ToolStroke
|
|||
}
|
||||
}
|
||||
|
||||
eff.setTile(0, 0, (RailTable[adjTile] | BULLBIT | BURNBIT));
|
||||
eff.setTile(0, 0, (RailTable[adjTile] | BULLBIT));
|
||||
} //end if on a rail tile
|
||||
|
||||
else if (tile >= LHPOWER && tile <= LVPOWER10)
|
||||
|
@ -460,7 +460,7 @@ public class ToolStroke
|
|||
}
|
||||
}
|
||||
|
||||
eff.setTile(0, 0, (WireTable[adjTile] | BULLBIT | BURNBIT | CONDBIT));
|
||||
eff.setTile(0, 0, (WireTable[adjTile] | BULLBIT | CONDBIT));
|
||||
} //end if on a rail tile
|
||||
|
||||
return;
|
||||
|
|
Reference in a new issue