156 bool foundNonResolvedChild =
false;
157 bool foundNegativeChild =
false;
158 bool foundPositiveChild =
false;
167 bool breakout =
false;
168 for (
unsigned int slotIndex : searchResult->second ) {
173 for (
auto child : node.getDaughters() ) {
177 if ( childDecision == -1 )
178 foundNonResolvedChild =
true;
179 else if ( childDecision == 1 )
180 foundPositiveChild =
true;
182 foundNegativeChild =
true;
184 if ( node.m_modePromptDecision ) {
185 if ( node.m_modeOR && foundPositiveChild ) {
189 }
else if ( !node.m_modeOR && foundNegativeChild ) {
195 if ( foundNonResolvedChild ) {
204 if ( breakout )
break;
207 for (
auto child : node.getDaughters() ) {
210 if ( childDecision == -1 )
211 foundNonResolvedChild =
true;
212 else if ( childDecision == 1 )
213 foundPositiveChild =
true;
215 foundNegativeChild =
true;
217 if ( node.m_modePromptDecision ) {
218 if ( node.m_modeOR && foundPositiveChild ) {
221 }
else if ( !node.m_modeOR && foundNegativeChild ) {
226 if ( foundNonResolvedChild )
break;
231 if ( !foundNonResolvedChild && decision == -1 ) {
232 if ( node.m_modeOR ) {
233 if ( foundPositiveChild )
238 if ( foundNegativeChild )
245 if ( node.m_inverted && decision == 1 )
247 else if ( node.m_inverted && decision == 0 )
250 if ( node.m_allPass && !foundNonResolvedChild ) decision = 1;
252 if ( decision != -1 ) {
260 for (
unsigned int slotIndex : searchResult->second ) {
265 for (
auto child : node.getDaughters() ) {
266 bool result = child->accept( *
this );
267 if ( !node.m_modeConcurrent )
275 for (
auto child : node.getDaughters() ) {
276 bool result = child->accept( *
this );
277 if ( !node.m_modeConcurrent )
std::string entryPoint
Name of the node this slot is attached to ("" for top level)
std::vector< int > controlFlowState
State of the control flow.
EventSlot * parentSlot
Pointer to parent slot (null for top level)
std::map< std::string, std::vector< unsigned int > > subSlotsByNode
Listing of sub-slots by the node (name) they are attached to.
std::vector< EventSlot > allSubSlots
Actual sub-slot instances.