From f45815f84b13ce816949ed7329bb6932f5642a4b Mon Sep 17 00:00:00 2001 From: dshaligram Date: Sat, 15 Mar 2008 20:06:05 +0000 Subject: [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 --- crawl-ref/source/randart.cc | 46 ++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) (limited to 'crawl-ref/source/randart.cc') 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; } -- cgit v1.2.3-54-g00ecf