From 784a489830e8f896338534a151a4a333f8bcaa79 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sun, 8 Jun 2008 21:40:12 +0000 Subject: [PATCH] changing region resources --- src/eressea/lua/region.cpp | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/eressea/lua/region.cpp b/src/eressea/lua/region.cpp index 91f6e338f..d569fb293 100644 --- a/src/eressea/lua/region.cpp +++ b/src/eressea/lua/region.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -154,6 +155,12 @@ region_getresource(const region& r, const char * type) { const resource_type * rtype = rt_find(type); if (rtype!=NULL) { + const rawmaterial * rm = r.resources; + while (rm) { + if (rm->type->rtype==rtype) { + return rm->amount; + } + } if (rtype==rt_find("money")) return rmoney(&r); if (rtype==rt_find("horse")) return rhorses(&r); if (rtype==rt_find("peasant")) return rpeasants(&r); @@ -172,9 +179,18 @@ region_setresource(region& r, const char * type, int value) { const resource_type * rtype = rt_find(type); if (rtype!=NULL) { - if (rtype==rt_find("money")) rsetmoney(&r, value); - else if (rtype==rt_find("peasant")) rsetpeasants(&r, value); - else if (rtype==rt_find("horse")) rsethorses(&r, value); + rawmaterial * rm = r.resources; + while (rm) { + if (rm->type->rtype==rtype) { + rm->amount = value; + break; + } + } + if (!rm) { + if (rtype==rt_find("money")) rsetmoney(&r, value); + else if (rtype==rt_find("peasant")) rsetpeasants(&r, value); + else if (rtype==rt_find("horse")) rsethorses(&r, value); + } } else { if (strcmp(type, "seed")==0) { rsettrees(&r, 0, value);