toolstroke: refactor- do not pass engine variable to every function

since it is a class property

git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@622 d9718cc8-9f43-0410-858b-315f434eb58c
This commit is contained in:
jason@long.name 2013-05-16 23:36:19 +00:00
parent 6438791974
commit c4fe7f0d34

View file

@ -30,49 +30,49 @@ public class ToolStroke
switch (tool)
{
case BULLDOZER:
return applyBulldozer(city, xpos, ypos);
return applyBulldozer(xpos, ypos);
case RAIL:
return applyRailTool(city, xpos, ypos);
return applyRailTool(xpos, ypos);
case ROADS:
return applyRoadTool(city, xpos, ypos);
return applyRoadTool(xpos, ypos);
case WIRE:
return applyWireTool(city, xpos, ypos);
return applyWireTool(xpos, ypos);
case PARK:
return applyParkTool(city, xpos, ypos);
return applyParkTool(xpos, ypos);
case RESIDENTIAL:
return apply3x3buildingTool(city, xpos, ypos, RESBASE);
return apply3x3buildingTool(xpos, ypos, RESBASE);
case COMMERCIAL:
return apply3x3buildingTool(city, xpos, ypos, COMBASE);
return apply3x3buildingTool(xpos, ypos, COMBASE);
case INDUSTRIAL:
return apply3x3buildingTool(city, xpos, ypos, INDBASE);
return apply3x3buildingTool(xpos, ypos, INDBASE);
case FIRE:
return apply3x3buildingTool(engine, xpos, ypos, FIRESTBASE);
return apply3x3buildingTool(xpos, ypos, FIRESTBASE);
case POLICE:
return apply3x3buildingTool(engine, xpos, ypos, POLICESTBASE);
return apply3x3buildingTool(xpos, ypos, POLICESTBASE);
case POWERPLANT:
return apply4x4buildingTool(city, xpos, ypos, COALBASE);
return apply4x4buildingTool(xpos, ypos, COALBASE);
case STADIUM:
return apply4x4buildingTool(city, xpos, ypos, STADIUMBASE);
return apply4x4buildingTool(xpos, ypos, STADIUMBASE);
case SEAPORT:
return apply4x4buildingTool(city, xpos, ypos, PORTBASE);
return apply4x4buildingTool(xpos, ypos, PORTBASE);
case NUCLEAR:
return apply4x4buildingTool(city, xpos, ypos, NUCLEARBASE);
return apply4x4buildingTool(xpos, ypos, NUCLEARBASE);
case AIRPORT:
return apply6x6buildingTool(city, xpos, ypos, AIRPORTBASE);
return apply6x6buildingTool(xpos, ypos, AIRPORTBASE);
default:
// not expected
@ -80,7 +80,7 @@ public class ToolStroke
}
}
ToolResult apply3x3buildingTool(Micropolis city, int xpos, int ypos, char tileBase)
ToolResult apply3x3buildingTool(int xpos, int ypos, char tileBase)
{
int mapH = xpos - 1;
int mapV = ypos - 1;
@ -138,11 +138,11 @@ public class ToolStroke
}
}
fixBorder(city, mapH, mapV, mapH + 2, mapV + 2);
fixBorder(mapH, mapV, mapH + 2, mapV + 2);
return ToolResult.SUCCESS;
}
ToolResult apply4x4buildingTool(Micropolis city, int xpos, int ypos, char tileBase)
ToolResult apply4x4buildingTool(int xpos, int ypos, char tileBase)
{
int mapH = xpos - 1;
int mapV = ypos - 1;
@ -201,11 +201,11 @@ public class ToolStroke
}
}
fixBorder(city, mapH, mapV, mapH + 3, mapV + 3);
fixBorder(mapH, mapV, mapH + 3, mapV + 3);
return ToolResult.SUCCESS;
}
ToolResult apply6x6buildingTool(Micropolis city, int xpos, int ypos, char tileBase)
ToolResult apply6x6buildingTool(int xpos, int ypos, char tileBase)
{
int mapH = xpos - 1;
int mapV = ypos - 1;
@ -263,25 +263,25 @@ public class ToolStroke
}
}
fixBorder(city, mapH, mapV, mapH + 5, mapV + 5);
fixBorder(mapH, mapV, mapH + 5, mapV + 5);
return ToolResult.SUCCESS;
}
void fixBorder(Micropolis city, int left, int top, int right, int bottom)
void fixBorder(int left, int top, int right, int bottom)
{
for (int x = left; x <= right; x++)
{
fixZone(city, x, top);
fixZone(city, x, bottom);
fixZone(x, top);
fixZone(x, bottom);
}
for (int y = top + 1; y <= bottom - 1; y++)
{
fixZone(city, left, y);
fixZone(city, right, y);
fixZone(left, y);
fixZone(right, y);
}
}
ToolResult applyBulldozer(Micropolis city, int xpos, int ypos)
ToolResult applyBulldozer(int xpos, int ypos)
{
if (!city.testBounds(xpos, ypos))
return ToolResult.UH_OH;
@ -299,15 +299,15 @@ public class ToolStroke
{
case 3:
city.makeSound(xpos, ypos, Sound.EXPLOSION_HIGH);
putRubble(city, xpos, ypos, 3, 3);
putRubble(xpos, ypos, 3, 3);
break;
case 4:
city.makeSound(xpos, ypos, Sound.EXPLOSION_LOW);
putRubble(city, xpos, ypos, 4, 4);
putRubble(xpos, ypos, 4, 4);
break;
case 6:
city.makeSound(xpos, ypos, Sound.EXPLOSION_BOTH);
putRubble(city, xpos, ypos, 6, 6);
putRubble(xpos, ypos, 6, 6);
break;
default:
assert false;
@ -335,12 +335,12 @@ public class ToolStroke
{
if (city.budget.totalFunds >= 6)
{
ToolResult result = layDoze(city, xpos, ypos);
ToolResult result = layDoze(xpos, ypos);
if (tmp != (city.getTile(xpos, ypos) & LOMASK))
{
// tile changed
city.spend(5);
fixZone(city, xpos, ypos);
fixZone(xpos, ypos);
}
return result;
}
@ -350,33 +350,33 @@ public class ToolStroke
}
else
{
ToolResult result = layDoze(city, xpos, ypos);
fixZone(city, xpos, ypos);
ToolResult result = layDoze(xpos, ypos);
fixZone(xpos, ypos);
return result;
}
}
ToolResult applyRailTool(Micropolis city, int xpos, int ypos)
ToolResult applyRailTool(int xpos, int ypos)
{
if (!city.testBounds(xpos, ypos))
return ToolResult.UH_OH;
ToolResult result = layRail(city, xpos, ypos);
fixZone(city, xpos, ypos);
ToolResult result = layRail(xpos, ypos);
fixZone(xpos, ypos);
return result;
}
ToolResult applyRoadTool(Micropolis city, int xpos, int ypos)
ToolResult applyRoadTool(int xpos, int ypos)
{
if (!city.testBounds(xpos, ypos))
return ToolResult.UH_OH;
ToolResult result = layRoad(city, xpos, ypos);
fixZone(city, xpos, ypos);
ToolResult result = layRoad(xpos, ypos);
fixZone(xpos, ypos);
return result;
}
ToolResult applyParkTool(Micropolis city, int xpos, int ypos)
ToolResult applyParkTool(int xpos, int ypos)
{
if (!city.testBounds(xpos, ypos))
return ToolResult.UH_OH;
@ -416,13 +416,13 @@ public class ToolStroke
return ToolResult.SUCCESS;
}
ToolResult applyWireTool(Micropolis city, int xpos, int ypos)
ToolResult applyWireTool(int xpos, int ypos)
{
if (!city.testBounds(xpos, ypos))
return ToolResult.UH_OH;
ToolResult result = layWire(city, xpos, ypos);
fixZone(city, xpos, ypos);
ToolResult result = layWire(xpos, ypos);
fixZone(xpos, ypos);
return result;
}
@ -434,7 +434,7 @@ public class ToolStroke
return tile;
}
private ToolResult layDoze(Micropolis city, int xpos, int ypos)
private ToolResult layDoze(int xpos, int ypos)
{
if (city.budget.totalFunds <= 0)
return ToolResult.INSUFFICIENT_FUNDS;
@ -461,7 +461,7 @@ public class ToolStroke
return ToolResult.SUCCESS;
}
private ToolResult layRail(Micropolis city, int xpos, int ypos)
private ToolResult layRail(int xpos, int ypos)
{
final int RAIL_COST = 20;
final int TUNNEL_COST = 100;
@ -568,7 +568,7 @@ public class ToolStroke
return ToolResult.SUCCESS;
}
private ToolResult layRoad(Micropolis city, int xpos, int ypos)
private ToolResult layRoad(int xpos, int ypos)
{
final int ROAD_COST = 10;
final int BRIDGE_COST = 50;
@ -675,7 +675,7 @@ public class ToolStroke
return ToolResult.SUCCESS;
}
private ToolResult layWire(Micropolis city, int xpos, int ypos)
private ToolResult layWire(int xpos, int ypos)
{
final int WIRE_COST = 5;
final int UNDERWATER_WIRE_COST = 25;
@ -796,20 +796,20 @@ public class ToolStroke
return ToolResult.SUCCESS;
}
private void fixZone(Micropolis city, int xpos, int ypos)
private void fixZone(int xpos, int ypos)
{
fixSingle(city, xpos, ypos);
fixSingle(xpos, ypos);
if (ypos > 0)
fixSingle(city, xpos, ypos - 1);
fixSingle(xpos, ypos - 1);
if (xpos > 0)
fixSingle(city, xpos - 1, ypos);
fixSingle(xpos - 1, ypos);
if (xpos + 1 < city.getWidth())
fixSingle(city, xpos + 1, ypos);
fixSingle(xpos + 1, ypos);
if (ypos + 1 < city.getHeight())
fixSingle(city, xpos, ypos + 1);
fixSingle(xpos, ypos + 1);
}
private void fixSingle(Micropolis city, int xpos, int ypos)
private void fixSingle(int xpos, int ypos)
{
char tile = (char) (city.getTile(xpos, ypos) & LOMASK);
tile = neutralizeRoad(tile);
@ -1007,7 +1007,7 @@ public class ToolStroke
} //end if on a rail tile
}
void putRubble(Micropolis city, int xpos, int ypos, int w, int h)
void putRubble(int xpos, int ypos, int w, int h)
{
for (int xx = xpos - 1; xx <= xpos + w-2; xx++) {
for (int yy = ypos - 1; yy <= ypos + h-2; yy++) {