File diff r3490:2997e05fe018 → r3491:10ed78e15d31
landscape.c
Show inline comments
 
@@ -272,27 +272,27 @@ void GetTileDesc(TileIndex tile, TileDes
 
}
 

	
 
/** Clear a piece of landscape
 
 * @param x,y coordinates of clearance
 
 * @param tile tile to clear
 
 * @param p1 unused
 
 * @param p2 unused
 
 */
 
int32 CmdLandscapeClear(int x, int y, uint32 flags, uint32 p1, uint32 p2)
 
int32 CmdLandscapeClear(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
 
{
 
	TileIndex tile = TileVirtXY(x, y);
 

	
 
	SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
 

	
 
	return _tile_type_procs[GetTileType(tile)]->clear_tile_proc(tile, flags);
 
}
 

	
 
/** Clear a big piece of landscape
 
 * @param x,y end coordinates of area dragging
 
 * @param tile end tile of area dragging
 
 * @param p1 start tile of area dragging
 
 * @param p2 unused
 
 */
 
int32 CmdClearArea(int ex, int ey, uint32 flags, uint32 p1, uint32 p2)
 
int32 CmdClearArea(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
 
{
 
	int32 cost, ret, money;
 
	int ex;
 
	int ey;
 
	int sx,sy;
 
	int x,y;
 
	bool success = false;
 
@@ -302,6 +302,8 @@ int32 CmdClearArea(int ex, int ey, uint3
 
	SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
 

	
 
	// make sure sx,sy are smaller than ex,ey
 
	ex = TileX(tile) * TILE_SIZE;
 
	ey = TileY(tile) * TILE_SIZE;
 
	sx = TileX(p1) * TILE_SIZE;
 
	sy = TileY(p1) * TILE_SIZE;
 
	if (ex < sx) intswap(ex, sx);
 
@@ -312,7 +314,7 @@ int32 CmdClearArea(int ex, int ey, uint3
 

	
 
	for (x = sx; x <= ex; x += TILE_SIZE) {
 
		for (y = sy; y <= ey; y += TILE_SIZE) {
 
			ret = DoCommandByTile(TileVirtXY(x, y), 0, 0, flags & ~DC_EXEC, CMD_LANDSCAPE_CLEAR);
 
			ret = DoCommand(TileVirtXY(x, y), 0, 0, flags & ~DC_EXEC, CMD_LANDSCAPE_CLEAR);
 
			if (CmdFailed(ret)) continue;
 
			cost += ret;
 
			success = true;
 
@@ -322,7 +324,7 @@ int32 CmdClearArea(int ex, int ey, uint3
 
					_additional_cash_required = ret;
 
					return cost - ret;
 
				}
 
				DoCommandByTile(TileVirtXY(x, y), 0, 0, flags, CMD_LANDSCAPE_CLEAR);
 
				DoCommand(TileVirtXY(x, y), 0, 0, flags, CMD_LANDSCAPE_CLEAR);
 

	
 
				// draw explosion animation...
 
				if ((x == sx || x == ex) && (y == sy || y == ey)) {