water_cmd.c
changeset 1076 03a5f2b0a5c2
parent 1075 4b8af0e57a79
child 1091 0f113f2ed794
equal deleted inserted replaced
1075:4b8af0e57a79 1076:03a5f2b0a5c2
   500 
   500 
   501 	if (TileHeight(TILE_ADD(tile, ToTileIndexDiff(offs[3]))) != 0 ||
   501 	if (TileHeight(TILE_ADD(tile, ToTileIndexDiff(offs[3]))) != 0 ||
   502 			TileHeight(TILE_ADD(tile, ToTileIndexDiff(offs[4]))) != 0) {
   502 			TileHeight(TILE_ADD(tile, ToTileIndexDiff(offs[4]))) != 0) {
   503 		// make coast..
   503 		// make coast..
   504 		switch (TileType(target)) {
   504 		switch (TileType(target)) {
       
   505 			case MP_RAILWAY: {
       
   506 				uint slope = GetTileSlope(target, NULL);
       
   507 				byte tracks = _map5[target] & 0x3F;
       
   508 				if (!(
       
   509 						(slope == 1 && tracks == 0x20) ||
       
   510 						(slope == 2 && tracks == 0x04) ||
       
   511 						(slope == 4 && tracks == 0x10) ||
       
   512 						(slope == 8 && tracks == 0x08)))
       
   513 					break;
       
   514 			}
       
   515 			/* FALLTHROUGH */
       
   516 
   505 			case MP_CLEAR:
   517 			case MP_CLEAR:
   506 			case MP_TREES:
   518 			case MP_TREES:
   507 				_current_player = OWNER_WATER;
   519 				_current_player = OWNER_WATER;
   508 				if (DoCommandByTile(target, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR) != CMD_ERROR) {
   520 				if (DoCommandByTile(target, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR) != CMD_ERROR) {
   509 					ModifyTile(
   521 					ModifyTile(