private void method_1(Stream stream, byte[] buffer) { this.double_0 = (double)WoutWareFont.smethod_3(stream, buffer); this.double_1 = (double)WoutWareFont.smethod_3(stream, buffer); int capacity = WoutWareFont.smethod_1(stream, buffer); this.ilist_0 = (IList <IShape2D>) new List <IShape2D>(capacity); try { while (--capacity >= 0) { this.ilist_0.Add(WoutWareFont.smethod_11(stream, buffer)); } int num = WoutWareFont.smethod_1(stream, buffer); while (--num >= 0) { this.AddGlyph(this.method_4(stream, buffer)); } } finally { this.ilist_0 = (IList <IShape2D>)null; } }
private WoutWareGlyph method_4(Stream stream, byte[] buffer) { char letter = WoutWareFont.smethod_5(stream, buffer); Vector2D advance = WoutWareFont.smethod_7(stream, buffer); GeneralShape2D generalShape2D = new GeneralShape2D(); int num; while (true) { num = stream.ReadByte(); if (num >= 0) { WoutWareFont.Enum12 enum12 = (WoutWareFont.Enum12)num; if ((uint)enum12 <= 100U) { switch (enum12) { case WoutWareFont.Enum12.const_5: goto label_11; case WoutWareFont.Enum12.const_4: double m00_1 = (double)WoutWareFont.smethod_3(stream, buffer); double m01 = (double)WoutWareFont.smethod_3(stream, buffer); double m02_1 = (double)WoutWareFont.smethod_3(stream, buffer); double m10 = (double)WoutWareFont.smethod_3(stream, buffer); double m11_1 = (double)WoutWareFont.smethod_3(stream, buffer); double m12_1 = (double)WoutWareFont.smethod_3(stream, buffer); generalShape2D.Append(this.ilist_0[WoutWareFont.smethod_1(stream, buffer)], false, new Matrix3D(m00_1, m01, m02_1, m10, m11_1, m12_1, 0.0, 0.0, 1.0)); continue; case WoutWareFont.Enum12.const_0: generalShape2D.Append(this.ilist_0[WoutWareFont.smethod_1(stream, buffer)], false); continue; default: goto label_12; } } else { switch (enum12) { case WoutWareFont.Enum12.const_3: double m00_2 = (double)WoutWareFont.smethod_3(stream, buffer); double m02_2 = (double)WoutWareFont.smethod_3(stream, buffer); double m11_2 = (double)WoutWareFont.smethod_3(stream, buffer); double m12_2 = (double)WoutWareFont.smethod_3(stream, buffer); generalShape2D.Append(this.ilist_0[WoutWareFont.smethod_1(stream, buffer)], false, new Matrix3D(m00_2, 0.0, m02_2, 0.0, m11_2, m12_2, 0.0, 0.0, 1.0)); continue; case WoutWareFont.Enum12.const_2: double x1 = (double)WoutWareFont.smethod_3(stream, buffer); double y1 = (double)WoutWareFont.smethod_3(stream, buffer); generalShape2D.Append(this.ilist_0[WoutWareFont.smethod_1(stream, buffer)], false, Transformation3D.Scaling(x1, y1)); continue; case WoutWareFont.Enum12.const_1: double x2 = (double)WoutWareFont.smethod_3(stream, buffer); double y2 = (double)WoutWareFont.smethod_3(stream, buffer); generalShape2D.Append(this.ilist_0[WoutWareFont.smethod_1(stream, buffer)], false, Transformation3D.Translation(x2, y2)); continue; default: goto label_12; } } } else { break; } } throw new IOException("Unexpected end of input!"); label_11: IShape2D outline = !generalShape2D.HasSegments ? (IShape2D)NullShape2D.Instance : (IShape2D) new CachedBoundsShape2D((IShape2D)generalShape2D); return(new WoutWareGlyph(letter, outline, advance)); label_12: throw new IOException("Invalid reference operator " + (object)num); }