summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/randart.cc
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2008-03-15 20:06:05 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2008-03-15 20:06:05 +0000
commitf45815f84b13ce816949ed7329bb6932f5642a4b (patch)
tree6096249373a2ab37a7296cf43ebb501d16c0f386 /crawl-ref/source/randart.cc
parenteb8308719ac8b80dbd41fd822daabae039e04436 (diff)
downloadcrawl-ref-f45815f84b13ce816949ed7329bb6932f5642a4b.tar.gz
crawl-ref-f45815f84b13ce816949ed7329bb6932f5642a4b.zip
[1914670] Fixed randarts possibly getting up to -7 negative ench (sorear).
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3655 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/randart.cc')
-rw-r--r--crawl-ref/source/randart.cc46
1 files changed, 23 insertions, 23 deletions
diff --git a/crawl-ref/source/randart.cc b/crawl-ref/source/randart.cc
index a7c06c1a05..a687e6ffa1 100644
--- a/crawl-ref/source/randart.cc
+++ b/crawl-ref/source/randart.cc
@@ -479,6 +479,14 @@ void randart_desc_properties( const item_def &item,
}
}
+inline static void randart_propset( randart_properties_t &p,
+ randart_prop_type pt,
+ int value,
+ bool neg )
+{
+ p[pt] = neg? -value : value;
+}
+
static int randart_add_one_property( const item_def &item,
randart_properties_t &proprt )
{
@@ -522,37 +530,29 @@ static int randart_add_one_property( const item_def &item,
{
default:
case 0:
- if (negench)
- proprt[RAP_AC] -= 1 + random2(3) + random2(3) + random2(3);
- else
- proprt[RAP_AC] = 1 + random2(3) + random2(3) + random2(3);
+ randart_propset(proprt, RAP_AC,
+ 1 + random2(3) + random2(3) + random2(3),
+ negench);
break;
case 1:
- if (negench)
- proprt[RAP_EVASION] -= 1 + random2(3) + random2(3) + random2(3);
- else
- proprt[RAP_EVASION] = 1 + random2(3) + random2(3) + random2(3);
+ randart_propset(proprt, RAP_EVASION,
+ 1 + random2(3) + random2(3) + random2(3),
+ negench);
break;
case 2:
- if (negench)
- proprt[RAP_STRENGTH] -= 1 + random2(3) + random2(3)
- + random2(3);
- else
- proprt[RAP_STRENGTH] = 1 + random2(3) + random2(2);
+ randart_propset(proprt, RAP_STRENGTH,
+ 1 + random2(3) + random2(3),
+ negench);
break;
case 3:
- if (negench)
- proprt[RAP_INTELLIGENCE] -= 1 + random2(3) + random2(3)
- + random2(3);
- else
- proprt[RAP_INTELLIGENCE] = 1 + random2(3) + random2(2);
+ randart_propset(proprt, RAP_INTELLIGENCE,
+ 1 + random2(3) + random2(3),
+ negench);
break;
case 4:
- if (negench)
- proprt[RAP_DEXTERITY] -= 1 + random2(3) + random2(3)
- + random2(3);
- else
- proprt[RAP_DEXTERITY] = 1 + random2(3) + random2(2);
+ randart_propset(proprt, RAP_DEXTERITY,
+ 1 + random2(3) + random2(3),
+ negench);
break;
}