private static void LoadGuilds(BinaryFileReader reader, GuildEntry[] entries) { for (int i = 0; i < entries.Length; ++i) { GuildEntry entry = entries[i]; BaseGuild guild = (BaseGuild)entry.Object; if (guild == null) { continue; } reader.Seek(entry.Position, SeekOrigin.Begin); try { guild.Deserialize(reader); } catch (Exception e) { log.Error(String.Format("failed to load guild", guild), e); BaseGuild.List.Remove(guild.Id); entries[i].Clear(); ++m_LoadErrors; continue; } if (reader.Position != entry.Position + entry.Length) { log.ErrorFormat("Bad deserialize on guild {0}, type {1}: position={2}, should be {3}", guild.Id, guild.GetType(), reader.Position, entry.Position + entry.Length); BaseGuild.List.Remove(guild.Id); entries[i].Clear(); ++m_LoadErrors; } } }