Пример #1
0
        private bool LoadFile(Stream stream)
        {
            string magic               = stream.ReadAscii(8);
            uint   strategySetCount    = stream.ReadUInt32().SwapEndian();
            uint   strategyOptionCount = stream.ReadUInt32().SwapEndian();
            uint   refStringStart      = stream.ReadUInt32().SwapEndian();

            StrategySetList = new List <StrategySet>((int)strategySetCount);
            for (uint i = 0; i < strategySetCount; ++i)
            {
                StrategySet ss = new StrategySet(stream, refStringStart);
                StrategySetList.Add(ss);
            }
            StrategyOptionList = new List <StrategyOption>((int)strategyOptionCount);
            for (uint i = 0; i < strategyOptionCount; ++i)
            {
                StrategyOption so = new StrategyOption(stream, refStringStart);
                StrategyOptionList.Add(so);
            }

            StrategyOptionDict = new Dictionary <uint, StrategyOption>(StrategyOptionList.Count);
            foreach (var option in StrategyOptionList)
            {
                StrategyOptionDict.Add(option.InGameID, option);
            }

            return(true);
        }
Пример #2
0
        private bool LoadFile(Stream stream, EndianUtils.Endianness endian, BitUtils.Bitness bits)
        {
            string magic = stream.ReadAscii(8);

            if (magic != "T8BTTA  ")
            {
                throw new Exception("Invalid magic.");
            }
            uint strategySetCount    = stream.ReadUInt32().FromEndian(endian);
            uint strategyOptionCount = stream.ReadUInt32().FromEndian(endian);
            uint refStringStart      = stream.ReadUInt32().FromEndian(endian);

            StrategySetList = new List <StrategySet>((int)strategySetCount);
            for (uint i = 0; i < strategySetCount; ++i)
            {
                StrategySet ss = new StrategySet(stream, refStringStart, endian, bits);
                StrategySetList.Add(ss);
            }
            StrategyOptionList = new List <StrategyOption>((int)strategyOptionCount);
            for (uint i = 0; i < strategyOptionCount; ++i)
            {
                StrategyOption so = new StrategyOption(stream, refStringStart, endian, bits);
                StrategyOptionList.Add(so);
            }

            StrategyOptionDict = new Dictionary <uint, StrategyOption>(StrategyOptionList.Count);
            foreach (var option in StrategyOptionList)
            {
                StrategyOptionDict.Add(option.InGameID, option);
            }

            return(true);
        }