diff options
author | Bardur Arantsson <bardur@scientician.net> | 2015-09-14 17:30:27 +0200 |
---|---|---|
committer | Bardur Arantsson <bardur@scientician.net> | 2015-09-14 17:30:27 +0200 |
commit | 87544c0599ec69df0af560dbfe7f58482d2a0bf5 (patch) | |
tree | 501ace7c8a913a23e74debda1c6026bad20d6364 /src/object2.cc | |
parent | b7ceceb10db03a8d59de5de39a7cd6465409c35c (diff) |
Replace hack_apply_magic_power with optional parameter
Diffstat (limited to 'src/object2.cc')
-rw-r--r-- | src/object2.cc | 13 |
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; |