Haskell, 118 112112 104 bytes
66 14 bytes saved thanks to @nimi
z=zipWith(+) p n|n<2=[1]|m<-p(n-1)=z(0:0:m)(m++[0,0]) -- Generate the nth triangle row. r#n|d<-0<$[1..n]=d++r++d -- Pad a row (r) with nGenerate 0sthe onnth eachtriangle siderow. f n=foldl1 z[pz[d++p x#(n-x)|x<x++d|x<-[1..n]] n],d<-[0<$[1..n-x]]] -- Pad each row with --0s Sumand thethen firstsum nall [padded]the rows.