HaloMap.Meta.Meta.ScanMetaItems C# (CSharp) Method

ScanMetaItems() public method

The scan meta items.
public ScanMetaItems ( bool manual, bool parsed ) : void
manual bool The manual.
parsed bool The parsed.
return void
        public void ScanMetaItems(bool manual, bool parsed)
        {
            if (parsed)
            {
                this.parsed = true;
            }

            this.items.Clear();
            switch (Map.HaloVersion)
            {
                case HaloVersionEnum.Halo1:
                case HaloVersionEnum.HaloCE:

                    this.magic = Map.PrimaryMagic;

                    if (Map.MetaInfo.TagType[this.TagIndex] == "bitm" && Map.MetaInfo.external[this.TagIndex] &&
                        Map.HaloVersion != HaloVersionEnum.Halo1)
                    {
                        Map.CloseMap();
                        Map.OpenMap(MapTypes.Bitmaps);
                    }
                    else
                    {
                        Map.CloseMap();
                        Map.OpenMap(MapTypes.Internal);
                    }

                    this.ReadMetaFromMap(this.TagIndex, false);

                    if (manual && this.type != "sbsp")
                    {
                        this.scannedwithent = true;

                        IFPHashMap.RemoveIfp(this.type, Map);

                        IFPIO io = IFPHashMap.GetIfp(this.type, Map.HaloVersion);

                        this.headersize = io.headerSize;

                        scanner.ScanWithIFP(ref io);
                    }
                    else
                    {
                        scanner.ScanManually();
                    }

                    break;

                case HaloVersionEnum.Halo2:
                case HaloVersionEnum.Halo2Vista:

                    #region Halo 2

                    Map.OpenMap(MapTypes.Internal);
                    this.ReadMetaFromMap(this.TagIndex, false);

                    if (manual)
                    {
                        // {&&meta.type!="sbsp")
                        IFPHashMap.RemoveIfp(this.type, Map);

                        IFPIO io = IFPHashMap.GetIfp(this.type, Map.HaloVersion);

                        this.headersize = io.headerSize;

                        string[] sa = scanner.ScanWithIFP(ref io);
                        if (sa.Length > 0)
                        {
                            string s = string.Empty;
                            for (int i = 0; i < sa.Length; i++)
                                s += "\n" + sa[i];
                            MessageBox.Show("Errors were detected with the following idents:\n" + s);
                        }
                    }
                    else
                    {
                        scanner.ScanManually();
                    }

                    break;

                    #endregion
            }
        }

Usage Example

Example #1
0
        /// <summary>
        /// The load bsp. The BSP is loaded into memory.
        /// </summary>
        /// <param name="BSPNum">The bsp num.</param>
        /// <remarks></remarks>
        private void loadBSP(int BSPId)
        {
            this.Cursor = Cursors.WaitCursor;
            //// Load the BSP viewer
            Meta meta = new Meta(map);
            meta.TagIndex = BSPId; // load BSP into MemoryStream (MS)
            meta.ScanMetaItems(true, false);
            BSPModel bsp = new BSPModel(ref meta);
            this.Cursor = Cursors.Arrow;
            if (bsp.BspNumber != -1)
            {
                BSPViewer bv = new BSPViewer(bsp, map);
                bv.Dispose();
                bv = null;
            }

            meta.Dispose();
            GC.Collect();
        }
All Usage Examples Of HaloMap.Meta.Meta::ScanMetaItems