diff options
-rw-r--r-- | crawl-ref/source/mutation.cc | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/crawl-ref/source/mutation.cc b/crawl-ref/source/mutation.cc index 53d424c211..1399422a4c 100644 --- a/crawl-ref/source/mutation.cc +++ b/crawl-ref/source/mutation.cc @@ -2055,10 +2055,11 @@ bool mutate(mutation_type which_mutation, bool failMsg, return true; } mpr(gain_mutation[mutat][you.mutation[mutat]], MSGCH_MUTATION); + // special-case check you.mutation[mutat]++; calc_hp(); - // special-case check - goto mutate_done; + you.mutation[mutat]--; + break; case MUT_ROBUST: if (you.mutation[MUT_FRAIL] > 0) @@ -2067,10 +2068,11 @@ bool mutate(mutation_type which_mutation, bool failMsg, return true; } mpr(gain_mutation[mutat][you.mutation[mutat]], MSGCH_MUTATION); + // special-case check you.mutation[mutat]++; calc_hp(); - // special-case check - goto mutate_done; + you.mutation[mutat]--; + break; case MUT_LOW_MAGIC: if (you.mutation[MUT_HIGH_MAGIC] > 0) @@ -2079,10 +2081,11 @@ bool mutate(mutation_type which_mutation, bool failMsg, return true; } mpr(gain_mutation[mutat][you.mutation[mutat]], MSGCH_MUTATION); + // special-case check you.mutation[mutat]++; calc_mp(); - // special-case check - goto mutate_done; + you.mutation[mutat]--; + break; case MUT_HIGH_MAGIC: if (you.mutation[MUT_LOW_MAGIC] > 0) @@ -2091,10 +2094,11 @@ bool mutate(mutation_type which_mutation, bool failMsg, return true; } mpr(gain_mutation[mutat][you.mutation[mutat]], MSGCH_MUTATION); + // special-case check you.mutation[mutat]++; calc_mp(); - // special-case check - goto mutate_done; + you.mutation[mutat]--; + break; case MUT_BLACK_SCALES: case MUT_BONEY_PLATES: @@ -2133,7 +2137,6 @@ bool mutate(mutation_type which_mutation, bool failMsg, you.mutation[mutat]++; -mutate_done: // amusement value will be 16 * (11-rarity) * Xom's-sense-of-humor int amusementvalue = calc_mutation_amusement_value(mutat); xom_is_stimulated(amusementvalue); |