|  | @@ -893,14 +893,11 @@ int IDN_LoopVisit(laLoopNode* n, laNodeVisitInfo* vi){
 | 
	
		
			
				|  |  |      LA_ADD_THIS_NODE(n,vi);
 | 
	
		
			
				|  |  |      return LA_DAG_FLAG_PERM;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -#define LA_GET_SRC_AS_INT(var, socket) \
 | 
	
		
			
				|  |  | -    {if(socket->Source->DataType&LA_PROP_FLOAT) var=*((real*)socket->Source->Data);\
 | 
	
		
			
				|  |  | -    if(socket->Source->DataType&(LA_PROP_INT|LA_PROP_ENUM)) var=*((int*)socket->Source->Data);}
 | 
	
		
			
				|  |  |  int IDN_LoopEval(laLoopNode* n){
 | 
	
		
			
				|  |  |      laLoopIndexNode* lin=LA_SRC_AND_PARENT(n->InIndex)?n->InIndex->Source->Parent:0;
 | 
	
		
			
				|  |  |      if(lin->Base.Type!=&LA_IDN_LOOP_INDEX){lin=0;}
 | 
	
		
			
				|  |  |      int Iterations=n->Iterations;
 | 
	
		
			
				|  |  | -    if(LA_SRC_AND_PARENT(n->InIterations)){ LA_GET_SRC_AS_INT(Iterations, n->InIterations); }
 | 
	
		
			
				|  |  | +    if(LA_SRC_AND_PARENT(n->InIterations)){ LA_GET_SRC_AS_VALUE(Iterations, n->InIterations); }
 | 
	
		
			
				|  |  |      for(int i=0; i<Iterations; i++){
 | 
	
		
			
				|  |  |          if(lin){ lin->Iteration=i; }
 | 
	
		
			
				|  |  |          la_PageClearBranch(n->Page,n->BranchControl);
 | 
	
	
		
			
				|  | @@ -1035,10 +1032,9 @@ int OPINV_AddNode(laOperator* a, laEvent *e){
 | 
	
		
			
				|  |  |      if(!MAIN.CurrentNodeCategory) MAIN.CurrentNodeCategory=MAIN.NodeCategories.pFirst;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      char* target=strGetArgumentString(a->ExtraInstructionsP,"target");
 | 
	
		
			
				|  |  | -    if(!target || strSame(target,"INPUT")){ MAIN.FilterNodeCategory=LA_RACK_TYPE_INPUT;
 | 
	
		
			
				|  |  | -        if(!(MAIN.CurrentNodeCategory->For&LA_RACK_TYPE_INPUT)) MAIN.CurrentNodeCategory=LA_NODE_CATEGORY_INPUT; }
 | 
	
		
			
				|  |  | -    else{ MAIN.FilterNodeCategory=LA_RACK_TYPE_DRIVER;
 | 
	
		
			
				|  |  | -        if(!(MAIN.CurrentNodeCategory->For&LA_RACK_TYPE_DRIVER)) MAIN.CurrentNodeCategory=LA_NODE_CATEGORY_DRIVER; }
 | 
	
		
			
				|  |  | +    int ti=0; if(target) sscanf(target,"%d",&ti);
 | 
	
		
			
				|  |  | +    if((!target) || ti==0){ MAIN.FilterNodeCategory=LA_RACK_TYPE_INPUT; }
 | 
	
		
			
				|  |  | +    else{ MAIN.FilterNodeCategory=ti; }
 | 
	
		
			
				|  |  |      char* type=strGetArgumentString(a->ExtraInstructionsP,"type");
 | 
	
		
			
				|  |  |      if(!type){ laEnableOperatorPanel(a,a->This,e->x-LA_RH*4,e->y-LA_RH,200,200,0,0,LA_RH*15,0,0,0,0,0,e); return LA_RUNNING; }
 | 
	
		
			
				|  |  |      else{
 |