Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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)));
 }