diff --git a/generator.c b/generator.c index 5b07505..aab481f 100644 --- a/generator.c +++ b/generator.c @@ -88,6 +88,9 @@ void create_map(t_pixel** map, t_team* teams, int w, int h){ error = 1; } } + + map[x_rand][y_rand].type=SPAWN; + teams[k].spawn.x = x_rand; teams[k].spawn.y = y_rand; } @@ -106,7 +109,7 @@ void create_epicenter(int type){ } int generate(int x, int y){ - int i, ratio, dist_to_epi, sum, val, type; + int i, ratio, dist_to_epi, sum, val; int proba[5]; t_epicenter epi; @@ -114,22 +117,26 @@ int generate(int x, int y){ epi = l_epicenters[i]; dist_to_epi = distance_manhattan(x,y,epi.x, epi.y); if (dist_to_epi < epi.radius){ - ratio = (int) ((epi.radius - dist_to_epi) * 100) / epi.radius; + ratio = (int) (dist_to_epi * 100) / epi.radius; proba[epi.type-1]=epi.power * ratio; + }else{ + proba[epi.type-1]=0; } } - + sum=0; for (i=0;i<5;i++){ sum += proba[i]; } + val = rand()%sum; int seuil = 0; + for (i=0;i<5;i++){ seuil += proba[i]; if(val < seuil) - return i+1; + return i+2; } return GRASS; }