Ok, I have an odd problem. If I run my game in the compiler it just runs perfect. Nevermind if test-run or debug run. It crashes somewhere in middle of this funtion:

EDIT: I'm on it to look closer in which region it happens. But maybe someone already nees a major problem

EDIT2: Oh ok sorry, there was missing an wait(1);
Click to reveal..

function lade_karte()
{
var filehandle_n;//_n wird nie gespeichert

var i;
var j;
var count;
var bauteil;

STRING* temp_str = "#20";

ENTITY* ent;


str_cpy(delimit_str,";");//readvar wird bei ; gestoppt
str_cpy(save_dir, "\\Maps");//map muss im ordner save sein
filehandle_n = file_open_read ("Map.txt"); //öffne map.txt
if(filehandle_n != 0)//falls es existiert
{
street_count =0;
register_ready = 0;
proc_kill((void*)control_camera);//beende kamerabewegung
for(i=0;i<1000;i++)//leere das array
{
streets[i]=NULL;
}
level_load(NULL);//lade leeren Level
wait(3);

file_find(filehandle_n,"grid_x:");//suche nach string und positioniere den lesepointer hinter ihm
grid_size[0]=file_var_read(filehandle_n);//und speichere wert
file_find(filehandle_n,"grid_y:");//suche nach string und positioniere den lesepointer hinter ihm
grid_size[1]=file_var_read(filehandle_n);//und speichere wert
file_find(filehandle_n,"cars:");//suche nach string und positioniere den lesepointer hinter ihm
start_autos=file_var_read(filehandle_n);//und speichere wert
file_close(filehandle_n);

map1 = 0;
create_grid_params(startpunkt[0],startpunkt[1]); // Startpunkt Untere linke Ecke
map1=create_grid(grid_size[0],grid_size[1],cell_size[0],cell_size[1]); //Erstelle die Map

for(j=1;j<=grid_size[0];j++)
{
for(i=1;i<=grid_size[1];i++)
{
filehandle_n = file_open_read ("Map.txt");
str_cpy(temp_str,";");//; //muss vorangestellt werden da es sonst ab dem 2-stelligen bereich probleme gibt
str_cat(temp_str,str_for_num(NULL,j));//;1
str_cat(temp_str,".");//;1.
str_cat(temp_str,str_for_num(NULL,i));//;1.1
str_cat(temp_str,":");//;1.1:
file_find(filehandle_n,temp_str);//finde die stelle
bauteil = file_var_read(filehandle_n);//lese die variable aus
file_close(filehandle_n);
switch(bauteil)//erstelle die straßenteile
{
case 0:
ent_create("Hinderniss.mdl",vector(((j*cell_size[0])-cell_size[0]/2),((i*cell_size[1])-cell_size[1]/2),0),hinderniss);
break;
case 1:
ent_create("Strasse.mdl",vector(((j*cell_size[0])-cell_size[0]/2),((i*cell_size[1])-cell_size[1]/2),0),strasse_gerade);
break;
case 2:
ent = ent_create("Strasse.mdl",vector(((j*cell_size[0])-cell_size[0]/2),((i*cell_size[1])-cell_size[1]/2),0),strasse_gerade);
ent.pan = 90;
break;
case 3:
ent = ent_create("Strasse-ecke.mdl",vector(((j*cell_size[0])-cell_size[0]/2),((i*cell_size[1])-cell_size[1]/2),0),strasse_ecke);
ent.pan = -270;
break;
case 4:
ent = ent_create("Strasse-ecke.mdl",vector(((j*cell_size[0])-cell_size[0]/2),((i*cell_size[1])-cell_size[1]/2),0),strasse_ecke);
ent.pan = -90;
break;
case 5:
ent = ent_create("Strasse-ecke.mdl",vector(((j*cell_size[0])-cell_size[0]/2),((i*cell_size[1])-cell_size[1]/2),0),strasse_ecke);
ent.pan = -180;
break;
case 6:
ent = ent_create("Strasse-ecke.mdl",vector(((j*cell_size[0])-cell_size[0]/2),((i*cell_size[1])-cell_size[1]/2),0),strasse_ecke);
ent.pan = 0;
break;
case 7:
ent_create("Strasse-kreuzung.mdl",vector(((j*cell_size[0])-cell_size[0]/2),((i*cell_size[1])-cell_size[1]/2),0),strasse_kreuzung);
break;
}
}
}
wait(1);
wait_for(count_me);
register_ready = 1;
diag("\n");diag("Street-count:");diag(str_for_num(NULL,street_count));
for(i=0;i<1000;i++)//leere das array
{
if(streets[i]==NULL)
{
diag("\n");diag("NULL@");diag(str_for_num(NULL,i));
}
}
while(count < street_count-1)//warte bis aööe registriert sind
{
count = 0;
for(i=0;i<street_count;i++)//leere das array
{
if(streets[i]!=NULL)
{
count++;
}
}
wait(1);
}

control_camera();//und starte camera wieder

for(i=1;i<=start_autos;i++)
{
add_car(-1);
}
control_camera();//und starte camera wieder
}
else
{
printf("Map.txt existiert nicht!");
}

}


Last edited by Nicotin; 07/27/09 00:46.