summaryrefslogtreecommitdiff
path: root/src/object2.cc
diff options
context:
space:
mode:
authorBardur Arantsson <bardur@scientician.net>2015-09-14 17:30:27 +0200
committerBardur Arantsson <bardur@scientician.net>2015-09-14 17:30:27 +0200
commit87544c0599ec69df0af560dbfe7f58482d2a0bf5 (patch)
tree501ace7c8a913a23e74debda1c6026bad20d6364 /src/object2.cc
parentb7ceceb10db03a8d59de5de39a7cd6465409c35c (diff)
Replace hack_apply_magic_power with optional parameter
Diffstat (limited to 'src/object2.cc')
-rw-r--r--src/object2.cc13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/object2.cc b/src/object2.cc
index d437d24d..b0e33365 100644
--- a/src/object2.cc
+++ b/src/object2.cc
@@ -3884,8 +3884,7 @@ void add_random_ego_flag(object_type *o_ptr, int fego, bool_ *limit_blows)
* "good" and "great" arguments are false. As a total hack, if "great" is
* true, then the item gets 3 extra "attempts" to become an artifact.
*/
-int hack_apply_magic_power = 0;
-void apply_magic(object_type *o_ptr, int lev, bool_ okay, bool_ good, bool_ great)
+void apply_magic(object_type *o_ptr, int lev, bool_ okay, bool_ good, bool_ great, boost::optional<int> force_power)
{
int i, rolls, f1, f2, power;
object_kind *k_ptr = &k_info[o_ptr->k_idx];
@@ -3986,15 +3985,11 @@ void apply_magic(object_type *o_ptr, int lev, bool_ okay, bool_ good, bool_ grea
if (magik(f2)) power = -2;
}
- /* Mega hack */
- if (hack_apply_magic_power)
+ /* Override power with parameter? */
+ if (auto power_override = force_power)
{
- if (hack_apply_magic_power == -99)
- power = 0;
- else
- power = hack_apply_magic_power;
+ power = *power_override;
}
- hack_apply_magic_power = 0;
/* Assume no rolls */
rolls = 0;