private static void WriteFonts(IList <KeyValuePair <string, GMFont> > _data, Stream _s, IFF _iff) { WriteDataKVP(_data, _s, _iff, delegate(KeyValuePair <string, GMFont> _kvp, Stream __s, IFF __iff, long __index) { __s.PatchOffset(__index); __iff.AddString(__s, _kvp.Key); GMFont value = _kvp.Value; __iff.AddString(__s, value.Name); __s.WriteInteger(value.Size); __s.WriteBoolean(value.Bold); __s.WriteBoolean(value.Italic); //__s.WriteInteger(value.First | (value.CharSet << 16) | (value.AntiAlias << 24)); //CharSet and AntiAliasing are NOT supported by PSP runner! __s.WriteInteger(value.First); __s.WriteInteger(value.Last); ms_tpageSprites.BeginGroup(_kvp.Key); TexturePageEntry texturePageEntry = ms_tpageSprites.AddImage(value.Bitmap, false, true); ms_tpageSprites.EndGroup(); __iff.AddPatch(__s, texturePageEntry); double num = 1.0; double num2 = 1.0; if (texturePageEntry.W != value.Bitmap.Width || texturePageEntry.H != value.Bitmap.Height) { num = (double)texturePageEntry.W / (double)value.Bitmap.Width; num2 = (double)texturePageEntry.H / (double)value.Bitmap.Height; } num = 1.0 / num; num2 = 1.0 / num2; __s.WriteSingle((float)num); __s.WriteSingle((float)num2); __s.WriteInteger(value.Glyphs.Count); foreach (GMGlyph glyph in value.Glyphs) { __s.WriteInteger((int)(((double)glyph.X + num - 1.0) / num)); __s.WriteInteger((int)(((double)glyph.Y + num2 - 1.0) / num2)); __s.WriteInteger((int)(((double)glyph.W + num - 1.0) / num)); __s.WriteInteger((int)(((double)glyph.H + num2 - 1.0) / num2)); __s.WriteInteger((int)(((double)glyph.Shift + num - 1.0) / num)); __s.WriteInteger((int)(((double)glyph.Offset + num - 1.0) / num)); } }); }
public void Font_Load(Stream _s) { int num = _s.ReadInteger(); int num2 = _s.ReadInteger(); for (int i = 0; i < num2; i++) { Stream s = _s; if (num == 800) { s = _s.ReadStreamC(); } bool flag = s.ReadBoolean(); KeyValuePair <string, GMFont> item = default(KeyValuePair <string, GMFont>); if (flag) { string key = s.ReadString(); GMFont value = new GMFont(this, s); item = new KeyValuePair <string, GMFont>(key, value); } Fonts.Add(item); } }