From 0ee59cf55e8de182bae90f2df5eb1fd3300b6880 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sat, 3 Sep 2005 09:13:36 +0000 Subject: [PATCH] http://eressea.upb.de/mantis/view.php?id=694 global warming "infection" not with regular glaciers --- src/eressea/korrektur.c | 35 +++++++++++++++++++++-------------- src/eressea/main.c | 1 + src/eressea/server.cpp | 1 + 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/eressea/korrektur.c b/src/eressea/korrektur.c index e05c02780..77a08cdd1 100644 --- a/src/eressea/korrektur.c +++ b/src/eressea/korrektur.c @@ -786,6 +786,25 @@ frame_regions(void) #define GLOBAL_WARMING 200 #ifdef GLOBAL_WARMING + +static void +iceberg(region * r) +{ + direction_t d; + for (d=0;d!=MAXDIRECTIONS;++d) { + region * rn = rconnect(r, d); + if (rn!=NULL) { + terrain_t rt = rn->terrain; + if (rt!=T_ICEBERG && rt!=T_ICEBERG_SLEEP && rt!=T_GLACIER && rt!=T_OCEAN) { + break; + } + } + } + if (d==MAXDIRECTIONS) { + terraform(r, T_ICEBERG_SLEEP); + } +} + static void global_warming(void) { @@ -795,19 +814,7 @@ global_warming(void) if (r->terrain==T_GLACIER) { /* 1% chance that an existing glacier gets unstable */ if (chance(0.01)) { - direction_t d; - for (d=0;d!=MAXDIRECTIONS;++d) { - region * rn = rconnect(r, d); - if (rn!=NULL) { - terrain_t rt = rn->terrain; - if (rt!=T_ICEBERG && rt!=T_ICEBERG_SLEEP && rt!=T_GLACIER && rt!=T_OCEAN) { - break; - } - } - } - if (d==MAXDIRECTIONS) { - terraform(r, T_ICEBERG_SLEEP); - } + iceberg(r); } } else if (r->terrain==T_ICEBERG || r->terrain==T_ICEBERG_SLEEP) { direction_t d; @@ -815,7 +822,7 @@ global_warming(void) region * rn = rconnect(r, d); if (rn && rn->terrain==T_GLACIER && chance(0.10)) { /* 10% chance that a glacier next to an iceberg gets unstable */ - terraform(rn, T_ICEBERG_SLEEP); + iceberg(rn); } } } diff --git a/src/eressea/main.c b/src/eressea/main.c index 51dae3f0d..1feb5a2f8 100644 --- a/src/eressea/main.c +++ b/src/eressea/main.c @@ -395,6 +395,7 @@ usage(const char * prog, const char * arg) "--nobattle : keine Kämpfe\n" "--nomonsters : keine monster KI\n" "--nodebug : keine Logfiles für Kämpfe\n" + "--noreports : absolut keine Reporte schreiben\n" "--debug : schreibt Debug-Ausgaben in die Datei debug\n" "--nocr : keine CRs\n" "--nonr : keine Reports\n" diff --git a/src/eressea/server.cpp b/src/eressea/server.cpp index 9f96e0793..e5c2c04da 100644 --- a/src/eressea/server.cpp +++ b/src/eressea/server.cpp @@ -475,6 +475,7 @@ usage(const char * prog, const char * arg) "--nobattle : keine Kämpfe\n" "--nomonsters : keine monster KI\n" "--nodebug : keine Logfiles für Kämpfe\n" + "--noreports : absolut keine Reporte schreiben\n" "--debug : schreibt Debug-Ausgaben in die Datei debug\n" "--nocr : keine CRs\n" "--nonr : keine Reports\n"