I have the following algorithm(s):
var update_tagarray[1000];
var set_nexttag[1000];
var set_firsttag[1000];
var curr_taghandle[1000];
function update_tagarray(var tag_num)
{ object_inst* tag_instance;
var tag_array[5000];
var count;
var count2;
var instance_ptr;
var curr_tagindex = 0;
set_firsttag[tag_num] = 0;
set_nexttag[tag_num] = 0;
update_tagarray[tag_num] = 0;
while(1)
{ if(update_tagarray[tag_num])
{ update_tagarray[tag_num] = 0;
count = 0;
tag_instance = first_instance;
while(tag_instance)
{ if(tag_instance->tag==tag_num)
{ if(count<5000)
{ count2 = 0;
while(instance_handles[count2]!=tag_instance) { count2 += 1; }
tag_array[count] = count2;
count += 1;
}
}
tag_instance = tag_instance->next;
}
while(count<5000)
{ tag_array[count] = 0;
count += 1;
}
}
if(set_firsttag[tag_num])
{ curr_tagindex = 0;
curr_taghandle = 0;
if(tag_array[curr_tagindex])
{ curr_taghandle[tag_num] = tag_array[curr_tagindex];
}
set_firsttag[tag_num] = 0;
}
if(set_nexttag[tag_num])
{ curr_tagindex += 1;
curr_taghandle = 0;
if(curr_tagindex<5000)
{ if(tag_array[curr_tagindex])
{ curr_taghandle[tag_num] = tag_array[curr_tagindex];
}
}
set_nexttag[tag_num] = 0;
}
wait(1);
}
}
function get_instance_tag(STRING* tag_str)
{ var count = 1;
while(count<1000)
{ if((curr_tags.pstring)[count])
{ if(str_cmp((curr_tags.pstring)[count],tag_str))
{ break;
}
}
count += 1;
}
if(count==1000)
{ count = 1;
while((curr_tags.pstring)[count])
{ count += 1;
}
(curr_tags.pstring)[count] = str_create(tag_str);
update_tagarray(count);
}
return(count);
}
When I run the program the compiler gives me an error message: "Call function @temp_02789 error".
The error message is being produced by "update_tagarray(count);" in get_instance_tag() - if i comment that line out, the program runs with no errors. Why is this one function call producing an error? What does this error message mean?