OSDN Git Service

Merge remote-tracking branch 'remotes/hengbandosx/english-market-edits' into feature...
authordeskull <deskull@users.sourceforge.jp>
Thu, 4 Feb 2021 14:00:49 +0000 (23:00 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Thu, 4 Feb 2021 14:00:49 +0000 (23:00 +0900)
33 files changed:
Build-Windows-Release-Package.ps1 [new file with mode: 0644]
lib/edit/d_info.txt
lib/xtra/music/.gitignore [new file with mode: 0644]
src/cmd-action/cmd-move.c
src/cmd-action/cmd-pet.c
src/cmd-item/cmd-equipment.c
src/core/player-processor.c
src/core/player-processor.h
src/core/window-redrawer.c
src/dungeon/dungeon-processor.c
src/effect/effect-monster-charm.c
src/effect/effect-player-spirit.c
src/effect/effect-processor.c
src/floor/floor-generator.c
src/floor/wild.c
src/game-option/option-types-table.c
src/inventory/inventory-curse.c
src/io/inet.c
src/io/input-key-requester.c
src/knowledge/object-group-table.c
src/lore/magic-types-setter.c
src/main-win.c
src/mind/mind-mirror-master.c
src/monster-floor/one-monster-placer.c
src/monster-floor/special-death-switcher.c
src/mspell/assign-monster-spell.c
src/spell-kind/spells-genocide.c
src/spell-kind/spells-sight.c
src/term/z-term.c
src/term/z-term.h
src/window/display-sub-window-spells.c
src/window/display-sub-windows.c
src/wizard/wizard-item-modifier.c

diff --git a/Build-Windows-Release-Package.ps1 b/Build-Windows-Release-Package.ps1
new file mode 100644 (file)
index 0000000..aeb8767
--- /dev/null
@@ -0,0 +1,47 @@
+Param(
+    # パッケージに付加するバージョン
+    [parameter(Mandatory = $true)][string]$Version
+)
+
+# とりあえず Visual Studio Community 2019 用の MSBuild.exe にパスを通す
+# 他の環境でビルドを実行する方法は要調査・検討
+$msbuild_path = 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin'
+$Env:Path = $msbuild_path + ";" + $Env:Path
+
+
+function BuildPackage ($package_name, $package_unique_files, $build_conf) {
+    # バイナリをリビルド
+    MSBuild.exe .\Hengband\Hengband.sln /t:Rebuild /p:Configuration=$build_conf
+
+    if ($LASTEXITCODE -ne 0) {
+        # ビルド失敗ならスクリプトを中断する
+        exit
+    }
+
+    # 作業用テンポラリフォルダ
+    $tempDir = New-TemporaryFile | ForEach-Object { Remove-Item $_; New-Item $_ -ItemType Directory }
+
+    $hengbandDir = Join-Path $tempDir $package_name
+    New-Item $hengbandDir -ItemType Directory
+
+    # 必要なファイルをコピーして、その中で不要になりえるものを削除
+    Copy-Item -Verbose -Path .\Hengband.exe, .\readme_angband -Destination $hengbandDir
+    Copy-Item -Verbose -Path $package_unique_files -Destination $hengbandDir
+    Copy-Item -Verbose -Recurse -Path .\lib -Destination $hengbandDir -Exclude Makefile.am, delete.me, *.raw, .gitattributes
+    Copy-Item -Verbose -Path .\lib\apex\h_scores.raw -Destination $hengbandDir\lib\apex
+    Remove-Item -Verbose -Path $hengbandDir\lib\save\*, $hengbandDir\lib\user\*
+    Remove-Item -Verbose -Exclude music.cfg -Path $hengbandDir\lib\xtra\music\*
+
+    # zipアーカイブ作成
+    $package_path = Join-Path $(Get-Location) "${package_name}.zip"
+    Push-Location $tempDir
+    Compress-Archive -Force -Verbose -Path $package_name -DestinationPath $package_path
+    Pop-Location
+
+    # 作業用テンポラリフォルダ削除
+    $tempDir | Where-Object { Test-Path $_ } | ForEach-Object { Get-ChildItem $_ -File -Recurse | Remove-Item; $_ } | Remove-Item -Recurse
+}
+
+# 日本語版
+BuildPackage -package_name Hengband-$Version-jp -package_unique_files .\readme.txt, .\autopick.txt -build_conf Release
+BuildPackage -package_name Hengband-$Version-en -package_unique_files .\readme_eng.txt, .\autopick_eng.txt -build_conf English-Release
index 05c872f..2c91ca9 100644 (file)
@@ -97,7 +97,7 @@ D:恐るべき奇妙な迷宮
 P:57:31
 W:10:18:1:0:80:160:75:20:0x0000:0x0000
 L:FLOOR:100:FLOOR:0:FLOOR:0:100
-A:GRANITE:98:SECRET_DOOR:2:GRANITE:0:GRANITE:GRANITE:MAGMA_VEIN:QUARTZ_VEIN
+A:GRANITE:100:GRANITE:0:GRANITE:0:GRANITE:GRANITE:MAGMA_VEIN:QUARTZ_VEIN
 F:MAZE | SMALLEST | FORGET
 F:MONSTER_DIV_64 | FINAL_GUARDIAN_1034 | FINAL_OBJECT_354
 
diff --git a/lib/xtra/music/.gitignore b/lib/xtra/music/.gitignore
new file mode 100644 (file)
index 0000000..bcbd2e7
--- /dev/null
@@ -0,0 +1,5 @@
+/*.wav
+/*.mid
+/*.mp3
+/*.ogg
+/music_debug.cfg
index f32ed3b..fa958d9 100644 (file)
@@ -425,6 +425,6 @@ void do_cmd_rest(player_type *creature_ptr)
     update_creature(creature_ptr);
     creature_ptr->redraw |= (PR_STATE);
     update_output(creature_ptr);
-    if (need_term_fresh())
+    if (need_term_fresh(creature_ptr))
         term_fresh();
 }
\ No newline at end of file
index 5e49c32..1ba17f4 100644 (file)
@@ -170,7 +170,7 @@ void do_cmd_pet_dismiss(player_type *creature_ptr)
 
     Term->scr->cu = cu;
     Term->scr->cv = cv;
-    if (need_term_fresh())
+    if (need_term_fresh(creature_ptr))
         term_fresh();
 
     C_KILL(who, current_world_ptr->max_m_idx, MONSTER_IDX);
index 45130fe..ebe5800 100644 (file)
@@ -195,7 +195,7 @@ void do_cmd_wield(player_type *creature_ptr)
         char dummy[MAX_NLEN + 100];
         describe_flavor(creature_ptr, o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
         sprintf(dummy,
-            _("%sを装備すると吸血鬼になります。よろしいですか?", "%s will transform you into a vampire permanently when equiped. Do you become a vampire?"),
+            _("%sを装備すると吸血鬼になります。よろしいですか?", "%s will transform you into a vampire permanently when equipped. Do you become a vampire?"),
             o_name);
 
         if (!get_check(dummy))
index d7700ec..aaa13d1 100644 (file)
@@ -81,6 +81,11 @@ static void process_fishing(player_type *creature_ptr)
     }
 }
 
+bool continuous_action_running(player_type *creature_ptr)
+{
+    return creature_ptr->running || travel.run || command_rep || (creature_ptr->action == ACTION_REST) || (creature_ptr->action == ACTION_FISH);
+}
+
 /*!
  * @brief プレイヤーの行動処理 / Process the player
  * @return なし
@@ -141,7 +146,7 @@ void process_player(player_type *creature_ptr)
         process_fishing(creature_ptr);
 
     if (check_abort) {
-        if (creature_ptr->running || travel.run || command_rep || (creature_ptr->action == ACTION_REST) || (creature_ptr->action == ACTION_FISH)) {
+        if (continuous_action_running(creature_ptr)) {
             inkey_scan = TRUE;
             if (inkey()) {
                 flush();
@@ -415,4 +420,4 @@ void process_upkeep_with_speed(player_type *creature_ptr)
 
         creature_ptr->enchant_energy_need += ENERGY_NEED();
     }
-}
\ No newline at end of file
+}
index 89a141d..b706bec 100644 (file)
@@ -5,5 +5,6 @@
 extern bool load; /*!<ロード処理中の分岐フラグ*/
 extern bool can_save;
 
+bool continuous_action_running(player_type *creature_ptr);
 void process_player(player_type *creature_ptr);
 void process_upkeep_with_speed(player_type *creature_ptr);
index 53f724f..265f6db 100644 (file)
@@ -228,10 +228,7 @@ void window_stuff(player_type *player_ptr)
 {
     if (!player_ptr->window)
         return;
-
-    if (!need_term_fresh())
-        return;
-
+    
     BIT_FLAGS mask = 0L;
     for (int j = 0; j < 8; j++) {
         if (angband_term[j])
@@ -243,52 +240,53 @@ void window_stuff(player_type *player_ptr)
     if (!player_ptr->window)
         return;
 
-    if (player_ptr->window & (PW_INVEN)) {
+    if (need_term_fresh(player_ptr) && player_ptr->window & (PW_INVEN)) {
         player_ptr->window &= ~(PW_INVEN);
         fix_inventory(player_ptr, 0); // TODO:2.2.2 まともなtval参照手段を確保
     }
 
-    if (player_ptr->window & (PW_EQUIP)) {
+    if (need_term_fresh(player_ptr) && player_ptr->window & (PW_EQUIP)) {
         player_ptr->window &= ~(PW_EQUIP);
         fix_equip(player_ptr, 0); // TODO:2.2.2 まともなtval参照手段を確保
     }
 
-    if (player_ptr->window & (PW_SPELL)) {
+    if (need_term_fresh(player_ptr) && player_ptr->window & (PW_SPELL)) {
         player_ptr->window &= ~(PW_SPELL);
         fix_spell(player_ptr);
     }
 
-    if (player_ptr->window & (PW_PLAYER)) {
+    if (need_term_fresh(player_ptr) && player_ptr->window & (PW_PLAYER)) {
         player_ptr->window &= ~(PW_PLAYER);
         fix_player(player_ptr);
     }
 
     if (player_ptr->window & (PW_MONSTER_LIST)) {
-        player_ptr->window &= ~(PW_MONSTER_LIST);
-        fix_monster_list(player_ptr);
+        if (need_term_fresh)
+            player_ptr->window &= ~(PW_MONSTER_LIST);
+        fix_monster_list(player_ptr); //need this side-effect for work targetting collect
     }
 
-    if (player_ptr->window & (PW_MESSAGE)) {
+    if (need_term_fresh(player_ptr) && player_ptr->window & (PW_MESSAGE)) {
         player_ptr->window &= ~(PW_MESSAGE);
         fix_message();
     }
 
-    if (player_ptr->window & (PW_OVERHEAD)) {
+    if (need_term_fresh(player_ptr) && player_ptr->window & (PW_OVERHEAD)) {
         player_ptr->window &= ~(PW_OVERHEAD);
         fix_overhead(player_ptr);
     }
 
-    if (player_ptr->window & (PW_DUNGEON)) {
+    if (need_term_fresh(player_ptr) && player_ptr->window & (PW_DUNGEON)) {
         player_ptr->window &= ~(PW_DUNGEON);
         fix_dungeon(player_ptr);
     }
 
-    if (player_ptr->window & (PW_MONSTER)) {
+    if (need_term_fresh(player_ptr) && player_ptr->window & (PW_MONSTER)) {
         player_ptr->window &= ~(PW_MONSTER);
         fix_monster(player_ptr);
     }
 
-    if (player_ptr->window & (PW_OBJECT)) {
+    if (need_term_fresh(player_ptr) && player_ptr->window & (PW_OBJECT)) {
         player_ptr->window &= ~(PW_OBJECT);
         fix_object(player_ptr);
     }
index 13ddb7b..cb15836 100644 (file)
@@ -102,7 +102,7 @@ void process_dungeon(player_type *player_ptr, bool load_game)
     player_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
     player_ptr->update |= (PU_COMBINE | PU_REORDER);
     handle_stuff(player_ptr);
-    if (need_term_fresh())
+    if (need_term_fresh(player_ptr))
         term_fresh();
 
     if (quest_num
@@ -170,7 +170,7 @@ void process_dungeon(player_type *player_ptr, bool load_game)
         handle_stuff(player_ptr);
 
         move_cursor_relative(player_ptr->y, player_ptr->x);
-        if (need_term_fresh())
+        if (need_term_fresh(player_ptr))
             term_fresh();
 
         if (!player_ptr->playing || player_ptr->is_dead)
@@ -180,7 +180,7 @@ void process_dungeon(player_type *player_ptr, bool load_game)
         handle_stuff(player_ptr);
 
         move_cursor_relative(player_ptr->y, player_ptr->x);
-        if (need_term_fresh())
+        if (need_term_fresh(player_ptr))
             term_fresh();
 
         if (!player_ptr->playing || player_ptr->is_dead)
@@ -190,7 +190,7 @@ void process_dungeon(player_type *player_ptr, bool load_game)
         handle_stuff(player_ptr);
 
         move_cursor_relative(player_ptr->y, player_ptr->x);
-        if (need_term_fresh()) {
+        if (need_term_fresh(player_ptr)) {
             term_fresh();
         }
 
index 5bfc336..0fd5ef4 100644 (file)
@@ -182,7 +182,7 @@ process_result effect_monster_charm_living(player_type *caster_ptr, effect_monst
         em_ptr->dam -= caster_ptr->virtues[vir - 1] / 20;
     }
 
-    msg_format(_("%sを見つめた。", "You stare into %s."), em_ptr->m_name);
+    msg_format(_("%sを見つめた。", "You stare at %s."), em_ptr->m_name);
 
     if (common_saving_throw_charm(caster_ptr, em_ptr->dam, em_ptr->m_ptr) || !monster_living(em_ptr->m_ptr->r_idx)) {
         em_ptr->note = _("には効果がなかった。", " is unaffected.");
@@ -393,4 +393,4 @@ process_result effect_monster_capture(player_type *caster_ptr, effect_monster_ty
     msg_format(_("うまく捕まえられなかった。", "You failed to capture %s."), em_ptr->m_name);
     em_ptr->skipped = TRUE;
     return PROCESS_CONTINUE;
-}
\ No newline at end of file
+}
index b47e42f..a03c9c6 100644 (file)
@@ -26,7 +26,7 @@ void effect_player_drain_mana(player_type *target_ptr, effect_player_type *ep_pt
     if (ep_ptr->who > 0)
         msg_format(_("%^sに精神エネルギーを吸い取られてしまった!", "%^s draws psychic energy from you!"), ep_ptr->m_name);
     else
-        msg_print(_("精神エネルギーを吸い取られてしまった!", "Your psychic energy is drawn!"));
+        msg_print(_("精神エネルギーを吸い取られてしまった!", "Your psychic energy is drained!"));
 
     if (ep_ptr->dam >= target_ptr->csp) {
         ep_ptr->dam = target_ptr->csp;
index b6a749e..1d0e3a0 100644 (file)
@@ -196,29 +196,29 @@ bool project(player_type *caster_ptr, const MONSTER_IDX who, POSITION rad, POSIT
             gx[grids] = x;
             grids++;
 
-            if (!blind && !(flag & (PROJECT_HIDE))) {
-                if (panel_contains(y, x) && player_has_los_bold(caster_ptr, y, x)) {
-                    u16b p = bolt_pict(oy, ox, y, x, typ);
-                    TERM_COLOR a = PICT_A(p);
-                    SYMBOL_CODE c = PICT_C(p);
-                    print_rel(caster_ptr, c, a, y, x);
-                    move_cursor_relative(y, x);
-                    if (need_term_fresh()) {
+            if (msec > 0) {
+                if (!blind && !(flag & (PROJECT_HIDE))) {
+                    if (panel_contains(y, x) && player_has_los_bold(caster_ptr, y, x)) {
+                        u16b p = bolt_pict(oy, ox, y, x, typ);
+                        TERM_COLOR a = PICT_A(p);
+                        SYMBOL_CODE c = PICT_C(p);
+                        print_rel(caster_ptr, c, a, y, x);
+                        move_cursor_relative(y, x);
                         term_fresh();
                         term_xtra(TERM_XTRA_DELAY, msec);
                         lite_spot(caster_ptr, y, x);
                         term_fresh();
-                    }
-                    if (flag & (PROJECT_BEAM)) {
-                        p = bolt_pict(y, x, y, x, typ);
-                        a = PICT_A(p);
-                        c = PICT_C(p);
-                        print_rel(caster_ptr, c, a, y, x);
-                    }
+                        if (flag & (PROJECT_BEAM)) {
+                            p = bolt_pict(y, x, y, x, typ);
+                            a = PICT_A(p);
+                            c = PICT_C(p);
+                            print_rel(caster_ptr, c, a, y, x);
+                        }
 
-                    visual = TRUE;
-                } else if (visual) {
-                    term_xtra(TERM_XTRA_DELAY, msec);
+                        visual = TRUE;
+                    } else if (visual) {
+                        term_xtra(TERM_XTRA_DELAY, msec);
+                    }
                 }
             }
 
@@ -291,29 +291,31 @@ bool project(player_type *caster_ptr, const MONSTER_IDX who, POSITION rad, POSIT
             gx[grids] = x;
             grids++;
             {
-                if (panel_contains(y, x) && player_has_los_bold(caster_ptr, y, x)) {
-                    u16b p;
-                    TERM_COLOR a;
-                    SYMBOL_CODE c;
-                    p = bolt_pict(oy, ox, y, x, typ);
-                    a = PICT_A(p);
-                    c = PICT_C(p);
-                    print_rel(caster_ptr, c, a, y, x);
-                    move_cursor_relative(y, x);
-                    term_fresh();
-                    term_xtra(TERM_XTRA_DELAY, msec);
-                    lite_spot(caster_ptr, y, x);
-                    term_fresh();
-                    if (flag & (PROJECT_BEAM)) {
-                        p = bolt_pict(y, x, y, x, typ);
+                if (msec > 0) {
+                    if (panel_contains(y, x) && player_has_los_bold(caster_ptr, y, x)) {
+                        u16b p;
+                        TERM_COLOR a;
+                        SYMBOL_CODE c;
+                        p = bolt_pict(oy, ox, y, x, typ);
                         a = PICT_A(p);
                         c = PICT_C(p);
                         print_rel(caster_ptr, c, a, y, x);
-                    }
+                        move_cursor_relative(y, x);
+                        term_fresh();
+                        term_xtra(TERM_XTRA_DELAY, msec);
+                        lite_spot(caster_ptr, y, x);
+                        term_fresh();
+                        if (flag & (PROJECT_BEAM)) {
+                            p = bolt_pict(y, x, y, x, typ);
+                            a = PICT_A(p);
+                            c = PICT_C(p);
+                            print_rel(caster_ptr, c, a, y, x);
+                        }
 
-                    visual = TRUE;
-                } else if (visual) {
-                    term_xtra(TERM_XTRA_DELAY, msec);
+                        visual = TRUE;
+                    } else if (visual) {
+                        term_xtra(TERM_XTRA_DELAY, msec);
+                    }
                 }
             }
 
@@ -403,30 +405,32 @@ bool project(player_type *caster_ptr, const MONSTER_IDX who, POSITION rad, POSIT
             grids++;
         }
 
-        if (!blind && !(flag & (PROJECT_HIDE | PROJECT_FAST))) {
-            if (panel_contains(y, x) && player_has_los_bold(caster_ptr, y, x)) {
-                u16b p;
-                TERM_COLOR a;
-                SYMBOL_CODE c;
-                p = bolt_pict(oy, ox, y, x, typ);
-                a = PICT_A(p);
-                c = PICT_C(p);
-                print_rel(caster_ptr, c, a, y, x);
-                move_cursor_relative(y, x);
-                term_fresh();
-                term_xtra(TERM_XTRA_DELAY, msec);
-                lite_spot(caster_ptr, y, x);
-                term_fresh();
-                if (flag & (PROJECT_BEAM)) {
-                    p = bolt_pict(y, x, y, x, typ);
+        if (msec > 0) {
+            if (!blind && !(flag & (PROJECT_HIDE | PROJECT_FAST))) {
+                if (panel_contains(y, x) && player_has_los_bold(caster_ptr, y, x)) {
+                    u16b p;
+                    TERM_COLOR a;
+                    SYMBOL_CODE c;
+                    p = bolt_pict(oy, ox, y, x, typ);
                     a = PICT_A(p);
                     c = PICT_C(p);
                     print_rel(caster_ptr, c, a, y, x);
-                }
+                    move_cursor_relative(y, x);
+                    term_fresh();
+                    term_xtra(TERM_XTRA_DELAY, msec);
+                    lite_spot(caster_ptr, y, x);
+                    term_fresh();
+                    if (flag & (PROJECT_BEAM)) {
+                        p = bolt_pict(y, x, y, x, typ);
+                        a = PICT_A(p);
+                        c = PICT_C(p);
+                        print_rel(caster_ptr, c, a, y, x);
+                    }
 
-                visual = TRUE;
-            } else if (visual) {
-                term_xtra(TERM_XTRA_DELAY, msec);
+                    visual = TRUE;
+                } else if (visual) {
+                    term_xtra(TERM_XTRA_DELAY, msec);
+                }
             }
         }
     }
@@ -504,7 +508,7 @@ bool project(player_type *caster_ptr, const MONSTER_IDX who, POSITION rad, POSIT
     if (!grids)
         return FALSE;
 
-    if (!blind && !(flag & (PROJECT_HIDE))) {
+    if (!blind && !(flag & (PROJECT_HIDE)) && (msec > 0)) {
         for (int t = 0; t <= gm_rad; t++) {
             for (int i = gm[t]; i < gm[t + 1]; i++) {
                 y = gy[i];
@@ -522,9 +526,7 @@ bool project(player_type *caster_ptr, const MONSTER_IDX who, POSITION rad, POSIT
             }
 
             move_cursor_relative(by, bx);
-
-            if (need_term_fresh())
-                term_fresh();
+            term_fresh();
             if (visual || drawn) {
                 term_xtra(TERM_XTRA_DELAY, msec);
             }
@@ -540,7 +542,7 @@ bool project(player_type *caster_ptr, const MONSTER_IDX who, POSITION rad, POSIT
             }
 
             move_cursor_relative(by, bx);
-            if (need_term_fresh())
+            if (need_term_fresh(caster_ptr))
                 term_fresh();
         }
     }
@@ -799,4 +801,4 @@ bool project(player_type *caster_ptr, const MONSTER_IDX who, POSITION rad, POSIT
     }
 
     return (notice);
-}
\ No newline at end of file
+}
index b735c04..0595a71 100644 (file)
@@ -128,7 +128,7 @@ static void generate_challenge_arena(player_type *challanger_ptr)
 
     challanger_ptr->exit_bldg = TRUE;
     challanger_ptr->arena_number++;
-    msg_print(_("相手は欠場した。あなたの不戦勝だ。", "The enemy is unable appear. You won by default."));
+    msg_print(_("相手は欠場した。あなたの不戦勝だ。", "The enemy is unable to appear. You won by default."));
 }
 
 /*!
index c546a42..c707579 100644 (file)
@@ -879,7 +879,7 @@ bool change_wild_mode(player_type *creature_ptr, bool encount)
         if (monster_csleep_remaining(m_ptr) || (m_ptr->cdis > MAX_SIGHT) || !is_hostile(m_ptr))
             continue;
 
-        msg_print(_("敵がすぐ近くにいるときは広域マップに入れない!", "You cannot enter global map, since there is some monsters nearby!"));
+        msg_print(_("敵がすぐ近くにいるときは広域マップに入れない!", "You cannot enter global map, since there are some monsters nearby!"));
         free_turn(creature_ptr);
         return FALSE;
     }
index 846db24..979c38f 100644 (file)
@@ -86,7 +86,7 @@ const option_type option_info[MAX_OPTION_INFO] = {
 
     { &fresh_message, FALSE, OPT_PAGE_MAPSCREEN, 1, 25, "fresh_message", _("メッセージの後に画面を再描画する", "Flush output after every message") },
 
-    { &hilite_player, FALSE, OPT_PAGE_MAPSCREEN, 1, 27, "hilite_player", _("プレイヤーにカーソルを合わせる", "Hilite the player with the cursor") },
+    { &hilite_player, FALSE, OPT_PAGE_MAPSCREEN, 1, 27, "hilite_player", _("プレイヤーにカーソルを合わせる", "Highlight the player with the cursor") },
 
     { &display_path, FALSE, OPT_PAGE_MAPSCREEN, 2, 8, "display_path", _("魔法や矢の軌跡を表示する", "Display actual path before shooting") },
 
index 025553c..0b16bf0 100644 (file)
@@ -164,7 +164,7 @@ static void curse_teleport(player_type *creature_ptr)
 
     o_ptr = &creature_ptr->inventory_list[i_keep];
     describe_flavor(creature_ptr, o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
-    msg_format(_("%sがテレポートの能力を発動させようとしている。", "Your %s is activating teleportation."), o_name);
+    msg_format(_("%sがテレポートの能力を発動させようとしている。", "Your %s tries to teleport you."), o_name);
     if (get_check_strict(creature_ptr, _("テレポートしますか?", "Teleport? "), CHECK_OKAY_CANCEL)) {
         disturb(creature_ptr, FALSE, TRUE);
         teleport_player(creature_ptr, 50, TELEPORT_SPONTANEOUS);
@@ -269,7 +269,7 @@ static void curse_call_monster(player_type *creature_ptr)
         if (summon_specific(creature_ptr, 0, creature_ptr->y, creature_ptr->x, floor_ptr->dun_level, SUMMON_DRAGON, call_type)) {
             GAME_TEXT o_name[MAX_NLEN];
             describe_flavor(creature_ptr, o_name, choose_cursed_obj_name(creature_ptr, TRC_CALL_DRAGON), obj_desc_type);
-            msg_format(_("%sがドラゴンを引き寄せた!", "Your %s has attracted an dragon!"), o_name);
+            msg_format(_("%sがドラゴンを引き寄せた!", "Your %s has attracted a dragon!"), o_name);
             disturb(creature_ptr, FALSE, TRUE);
         }
     }
index c2638b9..d618301 100644 (file)
@@ -209,7 +209,7 @@ int connect_server(int timeout, concptr host, int port)
 #ifdef JP
             errstr = "エラー: プロキシのアドレスが不正です";
 #else
-            errstr = "Error : wrong proxy addres";
+            errstr = "Error : wrong proxy address";
 #endif
 
             restore_signal();
@@ -220,7 +220,7 @@ int connect_server(int timeout, concptr host, int port)
 #ifdef JP
         errstr = "エラー: サーバのアドレスが不正です";
 #else
-        errstr = "Error : wrong server adress";
+        errstr = "Error : wrong server address";
 #endif
 
         restore_signal();
index 7f86314..cd5e1ea 100644 (file)
@@ -208,7 +208,7 @@ void request_command(player_type *player_ptr, int shopping)
             msg_flag = FALSE;
             num_more = 0;
             inkey_flag = TRUE;
-            if (need_term_fresh()) {
+            if (need_term_fresh(player_ptr)) {
                 term_fresh();
             }
             cmd = inkey();
index fad01d8..9c11eae 100644 (file)
@@ -11,9 +11,9 @@
  * Description of each monster group.
  */
 concptr object_group_text[MAX_OBJECT_GROUP_TEXT] = { _("キノコ", "Mushrooms"), _("薬", "Potions"), _("油つぼ", "Flasks"), _("巻物", "Scrolls"),
-    _("指輪", "Rings"), _("アミュレット", "Amulets"), _("笛", "Whistle"), _("光源", "Lanterns"), _("魔法棒", "Wands"), _("杖", "Staffs"), _("ロッド", "Rods"),
-    _("カード", "Cards"), _("モンスター・ボール", "Capture Balls"), _("羊皮紙", "Parchments"), _("くさび", "Spikes"), _("箱", "Boxs"), _("人形", "Figurines"),
-    _("像", "Statues"), _("ゴミ", "Junks"), _("空のビン", "Bottles"), _("骨", "Skeletons"), _("死体", "Corpses"), _("刀剣類", "Swords"),
+    _("指輪", "Rings"), _("アミュレット", "Amulets"), _("笛", "Whistles"), _("光源", "Lanterns"), _("魔法棒", "Wands"), _("杖", "Staffs"), _("ロッド", "Rods"),
+    _("カード", "Cards"), _("モンスター・ボール", "Capture Balls"), _("羊皮紙", "Parchments"), _("くさび", "Spikes"), _("箱", "Boxes"), _("人形", "Figurines"),
+    _("像", "Statues"), _("ゴミ", "Junk"), _("空のビン", "Bottles"), _("骨", "Skeletons"), _("死体", "Corpses"), _("刀剣類", "Swords"),
     _("鈍器", "Blunt Weapons"), _("長柄武器", "Polearms"), _("採掘道具", "Diggers"), _("飛び道具", "Bows"), _("弾", "Shots"), _("矢", "Arrows"),
     _("ボルト", "Bolts"), _("軽装鎧", "Soft Armor"), _("重装鎧", "Hard Armor"), _("ドラゴン鎧", "Dragon Armor"), _("盾", "Shields"), _("クローク", "Cloaks"),
     _("籠手", "Gloves"), _("ヘルメット", "Helms"), _("冠", "Crowns"), _("ブーツ", "Boots"), _("魔法書", "Spellbooks"), _("財宝", "Treasure"),
index 9e46fc2..c350fd5 100644 (file)
@@ -402,7 +402,7 @@ void set_teleport_types(lore_type *lore_ptr)
     }
 
     if (lore_ptr->a_ability_flags2 & (RF6_WORLD)) {
-        lore_ptr->vp[lore_ptr->vn] = _("時を止める", "stop the time");
+        lore_ptr->vp[lore_ptr->vn] = _("時を止める", "stop time");
         lore_ptr->color[lore_ptr->vn++] = TERM_L_BLUE;
     }
 
index 9b65dfc..29587e8 100644 (file)
@@ -968,8 +968,12 @@ static void load_music_prefs(void)
     char *zz[SAMPLE_MUSIC_MAX];
     char key[80];
 
-    path_build(ini_path, 1024, ANGBAND_DIR_XTRA_MUSIC, "music.cfg");
-    GetPrivateProfileString("Device", "type", "", mci_device_type, 256, ini_path);
+    path_build(ini_path, 1024, ANGBAND_DIR_XTRA_MUSIC, "music_debug.cfg");
+    if (GetPrivateProfileString("Device", "type", "", mci_device_type, 256, ini_path) == 0) {
+        path_build(ini_path, 1024, ANGBAND_DIR_XTRA_MUSIC, "music.cfg");
+        GetPrivateProfileString("Device", "type", "", mci_device_type, 256, ini_path);
+    }
+
     for (int i = 0; i < MUSIC_BASIC_MAX; i++) {
         GetPrivateProfileString("Basic", angband_music_basic_name[i], "", tmp, 1024, ini_path);
         int num = tokenize_whitespace(tmp, SAMPLE_MUSIC_MAX, zz);
index 8dbd69f..f1893ce 100644 (file)
@@ -168,7 +168,7 @@ bool binding_field(player_type *caster_ptr, HIT_POINT dam)
                         u16b p = bolt_pict(y, x, y, x, GF_MANA);
                         print_rel(caster_ptr, PICT_C(p), PICT_A(p), y, x);
                         move_cursor_relative(y, x);
-                        if (need_term_fresh()) {
+                        if (need_term_fresh(caster_ptr)) {
                             term_fresh();
                             term_xtra(TERM_XTRA_DELAY, msec);
                         }
index a3fda01..a829702 100644 (file)
@@ -217,7 +217,7 @@ static void warn_unique_generation(player_type *player_ptr, MONRACE_IDX r_idx)
         describe_flavor(player_ptr, o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
         msg_format(_("%sは%s光った。", "%s glows %s."), o_name, color);
     } else {
-        msg_format(_("%s光る物が頭に浮かんだ。", "An %s image forms in your mind."), color);
+        msg_format(_("%s光る物が頭に浮かんだ。", "A %s image forms in your mind."), color);
     }
 }
 
index 45be694..4a15bf7 100644 (file)
@@ -230,7 +230,7 @@ static void on_dead_rolento(player_type *player_ptr, monster_death_type *md_ptr)
     if (is_seen(player_ptr, md_ptr->m_ptr)) {
         GAME_TEXT m_name[MAX_NLEN];
         monster_desc(player_ptr, m_name, md_ptr->m_ptr, MD_NONE);
-        msg_format(_("%sは手榴弾を抱えて自爆した!", "%^s broke himself with grenades!"), m_name);
+        msg_format(_("%sは手榴弾を抱えて自爆した!", "%^s blew himself up with grenades!"), m_name);
     }
 
     (void)project(player_ptr, md_ptr->m_idx, 3, md_ptr->md_y, md_ptr->md_x, damroll(20, 10), GF_FIRE, PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL, -1);
@@ -290,7 +290,7 @@ static void on_dead_dragon_centipede(player_type *player_ptr, monster_death_type
     GAME_TEXT m_name[MAX_NLEN];
     monster_desc(player_ptr, m_name, md_ptr->m_ptr, MD_NONE);
     if (notice) {
-        msg_format(_("%sが再生した!", "The %s was reproduced!"), m_name);
+        msg_format(_("%sが再生した!", "The %s reproduced!"), m_name);
         sound(SOUND_SUMMON);
     }
 }
index 8ff7825..de115e6 100644 (file)
@@ -106,7 +106,7 @@ HIT_POINT monspell_to_player(player_type *target_ptr, SPELL_IDX ms_type, POSITIO
        case RF6_SPELL_START + 8:  spell_RF6_TELE_TO(target_ptr, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_TELE_TO */
        case RF6_SPELL_START + 9:  spell_RF6_TELE_AWAY(target_ptr, m_idx, 0, MONSTER_TO_PLAYER); break;   /* RF6_TELE_AWAY */
        case RF6_SPELL_START + 10: spell_RF6_TELE_LEVEL(target_ptr, m_idx, 0, MONSTER_TO_PLAYER); break;  /* RF6_TELE_LEVEL */
-       case RF6_SPELL_START + 11: spell_RF6_PSY_SPEAR(target_ptr, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_PSY_SPEAR */
+       case RF6_SPELL_START + 11: return spell_RF6_PSY_SPEAR(target_ptr, y, x, m_idx, 0, MONSTER_TO_PLAYER); break; /* RF6_PSY_SPEAR */
        case RF6_SPELL_START + 12: spell_RF6_DARKNESS(target_ptr, y, x, m_idx, 0, MONSTER_TO_PLAYER); break;    /* RF6_DARKNESS */
        case RF6_SPELL_START + 13: spell_RF6_TRAPS(target_ptr, y, x, m_idx); break; /* RF6_TRAPS */
        case RF6_SPELL_START + 14: spell_RF6_FORGET(target_ptr, m_idx); break;  /* RF6_FORGET */
index f11bfba..b95a333 100644 (file)
@@ -100,7 +100,7 @@ bool genocide_aux(player_type *caster_ptr, MONSTER_IDX m_idx, int power, bool pl
     caster_ptr->redraw |= (PR_HP);
     caster_ptr->window |= (PW_PLAYER);
     handle_stuff(caster_ptr);
-    if (need_term_fresh())
+    if (need_term_fresh(caster_ptr))
         term_fresh();
 
     int msec = delay_factor * delay_factor * delay_factor;
index 35cb8e0..f2377a9 100644 (file)
@@ -396,7 +396,7 @@ bool probing(player_type *caster_ptr)
 
     Term->scr->cu = cu;
     Term->scr->cv = cv;
-    if (need_term_fresh())
+    if (need_term_fresh(caster_ptr))
         term_fresh();
 
     if (probe) {
index 5942862..3c19667 100644 (file)
@@ -8,9 +8,11 @@
  */
 
 #include "term/z-term.h"
+#include "core/player-processor.h"
 #include "game-option/map-screen-options.h"
 #include "game-option/runtime-arguments.h"
 #include "game-option/special-options.h"
+#include "io/input-key-requester.h"
 #include "term/gameterm.h"
 #include "term/term-color-types.h"
 #include "term/z-virt.h"
@@ -1027,7 +1029,8 @@ bool macro_running(void)
     return diff < -1 || 1 < diff;
 }
 
-bool need_term_fresh(void) { return !macro_running() || fresh_after; }
+bool need_term_fresh(player_type *player_ptr) { return (!macro_running() && !continuous_action_running(player_ptr)) || fresh_after; }
+
 /*
  * @brief Actually perform all requested changes to the window
  */
@@ -2335,4 +2338,4 @@ errr term_nuke(term_type *t)
     C_KILL(t->key_queue, t->key_size, char);
     return 0;
 }
-#endif
\ No newline at end of file
+#endif
index ae522d9..c3d66a8 100644 (file)
@@ -96,6 +96,8 @@ typedef struct term_type {
         concptr tcp); //!< タイル描画実装部 / Hook for drawing a sequence of special attr / char pairs
 } term_type;
 
+typedef struct player_type player_type;
+
 /**** Available Constants ****/
 
 /*
@@ -145,7 +147,8 @@ void term_queue_char(TERM_LEN x, TERM_LEN y, TERM_COLOR a, char c, TERM_COLOR ta
 void term_queue_bigchar(TERM_LEN x, TERM_LEN y, TERM_COLOR a, char c, TERM_COLOR ta, char tc);
 
 void term_queue_line(TERM_LEN x, TERM_LEN y, int n, TERM_COLOR *a, char *c, TERM_COLOR *ta, char *tc);
-bool need_term_fresh(void);
+
+bool need_term_fresh(player_type *player_ptr);
 
 errr term_fresh(void);
 errr term_set_cursor(int v);
index d2aa256..d2d12ec 100644 (file)
@@ -184,7 +184,7 @@ void fix_spell(player_type *player_ptr)
 
         term_activate(angband_term[j]);
         display_spell_list(player_ptr);
-        if (need_term_fresh()) {
+        if (need_term_fresh(player_ptr)) {
             term_fresh();
             player_ptr->window &= ~(PW_SPELL);
         }
index 1f1230b..0bbf4b9 100644 (file)
@@ -185,7 +185,8 @@ void fix_monster_list(player_type *player_ptr)
         term_clear();
         target_set_prepare(player_ptr, TARGET_LOOK);
         print_monster_list(player_ptr->current_floor_ptr, 0, 0, h);
-        term_fresh();
+        if (need_term_fresh(player_ptr))
+            term_fresh();
         term_activate(old);
     }
 }
index f76f63a..7350ed3 100644 (file)
@@ -226,7 +226,7 @@ static void wiz_statistics(player_type *caster_ptr, object_type *o_ptr)
                 }
 
                 prt(format(q, i, correct, matches, better, worse, other), 0, 0);
-                if (need_term_fresh())
+                if (need_term_fresh(caster_ptr))
                     term_fresh();
             }