From fa130d9ce5542306ae3ac7578294c7f4ccfda47d Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sun, 24 Jan 2016 14:57:36 +0100 Subject: [PATCH 1/3] make all the rset-asserts look the same --- src/kernel/region.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/kernel/region.c b/src/kernel/region.c index d12f72389..7e4a3b649 100644 --- a/src/kernel/region.c +++ b/src/kernel/region.c @@ -605,6 +605,7 @@ int rpeasants(const region * r) void rsetpeasants(region * r, int value) { + assert(r->land || value==0); assert(value >= 0); if (r->land) { r->land->peasants = value; @@ -632,8 +633,11 @@ int rhorses(const region * r) void rsetmoney(region * r, int value) { - if (r->land) r->land->money = value; - else assert(value >= 0); + assert(r->land || value==0); + assert(value >= 0); + if (r->land) { + r->land->money = value; + } } void r_setdemand(region * r, const luxury_type * ltype, int value) From f3ab4d5ca6fefe0a0faaed1097c39399530d0a1c Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sat, 30 Jan 2016 22:57:51 +0100 Subject: [PATCH 2/3] release version 3.7.10 --- src/buildno.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/buildno.h b/src/buildno.h index bd1984af2..b6ed94e81 100644 --- a/src/buildno.h +++ b/src/buildno.h @@ -1,3 +1,3 @@ #define VERSION_MAJOR 3 #define VERSION_MINOR 7 -#define VERSION_BUILD 9 +#define VERSION_BUILD 10 From c55777873196fac75f529b7f721a2462c0f59d22 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sat, 30 Jan 2016 23:04:41 +0100 Subject: [PATCH 3/3] fix https://bugs.eressea.de/view.php?id=2183 --- src/kernel/item.c | 16 ++++++++++++---- src/laws.c | 7 +++++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/kernel/item.c b/src/kernel/item.c index ca6c2f32d..83e787ec2 100644 --- a/src/kernel/item.c +++ b/src/kernel/item.c @@ -567,11 +567,15 @@ struct order *ord) { if (d == NULL) { int use = use_pooled(s, item2resource(itype), GET_SLACK, n); - if (use < n) + region *r = s->region; + if (use < n) { use += use_pooled(s, item2resource(itype), GET_RESERVE | GET_POOLED_SLACK, n - use); - rsethorses(s->region, rhorses(s->region) + use); + } + if (r->land) { + rsethorses(r, rhorses(r) + use); + } return 0; } return -1; /* use the mechanism */ @@ -583,11 +587,15 @@ struct order *ord) { if (d == NULL) { int use = use_pooled(s, item2resource(itype), GET_SLACK, n); - if (use < n) + region *r = s->region; + if (use < n) { use += use_pooled(s, item2resource(itype), GET_RESERVE | GET_POOLED_SLACK, n - use); - rsetmoney(s->region, rmoney(s->region) + use); + } + if (r->land) { + rsetmoney(r, rmoney(r) + use); + } return 0; } return -1; /* use the mechanism */ diff --git a/src/laws.c b/src/laws.c index 121b9d814..3ca95b61f 100755 --- a/src/laws.c +++ b/src/laws.c @@ -720,8 +720,11 @@ void immigration(void) } if (badunit == 0) { - peasants += (int)(rng_double()*(wage(r, NULL, NULL, turn) - 9)); - rsetpeasants(r, peasants); + int x = wage(r, NULL, NULL, turn) - 9; + if (x>0) { + peasants += (int)(rng_double()*x); + rsetpeasants(r, peasants); + } } } }