That's weird to say the least. I've reduced the code and the project now to an absolute minimum, please download it here (not only jcl but some other readers as well, please):
http://www.superku.de/mdl_crash.zipIt crashes on both my desktop (newest A8 version) and my laptop computer (8.30.5), all files have been replaced by new ones (even the level which only consists of one "position"/ camera and one object) and the codes has been checked multiple times for mistakes.
However, what makes the problem even weirder, the crash disappears as soon as you change literally anything in the main function code (that includes commenting "video_mode" or removing the lines after "return").
void main()
{
fps_max = 60;
video_mode = 9;
d3d_antialias = 9;
collision_mode = 0;
vec_set(sky_color,COLOR_BLACK);
level_load("test.wmb");
ent_highlight = ent_for_name("highlight2");
ent_highlight.emask |= ENABLE_PUSH;
camera.x = tiles_dim_x/2*64;
camera.y = tiles_dim_y/2*64;
camera.z = 1487;
camera.tilt = -90;
camera.arc = 40;
on_esc = exit_game;
temp.z = 2;
for(i = 0; i < tiles_dim_x; i++)
{
for(j = 0; j < tiles_dim_y; j++)
{
temp.x = 32+64*i;
temp.y = 32+64*j;
you = ent_create("tile3.mdl",temp,NULL);
your.skill10 = i;
your.skill11 = j;
ent_tiles[i*tiles_dim_y+j] = you;
}
}
for(i = 0; i < tiles_dim_x; i++)
{
for(j = 0; j < tiles_dim_y; j++)
{
if(j < tiles_dim_y-1)
{
k = floor(random(tile_max_colors));
you = ent_tiles[i*tiles_dim_y+j];
your.skill3 = k;
you = ent_tiles[i*tiles_dim_y+j+1];
your.skill1 = k;
}
if(i < tiles_dim_x-1)
{
k = floor(random(tile_max_colors));
you = ent_tiles[i*tiles_dim_y+j];
your.skill2 = k;
you = ent_tiles[(i+1)*tiles_dim_y+j];
//if(you == NULL) error("AAA"); // <- hier
your.skill4 = k;
}
}
}
return;
mouse_mode = 4;
mouse_range = 3000;
while(1)
{
for(i = 0; i < tiles_dim_x; i++)
{
for(j = 0; j < tiles_dim_y; j++)
{
you = ent_tiles[i*tiles_dim_y+j];
if(you == ent_tile_selected) your.z += (48-your.z)*0.25*time_step;
else your.z += (2-your.z)*0.5*time_step;
your.skill41 = floatv(your.skill1);
your.skill42 = floatv(your.skill2);
your.skill43 = floatv(your.skill3);
your.skill44 = floatv(your.skill4);
}
}
wait(1);
}
}
EDIT: Array dimension should not be a problem, too:
ENTITY* ent_tiles[64];
var tiles_dim_x = 8;
var tiles_dim_y = 8;
Even when you change the dimensions to let's say 4 and keep the array dimension at 64 it still crashes.