fix generator, not completed

This commit is contained in:
Lendemor 2015-01-13 00:19:26 +01:00
parent 41ba6b25c7
commit bacc20acb5

View File

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