%%% vclig.mf ligatures for vicentino fonts
slant := lowerslant;
currenttransform := identity slanted slant;

beginchar(char12, 5tw#, ah#, dh#); "the fi ligature";
pickup lower_pen;
x2-s=x3+.85s=1.63tw; x1=4.15tw; rt.x4=.25s;
top.y2+.85s=h; bot.y3=-dh+s; bot.y4=-dh;
top.y1=.5[xh,ah];
path stem;
stem = z1{dir45}..tension1.2..z2..tension 2.25..
      z3{dir240}..if modern: else: {dir145}fi z4;
draw if modern: subpath(0,2.6) of fi stem;      
% i
lft.x5=1/3s; y5=xh-1.33th;
x6=x7=3.93tw; rt.x8=w; top.y6=xh; bot.y7=0; y8=th;
path ipart;
ipart = z5...z6{right}..tension7..z7{right}..tension2..
      {dir40}z8;
draw if modern: subpath(0.15,2.2) of fi ipart;
end_char;

beginchar(char11, 5.5tw#, ah#, dh#); "the ff ligature";
pickup lower_pen;
x2-.8s=x3+.8s=1.6tw+.1s; x1=3.2tw+0.5s; rt.x4=-.25s;
top.y2+.75s=top.y1+s=h; bot.y3=-dh+s; bot.y4=-dh;
x11=x1+2.3tw; x12=x2+2.3tw; x13=x3+2.3tw; x14=x4+2.3tw;
y11=y1; y12=y2+.2s; y13=y3; y14=y4;
path lstem, rstem;
rstem = z11{dir106}..tension1.1..z12..tension2.25..
      z13{dir240}..if not.modern: {dir145}fi z14;
z1'=rstem horintersection h-2th;
lstem = z1'{dir110}..tension1.25..z2..tension 2.25..
      z3{dir240}..if modern: else: {dir145}fi z4;
draw if modern: subpath(0,2.75) of fi rstem; 
draw if modern: subpath(0,2.6) of fi lstem;
lft.x5=1/3s; x6=w+.1s; y5=y6=xh-th;
draw z5--z6;
labels(1');
end_char;

beginchar(char15, 2sw#+2.5tw#, ah#, 0); "the ch ligature";
pickup lower_pen;
x2=x3=sw+1.65tw; x2-x1=halfser; top.y2=h; bot.y3=0;
z2-z1=whatever*dir40;
path stem, loop; stem = z2{curl0}..{dir275}z3;
z4 = stem horintersection y1;
draw stem;
if not.modern: ltopserif(z1,z2,z4); fi
x5=1.5sw+1.5tw; top.y5=xh; bot.y8=0; x8=x5+.6tw;
z6 = stem horintersection xh/2;
y7=y6; rt.x7=w-2/3s; 
x9=x5+.8s; y9=.66th;
loop = z6{up}..z5..tension.9..z7{down}..z8..z9;
draw if modern: subpath(0,3.2) of fi loop;
% c:
numeric dev, axis; dev=.5s; axis=.5sw+.5tw+.33s;
rt x11=2axis-.5s; lft x13=.5s; 
x12-dev=x14+dev=axis; 
y11-dev=y13+dev=.52xh;
top.y12=xh; bot.y14=0;
rt.x15=sw+.66tw; y15=3/4xh;
path p,q ; p= superellipse(z11,z12,z13,z14,0.73);
q= z15..{left}z12 & subpath(2,6) of p & z14{right}..{up}z6;
draw q;
end_char;

beginchar(char26, 2sw#+.5tw#, xh#, 0); "the ligature ae";
pickup lower_pen;
x1=.475w; x2=1tw; x3=.9w; x4=w-1.15tw; rt.x5=w-.25s;
top.y1=h; bot.y2=bot.y4=0; y5=th; y3=h-1.25th;
path p;
p = z1{dir210}..tension2..{right}z2..tension2.2..{up}z3 & z3..tension2..
      {dir220}z1..tension2..{right}z4..{dir40}z5;
draw p;
end_char;

beginchar(char27, 2sw#+tw#+s#, xh#, 0); "the ligature oe";
pickup lower_pen;
numeric dev; dev=.5s;
rt x1=w-sw-.5s; lft x3=0+.5s; 
x2-dev=x4+dev=w/2-sw/2; 
y1-dev=y3+dev=.52h;
top.y2=h; bot y4=0;
draw superellipse(z1,z2,z3,z4,0.73);
% e
numeric edev, axis; edev=.5s; axis=w-.5sw-.5tw+.5s;
rt x11=w+.5s; x13=x1; 
x12-edev=x14+edev=axis; 
y11-edev=y13+edev=.52h;
top.y12=h; bot y14=0;
rt.x15+.25s=rt.x16=w-.25s; y15=3/4h; y16=th;
path p,q ; p= superellipse(z11,z12,z13,z14,0.73);
z17 = (subpath(2,6) of p) horintersection .425h;
q= z17{dir18}..tension1.25..
    z15..{left}z12 & subpath(2,6) of p & z14{right}..{dir36}z16;
draw q;
end_char;

beginchar(char29, 4.5sw#, ch#, 0); "the ligature AE";
pickup lower_pen;
% E 
lft.x1=2sw; x4=2sw+tw; x2-3s=x3-2s=x5=w-1.25sw; x6=w-.5tw;
y1=y2=.7h; y3=h; y5=0; y6=1.5th; y4=.5h;
path curve;
curve=z1{dir35}..tension.9..z2{dir35}..tension.85..z3{left}..z4..z5{right}..z6;
draw if modern: subpath(1.25,5) else: subpath(1.15,5) fi of curve;
%A
lft.x11=1.1s; x12=1.5tw; 
top.y11=bot.y12=0; y13'=h; x13'= 2.5sw;
z13= (subpath(2,3) of curve) horintersection h-th;
y8=.43h; x8=w-1.25tw;
path p;
p=z8{left}..tension if modern: .89 else: .92 fi..z11{dir-55}..z12{dir65}
    ..tension1.4..{right}z13'..z13;
if modern: draw subpath(0.05,.6) of p; draw subpath(1.8,4) of p; else:
draw p; fi 
end_char;

beginchar(char30, 5sw#-2tw#, ch#, 0); "the ligature OE";
pickup lower_pen;
numeric dev; dev=3/4s;
rt.x1=2.5sw-s; lft.x3=s; 
x2-dev=x4+dev=1.25sw; 
y1-dev=y3+dev=.52h;
top.y2=h; bot.y4=0;
draw superellipse(z1,z2,z3,z4,.74);
% E
lft.x11=2sw; x14=x1; x12-1.75tw=x13-s=x15-s=w-1.25sw; x16=w-.5tw;
y11=y12=.7h; top.y13=h; bot.y15=0; y16=1.5th; y14=y1;
path curve;
curve=z11{dir35}..tension.9..z12{dir35}..tension.85..z13{left}..
      z14{down}..z15{right}..z16;
draw if modern: subpath(1.25,5) else: subpath(1.15,5) fi of curve;
y17=y18; z17=curve horintersection .55h;
x18=w-1.25tw;
draw z17--z18;
end_char;