From 5ed2fd2bde997360e944146a3b68c59f12910ae4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anselme=20FRAN=C3=87OIS?= Date: Tue, 17 May 2016 19:23:14 +0200 Subject: [PATCH] added biome generator --- generators/anselme.cpp | 12 ++- generators/anselme.dll | Bin 0 -> 45101 bytes generators/{default.c => biome.cpp} | 113 +++++++++++++--------------- generators/biome.dll | Bin 0 -> 47786 bytes teams/hello.dll | Bin 43078 -> 0 bytes 5 files changed, 62 insertions(+), 63 deletions(-) create mode 100644 generators/anselme.dll rename generators/{default.c => biome.cpp} (64%) create mode 100644 generators/biome.dll delete mode 100644 teams/hello.dll diff --git a/generators/anselme.cpp b/generators/anselme.cpp index f3c485b..fd40bff 100644 --- a/generators/anselme.cpp +++ b/generators/anselme.cpp @@ -11,20 +11,24 @@ extern "C" void generate(Map *mapPtr) int w = map.getWidth(); int h = map.getHeight(); int n = map.getNbTeams(); - int i,j, k; - int r = (w/n < h ? w/n : h)/2; - int *teamCoord = new int[n*2]; + int i, j, k; for(i=0; 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 YGQy$^ZZW literal 0 HcmV?d00001 diff --git a/generators/default.c b/generators/biome.cpp similarity index 64% rename from generators/default.c rename to generators/biome.cpp index 2b52f2c..e6454a5 100644 --- a/generators/default.c +++ b/generators/biome.cpp @@ -1,4 +1,8 @@ -#include "main.h" +#include +#include // rand +#include // memset + +// g++ -shared biome.cpp -o biome.dll -I../src #define MAX_POWER 10 #define MAX_EPICENTER_BY_TYPE 7 @@ -8,7 +12,7 @@ //map type ----> not used for now enum{ - FLAT, VALLEY, + FLAT, VALLEY }; //biome type @@ -29,33 +33,33 @@ typedef struct{ } t_biome; // variables -int sp_x[NB_TEAMS], sp_y[NB_TEAMS]; t_biome* l_biomes; int size_biomes; int nb_plains, nb_forests, nb_mountains; -int cpt_biome = 0; -int width, height; +int cpt_biome; +int width, height, n; // functions int distance_manhattan(int x1,int y1, int x2, int y2); -int absolute(int val); -void set_spawns(t_pixel** map, t_team* teams); +void set_spawns(Map &map); void create_biome(int x, int y, int type); -void create_biome_random(int type); +void create_biome_random(Map &map, int type); int check_nears_biomes(int x, int y); -int check_nears_spawn(int x, int y); +int check_nears_spawn(Map &map, int x, int y); int in_radius(int x,int y,t_biome e); int generate(int x, int y); void init_generator(); -void create_map(int w, int h){ +extern "C" void generate(Map *mapPtr) +{ + Map &map = *mapPtr; + width = map.getWidth(); + height = map.getHeight(); + n = map.getNbTeams(); int i,j; //biome variable - width = w; - height = h; - init_generator(); //Epicenters generation @@ -64,70 +68,66 @@ void create_map(int w, int h){ nb_forests = (rand()%MAX_EPICENTER_BY_TYPE)+3; nb_mountains = (rand()%MAX_EPICENTER_BY_TYPE)+3; - size_biomes = nb_plains+ nb_forests + nb_mountains + NB_TEAMS; - - l_biomes = malloc(sizeof(t_biome)*size_biomes); + size_biomes = nb_plains+ nb_forests + nb_mountains + n; + l_biomes = (t_biome*)malloc(sizeof(t_biome)*size_biomes); + cpt_biome = 0; + // Spawn generations - set_spawns(map,teams); + set_spawns(map); for(i=0;ix=x; biome->y=y; @@ -146,16 +146,14 @@ void create_biome(int x, int y, int type){ biome->radius = (rand()%(OFFSET_RADIUS))+MIN_RADIUS; break; } - - l_biomes[cpt_biome++]=*biome; } -void create_biome_random(int type){ +void create_biome_random(Map &map, int type){ int x,y; do { x=rand()%width; y=rand()%height; - } while ((check_nears_biomes(x,y) != 0) || (check_nears_spawn(x,y) != 0)); //prevent biome superposition + } while ((check_nears_biomes(x,y) != 0) || (check_nears_spawn(map, x,y) != 0)); //prevent biome superposition create_biome(x,y,type); } @@ -168,10 +166,11 @@ int check_nears_biomes(int x, int y){ return c; } -int check_nears_spawn(int x, int y){ +int check_nears_spawn(Map &map, int x, int y){ int i,c = 0; - for(i=0;i<2;i++) - if (distance_manhattan(x,y,sp_x[i],sp_y[i]) < 75) c++; + for(i=0;i 0 ? val : -val; + return Coord::dist(Coord(x1, y1), Coord(x2, y2)); } diff --git a/generators/biome.dll b/generators/biome.dll new file mode 100644 index 0000000000000000000000000000000000000000..33e4e0c01373087b35b50047be25fa72d34f7873 GIT binary patch literal 47786 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 literal 0 HcmV?d00001 diff --git a/teams/hello.dll b/teams/hello.dll deleted file mode 100644 index d3f0b3ad26d9c0207291bbdb886abcb04509e910..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43078 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 a_Rsg2w_w48t;frnU3ur9K7fhe*8UqELe2gF