public ulong GetContentMetaId() { IEnumerable <string> source1 = this.m_Document.Descendants((XName)"Patch").Descendants <XElement>((XName)"Id").Select <XElement, string>((Func <XElement, string>)(pid => (string)pid)); if (source1.Any <string>()) { return(Convert.ToUInt64(source1.First <string>(), 16)); } IEnumerable <string> source2 = this.m_Document.Descendants((XName)"Core").Descendants <XElement>((XName)"PatchId").Select <XElement, string>((Func <XElement, string>)(pid => (string)pid)); if (source2.Any <string>()) { return(Convert.ToUInt64(source2.First <string>(), 16)); } if (this.IsPatch()) { return(IdConverter.ConvertToPatchId(this.GetApplicationId())); } if (this.m_Document.Descendants((XName)"AddOnContent").Any <XElement>()) { IEnumerable <string> source3 = this.m_Document.Descendants((XName)"AddOnContent").Descendants <XElement>((XName)"Id").Select <XElement, string>((Func <XElement, string>)(addOnContentId => (string)addOnContentId)); IEnumerable <string> source4 = this.m_Document.Descendants((XName)"AddOnContent").Descendants <XElement>((XName)"Index").Select <XElement, string>((Func <XElement, string>)(index => (string)index)); IEnumerable <string> source5 = this.m_Document.Descendants((XName)"AddOnContent").Descendants <XElement>((XName)"ApplicationId").Select <XElement, string>((Func <XElement, string>)(appId => (string)appId)); if (source3.Any <string>()) { return(Convert.ToUInt64(source3.First <string>(), 16)); } return(IdConverter.ConvertToAocBaseId(Convert.ToUInt64(source5.First <string>(), 16)) + Convert.ToUInt64(source4.First <string>())); } if (this.m_Document.Descendants((XName)"SystemUpdate").Any <XElement>()) { return(Convert.ToUInt64(this.m_Document.Descendants((XName)"SystemUpdate").Descendants <XElement>((XName)"ContentMeta").Descendants <XElement>((XName)"Id").Select <XElement, string>((Func <XElement, string>)(id => (string)id)).First <string>(), 16)); } return(this.GetAnyId()); }
private static byte[] MakeApplicationControlPropertyBytes(string metaPath) { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(metaPath); XmlNode xmlNode = xmlDocument.SelectSingleNode("//Application"); ApplicationControlPropertyModel controlPropertyModel = (ApplicationControlPropertyModel) new XmlSerializer(typeof(ApplicationControlPropertyModel)).Deserialize(XmlReader.Create((TextReader) new StringReader(xmlNode == null ? "<Application></Application>" : xmlNode.OuterXml))); DotMetaReader dotMetaReader = new DotMetaReader(metaPath); long applicationId = (long)dotMetaReader.GetApplicationId(); long aocBaseId = (long)IdConverter.ConvertToAocBaseId(dotMetaReader.GetCoreId()); return(controlPropertyModel.MakePropertyBytes((ulong)applicationId, (ulong)aocBaseId)); }
private uint GetAddOnContentIndex(ContentMetaDescriptor descriptor, NintendoAddOnContentExtendedHeader exHeader) { return((uint)(descriptor.Id - IdConverter.ConvertToAocBaseId(exHeader.ApplicationId))); }