OSDN Git Service

Fix crash bug when resizing sub-window after death (Ticket #31239)
authorhabu <habu@0568b783-4c39-0410-ac80-bf13821ea2a2>
Tue, 30 Apr 2013 11:32:47 +0000 (11:32 +0000)
committerhabu <habu@0568b783-4c39-0410-ac80-bf13821ea2a2>
Tue, 30 Apr 2013 11:32:47 +0000 (11:32 +0000)
死亡直後にセーブしているが、save_player()を呼ぶとダンジョンマップ情報
の更新フラグが立つ。これをメイン画面に反映していないためサブウィンドウ
をリサイズした時にサブウィンドウ側にダンジョンマップを描画しようとして
しまい、結果サブウィンドウからはみ出した位置に表示しようとして領域外ア
クセスエラーとなっていた

セーブ後にhandle_stuff()を呼ぶことでマップ情報を更新するようにして対処

src/effects.c

index dc936ae..98c7a49 100644 (file)
@@ -5212,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);
@@ -5235,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;
 
@@ -5472,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)
        {