public override void BaseField_Leave(object sender, EventArgs e)
{
System.IO.BinaryWriter BW = new System.IO.BinaryWriter(meta.MS);
if (map.Functions.ForMeta.FindMetaByOffset(((Bitmask)this).offsetInMap) == meta.TagIndex)
{
BW.BaseStream.Position = this.offsetInMap - meta.offset;
}
else
{
//((WinMetaEditor)this.TopLevelControl).ExternalData.Items.Add();
}
try
{
uint intToShift = 1;
uint tempIntToWrite = 0;
for (int counter = 0; counter < this.bitCount; counter++)
{
if (this.Bits[counter] == true)
{
tempIntToWrite += intToShift;
}
intToShift <<= 1;
}
this.value = tempIntToWrite;
switch (this.bitCount)
{
case 8:
{
BW.Write(Convert.ToByte(this.value));
break;
}
case 16:
{
BW.Write(Convert.ToUInt16(this.value));
break;
}
case 32:
{
BW.Write(Convert.ToUInt32(this.value));
break;
}
}
}
catch
{
MessageBox.Show("Man the hatches! Error in writing bitmask info to map!");
}
}