public bool CanGoAhead(waitSlotType wait) { if(IsWaiting()) return false; if(EverRequested(wait)) return false; return true; }
public bool IsWaitingOn(waitSlotType wait) { return slots[(int)wait]; }
public bool EverRequested(waitSlotType wait) { return everRequestedSlots[(int)wait]; }
public void ActivateWaitSlot(waitSlotType wait) { slots[(int)wait] = true; everRequestedSlots[(int)wait] = true; }
public void TerminateWaitSlot(waitSlotType wait) { slots[(int)wait] = false; }