|
@@ -893,14 +893,11 @@ int IDN_LoopVisit(laLoopNode* n, laNodeVisitInfo* vi){
|
|
LA_ADD_THIS_NODE(n,vi);
|
|
LA_ADD_THIS_NODE(n,vi);
|
|
return LA_DAG_FLAG_PERM;
|
|
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){
|
|
int IDN_LoopEval(laLoopNode* n){
|
|
laLoopIndexNode* lin=LA_SRC_AND_PARENT(n->InIndex)?n->InIndex->Source->Parent:0;
|
|
laLoopIndexNode* lin=LA_SRC_AND_PARENT(n->InIndex)?n->InIndex->Source->Parent:0;
|
|
if(lin->Base.Type!=&LA_IDN_LOOP_INDEX){lin=0;}
|
|
if(lin->Base.Type!=&LA_IDN_LOOP_INDEX){lin=0;}
|
|
int Iterations=n->Iterations;
|
|
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++){
|
|
for(int i=0; i<Iterations; i++){
|
|
if(lin){ lin->Iteration=i; }
|
|
if(lin){ lin->Iteration=i; }
|
|
la_PageClearBranch(n->Page,n->BranchControl);
|
|
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;
|
|
if(!MAIN.CurrentNodeCategory) MAIN.CurrentNodeCategory=MAIN.NodeCategories.pFirst;
|
|
|
|
|
|
char* target=strGetArgumentString(a->ExtraInstructionsP,"target");
|
|
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");
|
|
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; }
|
|
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{
|
|
else{
|