示例#1
0
        public override void SetListBytes(ref List <byte> listBytes)
        {
            sectionIdentifier = Section.LEDR;

            int previousSize = listBytes.Count;

            if (LevelLabel.Length > 64)
            {
                LevelLabel = new string(LevelLabel.Take(64).ToArray());
            }
            foreach (char c in LevelLabel)
            {
                listBytes.Add((byte)c);
            }
            for (int i = LevelLabel.Length; i < 64; i++)
            {
                listBytes.Add(0);
            }

            listBytes.AddRange(GameProgress.Reverse());
            listBytes.AddRange(Unknown1.Reverse());
            listBytes.AddRange(Unknown2.Reverse());
            listBytes.AddRange(Unknown3.Reverse());

            if (ThumbnailIcon != ThumbIcon.None)
            {
                listBytes.Add((byte)ThumbnailIcon);
                listBytes.Add(0);
                listBytes.Add(0);
                listBytes.Add(0);
            }

            listBytes.AddRange(Unknown4.Reverse());

            if (UnknownText.Length > 0xA8)
            {
                UnknownText = new string(UnknownText.Take(0xA8).ToArray());
            }
            foreach (char c in UnknownText)
            {
                listBytes.Add((byte)c);
            }

            bytesUsed = listBytes.Count - previousSize;

            for (int i = bytesUsed; i < 0x100; i++)
            {
                listBytes.Add(0xBF);
            }

            blockSize = listBytes.Count - previousSize;
        }