private void refreshTreeSubNodes(TreeNode parent)
{
foreach (TreeNode tn in parent.Nodes)
{
reflexiveData rd = (reflexiveData)tn.Tag;
if (rd.inTagNumber != meta.TagIndex)
{
map.OpenMap(MapTypes.Internal);
BR = map.BR;
BR.BaseStream.Position = ((reflexiveData)parent.Tag).baseOffset + rd.reflexive.offset;
if (((reflexiveData)parent.Tag).inTagNumber == meta.TagIndex)
BR.BaseStream.Position += meta.offset;
}
else
{
BR = new BinaryReader(meta.MS);
BR.BaseStream.Position = ((reflexiveData)parent.Tag).baseOffset + rd.reflexive.offset;
}
rd.chunkCount = BR.ReadInt32();
rd.baseOffset = BR.ReadInt32() - meta.magic + rd.chunkSelected * rd.reflexive.chunkSize;
if (rd.chunkCount == 0)
{
tn.ForeColor = Color.LightGray;
}
rd.inTagNumber = map.Functions.ForMeta.FindMetaByOffset(rd.baseOffset);
if (rd.inTagNumber == meta.TagIndex)
rd.baseOffset -= meta.offset;
else
{
map.CloseMap();
if (rd.inTagNumber != -1)
{
tn.ForeColor = Color.Red;
tn.ToolTipText = "Data Source Located in:\n[" + map.MetaInfo.TagType[rd.inTagNumber].ToLower() +
"] " + map.FileNames.Name[rd.inTagNumber].ToLower();
}
}
tn.Text = tn.Name + " [" + rd.chunkCount.ToString() + "]";
refreshTreeListing(tn);
}
}