701 {
702 bool isTrue = (under_left_close == under_right_close && under_right_close == under_left_far && under_left_far == under_right_far);
703 #ifdef DIAG_DEVELOPER
704 DebugText(
"IsBaseIntact(must be true and all equal): ",
true, isTrue,
" | ulc: " +
Object.GetDebugName(under_left_close) +
" | urc: " +
Object.GetDebugName(under_right_close) +
" | ulf: " +
Object.GetDebugName(under_left_far) +
" | urf: " +
Object.GetDebugName(under_right_far));
705 if (!isTrue)
706 {
707 array<bool> conditions = new array<bool>();
708 conditions.Insert(under_left_close == null);
709 conditions.Insert(under_right_close == null);
710 conditions.Insert(under_left_far == null);
711 conditions.Insert(under_right_far == null);
712
713 int amountOfNull = 0;
714 if (!under_left_close)
715 ++amountOfNull;
716 if (!under_right_close)
717 ++amountOfNull;
718 if (!under_left_far)
719 ++amountOfNull;
720 if (!under_right_far)
721 ++amountOfNull;
722
723 if ( amountOfNull < 3 )
724 for ( int i = 0; i < conditions.Count(); ++i)
725 conditions[i] = !conditions[i];
726
727 DrawBaseSpheres(conditions);
728 }
729 #endif
730
731 return isTrue;
732 }