From bacc20acb5a701e392764d40ed87a5708e5b161c Mon Sep 17 00:00:00 2001 From: Lendemor Date: Tue, 13 Jan 2015 00:19:26 +0100 Subject: [PATCH] fix generator, not completed --- generator.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) 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; }