X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Feffects.c;h=98c7a495487d0f2f5fda8db51e32fe0098d94c9b;hb=fde5f70b94d3818e1d3025bed0ff881832c6da52;hp=b244442d309640364d1a3ebbc72f6268f435a251;hpb=2ef5dc65c891bffe7556954a36a8a3a6a0990be1;p=hengband%2Fhengband.git diff --git a/src/effects.c b/src/effects.c index b244442d3..98c7a4954 100644 --- a/src/effects.c +++ b/src/effects.c @@ -87,6 +87,7 @@ void set_action(int typ) #else msg_print("You are no longer walking extremely fast."); #endif + energy_use = 100; break; } case ACTION_SPELL: @@ -386,8 +387,7 @@ bool set_mimic(int v, int p, bool do_dec) return (FALSE); /* Disturb */ - if (disturb_state) - disturb(0, 0); + if (disturb_state) disturb(0, 1); /* Redraw title */ p_ptr->redraw |= (PR_BASIC | PR_STATUS); @@ -883,7 +883,7 @@ msg_print(" if (!notice) return (FALSE); /* Disturb */ - if (disturb_state) disturb(0, 0); + if (disturb_state) disturb(0, 1); /* Redraw map */ p_ptr->redraw |= (PR_MAP); @@ -4926,7 +4926,7 @@ msg_print(" if ((power > randint0(20)) && one_in_(3) && (p_ptr->prace != RACE_ANDROID)) { char effect_msg[80] = ""; - int new_race, expfact, goalexpfact; + int new_race; /* Some form of racial polymorph... */ power -= 10; @@ -5017,21 +5017,11 @@ msg_print(" } - /* - * Restrict the race choices by exp penalty so - * weak polymorph always means weak race - */ - if (power < 0) - goalexpfact = 100; - else - goalexpfact = 100 + 3 * randint0(power); - do { new_race = randint0(MAX_RACES); - expfact = race_info[new_race].r_exp; } - while (((new_race == p_ptr->prace) && (expfact > goalexpfact)) || (new_race == RACE_ANDROID)); + while ((new_race == p_ptr->prace) || (new_race == RACE_ANDROID)); change_race(new_race, effect_msg); } @@ -5127,7 +5117,7 @@ int take_hit(int damage_type, int damage, cptr hit_from, int monspell) if (damage_type != DAMAGE_USELIFE) { /* Disturb */ - disturb(1, 0); + disturb(1, 1); if (auto_more) { now_damaged = TRUE; @@ -5222,8 +5212,6 @@ int take_hit(int damage_type, int damage, cptr hit_from, int monspell) /* Window stuff */ p_ptr->window |= (PW_PLAYER); - handle_stuff(); - if (damage_type != DAMAGE_GENO && p_ptr->chp == 0) { chg_virtue(V_SACRIFICE, 1); @@ -5245,6 +5233,8 @@ int take_hit(int damage_type, int damage, cptr hit_from, int monspell) chg_virtue(V_SACRIFICE, 10); + handle_stuff(); + /* Leaving */ p_ptr->leaving = TRUE; @@ -5482,6 +5472,8 @@ int take_hit(int damage_type, int damage, cptr hit_from, int monspell) return damage; } + handle_stuff(); + /* Hitpoint warning */ if (p_ptr->chp < warning) {