game/shared/econ/econ_item_schema.cpp
FOR_EACH_MAP_FAST( GetStartNodes(), i )
		{
			uint32 nCampaignNodeIndex = GetStartNodes().Key( i );

			// is this start quest already complete?
			if ( ( 1 << ( nCampaignNodeIndex - 1 ) ) & unCampaignCompletionBitfield )
			{
				// yes. recurse.
				Helper_RecursiveGetAccessibleCampaignNodes( unCampaignCompletionBitfield, GetStartNodes().Element( i ), vecAccessibleNodes );
			}
			else
			{
				// no. add it to the list and return;
				vecAccessibleNodes.AddToTail( GetStartNodes().Element( i ) );
			}
		}
// otherwise recursively look for quests that are successors of completed quests.
otherwise recursively look for quests that are successors of completed quests.
otherwise recursively look for quests that are successors of completed quests .
FOR_EACH_MAP_FAST( GetStartNodes(), i )
		{
			uint32 nCampaignNodeIndex = GetStartNodes().Key( i );
			if ( ( 1 << ( nCampaignNodeIndex - 1 ) ) & unCampaignCompletionBitfield )
			{
				Helper_RecursiveGetAccessibleCampaignNodes( unCampaignCompletionBitfield, GetStartNodes().Element( i ), vecAccessibleNodes );
			}
			else
			{
				vecAccessibleNodes.AddToTail( GetStartNodes().Element( i ) );
			}
		}
FOR_EACH_MAP_FAST ( GetStartNodes ( ) , i ) { uint32 nCampaignNodeIndex = GetStartNodes ( ) . Key ( i ) ; if ( ( 1 << ( nCampaignNodeIndex - 1 ) ) & unCampaignCompletionBitfield ) { Helper_RecursiveGetAccessibleCampaignNodes ( unCampaignCompletionBitfield , GetStartNodes ( ) . Element ( i ) , vecAccessibleNodes ) ; } else { vecAccessibleNodes . AddToTail ( GetStartNodes ( ) . Element ( i ) ) ; } }
otherwise recursively look for quests that are successors of completed quests.
otherwise recursively look for quests that are successors of completed quests .
// is this start quest already complete? // yes. recurse. // no. add it to the list and return;