Ejemplo n.º 1
0
        IDictionary <UInt32, String> ReadStringMap(FileReader reader, FileHeaders.SCENARIO_HEADER header)
        {
            var map = new SortedDictionary <UInt32, String>();

            reader.Stream.Position = header.StringTableOffset;

            while (true)
            {
                if (reader.Stream.Position == reader.Stream.Length)
                {
                    break;
                }

                var offset = (UInt32)reader.Stream.Position;
                var str    = reader.ReadString();

                map.Add(offset, str);
                FileMap.Add(offset, str);

                if (str == "")
                {
                    break;
                }
            }

            return(map);
        }
Ejemplo n.º 2
0
        static FileHeaders.SCENARIO_HEADER UpdateHeader(FileHeaders.SCENARIO_HEADER header, Func <UInt32, UInt32> fixer)
        {
            Assert.IsNotNull(fixer, nameof(fixer));

            header.StringTableOffset   = fixer(header.StringTableOffset);
            header.FunctionTableOffset = (UInt16)fixer(header.FunctionTableOffset);

            return(header);
        }
Ejemplo n.º 3
0
 List <T> ReadScenarioInfoList <T>(FileReader reader, FileHeaders.SCENARIO_HEADER header, Int32 index) where T : struct
 {
     return(ReadList <T>(reader, header.ScnInfoOffset[index], header.ScnInfoNumber[index]));
 }