public bool PopCapture(int number)
{
if (_captures.ContainsKey(number) && _captures[number].Count > 0)
{
var capture = _captures[number].Pop();
if (_captures[number].Count == 0)
{
_captures.Remove(number);
}
// If we're popping a capture, remove it from each of the saved states.
foreach (var savedState in _savedStates)
{
savedState.RemoveCapture(capture);
}
return true;
}
return false;
}