From d8c0b57864f35a945ae1ecd87d47efea6b5e5160 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sun, 21 Feb 2021 00:54:21 +0100 Subject: [PATCH] we don't need to track age statistics for any but the new factions. rename global age to newbies. --- src/laws.c | 10 ++++------ src/laws.h | 3 ++- src/summary.c | 12 +++++------- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/laws.c b/src/laws.c index 253c79ae5..9db1027a9 100644 --- a/src/laws.c +++ b/src/laws.c @@ -1268,8 +1268,8 @@ void do_enter(struct region *r, bool is_final_attempt) } } +int newbies[MAXNEWPLAYERS]; int dropouts[2]; -int *age = NULL; bool nmr_death(const faction * f, int turn, int timeout) { @@ -1321,15 +1321,13 @@ static void remove_idle_players(void) i = turn + 1; if (i < 4) i = 4; - free(age); - age = calloc(i, sizeof(int)); - if (!age) abort(); for (fp = &factions; *fp;) { faction *f = *fp; if (!is_monsters(f)) { if (RemoveNMRNewbie() && !fval(f, FFL_NOIDLEOUT)) { - if (f->age >= 0 && f->age <= turn) - ++age[f->age]; + if (f->age >= 0 && f->age < MAXNEWPLAYERS) { + ++newbies[f->age]; + } if (f->age == 2 || f->age == 3) { if (f->lastorders == turn - 2) { ++dropouts[f->age - 2]; diff --git a/src/laws.h b/src/laws.h index bb9ed05dc..5bf81440d 100755 --- a/src/laws.h +++ b/src/laws.h @@ -18,8 +18,9 @@ extern "C" { extern struct attrib_type at_germs; +#define MAXNEWPLAYERS 4 + extern int newbies[MAXNEWPLAYERS]; extern int dropouts[2]; - extern int *age; void demographics(void); void immigration(void); diff --git a/src/summary.c b/src/summary.c index 58687cdc9..de02cb22e 100644 --- a/src/summary.c +++ b/src/summary.c @@ -324,13 +324,11 @@ void report_summary(const summary * s, bool full) } } } - if (age) { - if (age[2] != 0) { - fprintf(F, "Erstabgaben: %3d%%\n", 100 - (dropouts[0] * 100 / age[2])); - } - if (age[3] != 0) { - fprintf(F, "Zweitabgaben: %3d%%\n", 100 - (dropouts[1] * 100 / age[3])); - } + if (newbies[2] != 0) { + fprintf(F, "Erstabgaben: %3d%%\n", 100 - (dropouts[0] * 100 / newbies[2])); + } + if (newbies[3] != 0) { + fprintf(F, "Zweitabgaben: %3d%%\n", 100 - (dropouts[1] * 100 / newbies[3])); } fprintf(F, "Neue Spieler: %d\n", newplayers);