コード例 #1
0
        private static IEnumerable <string> ProcessBINValue(BINFileValue value)
        {
            List <string> strings = new List <string>();

            if (value.Type == BINFileValueType.String)
            {
                string valueString = value.Value as string;
                strings.Add(valueString);

                if ((valueString.StartsWith("ASSETS/", true, null) || valueString.StartsWith("LEVELS/", true, null)) && Path.GetExtension(valueString) == ".dds")
                {
                    int index = valueString.LastIndexOf('/');
                    strings.Add(valueString.Insert(index + 1, "2x_"));
                    strings.Add(valueString.Insert(index + 1, "4x_"));
                }
            }
            else if (value.Type == BINFileValueType.AdditionalOptionalData)
            {
                strings.AddRange(ProcessBINAdditionalData(value.Value as BINFileAdditionalData));
            }
            else if (value.Type == BINFileValueType.Container)
            {
                strings.AddRange(ProcessBINContainer(value.Value as BINFileContainer));
            }
            else if (value.Type == BINFileValueType.Embedded || value.Type == BINFileValueType.Structure)
            {
                strings.AddRange(ProcessBINStructure(value.Value as BINFileStructure));
            }
            else if (value.Type == BINFileValueType.Map)
            {
                strings.AddRange(ProcessBINMap(value.Value as BINFileMap));
            }

            return(strings);
        }
コード例 #2
0
ファイル: WADHashGenerator.cs プロジェクト: liz3/Obsidian
        private static IEnumerable <string> ProcessBINValue(BINFileValue value)
        {
            List <string> strings = new List <string>();

            if (value.Type == BINFileValueType.String)
            {
                strings.Add(value.Value as string);
            }
            else if (value.Type == BINFileValueType.AdditionalOptionalData)
            {
                strings.AddRange(ProcessBINAdditionalData(value.Value as BINFileAdditionalData));
            }
            else if (value.Type == BINFileValueType.Container)
            {
                strings.AddRange(ProcessBINContainer(value.Value as BINFileContainer));
            }
            else if (value.Type == BINFileValueType.Embedded || value.Type == BINFileValueType.Structure)
            {
                strings.AddRange(ProcessBINStructure(value.Value as BINFileStructure));
            }
            else if (value.Type == BINFileValueType.Map)
            {
                strings.AddRange(ProcessBINMap(value.Value as BINFileMap));
            }

            return(strings.AsEnumerable());
        }