private void clearAllQbItems(QbFile qbFile, List<GhNotesItem> ghItems, params QbKey[] skipItems)
{
bool found;
uint crc;
foreach (QbItemBase qib in qbFile.Items)
{
if (!(qib is QbItemArray))
continue; //skip non array items
found = false;
crc = qib.ItemQbKey.Crc;
foreach (GhNotesItem gii in ghItems)
{
if (gii.SongNotesQbKey.Crc == crc || gii.SongStarPowerQbKey.Crc == crc || gii.SongStarPowerBattleQbKey.Crc == crc)
{
found = true;
break;
}
}
if (!found)
{
foreach (QbKey qbk in skipItems)
{
if (qbk.Crc == crc)
{
found = true;
break;
}
}
}
if (!found)
{
if (qib.Items[0].QbItemType != QbItemType.Floats)
clearQbItems((QbItemArray)qib);
}
}
}