LynnaLab.TilesetHeaderGroup.TilesetHeaderGroup C# (CSharp) Method

TilesetHeaderGroup() private method

private TilesetHeaderGroup ( Project p, int i ) : System
p Project
i int
return System
        internal TilesetHeaderGroup(Project p, int i)
            : base(p, i)
        {
            FileParser tableFile = Project.GetFileWithLabel("tilesetHeaderGroupTable");
            Data pointerData = tableFile.GetData("tilesetHeaderGroupTable", Index*2);
            string labelName = pointerData.GetValue(0);

            FileParser headerFile = Project.GetFileWithLabel(labelName);
            TilesetHeaderData headerData = headerFile.GetData(labelName) as TilesetHeaderData;
            bool next = true;

            while (next) {
                if (headerData == null)
                    throw new Exception("Expected tileset header group " + Index.ToString("X") + " to reference tileset header data (m_TilesetHeader)");

                Stream dataFile = headerData.ReferencedData;
                dataFile.Position = 0;
                if (headerData.DestAddress == Project.EvalToInt("w3TileMappingIndices")) {
                    // Mappings
                    mappingsDataFile = dataFile;
                }
                else if (headerData.DestAddress == Project.EvalToInt("w3TileCollisions")) {
                    // Collisions
                    collisionsDataFile = dataFile;
                }

                if (headerData.ShouldHaveNext()) {
                    headerData = headerData.NextData as TilesetHeaderData;
                    if (headerData != null)
                        next = true;
                }
                else
                    next = false;
            }
        }