OSDN Git Service

snipe_concentrate および reset_concentration 関数で PU_BONUS フラグを立てていなかったため、集中が途切れた後も一時テレパシ...
authorhabu <habu@0568b783-4c39-0410-ac80-bf13821ea2a2>
Tue, 5 Jan 2010 11:39:22 +0000 (11:39 +0000)
committerhabu <habu@0568b783-4c39-0410-ac80-bf13821ea2a2>
Tue, 5 Jan 2010 11:39:22 +0000 (11:39 +0000)
PU_BONUS フラグを立てる事によりボーナスの更新を行ない、集中が切れた時に伊地知テレパシーも消えるよう修正。
また、ボーナス計算後の p_ptr->telepathy のみにより一時テレパシー状態を判断できるので、monster2.cでの集中度によるテレパシーの判定を削除。

src/monster2.c
src/snipe.c

index 53866ef..35dfd53 100644 (file)
@@ -2392,7 +2392,7 @@ void update_mon(int m_idx, bool full)
 
                        /* Basic telepathy */
                        /* Snipers get telepathy when they concentrate deeper */
-                       else if ((p_ptr->telepathy) || (p_ptr->concent >= CONCENT_TELE_THRESHOLD))
+                       else if (p_ptr->telepathy)
                        {
                                /* Empty mind, no telepathy */
                                if (r_ptr->flags2 & (RF2_EMPTY_MIND))
index 8ee7b88..271330f 100644 (file)
@@ -102,6 +102,9 @@ static bool snipe_concentrate(void)
 
        reset_concent = FALSE;
 
+       /* Recalculate bonuses */
+       p_ptr->update |= (PU_BONUS);
+
        p_ptr->redraw |= (PR_STATUS);
 
        /* Update the monsters */
@@ -124,6 +127,9 @@ void reset_concentration(bool msg)
        p_ptr->concent = 0;
        reset_concent = FALSE;
 
+       /* Recalculate bonuses */
+       p_ptr->update |= (PU_BONUS);
+
        p_ptr->redraw |= (PR_STATUS);
 
        /* Update the monsters */