From c30cebd352a643d6aeabe518de13dc59cdd56b92 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sat, 31 Dec 2005 13:01:11 +0000 Subject: [PATCH] Beim erzeugen neuer Inseln keine Eisberge und Vulkane mehr machen. --- src/common/kernel/terrain.h | 5 ++--- src/common/kernel/xmlreader.c | 1 + src/common/modules/autoseed.c | 4 ++-- src/eressea/eressea-lua.vcproj | 7 +++++++ src/mapper/mapper.c | 2 +- src/res/terrains.xml | 20 ++++++++++---------- 6 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/common/kernel/terrain.h b/src/common/kernel/terrain.h index c99c9bb23..fd240db6f 100644 --- a/src/common/kernel/terrain.h +++ b/src/common/kernel/terrain.h @@ -38,9 +38,8 @@ extern "C" { #define FLY_INTO (1<<7) /* man darf hierhin fliegen */ #define SWIM_INTO (1<<8) /* man darf hierhin schwimmen */ #define WALK_INTO (1<<9) /* man darf hierhin laufen */ -#define LARGE_SHIPS (1<<10) /* grosse Schiffe dürfen hinfahren */ - -#define NORMAL_TERRAIN (WALK_INTO|SAIL_INTO|FLY_INTO) +#define LARGE_SHIPS (1<<10) /* grosse Schiffe dürfen hinfahren */ +#define AUTO_TERRAIN (1<<11) /* used by autoseed */ typedef struct production_rule { char * name; diff --git a/src/common/kernel/xmlreader.c b/src/common/kernel/xmlreader.c index 6bb5809e7..6101e9cc9 100644 --- a/src/common/kernel/xmlreader.c +++ b/src/common/kernel/xmlreader.c @@ -1539,6 +1539,7 @@ parse_terrains(xmlDocPtr doc) if (xml_bvalue(node, "swim", false)) terrain->flags |= SWIM_INTO; if (xml_bvalue(node, "shallow", true)) terrain->flags |= LARGE_SHIPS; if (xml_bvalue(node, "cavalry", false)) terrain->flags |= CAVALRY_REGION; + if (xml_bvalue(node, "seed", true)) terrain->flags |= AUTO_TERRAIN; } if (xml_bvalue(node, "sea", false)) terrain->flags |= SEA_REGION; if (xml_bvalue(node, "arctic", false)) terrain->flags |= ARCTIC_REGION; diff --git a/src/common/modules/autoseed.c b/src/common/modules/autoseed.c index c8f7d9a5f..519350064 100644 --- a/src/common/modules/autoseed.c +++ b/src/common/modules/autoseed.c @@ -645,7 +645,7 @@ autoseed(newfaction ** players, int nsize, boolean new_island) --isize; if (psize>=PLAYERS_PER_ISLAND) break; } else { - terraform_region(r, random_terrain(NORMAL_TERRAIN)); + terraform_region(r, random_terrain(AUTO_TERRAIN)); --isize; } } @@ -681,7 +681,7 @@ autoseed(newfaction ** players, int nsize, boolean new_island) const struct terrain_type * terrain = newterrain(T_OCEAN); rn = new_region(r->x + delta_x[d], r->y + delta_y[d]); if (rand() % SPECIALCHANCE < special) { - terrain = random_terrain(NORMAL_TERRAIN); + terrain = random_terrain(AUTO_TERRAIN); special = SPECIALCHANCE / 3; /* 33% chance auf noch eines */ } else { special = 1; diff --git a/src/eressea/eressea-lua.vcproj b/src/eressea/eressea-lua.vcproj index ecea05234..959dfd909 100644 --- a/src/eressea/eressea-lua.vcproj +++ b/src/eressea/eressea-lua.vcproj @@ -366,6 +366,13 @@ + + + + diff --git a/src/mapper/mapper.c b/src/mapper/mapper.c index f58d1c465..d3edb8d2c 100644 --- a/src/mapper/mapper.c +++ b/src/mapper/mapper.c @@ -1154,7 +1154,7 @@ movearound(short rx, short ry) { if (r!=NULL) { a = map_input(0,0,0,"Wieviele Regionen?",0,500,0); if (a) { - const terrain_type * terrain = random_terrain(NORMAL_TERRAIN); + const terrain_type * terrain = random_terrain(AUTO_TERRAIN); create_island(r, a, terrain); modified=1; } diff --git a/src/res/terrains.xml b/src/res/terrains.xml index 9753534e0..297b6118d 100644 --- a/src/res/terrains.xml +++ b/src/res/terrains.xml @@ -1,7 +1,7 @@ - + @@ -60,7 +60,7 @@ - + @@ -69,7 +69,7 @@ - + @@ -77,10 +77,10 @@ - + - - + + @@ -88,15 +88,15 @@ - + - - - + + +