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
}
}