OSDN Git Service

[Merge] #40883 Win版が通る所までマージ完了.他環境でのチェックや他見落としはこれからチェックする。 / Merge is completed until...
authordeskull <deskull@users.sourceforge.jp>
Tue, 17 Nov 2020 11:35:37 +0000 (20:35 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Wed, 18 Nov 2020 23:17:24 +0000 (08:17 +0900)
Merge branch 'For2.2.2-Refactoring' into Release-3.0.0Alpha

76 files changed:
.gitignore
Hengband/Hengband.sln
Hengband/Hengband/Hengband.vcxproj
Hengband/Hengband/packages.config [deleted file]
Makefile.am
configure.ac
doxygen/Hengband.doxyfile
lib/apex/Makefile.am
lib/bone/Makefile.am
lib/data/Makefile.am
lib/edit/Makefile.am
lib/edit/a_info.txt
lib/edit/d_info.txt
lib/edit/e_info.txt
lib/edit/f_info.txt
lib/edit/k_info.txt
lib/edit/q0000004.txt
lib/edit/q0000005.txt
lib/edit/q0dumpwitness.txt
lib/edit/q0willow.txt
lib/edit/qdarkelf.txt
lib/edit/qhaunted.txt
lib/edit/r_info.txt
lib/edit/t0000001.txt
lib/edit/t_lite.txt
lib/file/Makefile.am
lib/file/a_med.txt
lib/file/death.txt
lib/file/mondeath_j.txt
lib/file/monfear_j.txt
lib/file/monfrien.txt
lib/file/monfrien_j.txt
lib/file/monspeak.txt
lib/file/monspeak_j.txt
lib/file/rumors.txt
lib/file/seppuku.txt
lib/file/w_low.txt
lib/file/w_med.txt
lib/help/Makefile.am
lib/help/attack.txt
lib/help/birth.txt
lib/help/bldg.txt
lib/help/command.txt
lib/help/commdesc.txt
lib/help/defend.txt
lib/help/dungeon.txt
lib/help/editor.txt
lib/help/faq.txt
lib/help/jtang.txt
lib/help/jversion.txt
lib/help/magic.txt
lib/help/monster.txt
lib/help/objects.txt
lib/help/option.txt
lib/help/pref.txt
lib/help/raceclas.txt
lib/help/tang.txt
lib/help/town.txt
lib/help/version.txt
lib/info/Makefile.am
lib/pref/Makefile.am
lib/save/Makefile.am
lib/script/Makefile.am
lib/user/Makefile.am
lib/xtra/graf/Makefile.am
lib/xtra/music/Makefile.am
lib/xtra/music/music.cfg
lib/xtra/sound/Makefile.am
src/Makefile.am
src/maid-x11.c
src/main-cap.c
src/main-gcu.c
src/main-x11.c
src/main-xaw.c
src/main.c
src/makefile.std

index d11b7b7..3a3836b 100644 (file)
@@ -1,6 +1,7 @@
 # generated files by autoconf and automake
 aclocal.m4
 autom4te.cache
+compile
 configure
 depcomp
 install-sh
@@ -12,13 +13,12 @@ autoconf.h.in
 config.log
 config.status
 Makefile
-src/**/.deps
-src/**/.dirstamp
-src/**/autoconf.h
-src/**/stamp-h1
+src/.deps
+src/autoconf.h
+src/stamp-h1
 
 # generated by gcc
-src/**/*.o
+src/*.o
 src/hengband
 
 # Ignore generated documents by Doxygen
@@ -26,7 +26,6 @@ doxygen/html/
 
 # Windows binary
 Hengband.exe
-Hengband.exe.lastcodeanalysissucceeded
 
 # game data files auto generated
 Hengband.INI
@@ -51,7 +50,6 @@ lib/save/
 *.userprefs
 
 # Build results
-[Ee]nglish-[Dd]ebug/
 [Dd]ebug/
 [Dd]ebugPublic/
 [Rr]elease/
index 83472fb..1c91227 100644 (file)
@@ -1,14 +1,11 @@
 \r
 Microsoft Visual Studio Solution File, Format Version 12.00\r
-# Visual Studio Version 16\r
-VisualStudioVersion = 16.0.30011.22\r
+# Visual Studio 15\r
+VisualStudioVersion = 15.0.28307.106\r
 MinimumVisualStudioVersion = 10.0.40219.1\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Hengband", "Hengband\Hengband.vcxproj", "{C00503B6-18FF-42F1-BAC0-6C94EDE62CB2}"\r
 EndProject\r
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{82CF9010-9443-4FFF-ADF0-0D3E81C732CC}"\r
-       ProjectSection(SolutionItems) = preProject\r
-               ..\.clang-format = ..\.clang-format\r
-       EndProjectSection\r
 EndProject\r
 Global\r
        GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
index ccbec21..26c42cb 100644 (file)
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>\r
 <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <Import Project="..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.3.3.1\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.3.3.1\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.props')" />\r
   <Import Project="..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.3.0.0\build\Microsoft.CodeAnalysis.FxCopAnalyzers.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.3.0.0\build\Microsoft.CodeAnalysis.FxCopAnalyzers.props')" />\r
   <Import Project="..\packages\Microsoft.NetFramework.Analyzers.3.0.0\build\Microsoft.NetFramework.Analyzers.props" Condition="Exists('..\packages\Microsoft.NetFramework.Analyzers.3.0.0\build\Microsoft.NetFramework.Analyzers.props')" />\r
   <Import Project="..\packages\Microsoft.NetCore.Analyzers.3.0.0\build\Microsoft.NetCore.Analyzers.props" Condition="Exists('..\packages\Microsoft.NetCore.Analyzers.3.0.0\build\Microsoft.NetCore.Analyzers.props')" />\r
     <None Include="packages.config" />\r
   </ItemGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
-  <ImportGroup Label="ExtensionTargets" />\r
-  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">\r
-    <PropertyGroup>\r
-      <ErrorText>このプロジェクトは、このコンピューター上にない NuGet パッケージを参照しています。それらのパッケージをダウンロードするには、[NuGet パッケージの復元] を使用します。詳細については、http://go.microsoft.com/fwlink/?LinkID=322105 を参照してください。見つからないファイルは {0} です。</ErrorText>\r
-    </PropertyGroup>\r
-    <Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.3.0.0\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.3.0.0\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.props'))" />\r
-    <Error Condition="!Exists('..\packages\Microsoft.CodeQuality.Analyzers.3.0.0\build\Microsoft.CodeQuality.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeQuality.Analyzers.3.0.0\build\Microsoft.CodeQuality.Analyzers.props'))" />\r
-    <Error Condition="!Exists('..\packages\Microsoft.NetCore.Analyzers.3.0.0\build\Microsoft.NetCore.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.NetCore.Analyzers.3.0.0\build\Microsoft.NetCore.Analyzers.props'))" />\r
-    <Error Condition="!Exists('..\packages\Microsoft.NetFramework.Analyzers.3.0.0\build\Microsoft.NetFramework.Analyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.NetFramework.Analyzers.3.0.0\build\Microsoft.NetFramework.Analyzers.props'))" />\r
-    <Error Condition="!Exists('..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.3.0.0\build\Microsoft.CodeAnalysis.FxCopAnalyzers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeAnalysis.FxCopAnalyzers.3.0.0\build\Microsoft.CodeAnalysis.FxCopAnalyzers.props'))" />\r
-  </Target>\r
+  <ImportGroup Label="ExtensionTargets">\r
+    <Import Project="..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.3.3.1\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.targets" Condition="Exists('..\packages\Microsoft.CodeAnalysis.VersionCheckAnalyzer.3.3.1\build\Microsoft.CodeAnalysis.VersionCheckAnalyzer.targets')" />\r
+  </ImportGroup>\r
 </Project>
\ No newline at end of file
diff --git a/Hengband/Hengband/packages.config b/Hengband/Hengband/packages.config
deleted file mode 100644 (file)
index 6659b9c..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<packages>
-  <package id="Microsoft.CodeAnalysis.FxCopAnalyzers" version="3.0.0" targetFramework="native" developmentDependency="true" />
-  <package id="Microsoft.CodeAnalysis.VersionCheckAnalyzer" version="3.0.0" targetFramework="native" developmentDependency="true" />
-  <package id="Microsoft.CodeQuality.Analyzers" version="3.0.0" targetFramework="native" developmentDependency="true" />
-  <package id="Microsoft.NetCore.Analyzers" version="3.0.0" targetFramework="native" developmentDependency="true" />
-  <package id="Microsoft.NetFramework.Analyzers" version="3.0.0" targetFramework="native" developmentDependency="true" />
-</packages>
\ No newline at end of file
index b84c3f2..6b0aa7b 100644 (file)
@@ -2,20 +2,6 @@
 
 AUTOMAKE_OPTIONS = foreign
 
-visual_studio_files = \
-       Hengband/Hengband.sln \
-       Hengband/Hengband/Hengband.vcxproj \
-       Hengband/Hengband/Hengband.vcxproj.filters \
-       Hengband/Hengband/packages.config
-
-EXTRA_DIST = \
-       autopick.txt \
-       autopick_eng.txt \
-       bootstrap \
-       readme.txt \
-       readme_angband \
-       readme_eng.txt \
-       hengband.spec \
-       $(visual_studio_files)
+EXTRA_DIST = autopick.txt autopick_eng.txt readme.txt readme_angband readme_eng.txt hengband.spec
 
 SUBDIRS = src lib
index 9987e68..814ea46 100644 (file)
@@ -19,20 +19,29 @@ AC_LANG_C
 
 dnl generate the installation path for the ./lib/ folder
 if test "$GAMEGROUP" != ""; then
-  MY_EXPAND_DIR(game_datadir, "$datadir/games/$PACKAGE/lib/")
+  MY_EXPAND_DIR(game_libpath, "$datadir/games/$PACKAGE/lib/")
 else
-  MY_EXPAND_DIR(game_datadir, "./lib/")
+  MY_EXPAND_DIR(game_libpath, "./lib/")
   bindir=".."
 fi
 
 dnl overwrite the path with an user-specified value
 AC_ARG_WITH(libpath,
 [  --with-libpath=path     specify the path to the Hengband lib folder],
-[game_datadir="$withval"])
+[game_libpath="$withval"])
 
-AC_DEFINE_UNQUOTED(DEFAULT_PATH, "$game_datadir", [Path to the Hengband lib folder])
-DEFAULT_PATH="$game_datadir"
-AC_SUBST(DEFAULT_PATH)
+AC_ARG_WITH(varpath,
+[  --with-varpath=path     specify the path to the Hengband var folder],
+[game_varpath="$withval"],
+[game_varpath="$game_libpath"])
+
+AC_DEFINE_UNQUOTED(DEFAULT_LIB_PATH, "$game_libpath", [Path to the Hengband lib folder])
+DEFAULT_LIB_PATH="$game_libpath"
+AC_SUBST(DEFAULT_LIB_PATH)
+
+AC_DEFINE_UNQUOTED(DEFAULT_VAR_PATH, "$game_varpath", [Path to the Hengband var folder])
+DEFAULT_VAR_PATH="$game_varpath"
+AC_SUBST(DEFAULT_VAR_PATH)
 
 dnl Checks for programs.
 AC_PROG_CC
@@ -44,8 +53,6 @@ AC_ARG_ENABLE(xim,
 [  --disable-xim           disable xim support], use_xim=no, use_xim=yes)
 AC_ARG_ENABLE(fontset,
 [  --disable-fontset       disable fontset support], use_fontset=no, use_fontset=yes)
-AC_ARG_ENABLE([xft],
-       AS_HELP_STRING([--enable-xft], [Enable xft support]))
 AC_ARG_ENABLE(worldscore,
 [  --disable-worldscore    disable worldscore support], ,AC_DEFINE(WORLD_SCORE, 1, [Allow the game to send scores to the score server]))
 AC_ARG_ENABLE(chuukei,
@@ -96,11 +103,6 @@ if test "$have_x" = yes; then
     AC_CHECK_LIB(X11, _Xsetlocale, AC_DEFINE(X_LOCALE, 1, [Use XLocale]))
     AC_CHECK_LIB(xpg4, setlocale, LIBS="$LIBS -lxpg4")
   fi
-
-  AS_IF([test "x$enable_xft" = "xyes"], [
-    PKG_CHECK_MODULES(XFT, [xft],
-      [AC_DEFINE([USE_XFT], [1], [Use XFT])])
-  ])
 fi
 
 if test "$use_japanese" != no; then
index 77778a4..1f5f449 100644 (file)
@@ -813,7 +813,7 @@ INPUT                  = ../src
 # possible encodings.
 # The default value is: UTF-8.
 
-INPUT_ENCODING         = UTF-8
+INPUT_ENCODING         = EUC-JP
 
 # If the value of the INPUT tag contains directories, you can use the
 # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
@@ -836,7 +836,7 @@ FILE_PATTERNS          = *.c \
 # be searched for input files as well.
 # The default value is: NO.
 
-RECURSIVE              = YES
+RECURSIVE              = NO
 
 # The EXCLUDE tag can be used to specify files and/or directories that should be
 # excluded from the INPUT source files. This way you can easily exclude a
index 81ca89c..d5e771a 100644 (file)
@@ -7,7 +7,7 @@ EXTRA_DIST = \
   $(angband_files)
 
 if SET_GID
-angbanddir = @DEFAULT_PATH@apex
+angbanddir = @DEFAULT_VAR_PATH@/apex
 
 angband_DATA = \
   $(angband_files)
index 3a23eda..e7c6cac 100644 (file)
@@ -7,7 +7,7 @@ EXTRA_DIST = \
   $(angband_files)
 
 if SET_GID
-angbanddir = @DEFAULT_PATH@bone
+angbanddir = @DEFAULT_VAR_PATH@/bone
 
 angband_DATA = \
   $(angband_files)
index 2835820..adf8564 100644 (file)
@@ -7,7 +7,7 @@ EXTRA_DIST = \
   $(angband_files)
 
 if SET_GID
-angbanddir = @DEFAULT_PATH@data
+angbanddir = @DEFAULT_VAR_PATH@/data
 
 angband_DATA = \
   $(angband_files)
index 03f027e..71511fe 100644 (file)
@@ -9,8 +9,8 @@ angband_files = \
        q0000027.txt \
        q0000028.txt q00000ms.txt q000chao.txt q000dekn.txt \
        q000eric.txt q000lyeh.txt q000natu.txt q000sorc.txt \
-       q00water.txt q0clone0.txt q0dumpwitness.txt q0fields.txt \
-       q0thief1.txt q0thief2.txt q0willow.txt q_info.txt q_oberon.txt \
+       q00water.txt q0clone0.txt q0fields.txt q0thief1.txt \
+       q0thief2.txt q0willow.txt q_info.txt q_oberon.txt \
        q_pref.txt q_random.txt q_serpen.txt q_warg.txt \
        qdarkelf.txt qhaunted.txt r_info.txt t0000001.txt \
        t0000002.txt t0000003.txt t0000004.txt t0000005.txt \
@@ -22,7 +22,7 @@ EXTRA_DIST = \
   $(angband_files)
 
 if SET_GID
-angbanddir = @DEFAULT_PATH@edit
+angbanddir = @DEFAULT_LIB_PATH@/edit
 
 angband_DATA = \
   $(angband_files)
index 4666920..6e36df5 100644 (file)
@@ -135,8 +135,8 @@ P:0:1d1:0:0:0
 F:ACTIVATE | SEE_INVIS | HOLD_EXP | RES_CONF | RES_CHAOS | LITE_3 | 
 F:INSTA_ART | SPEED | WIS | INT
 U:JUDGE
-D:$This ruby pendant in a simple setting with a heavy gold chain is deeply
-D:$ related to the creation of this universe.
+D:$This crimson jewelry which is chained with a gold chain is
+D:$ deeply related to creation of this universe.
 D:$ (R.Zelazny, 'The Chronicles of Amber', vol.3-10)
 D:金の鎖に取り付けられた、この宇宙の創世に深い関わりを持つ真紅の宝石。
 D:(R.ゼラズニイ、真世界アンバーシリーズ 3~10巻)
@@ -212,7 +212,7 @@ I:40:12:3
 W:70:70:3:75000
 F:STR | CON | INFRA | HIDE_TYPE |
 F:SEE_INVIS | FREE_ACT | REGEN | LITE | INSTA_ART
-D:$The Nauglamir; a carcanet of gold set with a multitude of shining gems of 
+D:$The Nauglamir; a carencet of gold set with a multitude of shining gems of 
 D:$Valinor, accenting a radiant Silmaril.  The sturdy spirits of Dwarvish 
 D:$craftsmen who labored long in mountain smithies lie within it still, and 
 D:$as gossamer it rests upon the bearer.
@@ -252,10 +252,10 @@ W:50:40:2:75000
 F:STR | INT | WIS | DEX | CON | CHR | STEALTH | HIDE_TYPE |
 F:RES_POIS | ACTIVATE | SEE_INVIS | SEARCH | WARNING | INSTA_ART
 U:HYPODYNAMIA_1
-D:$This bracelet has its own will.  It was created by Merlin, a prince of Chaos
-D:$ and son of Corwin.  The bracelet is invisible, but it sometimes ripples or
-D:$ constricts to warn its owner of danger.  When commanded by its owner, it
-D:$ can morph to strangle an enemy's neck.
+D:$This bracelet has its own will, which was created by Marlin
+D:$ the prince of chaos. It is  invisible but it sometimes
+D:$ ripples to warn owner's dangers. It can morph to strangle
+D:$ enemy's neck, if owner commands to it.
 D:$ (R.Zelazny, 'The Chronicles of Amber', vol.6-10)
 D:混沌の王子マーリンがログルスから生み出した意思を持った腕輪だ。
 D:普段は目に見えないが脈動して危険を知らせてくれる。装備するものが
@@ -547,8 +547,8 @@ F:HOLD_EXP | RES_NETHER | RES_DARK | RES_FEAR |
 F:ACTIVATE
 U:CHOIR_SINGS
 D:$The shining armor of Lohengrin the son of Parsifal.
-D:$ The Holy Grail gives divine protection from all evils to the wearer.
-D:$  (W.R.Wagner, 'Parsifal')
+D:$ If you wears it, the holy grail gives to you the devine protection
+D:$  from all evils. (W.R.Wagner, 'Parsifal')
 D:聖杯守護の騎士パルジファルの息子、ローエングリンの輝く鎧だ。
 D:身に付ける者はあらゆる邪悪なものを退け聖杯の加護を得る。
 D:(ワーグナー、「パルジファル」)
@@ -627,7 +627,7 @@ P:12:1d2:3:4:20
 F:BLOWS | RES_SHARDS | HOLD_EXP | SLOW_DIGEST |
 F:SUST_STR | SUST_DEX | SUST_CON | SUST_INT | SUST_WIS | SUST_CHR |
 F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD
-D:$The leather armor of Shiva, the god of destruction.
+D:$The leather armor which has a power of Shiva the god of destruction.
 D:ヒンズー教の最高神は創造の神ブラフマン、維持の神ヴィシュヌ、
 D:そして破壊神シヴァだ。これはその中でも最も強力なシヴァの力が宿った
 D:鎧だ。
@@ -692,9 +692,9 @@ I:34:4:0
 W:30:3:60:30000
 P:6:1d2:0:0:20
 F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | RES_LITE | RES_DARK | XTRA_H_RES
-D:$This shield, emblazoned with a multitude of creatures not seen for ages,
-D:$ once protected Celegorm, lord of Himlad; around it, a mystic balance lies
-D:$ containing the conflicts of the elements.
+D:$This shield emblazoned with a multitude of creatures not seen for ages 
+D:$once protected Celegorm, lord of Himlad; around it lies a mystic balance  
+D:$that contains the conflicts of the elements.
 D:いまでは見られなくなった数々の伝説の生き物の
 D:装飾が施されたこの盾は、かつてヒムラドの王ケレゴルムを
 D:守っていた。地水火風のエレメントのせめぎ合いを内包し、
@@ -734,7 +734,7 @@ I:32:2:5
 W:30:50:15:100000
 P:2:0d0:0:0:18
 F:INT | WIS | CHR | SUST_INT | SUST_WIS | SUST_CHR | RES_BLIND | IM_ELEC
-D:$This is the helm of Indra, the god of thunderstorms.
+D:$This is the helm of Indra the god of thunderstorms.
 D:雷神インドラの兜だ。
 
 # The Massive Iron Crown of Morgoth
@@ -881,18 +881,18 @@ F:SEE_INVIS | NO_MAGIC | ACTIVATE |
 F:RES_DISEN | RES_FEAR | FREE_ACT | RES_ACID | RES_COLD | RES_POIS |
 F:TELEPORT
 U:TERROR
-D:$You run out of adjectives to describe the dread this mask inspires:
-D:$  terrifying, scary, creepy, bloodcurdling, hair-rising, frightening, ....
+D:$This is terrible, scary, fearful, dreadful, bloodcurding, hair-rising
+D:$ frightening mask.
 D:なんとも恐ろしい、不気味で、おどろおどろしく、髪が逆立ち、血も凍り、
 D:ぞっとして鳥肌が立つような仮面だ。
 D:仮面の奥の瞳に睨まれれば、怖くて逃げ出さずにはいられない。
 
-# The Golden Crown of Gondor -> Jewel Encrusted Crown of Amber
+# The Golden Crown of Gondor -> Amber
 
 #JZ#
 N:42:真世界アンバーの
 E:of Amber
-I:33:12:3
+I:33:11:3
 W:40:40:30:125000
 P:0:1d1:0:0:15
 F:STR | WIS | CON | HIDE_TYPE | SPEED |
@@ -900,9 +900,8 @@ F:RES_COLD | RES_FIRE | RES_LITE | RES_BLIND | RES_ELEC | RES_CONF |
 F:RES_CHAOS | LITE | SEE_INVIS | REGEN | ACTIVATE
 F:XTRA_POWER | XTRA_H_RES
 U:CURE_700
-D:$Wrought of silver with seven high points each topped by a gem, this crown
-D:$ is the symbol of the throne of Amber.  The Princes of Amber scrambled for
-D:$ it violently.
+D:$The gold grown which is decorated with much jewerly is the symbol
+D:$ of the throne of Amber. Princes of Amber scrambled for it violently.
 D:アンバーの王位の象徴である、多数の宝石で飾られた金の王冠だ。
 D:これをめぐって骨肉の争いが王子たちの間で繰り広げられた。
 
@@ -1098,7 +1097,7 @@ W:10:20:25:15000
 P:2:1d1:0:0:15
 F:STR | RES_FIRE | MAGIC_MASTERY | ACTIVATE
 U:BO_FIRE_1
-D:$A fiery set of gauntlets that can even shoot fire from the user's 
+D:$A firey set of gauntlets that can even shoot fire from the user's 
 D:$hands. 
 D:シンダール語で「跳ねる炎の拳」の名を持つこの篭手は炎に
 D:包まれており、身に付ける者は火の球を撃ち出すことも出来る。
@@ -1113,8 +1112,6 @@ I:31:2:4
 W:10:40:25:43000
 P:2:1d1:0:0:15
 F:SUST_CON | CON | REGEN | RES_COLD | FREE_ACT
-D:$These gauntlets belonged to Prince Corwin of Amber and are imbued with
-D:$ his extraordinary toughness.
 D:並外れた強靭さを持つアンバーの王子コーウィンのガントレットだ。
 
 # The Set of Gauntlets 'Pauraegen'
@@ -1218,9 +1215,6 @@ P:2:1d1:0:0:15
 U:CURE_POISON
 F:DEX | HIDE_TYPE | CHR | SUST_CHR | ACTIVATE | FREE_ACT |
 F:RES_NETHER | RES_CHAOS | SUST_CON
-D:$Flora is away from Amber's palace most of the time and enjoys finding
-D:$ new boyfriends in the parallel worlds that are shadows of Amber.  Her
-D:$ boots are enchanted with magic to make the wearer more attractive.
 D:フローラはほとんどの時間アンバーの宮殿を離れていて、
 D:影の世界で新しいボーイフレンドを見つけては楽しんでいる。
 D:彼女のブーツには身に付けた者を魅力的に見せる魔法がかかっている。
@@ -1258,7 +1252,7 @@ I:30:2:4
 W:30:20:20:100000
 P:4:1d1:5:5:16
 F:SPEED | DEX | SUST_DEX | RES_NEXUS | FREE_ACT | LEVITATION
-D:$The boots have the agility of Shiva, the god of destruction.
+D:$The boots has an agility of Shiva the god of destruction.
 D:破壊神シヴァの力を持った革の靴だ。
 
 
@@ -1296,7 +1290,7 @@ P:0:2d4:10:15:5
 F:DEX | HIDE_TYPE | STEALTH | SEARCH | SLAY_HUMAN |
 F:SLAY_EVIL | SLAY_TROLL | SLAY_ORC | BRAND_POIS |
 F:FREE_ACT | RES_DARK | SUST_DEX | SEE_INVIS | SHOW_MODS | THROW
-D:$The dagger of Caine, the leader of Amber's fleets.
+D:$The dagger of Caine the leader of Amber fleets.
 D:アンバーの艦隊を指揮するケインのダガーだ。
 
 # The Dagger 'Narthanc'
@@ -1410,7 +1404,7 @@ F:RES_CHAOS | RES_NETHER | HOLD_EXP | RES_FEAR |
 F:RES_COLD | BRAND_COLD |
 F:SLAY_DEMON | SLAY_EVIL | SLAY_DRAGON | SLAY_UNDEAD |
 F:SLOW_DIGEST | SHOW_MODS | HIDE_TYPE | BLESSED | RIDING
-D:$The is the silver sabre, forged by moonlight, which Corwin the prince of
+D:$The silver sable forged by moonlights, which Corwin the prince of
 D:$ Amber wielded. It shows contrasts between silver and black like
 D:$ its owner does.
 D:アンバーの王子コーウィンが使っていた、月の光により
@@ -1461,9 +1455,9 @@ P:0:2d5:12:16:0
 F:SEARCH | BRAND_ELEC | SLAY_ORC | KILL_DRAGON | RES_FEAR |
 F:RES_ELEC | LITE | RES_FIRE | RES_POIS |
 F:SLOW_DIGEST | SHOW_MODS | RIDING
-D:$The sword of Sigurd which is also called Balmung or Gram.
-D:$ With it, Sigurd cut the anvil at Mime's forge in half and slew Fafner,
-D:$ the dragon.
+D:$The sword of Sigurd which is alos called Balmung or Gram.
+D:$ He slashed the anvil of Mime's blacksmith and used to
+D:$ kill the dragon Fafnir.
 D:「ノートゥングさ、その名は。ヴォータンがとねりこの幹
 D:に突き立てた剣だ。それを引き抜くことのでき
 D:た者だけが、わがものとしうるわけだ。」
@@ -1570,7 +1564,8 @@ P:0:4d6:-40:-60:-50
 F:SPEED | IM_FIRE | RES_FIRE | BRAND_FIRE | RES_DISEN | RES_FEAR |
 F:AGGRAVATE | CURSED | HEAVY_CURSE | SHOW_MODS | TY_CURSE | LITE
 F:RANDOM_CURSE2
-D:$The flame sword with which Surtr set the world on fire at Ragnarok.
+D:$The flame sword with which Surtr set fire all over the world
+D:$ at Ragnarok.
 D:北欧神話において炎の巨人スルトが世界に火を放った燃える剣だ。
 
 # The Cutlass 'Gondricam'
@@ -1641,7 +1636,7 @@ F:ESP_ORC | ESP_TROLL | ESP_GIANT
 U:BA_COLD_2
 D:$The weapon of Fingolfin, High King of the Noldor; it shines like a column 
 D:$of ice lit by light unquenchable.  Morgoth came but unwillingly to meet it 
-D:$of old; his lame foot will remind him of its might should he meet it again.
+D:$of old; his lame foot will remind him of its might should be meet it again.
 D:ノルドールの上級王フィンゴルフィンの武器。氷の柱の如く輝いている。
 D:かつてモルゴスは期せずしてこの剣に対峙し深い傷を
 D:刻み込まれた。彼はこの剣の力を再び思い知ることになるだろう。
@@ -1709,7 +1704,7 @@ F:DEX | CHR | STEALTH | HIDE_TYPE | SPEED | AGGRAVATE | VORPAL |
 F:SLAY_HUMAN | SLAY_TROLL | SLAY_ORC | SEE_INVIS | SHOW_MODS |
 F:ESP_ORC | ESP_TROLL | ESP_HUMAN
 D:$Take care! This sword will make you a murderer if you wield it.
-D:$ Do you hear the bloodthirsty screams of this sword?
+D:$ Do you hear cries of this sword that want more blood thirstily?
 D:持った者を殺戮マシーンに変える呪われた剣だ。あなたにはこの剣の
 D:血に飢えた叫びが聞こえるだろう。
 
@@ -1790,9 +1785,9 @@ W:20:8:80:35000
 P:0:1d7:3:7:0
 F:BLOWS |
 F:SLAY_ANIMAL | SLOW_DIGEST | REGEN | SHOW_MODS | SEE_INVIS | RES_DISEN
-D:$Merlin, a prince of chaos and Corwin's son, hates carrying a heavy sword.
-D:$  When he needs one, he invokes a power of chaos to summon a blade from some
-D:$ nearby parallel world.  This sword is one of those he summoned.
+D:$Merlin the prince of chaos hates carrying a heavy sword, so he invokes
+D:$ a power of chaos to take his sword from another dimension when he
+D:$ needs. This sword is also one of such things.
 D:$ (R.Zelazny, 'The Chronicles of Amber', vol.6-10)
 D:地球暮らしの長いマーリンは現代っ子らしく重く長い剣を持ち歩くのが嫌いで、
 D:必要な時カオスの力で剣を異世界から取り寄せる。この剣もそうした物の
@@ -1902,8 +1897,8 @@ P:0:2d5:10:12:10
 F:INT | HIDE_TYPE |
 F:BRAND_COLD | BRAND_FIRE | SLAY_DEMON | SLAY_TROLL | SLAY_GIANT |
 F:RES_FIRE | RES_COLD | SUST_INT | SLOW_DIGEST | SHOW_MODS | LITE
-D:$Within this long thrusting spear, the spirits of frost giants and fire
-D:$ demons war forever, trapped by magely spells.
+D:$Within this long thrusting spear lie the spirits of frost giants and fire 
+D:$demons, who war forever, trapped by magely spells.  
 D:この両手持ちの長槍の中には
 D:氷の巨人と炎の悪魔の二つの魂が魔法により
 D:封印されていて永遠に争っている。
@@ -1921,8 +1916,8 @@ F:SLAY_TROLL | SLAY_ORC | SLAY_GIANT |
 F:FREE_ACT | RES_FIRE | RES_ELEC | RES_LITE |
 F:SLOW_DIGEST | ACTIVATE | BLESSED | SHOW_MODS | LITE | RIDING
 U:BA_ELEC_2
-D:$The spear which Odin created from a branch of the world tree.  Magical
-D:$ runes have been carved into the shaft.
+D:$The spear which Odin created from a branch of the world tree.
+D:$It is craved magical runes.
 D:主神オーディンが世界樹の枝から作り上げた槍で、魔力を込めた
 D:ルーン文字が刻まれている。(北欧神話)
 
@@ -2422,9 +2417,9 @@ F:WIS | INFRA | HIDE_TYPE | BLESSED |
 F:BRAND_COLD | SLAY_ORC | RES_COLD | RES_LITE | LITE | REGEN |
 F:ACTIVATE | SHOW_MODS | XTRA_H_RES
 U:DRAIN_2
-D:$Wielded by the High Priest of Meneltarma, this great hammer gleams coldly
-D:$ as though moonlit, and it can strike as mighty a blow spiritually as
-D:$ physically.
+D:$Wielded by the High Priest of Meneltarma, this great mace gleams coldly as 
+D:$though moonlit, and it can strike as mighty a blow spiritually as 
+D:$physically.
 D:メネルタルマの高僧が使っていた大鎚で、月の光のように冷たく輝いている。
 D:その打撃は敵の肉体だけでなく精神をも打ち砕くことができる。
 
@@ -2438,8 +2433,6 @@ W:30:60:260:200000
 P:0:4d5:15:15:0
 F:BLOWS | VAMPIRIC | HOLD_EXP | SLAY_UNDEAD | SLAY_EVIL | SLAY_HUMAN |
 F:REGEN | RES_FEAR | RES_BLIND | SLOW_DIGEST | SHOW_MODS
-D:$This bloodthirsty blade, which has lopped countless heads, heals the body
-D:$ and safeguards the soul of the wielder.
 D:数え切れないほどの首を落としてきたこの血に飢えた刃は
 D:敵の血と魂を吸って手にする者の体を癒す。
 
@@ -2484,7 +2477,7 @@ W:50:25:110:100000
 P:0:0d0:10:14:0
 F:SPEED | RES_FIRE | XTRA_MIGHT | ACTIVATE | SHOW_MODS | XTRA_RES_OR_POWER
 U:BRAND_FIRE_BOLTS
-D:$The magic power of this crossbow of Brand, the prince of Amber, will enable
+D:$Magic power of this crossbow of Brand the prince of Amber will enable
 D:$ you to move faster.
 D:トランプの魔力を自分の物にし、新たな宇宙を創造しようとした
 D:アンバーの王子ブランドが使っていたクロスボウだ。
@@ -2513,10 +2506,10 @@ F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD | ACTIVATE |
 F:SLAY_EVIL | SLAY_ANIMAL | SLAY_DEMON | SLAY_DRAGON |
 F:SEE_INVIS | REGEN | BLESSED | LITE | SHOW_MODS
 U:ESCAPE
-D:$It is one of the three imperial spiritual artifacts of Japan.
-D:$  Susanoo found this tsurugi, a straight double-edged sword, at Izumo.
-D:$  Many years later, Yamato Takeru received it as a gift.
-D:$  The tsurugi's spiritual power guards its owner from many dangers.
+D:$One of the three imperial spiritual artifacts of Japan.
+D:$Susanoo found this tsurugi at Izumo, then Yamato Takeru
+D:$got and used for conquesting Japan.
+D:$It guards its owner from many dangers by its spiritual power.
 D:三種の神器の一つ。出雲の国で素戔嗚尊(すさのおのみこと)により
 D:見出され、後に日本武尊(やまとたけるのみこと)の剣となる。
 D:使う者を様々な危機から守る霊力が備わっている。
@@ -2668,10 +2661,6 @@ W:20:25:150:40000
 P:0:2d5:10:10:0
 F:STR | DEX | HIDE_TYPE | FORCE_WEAPON | KILL_EVIL
 F:SHOW_MODS | RIDING
-D:$This legendary weapon is said to have killed Zanaffer, the beast that
-D:$ destroyed the magic city of Sairaag.  As the wielder's will augments the
-D:$ powers of this blade of light, all evil creatures have reason to fear its
-D:$ power.
 D:かつて魔導都市サイラーグを破壊つくした魔獣、ザナッファー。
 D:それを滅ぼしたといわれるのが、この伝説の武器である。
 D:持つ者の、意思の力を刃と成して、魔族すらも両断する。
@@ -2700,8 +2689,8 @@ P:0:8d6:0:30:0
 F:STEALTH | INT | WIS | AGGRAVATE | CURSED | HEAVY_CURSE |
 F:SHOW_MODS | CHAOTIC | IMPACT | SPEED
 F:RANDOM_CURSE0
-D:$This is a destructive heavy thing made by Micro$oft.
-D:$  It will bring many troubles to its user.
+D:$This is disruptive heave thing made by Micro$oft.
+D:$It will bring many troubles to its user.
 D:マイクロンフトによって作られたもので、重くて破壊力がある。
 D:使用する者に災いをもたらす。
 
@@ -2712,8 +2701,8 @@ W:30:15:75:100000
 P:0:2d6:17:12:0
 F:DEX | BLOWS | SLAY_EVIL | SLAY_UNDEAD | SLAY_ORC | SLAY_DEMON |
 F:FREE_ACT | SEE_INVIS | SHOW_MODS | RES_DARK | RES_DISEN | SPEED
-D:$The silver light sabre of Polnareff's stand, Silver Chariot.
-D:$  It can pierce enemies rapidly.
+D:$The silver light sabre of Polnareff's stand Silver Chariot.
+D:$It can pierce enemies rapidly.
 D:ポルナレフのスタンド「シルバーチャリオッツ」が手にしていた
 D:軽量のサーベルだ。一瞬にして敵に無数の風穴をあけることがで
 D:きるはずだッ!
@@ -2729,8 +2718,8 @@ F:LEVITATION | SLOW_DIGEST | REGEN | SEARCH | LITE | WARNING |
 F:INSTA_ART | QUESTITEM | FULL_NAME
 U:RECHARGE_XTRA
 D:$Yaaaaaaaaay! Platinum card of Yendorian Express!!!
-D:$  Wait a minute, you can not pay any more with this card.
-D:$  You must think of another way of using it.
+D:$Wait a minute, you can not pay any more with this card.
+D:$You must think other way of using it.
 D:金色に光り輝くイェンダー印のプラチナカードだ。
 D:まるで億万長者になった気分がする。限度額まで使い込もう。
 
@@ -2766,10 +2755,9 @@ F:HIDE_TYPE | BLOWS | VORPAL | VAMPIRIC | SLAY_HUMAN |
 F:SHOW_MODS | SPEED | ACTIVATE | RES_DISEN | NO_TELE |
 F:DRAIN_EXP | AGGRAVATE | RES_DARK | RES_NETHER | TY_CURSE |
 U:MURAMASA
-D:$"If you encounter a demon, you will cut the demon.  If you encounter a god
-D:$ you will cut the god."  Muramasa, the legendary swordsmith, forged this
-D:$ sword.  It always wants more blood, even though it has already drained the
-D:$ blood of many.
+D:$Muramasa the legendaly bracksmith forged this sword 'Muramasa'.
+D:$ It always wants more blood thirstily, although it already
+D:$ drained blood from many person.
 D:「魔物に遭うては魔物を斬り、神に遭うては神を斬る。」
 D:伝説の刀匠村正が全身全霊を込めて鍛えたこの妖刀は
 D:数え切れない人間の血を啜ってきた。その刃は
@@ -2784,9 +2772,6 @@ F:STEALTH | SUST_STR | SUST_DEX | SUST_CON |
 F:SPEED | RES_FIRE | BRAND_FIRE |
 F:SLAY_ANIMAL | SLAY_DRAGON | RES_FEAR | FREE_ACT |
 F:REGEN | SHOW_MODS | HIDE_TYPE
-D:$This a powerful nunchaku with the spiritual power of a legendary fighter.
-D:$  In skilled hands, it can deliver blows as fast as someone fighting
-D:$ barehanded.
 D:伝説の格闘家の霊力が宿った強力なヌンチャクだ。
 D:拳法を操る者が手にすれば自らの体の一部のように
 D:操ることができ、素手の時と同じくらい素早い攻撃が
@@ -2802,7 +2787,6 @@ F:RES_CONF | RES_NETHER | RES_COLD | RES_POIS | RES_DARK | RES_FEAR |
 F:SEE_INVIS | ACTIVATE | DRAIN_EXP |
 F:SH_COLD | HOLD_EXP | LEVITATION | REGEN
 U:TERROR
-D:$It is the stone mask of Dio Brando that turns the wearer into a vampire.
 D:装備した者を吸血鬼に変えてしまうというディオの石仮面だ。
 
 N:147:飛行
@@ -2812,7 +2796,6 @@ W:60:60:10:60000
 P:0:1d1:0:0:0
 F:INT | CHR | SPEED | ACTIVATE | LEVITATION | HOLD_EXP | INSTA_ART | LITE_3 | 
 U:BA_MANA
-D:$This glowing blue gem allows the wielder to levitate.
 D:浮遊の力を与えてくれる青く仄光る宝石だ。
 
 N:148:『与一の弓』
@@ -2821,7 +2804,6 @@ I:19:13:4
 W:35:30:40:30000
 P:0:0d0:40:13:0
 F:DEX | HIDE_TYPE | SEE_INVIS | XTRA_MIGHT | SHOW_MODS
-D:$It is the bow of Nasu no Yoichi, known for making impossible shots.
 D:「与一鏑を取つて番ひ、能つ引いてひやうと放つ。小兵といふ条、
 D:十二束三伏、弓はつよし、鏑は浦響くほどに長鳴して、過たず扇の
 D:要ぎは一寸ばかり置いて、ひいふつとぞ射切つたる。」(平家物語)。
@@ -2862,11 +2844,6 @@ W:40:20:400:98765
 P:0:3d6:5:23:5
 F:STR | CON | SLAY_EVIL | SLAY_UNDEAD | SLAY_ORC | SLAY_TROLL | RES_FEAR |
 F:FREE_ACT | REGEN | SHOW_MODS
-D:$Musashibo Benkei, sometimes said to be a demon, used his power to obtain
-D:$ this naginata.  With it, he won 999 swords from samurai in duels
-D:$ around Kyoto.  Trying to win an additional sword, Benkei fought Minamoto
-D:$ no Yoshitsune on Gojo Bridge and lost.  Benkei later became Yoshitsune's
-D:$ retainer.
 D:後に義経に仕えた怪僧・武蔵坊弁慶は、この大薙刀を得物に武力を振るい、
 D:五条大橋の上で999本の刀を狩った。
 
@@ -2937,8 +2914,6 @@ W:10:150:30:10000
 P:0:1d1:0:0:0
 F:ACTIVATE | INSTA_ART
 U:FISHING
-D:$Taikobo's daily routine was to fish with this fishing rod.  Eventually,
-D:$ Taikobo was himself caught by Zhou Wen Wang.
 D:太公望はこの釣り竿を用いて釣りを楽しむのが日課であったが、
 D:結局は彼自身が周の文王に釣られてしまったのであった。
 
@@ -2950,8 +2925,6 @@ W:60:150:130:100000
 P:0:4d5:-10:25:0
 F:VORPAL | VAMPIRIC | SLAY_EVIL | KILL_DEMON | ESP_DEMON |
 F:AGGRAVATE | LITE | CON 
-D:$As you handle this reddish gold blade, you have the strong urge to find
-D:$ and kill some demons.
 D:彼女は史上最強の破妖刀だ。
 D:朱金に輝く刀身で魔性の心臓をつらぬき、その命を食べつくす。
 
@@ -2963,9 +2936,9 @@ P:0:4d9:6:23:10
 F:STR | DEX | HIDE_TYPE | SEARCH | FREE_ACT | SLAY_HUMAN |
 F:SLAY_TROLL | SLAY_GIANT | SLAY_ANIMAL | SLAY_ORC | RES_FIRE | RES_COLD |
 F:RES_ELEC | RES_ACID | RES_FEAR | SHOW_MODS | RIDING
-D:$Said to belong to Honda Tadakatsu, a leading general for Tokugawa Ieyasu,
-D:$ this spear got its name, 'Tonbo giri' or dragonfly cutter, because a
-D:$ dragonfly that tried to perch on the tip was cut in two.
+D:$Because of very superb sharpness such as dragon flies are 
+D:$cut which perches on the tip of this spear, it is called
+D:$'Tonbo giri' which means 'dragon fry cutter'. 
 D:徳川四天王の1人本多忠勝の愛用の槍だ。
 D:その切れ味は穂先に止まった蜻蛉が切れて落ちるほどである。
 
@@ -2991,9 +2964,6 @@ F:BRAND_ELEC | SLAY_EVIL | SLAY_GIANT |
 F:RES_ELEC | RES_LITE | RES_DARK |
 F:LITE | SEE_INVIS | RES_BLIND | SHOW_MODS | RIDING
 U:BA_STAR
-D:$This is spear of the Celtic hero, Cuchulainn.  Carved from the bone of
-D:$ a sea dragon, it protects the sight of the wielder and can flash to dazzle
-D:$ an opponent.
 D:ケルトの英雄クーフーリンの、海竜の骨から削られた長槍だ。
 D:つねに目映く発せられるその閃光は敵の目をくらまし、
 D:逆に所有者の視力を守る。
@@ -3067,9 +3037,6 @@ W:25:5:15:808
 P:0:1d2:-3:-7:6
 F:SEARCH | ACTIVATE | SHOW_MODS | HIDE_TYPE
 U:AGGRAVATE
-D:$It is two wooden prisms joined by a thin rope.  Though a poor weapon,
-D:$ firefighters use such devices as percussion instruments to warn others of
-D:$ danger.
 D:角柱二本の互いの端が、細い縄で結ばれている。
 D:武器としては見るからに貧相だが、 防火をその任とする衛士たちが使った、
 D:由緒正しい武器だといわれている。
@@ -3081,11 +3048,6 @@ W:40:5:100:808
 P:0:1d7:-5:10:3
 F:STR | CHR | RES_FIRE | ACTIVATE | 
 U:HERO
-D:$It is a short staff with an attached flag.  The opposite end of the staff
-D:$ from the flag has a disk with the mark of a firefighting squad.  Staffs
-D:$ like this were used to rally firefighters to sites of fires in Edo period
-D:$ Japan.  The bearers, matoimachi, of such staffs were noted for their
-D:$ courage.
 D:消火作業にあたって、士気を鼓舞すべく振りたてられた杖だ。
 D:杖の先に隊のマーク入りの円盤があり、その下側から
 D:長い帯状の飾りが幾本ものびている。
@@ -3120,9 +3082,6 @@ W:45:40:666:66666
 P:0:25d4:-30:0:20
 F:SPEED | STEALTH | WIS | IMPACT | SHOW_MODS | HIDE_TYPE |
 F:CURSED | HEAVY_CURSE
-D:$It is a very heavy iron ball, likely too cumbersome to be effective as
-D:$ a weapon, with an attached chain and metal ring, ready to be fastened to
-D:$ an ankle or wrist.
 D:不信心者の足にくくりつけられ、その動きを阻害する。
 D:重いが武器としても使えない事はない。
 
@@ -3172,7 +3131,6 @@ W:50:30:130:0
 P:0:5d5:-50:-50:-5
 F:WIS | CHR | 
 F:TY_CURSE | AGGRAVATE | DRAIN_EXP | SHOW_MODS | THROW
-D:$"What's this!  Isn't it the strongest sword!?"  (Final Fantasy V)
 D:「なんだこれは!最強の剣じゃないのか!?」
 D:(FINAL FANTASY V)
 
@@ -3182,9 +3140,6 @@ I:21:1:3
 W:10:20:50:40000
 P:0:2d4:8:10:0
 F:STR | CON | RES_FEAR | SEE_INVIS | SLAY_EVIL | SLAY_UNDEAD
-D:$This is the donkey's jawbone that Samson used to defeat a Philistine Army.
-D:$  Lightweight but effective, this club's sacred power is especially deadly
-D:$ against evil foes.
 D:怪力サムソンがペルシア人兵士の包囲を撃ち破ったときに使っていた
 D:棍棒。骨でできているために軽く、その聖なる力は邪悪なモンスター
 D:を打ち払う。
@@ -3198,9 +3153,6 @@ F:BLOWS
 F:SLAY_UNDEAD | SLAY_DRAGON | SLAY_ANIMAL |
 F:RES_FIRE | RES_FEAR | BLESSED | 
 F:SLOW_DIGEST | SHOW_MODS
-D:$It is similar to the fabled Excalibur but is slightly smaller.  It also
-D:$ also happens to talk, calling itself "E.J." and admitting to a severe case
-D:$ of arachnophobia.
 D:かの宝剣エクスカリバーに似た作りの、少し小型の剣だ。
 D:自分のことを「E.J.」と呼び、ごくたまに話もする。
 D:蜘蛛と対峙すると、恐れのあまりプリンのようにぷるぷると震える。
@@ -3239,7 +3191,6 @@ F:SPEED | INT | WIS | SUST_INT | SUST_WIS | XTRA_SHOTS | XTRA_MIGHT |
 F:DEC_MANA |
 F:RES_DARK | RES_LITE | RES_DISEN | RES_BLIND | IM_COLD | SLOW_DIGEST |
 F:HIDE_TYPE | SHOW_MODS | QUESTITEM | INSTA_ART
-D:$It's a very ridiculous bow.
 D:すごくいいかげんな作りの弓だ。
 
 N:183:やる気のない
@@ -3350,8 +3301,6 @@ P:0:2d6:6:9:0
 F:DEX | CHR | HIDE_TYPE | RIDING |
 F:KILL_ANIMAL | ESP_ANIMAL | BRAND_FIRE | ACTIVATE
 U:CHARM_ANIMAL
-D:$This is the whip of a venerable beastmaster from a country circus.  The
-D:$ crack of this whip can shake any beast.
 D:某国サーカス団で使用された由緒正しい猛獣使いの証だ。
 D:このムチの音はどんな猛獣でも震え上がらせることができる。
 
@@ -3387,7 +3336,7 @@ W:20:4:130:20000
 P:0:2d2:6:10:0
 F:STR | BLOWS | HIDE_TYPE | 
 F:SLAY_ORC | SLAY_TROLL | RES_FIRE
-D:$A blade of Elendil that was broken by his fall as he battled Sauron upon
+D:$A blade of Elendil that was broken by his fall as the battled Sauron upon
 D:$ the steps of Barad-Dur.
 D:「金はすべて光るとは限らぬ、
 D:放浪する者すべてが、まよう者ではない。
@@ -3412,8 +3361,6 @@ W:60:60:320:200000
 P:0:4d5:20:20:5
 F:STR | DEX | CON | SLAY_EVIL | SLAY_HUMAN |
 F:VORPAL | SHOW_MODS
-D:$Guan Yu, who has a long, lush beard, knocked many great men to the ground
-D:$ with this blue dragon sword.
 D:豊かな髯を蓄えた義人・関羽はこの青龍刀で多くの豪傑を地に
 D:叩き伏せて来た。
 
@@ -3423,8 +3370,6 @@ I:21:16:6
 W:40:40:350:100000
 P:0:4d7:0:20:10
 F:STR | RES_FEAR
-D:$It is the heavy gold war club of Shuten-douji, sake lover and leader of the
-D:$ ogres on Mt. Oe.
 D:大江山の鬼の首領たる酒呑童子の重い金棒だ。
 
 N:195:『ゴールデンハンマー』
@@ -3448,8 +3393,6 @@ W:30:10:65:45000
 P:5:1d2:0:0:15
 F:STR | RES_ACID | RES_COLD | RES_FEAR |
 F:REFLECT | SUST_STR | 
-D:$Perseus evaded the snake-haired Medusa's petrifying gaze with this
-D:$ reflective shield in hand.
 D:蛇の髪を持つメドゥーサの石化の睨みも、この反射の盾の前には
 D:効果がなかった。
 
@@ -3476,7 +3419,6 @@ I:36:8:-10
 W:20:3:110:0
 P:8:1d1:-1:0:64
 F:AGGRAVATE | SUST_CHR | CHR
-D:$It's a rugged cuirass with a noticeable and offensive odor.
 D:なんとゴツゴツとした鎧だこと。
 
 N:201:『青龍の霊鱗』
@@ -3488,9 +3430,6 @@ F:RES_ACID | RES_FIRE | RES_COLD | RES_ELEC |
 F:RES_DARK | RES_CONF | RES_POIS |
 F:FREE_ACT | SEE_INVIS | ACTIVATE
 U:RESIST_ALL
-D:$This blue dragon scale armor has been blessed by the azure dragon that
-D:$ guards the east and the three other guardians, Byakko, Genbu, and Suzaku.
-D:$ Even a god would be envious of the protection this armor provides.
 D:玄武、白虎、朱雀とともに四獣と呼ばれる青龍の鱗鎧を
 D:身に纏えば、神の如き守護の力が得られる。
 
@@ -3504,9 +3443,6 @@ F:SLAY_EVIL | SLAY_DEMON | SLAY_UNDEAD |
 F:RES_ACID | RES_COLD | RES_BLIND | RES_CHAOS |
 F:LITE | ACTIVATE | BLESSED | SEE_INVIS | SHOW_MODS
 U:BA_WATER
-D:$From the bridge between heaven and earth, Izanagi and Izanami churned the
-D:$ sea with this jeweled weapon.  The first land sprung up from where drops
-D:$ of salty water fell from the weapon's tip.
 D:「是に天つ神、諸の命以ちて、伊邪那岐命、伊邪那美命、
 D:二柱の神に、『是の多陀用弊流国を修め理り固め成せ。』
 D:と詔りて、天の沼矛を賜ひて、言依さし賜ひき。故、二柱
@@ -3517,7 +3453,7 @@ D:是れ淤能碁呂島なり。」(古事記)。
 
 # モーロックの高僧の錆びた鎖かたびら
 N:203:モーロックの高僧の
-E:of The High Priest of Moloch
+E:of The High Preist of Morlok
 I:37:1:-2
 W:90:8:200:100000
 P:14:1d4:-5:0:-40
@@ -3525,9 +3461,6 @@ F:INT | WIS | CHR | HIDE_TYPE | RES_LITE | RES_DARK |
 F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD |
 F:RES_POIS | RES_CONF | RES_CHAOS | RES_NETHER |
 F:RES_NEXUS | AGGRAVATE | CURSED | HEAVY_CURSE | TY_CURSE
-D:$This badly rusted chain mail was once worn by a high priest who guarded a
-D:$ powerful magic amulet.  That priest's despair and the amulet's magic have
-D:$ left their mark in the mail.
 D:この赤々と錆びた今にも崩れ去りそうな鎖かたびらには、
 D:かつて愚かにも守護する魔除けを奪われ朽ち果てた、
 D:太古の高僧の怨念がこもっている。
@@ -3541,8 +3474,6 @@ P:4:0d0:0:0:0
 F:STR | CON | SUST_STR | SUST_CON |
 F:RES_FEAR | FREE_ACT | ACTIVATE
 U:SHIKOFUMI
-D:$It is the traditional garb for a Sumo wrestler.  Just touching it makes you
-D:$ feel stronger.
 D:遥か東の国のスモー戦士が身につける正装だ。
 D:その豪華な宝飾は力強さを感じさせる。
 
@@ -3553,7 +3484,6 @@ W:20:20:30:50000
 P:3:0d0:0:0:20
 F:RES_COLD | RES_ACID | RES_CHAOS | LEVITATION | ACTIVATE
 U:RESIST_COLD
-D:$This is the fur cloak of Mook, a red Yeti and Gachapin's friend.
 D:ガチャピンと対をなす赤い獣の毛皮のクロークだ。
 
 # 金属製ラメラー・アーマー『バテレン鎧』
@@ -3566,7 +3496,6 @@ W:45:5:340:80000
 P:23:1d6:5:5:17
 F:CHR | REFLECT |
 F:RES_FIRE | RES_CHAOS | LITE
-D:$It is the suit of shining western-style armor that Nobunaga Oda loved.
 D:織田信長の愛用した光り輝く西洋の鎧だ。
 
 # グレート・ソード『真魔剛竜剣』 (from ダイの大冒険)
@@ -3620,10 +3549,6 @@ W:20:15:150:40000
 P:6:1d1:-5:10:20
 F:INT | WIS | CHR | STEALTH | SPEED | RES_FIRE |
 F:SUST_STR | SUST_CON | SH_FIRE | REGEN | RES_FEAR
-D:$Since ancient times, some martial artists have trained with weighted sandals
-D:$ to build leg strength.  This is a pair of those, warm to the touch and
-D:$ with soles fashioned out of iron.  Wear them enough, you'll feel light as
-D:$ a feather when you take them off.
 D:古来より伝わる、男を磨くための靴だ。
 D:ふだん身に付けていれば、外したときに自分のからだが羽根のように
 D:軽く感じられるだろう。
@@ -3668,17 +3593,13 @@ D:この正視するもかなわぬ眩い炎のムチをひとたび手に取れ
 D:バルログの長ゴズモグは戦において負け知らずであった。
 
 N:213:天性寺聖地蔵尊の六環
-E:of The Bronze Octopus
+E:of The Bonze Octopus
 I:21:7:2
 W:35:40:70:125000
 P:0:1d7:8:8:8
 F:STR | WIS | BLOWS | TUNNEL | ACTIVATE | RES_ACID | RES_ELEC
 F:REGEN | FREE_ACT | BRAND_ELEC | BLESSED | XTRA_H_RES
 U:SUMMON_OCTOPUS
-D:$It is a walking stick bound with six rings of bronze.  According to legend,
-D:$ an incarnation of Jizo Daibosatsu carried this staff when he defended
-D:$ Kishiwada castle with the assistance of a horde of octopuses he had called
-D:$ from the sea.
 D:その昔、蛸を引き連れて岸和田の地を守るために戦かったという
 D:蛸法師こと地蔵大菩薩の化身が使っていた六環の錫杖だ。
 D:「…その時。一人の法師がどこからともなく現れて、何万という敵に飛びかかり、
@@ -3711,8 +3632,6 @@ F:STEALTH | SEARCH | HIDE_TYPE | SEE_INVIS |
 F:RES_DARK | ACTIVATE | LITE_M1 |
 F:INSTA_ART
 U:BA_DARK
-D:$It is a necklace decorated with jet-black jewels.  Wear it and feel yourself
-D:$ in the dark.
 D:漆黒の宝玉がつけられた頸飾りだ。
 D:身に付けると自分が暗闇の中にいるのを感じる。
 
@@ -3744,7 +3663,7 @@ U:DISP_CURSE_XTRA
 D:これを身につけたプレイヤーは呪いをはね返すことができる。
 
 N:218:地獄の
-E:of Hell
+E:of the Hell
 I:40:26:-2
 W:50:40:30:66666
 P:0:0d0:15:15:-5
@@ -3753,8 +3672,6 @@ F:RES_DARK | RES_NETHER |
 F:SEE_INVIS | AGGRAVATE | ESP_UNDEAD | ACTIVATE |
 F:INSTA_ART
 U:BA_DARK
-D:$It is one of the restraining collars used for the prisoners in Hell.  The
-D:$ spite of many prisoners is palpable when near the collar.
 D:地獄の囚人を拘束する首輪だ。多くの囚人の怨念が込められている。
 
 N:219:帯魔力ペンダント
@@ -3784,7 +3701,7 @@ W:20:15:30:50000
 P:0:2d1:15:17:0
 F:DEX | CHR | STEALTH |
 F:XTRA_MIGHT | HIDE_TYPE | SHOW_MODS | XTRA_H_RES
-D:$It is the bow of Robin Hood, the bandit in Sherwood Forest.
+D:$This is of Robin Hood who live in the deep forest.
 D:シャーウッドの森に住む義賊ロビン・フッドの弓だ。
 
 # from Slash'EM
@@ -3796,8 +3713,7 @@ P:0:2d1:15:17:0
 F:STR | INFRA | RES_FIRE | SH_FIRE |
 F:ACTIVATE | HIDE_TYPE | SHOW_MODS
 U:BRAND_FIRE_BOLTS
-D:$This fiery-colored crossbow can cause the bolts it fires to burst into
-D:$ flame upon impact.
+D:$This crossbow gives flame energy to bolts which it fires.
 D:この燃えるような色のクロスボウは、発射するボルトに炎の力を
 D:与えることができる。
 
@@ -3807,8 +3723,9 @@ I:19:23:4
 W:35:30:110:50000
 P:0:0d0:40:13:0
 F:DEX | HIDE_TYPE | SEE_INVIS | XTRA_MIGHT | SHOW_MODS
-D:$With this crossbow, the Swiss hero, Tell, shot an apple from his son's
-D:$ head and then defeated the Gessler, the tyrannical magistrate.
+D:$With this crossbow, Swiss hero Tell shot an apple exactly 
+D:$though it was on his son's head, and then he defeated evil 
+D:$magistrate Gessler.
 D:スイスの英雄ウィリアム・テルの使ったクロスボウだ。
 D:彼は我が子の頭の上のリンゴを正確に撃ち抜き、民衆を苦しめる
 D:悪代官ゲスラーを打ち破った。
@@ -3819,14 +3736,14 @@ I:18:1:0
 W:35:35:2:5000
 P:0:6d5:20:16:0
 F:KILL_HUMAN
-D:$It is said that Wilhelm Tell slew Gessler, the Austrian magistrate, with
-D:$ this bolt.
+D:$It is said that this bolt sticked onto the heart of Gessler 
+D:$when Wilhelm Tell shot it.
 D:かつてウィリアム・テルが撃ち放った1本のクロスボウの矢だ。
 D:悪代官ゲスラーの命を正確に奪ったという。
 
 #JX#
 N:225:アスクレピオスの
-E:of Asclepius
+E:of Aesculapius
 I:21:14:3
 W:40:45:160:300000
 P:0:2d11:15:15:5
@@ -3836,8 +3753,8 @@ F:VAMPIRIC | SLAY_ANIMAL | SLAY_DRAGON | SLAY_HUMAN |
 F:SLAY_ORC | SLAY_TROLL | SLAY_GIANT |
 F:RES_POIS | RES_CONF | RES_CHAOS |
 U:REST_ALL
-D:$This is the staff of Asclepius, a hero and god of medicine in Greek
-D:$ mythology.
+D:$This is the staff of Aesculapius, who is a greek god of 
+D:$the medicine.
 D:これは、医学の神アスクレピオスの奇跡の六尺棒だ。
 D:どんな怪我もたちまち癒してしまう。
 
@@ -3900,11 +3817,11 @@ D:大きな太刀を手にして多くの敵兵の命を奪いさった。その
 D:えに敵陣に突っ込みすぎたという。
 
 N:230:手品師の
-E:of Magician
+E:of Magician
 I:23:1:0
 W:1:1:5:3000
 P:0:1d1:0:0:0
-D:$This dull dagger has a very faint magic aura about it.
+D:$This dagger can not injure someone almostly.
 D:このダガーは人を傷つけることはないだろう。
 
 N:231:暗殺者荊軻の
@@ -4010,7 +3927,6 @@ I:21:5:0
 W:45:18:250:2500
 P:0:4d6:15:15:0
 F:RIDING | WARNING | SLAY_EVIL | KILL_DEMON | ESP_DEMON
-D:$What, this useless sword again?  Oh!  Wait a minute ....
 D:なんだ、またこの役立たずの剣か。おや?ちょっと待てよ……
 
 # The Light Crossbow 'Wiizapper' (x3)
@@ -4022,8 +3938,9 @@ P:0:1d1:13:13:0
 F:INFRA | DEX | XTRA_SHOTS | LITE |
 F:SEE_INVIS | WARNING |
 F:HIDE_TYPE | SHOW_MODS
-D:$Link, a warrior dressed in green, allegedly bought this white light crossbow
-D:$ for training.  "Enjoy shooting in the living room"  (Nintendo)
+D:$The white light crossbow that the fighter Link, wearing green clothes,
+D:$bought for training of shooting.'Enjoy shootings at the living room.'
+D:$(Nintendo)
 D:緑の服の戦士リンクがボウガンのトレーニングのために購入した
 D:と言われる軽くて白いクロスボウだ。「リビングで射撃を楽しむ」
 D:(Nintendo)
@@ -4043,16 +3960,15 @@ D:この不気味に黒光るクロスボウはずっしりと重い。その一
 
 # The Heavy Crossbow of Guanzi (x4)
 N:241:管子の
-E:of Guan Zhong
 I:19:24:3
 W:40:20:200:99999
 P:0:4d1:10:15:0
 F:INT | WIS | SUST_INT | SUST_WIS | MAGIC_MASTERY | XTRA_SHOTS |
 F:RES_CONF | RES_NEXUS | FREE_ACT |
 F:HIDE_TYPE | SHOW_MODS
-D:$This is Guan Zhong's heavy crossbow.  Tutor to a prince of Qi, he
-D:$ attempted to use it to kill another prince of Qi but failed.  Spared by
-D:$ his target, he became the chancellor of Qi.
+D:$This is Guan Zhong's heavy crossbow for assassinating.
+D:$He took prime minister's post of Qi, although he failed to
+D:$take the life of the prince of Qi.
 D:斉の管仲が暗殺用に用いた重い弩だ。公子小白を射抜くことはできなかった
 D:が、後に斉の宰相の座を見事に射止めた。
 
@@ -4101,22 +4017,18 @@ D:この聖なる鞭は、錬金術師の知恵と乙女の代償によって生
 D:退魔の血族ベルモンド家代々の手で振るわれてきた。
 D:その力は邪悪な夜の一族に対する呪詛そのものであり、
 D:汚れた魂を過たず撃ち滅ぼすだろう。
-D:$This holy whip was generated by an alchemist's wisdom and a maiden's
-D:$ sacrifice.  It has been wielded by generations of the Belmont family, the
-D:$ vampire hunters, and is the great bane of any with an unclean soul.
+D:$This holy whip was generated with wise of a alchemist and a maiden's
+D:$sacrifice, wielded by Belmond family, the vampire hunters.
+D:$That power is indeed curse of evil household of night
+D:$and vanish the poisonous souls.
 
 N:245:運命のオーブ
 E:The Orb of Fate 
 I:39:10:3
 W:70:70:15:45000
 P:0:1d1:0:0:20
-F:WIS | CON | WARNING | ACTIVATE | FULL_NAME | LITE_3 | INSTA_ART
+F:WIS | CON | WARNING | ACTIVATE | FULL_NAME | LITE_3 |
 U:TELEPORT_LEVEL
-D:"You may take the Orb of Fate with you.  I have removed from it the power
-D: to foretell the future, for that power no mortal should have.  Its other
-D: abilities, however, you have at your disposal.  You must now begin in Tyr's
-D: name to search for the Amulet of Yendor.  May your steps be guided by Tyr,
-D: my child." (Norn, Nethack)
 D:「運命のオーブを持っていきなさい。わたしは運命のオーブから
 D:人間の手に触れてはならぬ未来を告げる力を取り除きました。
 D:しかしながら運命のオーブの他の力は,あなたの思い通りに
@@ -4135,9 +4047,6 @@ F:SUST_CHR | SUST_CON |
 F:RES_SOUND | RES_DISEN | REFLECT | FREE_ACT | ACTIVATE
 F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD | AGGRAVATE
 U:STRAIN_HASTE
-D:$A result of Steel Staff Ymir's research project, this swimsuit, powered by
-D:$ a hyper vibration crystal, provides much more protection than you might
-D:$ expect.
 D:ドワーフの姫、鋼鉄参謀ユーミルの研究の成果だ。
 D:超振動クリスタルが高い防御力をもたらしているらしい。
 
index 05c872f..5aa9142 100644 (file)
@@ -155,7 +155,7 @@ M:IM_FIRE | CAN_FLY | WILD_VOLCANO
 
 N:9:地獄
 E:Hell
-D:$the stairway to Hell
+D:$the stairway to the Hell
 D:地獄への階段
 P:62:94
 W:666:696:50:1:14:160:90:77:0x0188:0x0280
@@ -167,7 +167,7 @@ M:IM_FIRE | EVIL
 
 N:10:天界
 E:Heaven
-D:$the way to Heaven
+D:$the way to the heaven
 D:天界へと通じる道
 P:2:94
 W:555:585:50:1:18:160:85:35:0x0040:0x0104
index c717fbc..b0fd227 100644 (file)
@@ -117,7 +117,7 @@ F:RES_ACID | RES_ELEC | RES_FIRE | RES_COLD |
 F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD | XTRA_H_RES
 
 N:10:ドワーフの
-E:of the Dwarves
+E:of Dwarven
 X:31:10
 W:0:10:0:1500
 C:0:0:15:3
@@ -222,7 +222,7 @@ C:0:0:15:0
 F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
 
 N:239:ドワーフの
-E:of the Dwarves
+E:of Dwarven
 X:25:20
 W:0:15:0:2000
 C:0:0:8:2
index 1468512..2cabc67 100644 (file)
@@ -912,7 +912,7 @@ F:PERMANENT | GLOW
 
 N:76:WEAPON_SMITHS
 J:武器専門店
-E:Weaponsmith's Shop
+E:Weapon Smiths
 G:3:w
 W:10
 F:SUBTYPE_2 | LOS | PROJECT | MOVE | NOTICE | REMEMBER | STORE | DOOR |
@@ -1007,7 +1007,7 @@ F:TELEPORTABLE
 N:86:SHALLOW_LAVA
 J:浅い溶岩の流れ
 E:shallow lava
-G:~:o
+G:~:U
 W:2
 F:LOS | PROJECT | MOVE | PLACE | DROP | REMEMBER | LAVA | SHALLOW | CAN_FLY |
 F:TELEPORTABLE
@@ -1800,15 +1800,15 @@ F:HURT_DISI | GLASS
 N:227:HEAVY_COLD_ZONE
 J:極低温帯
 E:heavy cold zone 
-G:^:b
+G:~:W
 W:2
-F:LOS | PROJECT | MOVE | PLACE | REMEMBER | COLD_PUDDLE | DEEP | CAN_FLY |
+F:LOS | PROJECT | MOVE | PLACE | REMEMBER | GLOW | COLD_PUDDLE | DEEP | CAN_FLY |
 F:TELEPORTABLE
 
 N:228:COLD_ZONE
 J:低温帯
 E:cold zone
-G:^:B
+G:~:w
 W:2
 F:LOS | PROJECT | MOVE | PLACE | DROP | REMEMBER | COLD_PUDDLE | SHALLOW | CAN_FLY |
 F:TELEPORTABLE
@@ -1816,7 +1816,7 @@ F:TELEPORTABLE
 N:229:HEAVY_ELECTRICAL_ZONE
 J:高圧帯電帯
 E:heavy electrical zone
-G:^:y
+G:~:y
 W:2
 F:LOS | PROJECT | MOVE | PLACE | REMEMBER | GLOW | ELEC_PUDDLE | DEEP | CAN_FLY |
 F:TELEPORTABLE
@@ -1824,7 +1824,7 @@ F:TELEPORTABLE
 N:230:ELECTRICAL_ZONE
 J:帯電帯
 E:electrical zone
-G:^:o
+G:~:o
 W:2
 F:LOS | PROJECT | MOVE | PLACE | DROP | REMEMBER | ELEC_PUDDLE | SHALLOW | CAN_FLY |
 F:TELEPORTABLE
@@ -1834,7 +1834,7 @@ J:深い酸の沼
 E:deep acid puddle
 G:~:u
 W:2
-F:LOS | PROJECT | MOVE | PLACE | REMEMBER | ACID_PUDDLE | DEEP | CAN_FLY |
+F:LOS | PROJECT | MOVE | PLACE | REMEMBER | GLOW | ACID_PUDDLE | DEEP | CAN_FLY |
 F:TELEPORTABLE
 
 N:232:SHALLOW_ACID_PUDDLE
@@ -1850,7 +1850,7 @@ J:深い毒の沼
 E:deep poisonous puddle
 G:~:g
 W:2
-F:LOS | PROJECT | MOVE | PLACE | REMEMBER | POISON_PUDDLE | DEEP | CAN_FLY |
+F:LOS | PROJECT | MOVE | PLACE | REMEMBER | GLOW | POISON_PUDDLE | DEEP | CAN_FLY |
 F:TELEPORTABLE
 
 N:234:SHALLOW_POISONOUS_PUDDLE
index 317c126..15dd430 100644 (file)
@@ -320,7 +320,7 @@ E:& Strip~ of Venison
 G:,:u
 I:80:33:1500
 W:0:0:2:2
-D:$A strip of jerked beef that never seems to spoil.
+D:$A strip of jerked beef that seems never to spoil.
 D:良く乾燥させた肉。決して腐る事が無さそうだ。
 
 N:24:スライムモルド
@@ -805,8 +805,6 @@ W:10:0:300:230
 A:10/1
 P:0:2d8:0:0:0
 F:SHOW_MODS | RIDING
-D:$A spear with a long conical tip.  It is well-suited for the rider of
-D:$ a charging horse.
 D:大きく長い円錐形の穂先を持った槍だ。
 D:馬上で構えて突撃する為に作られている。
 
@@ -923,8 +921,9 @@ I:19:24:0
 W:30:0:200:500
 A:30/2:40/2
 F:SHOW_MODS
-D:$A heavy mechanical bow.  It is slower to fire than its lighter
-D:$ cousin but each bolt fired is deadlier.
+# Not all heavy crossbow is the arbalest with a crank!
+#D:$The arbalest is so powerful it has to be reinforced with metal and 
+#D:$requires a crank to be cocked.
 D:鋼鉄製の弦をあらかじめ引いておき、機械式の引き金を引くだけで矢を発射
 D:する事ができる。ショート・ボウやロング・ボウに比べて扱いが簡単な武器だ。
 D:ヘヴィ・クロスボウはライト・クロスボウに比べて威力は強いが、
@@ -2263,7 +2262,7 @@ G:?:w
 I:70:0:0
 W:1:0:5:0
 A:1/1
-D:$It darkens the nearby area or current room and blinds you when you read it.
+D:$It darkens nearby area or current room and blinds you when you read it.
 D:それは読むと自分の周囲もしくは部屋全体が暗闇に包まれ、盲目になる。
 
 N:209:対邪悪結界:頭森 地跳 真骨
@@ -2370,7 +2369,7 @@ G:?:w
 I:70:11:0
 W:5:0:5:150
 A:5/1
-D:$It recalls you to the town or back into the dungeon you have entered when 
+D:$It recalls you to the town, or back into the dungeon you have entered when 
 D:$you read it.
 D:それは読むと地上にいる時は行ったことのあるダンジョンの最深階へ、
 D:ダンジョンにいる時は地上へと移動する。
@@ -2626,8 +2625,7 @@ I:75:59:0
 W:65:0:4:25000
 A:65/1
 P:0:1d1:0:0:0
-D:$You gain experience equal to the lesser of 100000 or half of your current
-D:$ experience when you quaff it.
+D:$You gain experience half of your experience (max: 100000) when you quaff it.
 D:それは飲むと現在の経験値の半分(100000を超えない)の経験を得る。
 
 N:245:眠り:ぼやけた色の
@@ -2658,8 +2656,8 @@ I:75:9:50
 W:0:0:4:0
 A:0/1
 P:0:1d1:0:0:0
-D:$It confuses you and causes you to hallucinate when you quaff it. If you are
-D:$ a monk, you may be a drunken master.
+D:$It confuses and hallucinates you when you quaff it. If you are a monk, 
+D:$you may be a drunken master.
 D:それは飲むと混乱し、幻覚に侵される。修行僧が飲むと酔拳を使えるらしい。
 
 N:248:毒:薄い緑色の
@@ -2881,7 +2879,7 @@ A:20/1:45/1:80/1:100/1
 P:0:1d1:0:0:0
 F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
 D:$You get temporary resistances to elements and poison when you quaff it. 
-D:$These resistances are cumulative with equipment.
+D:$These resistances is cumulative with equipment.
 D:それは飲むと一時的に酸・電撃・火炎・冷気・毒の耐性を得る。
 D:装備による耐性に累積する。
 
@@ -3019,8 +3017,7 @@ I:65:5:15
 W:10:0:10:100
 A:10/1
 P:0:1d1:0:0:0
-D:$It fires a beam that destroys all traps and doors along a line when you
-D:$ use it.
+D:$It fires a beam destroys all traps and doors on the line when you use it.
 D:それは使うとトラップやドアを破壊するビームを放つ。
 
 N:282:マジック・ミサイル:チタンの
@@ -3061,7 +3058,7 @@ I:65:3:12
 W:20:0:10:350
 A:20/1
 P:0:1d1:0:0:0
-D:$It fires a beam that teleports all monsters along a line when you use it.
+D:$It fires a beam teleports all monsters on the line when you use it.
 D:それは使うとモンスターをテレポートさせるビームを放つ。
 
 N:286:トラップ解除:銅メッキの
@@ -3071,7 +3068,7 @@ I:65:4:10
 W:20:0:10:700
 A:20/1
 P:0:1d1:0:0:0
-D:$It fires a beam that destroys all traps along a line when you use it.
+D:$It fires a beam destroys all traps on the line when you use it.
 D:それは使うとトラップを破壊するビームを放つ。
 
 N:287:サンダー・ボール:金メッキの
@@ -3313,7 +3310,7 @@ I:55:7:12
 W:20:0:50:800
 A:20/1
 P:0:1d2:0:0:0
-D:$It fires 5d3 random lines of light when you use it.
+D:$It fires a line of light directed randomly for 5d3 times when you use it.
 D:それは使うとランダムな方向への光線を5d3回放つ。
 
 N:309:スピード・モンスター:ユーカリの
@@ -3456,7 +3453,7 @@ I:55:0:10
 W:5:0:50:0
 A:5/1:50/1
 P:0:1d2:0:0:0
-D:$It darkens the nearby area or current room and blinds you when you use it.
+D:$It darkens nearby area or current room and blinds you when you use it.
 D:それは使うと自分の周囲もしくは部屋全体が暗闇に包まれ、盲目になる。
 
 N:323:抹殺:チークの
@@ -3510,7 +3507,7 @@ W:70:0:50:4500
 A:70/2
 P:0:1d2:0:0:0
 D:$It does 150 damage to all evil monsters in sight, gives temporary 
-D:$protection from lesser evil creatures, cures poison, stuuned, cuts, removes 
+D:$protection from lesser evil creature, cures poison, stuuned, cuts, removes 
 D:$fear and heals you 50 when you use it.
 D:それは使うと視界内の邪悪なモンスターに150のダメージを与え、
 D:一時的に弱い邪悪な者の攻撃を回避しやすくなる結界を張り、
@@ -3772,7 +3769,7 @@ I:66:3:60
 W:30:0:15:4000
 A:15/16:30/4
 P:0:1d1:0:0:0
-D:$It recalls you to the town or back into the dungeon you have entered when 
+D:$It recalls you to the town, or back into the dungeon you have entered when 
 D:$you zap it.
 D:それは振ると地上にいる時は行ったことのあるダンジョンの最深階へ、
 D:ダンジョンにいる時は地上へと移動する。
@@ -3875,7 +3872,7 @@ I:66:13:25
 W:45:0:15:1400
 A:23/8:45/2
 P:0:1d1:0:0:0
-D:$It fires a beam that teleports all monsters along a line when you zap it.
+D:$It fires a beam teleports all monsters on the line when you zap it.
 D:それは振るとモンスターをテレポートさせるビームを放つ。
 
 N:365:トラップ解除:ジルコンの
@@ -3885,7 +3882,7 @@ I:66:14:22
 W:35:0:15:2100
 A:18/4:35/1
 P:0:1d1:0:0:0
-D:$It fires a beam that destroys all traps along a line when you zap it.
+D:$It fires a beam destroys all traps on the line when you zap it.
 D:それは振るとトラップを破壊するビームを放つ。
 
 N:366:サンダー・ボール:亜鉛の
@@ -5803,8 +5800,8 @@ G:?:w
 I:70:43:0
 W:10:0:5:1000
 A:10/8
-D:$It increases the number of spells you can study when read. If you are a
-D:$ class that can't study or don't need to study, it has no effect.
+D:$It increases the number you can study spells when you read. If you are the 
+D:$class can't study or don't need to study, it effects none.
 D:それは読むと呪文を1つ学習できるようになる。
 D:学習できない、または学習する必要のない職業では何も起きない。
 
@@ -5876,8 +5873,8 @@ I:55:30:8
 W:35:0:50:800
 A:35/1
 P:0:1d2:0:0:0
-D:$It raises nearby corpses and skeletons from the dead and makes them your
-D:$ pets when you use it.
+D:$It raises corpses and skeletons nearby you from dead and makes them your 
+D:$pet when you use it.
 D:それは使うと自分の周囲の死体や骨を生き返らせてペットにする。
 
 N:609:石
@@ -6044,7 +6041,7 @@ W:65:0:10:4000
 A:65/3
 P:0:1d1:0:0:0
 F:IGNORE_ACID | IGNORE_ELEC | IGNORE_FIRE | IGNORE_COLD
-D:$It fires a bolt of meteors (damage: (15+level/3)d13) when you use it.
+D:$It fires a bolt of meteor (damage: (15+level/3)d13) when you use it.
 D:それは使うとダメージ(15+レベル/3)d13の隕石の矢を放つ。
 
 N:629:魔力の嵐:トネリコの
@@ -6242,7 +6239,7 @@ G:?:w
 I:70:54:0
 W:30:0:5:1000
 A:30/2
-D:$It summons a monster that corresponds to your race as your pet when you read it.
+D:$It summons a monster corresponds to your race as your pet when you read it.
 D:それは読むと自分の種族に対応したモンスター1体をペットとして召喚する。
 
 N:651:魔法の笛
@@ -6381,7 +6378,7 @@ G:?:w
 I:70:55:0
 W:20:0:5:100
 A:20/6
-D:$It creates one amusing item when you read it.
+D:$It creates one amuzing item when you read it.
 D:それは読むと誰の得なのかわからないものを1個作り出す。
 
 N:668:*誰得*:挽怒 那 務故
@@ -6390,7 +6387,7 @@ G:?:w
 I:70:56:0
 W:20:0:5:500
 A:60/8
-D:$It creates some amusing item when you read it.
+D:$It creates some amuzing item when you read it.
 D:それは読むと誰の得なのかわからないものを複数作り出す。
 
 N:669:オーブ
index 50a309c..94ed488 100644 (file)
@@ -50,7 +50,7 @@ Q:4:T:蔵の物品はお礼にお持ちください。空いた蔵は演劇場
 # Description for quest failed
 ?:[AND [EQU $QUEST4 5] [EQU $QUEST_TYPE4 3]]
 Q:$4:T:You didn't find the weapon? Well, the monsters have probably
-Q:$4:T:carried it away.  Too bad, it would have been quite helpful
+Q:$4:T:carried it away.  Too bad, it would have been quiet helpful
 Q:$4:T:in driving the evil out of our town.
 Q:4:T:あの武器を見つけられなかったのですか?おそらく、モンスターどもが持っていって
 Q:4:T:しまったんでしょうな。とても残念です。アレはこの街から悪を一掃する
index 3d6af9a..e91e028 100644 (file)
@@ -32,7 +32,7 @@ Q:5:T:どうかモンスターどもを一掃して塔を取り戻してくだ
 Q:$5:T:Thank you for cleaning the tower of all these strange creatures.
 Q:$5:T:I've talked with Astinus, the local librarian, Suiyan, the local
 Q:$5:T:weaponmaster, and Lorien, the local beastmaster. They will offer you
-Q:$5:T:a special discount price when they serve you, and a small reward
+Q:$5:T:a special discount price when they serve you. And a small reward
 Q:$5:T:awaits you outside.
 Q:5:T:塔の怪物を一掃して下さって有難うございます。この街の司書のアスティヌス、
 Q:5:T:武器匠の水庵、モンスター仙人のロリエンに話を付けておいたので、
index ac3835a..4b987f7 100644 (file)
@@ -11,8 +11,8 @@ Q:34:Q:6:0:0:0:5:0:0:0:6
 
 # Description for quest
 ?:[LEQ $QUEST34 2]
-Q:$34:T:Adventurers are dead in the building behind this one. All windows and 
-Q:$34:T:doors are locked. We guess the murderer still hides in the house.
+Q:$34:T:Adventures are dead in the building behind this one. All windows and 
+Q:$34:T:doors are locked, we guess the murderer still hide in the house.
 Q:$34:T:Your task is to clean everything up in the room.
 Q:34:T:この建物の裏の一軒家で冒険者が不審な死に方をしているとの報告がありました。
 Q:34:T:窓にも扉にも鍵がかかっており、殺戮者はまだ内部に潜んでいると思われます。
index 1caec87..d86f0bf 100644 (file)
@@ -25,7 +25,7 @@ Q:31:T:クエストは街の東の平地にあります。
 
 # Description for quest reward
 ?:[EQU $QUEST31 3]
-Q:$31:T:Thank you!  Your reward is waiting outside.
+Q:$31:T:Thank you!  Your reward is wating outside.
 Q:31:T:ありがとうございます!外にお礼が置いてあります。
 ?:1
 
index 8cd8f70..856da57 100644 (file)
@@ -25,7 +25,7 @@ Q:32:T:たくさん護衛がいますから注意して下さい。
 
 # Description for quest reward
 ?:[EQU $QUEST32 3]
-Q:$32:T:Thank you!  Your reward is waiting outside.
+Q:$32:T:Thank you!  Your reward is wating outside.
 Q:32:T:ありがとうございます!外にお礼が置いてあります。
 ?:1
 
index 796b775..3facf69 100644 (file)
@@ -23,7 +23,7 @@ Q:25:T:我々はその家に住み着いている悪霊を退治してくれる
 ?:[EQU $QUEST25 3]
 Q:$25:T:Well done, indeed! Our citizens can finally sigh in relief.
 Q:$25:T:As a reward, we would like to give you something that will
-Q:$25:T:help you sense the enemy even more efficiently!
+Q:$25:T:help you sence enemy even more efficiently!
 Q:25:T:本当に良くやってくれました!我々住民はようやく安心することが出来ます。
 Q:25:T:お礼として、邪悪な者どもを更に効果的に感知することができるアイテムを
 Q:25:T:差し上げます。
index 4acaed1..baec6b6 100644 (file)
@@ -2036,7 +2036,7 @@ F:EVIL | UNDEAD | IM_POIS | RES_NETH |
 F:NO_CONF | NO_SLEEP | HURT_LITE
 S:1_IN_10
 S:CAUSE_1 | S_UNDEAD
-D:$Is a frightening skeletal figure in a black robe
+D:$Frightening skeletal figures in black robes
 D:黒装束に身を包んだ恐ろしげな骸骨の姿だ。
 D:(ロバート・ブロック「窖に潜むもの」)
 
@@ -2051,7 +2051,7 @@ B:CLAW:POISON:1d4
 F:OPEN_DOOR | BASH_DOOR | FRIENDS |
 F:NO_CONF | NO_SLEEP | UNDEAD | EVIL | NO_FEAR | IM_POIS
 F:IM_COLD | RES_NETH | COLD_BLOOD | EMPTY_MIND
-D:$It is a corpse awakened from its sleep by dark sorceries. 
+D:$Corpses awakened from their sleep by dark sorceries. 
 D:暗黒魔術により眠りを覚まされた死体だ。
 
 #J0#
@@ -2270,7 +2270,7 @@ S:SHOOT | HEAL | TRAPS
 A:221:1:5
 V:75
 D:$The legendary archer steals from the rich (you qualify).
-D:この伝説の射手は金持ち(あなたは合格)から金を盗む
+D:この伝説の射手は金持ち(あなたは合格)から金を盗む
 
 #JZ#
 N:139:ナーグリング
@@ -2501,7 +2501,7 @@ B:CLAW:EAT_FOOD:1d2
 B:BITE:EAT_FOOD:1d4
 F:MULTIPLY | IM_POIS | RES_DARK | HURT_LITE | EVIL | DEMON | OPEN_DOOR | 
 F:TAKE_ITEM | CAN_SWIM 
-D:$Don't splash water on them and don't feed them after midnight!
+D:$Don't splash water on them, and don't feed them after midnight!
 D:水を掛けたり、真夜中を過ぎてから餌をやってはいけない!
 
 #J0#
@@ -3500,7 +3500,7 @@ F:FRIENDS |
 F:BASH_DOOR | WILD_WASTE |
 F:ANIMAL | IM_COLD | DROP_SKELETON | DROP_CORPSE
 D:$A large and muscled wolf from the northern wastes.  Its breath is cold and 
-D:$icy, and its fur is coated in frost.
+D:$icy and its fur coated in frost.
 D:北の荒れ地からやって来た、大きくて屈強な狼だ。その息は氷のようで、毛皮は
 D:冷気に覆われている。
 
@@ -4115,7 +4115,7 @@ W:14:1:0:60:0:0
 B:HIT:HURT:6d3
 B:HIT:HURT:6d3
 F:AQUATIC | WILD_ALL | RES_WATE
-D:$A race of fair yet belligerent sea elves.
+D:$A race of fair yet belligrent sea elves.
 D:洗練された、しかも好戦的な海のエルフの種族だ。
 
 #JZ#
@@ -4291,7 +4291,7 @@ B:BITE:HURT:1d2
 F:RAND_50 | CAN_FLY |
 F:WEIRD_MIND | MULTIPLY | 
 F:ANIMAL
-D:$It makes you itch just looking at it. 
+D:$It makes you itch just to look at it. 
 D:それを見るだけで体がむずがゆくなってくる。
 
 #J0#
@@ -4380,7 +4380,7 @@ F:MALE | WILD_ALL |
 F:FRIENDS | DROP_60 | 
 F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 F:EVIL | ORC | RES_DARK
-D:$He is a hideous deformed cross-breed of man and orc, combining man's 
+D:$He is a hideous deformed cross-breed with man and orc, combining man's 
 D:$strength and cunning with orcish evil.
 D:彼は人間とオークの混血でひどく醜い容貌をしている。人間の力強さとオークの邪悪
 D:なずる賢さを受け継いでいる。
@@ -4450,7 +4450,7 @@ S:SCARE | S_ANT | CAUSE_2 | SLOW
 D:$An unfortunate individual, who was killed by the incurable 
 D:$disease known as Nurgle's Rot, and was transformed into a 
 D:$rotting demon zombie. It has but one eye, and a single 
-D:$pale horn on its forehead.
+D:$pale horn in its forehead.
 D:<ナーグル>の腐れ病という名で知られる不治の病によって死んだ不運な人間で、
 D:腐乱した悪魔のゾンビになってしまっている。目は一つだけで、一本の
 D:青白い角が額に生えている。
@@ -4541,7 +4541,7 @@ B:BITE:POISON:1d3
 B:BITE:LOSE_STR:1d4
 F:UNDEAD | EVIL | IM_POIS | IM_COLD | WEIRD_MIND | NO_FEAR | CAN_FLY |
 F:RES_NETH | NO_CONF | NO_SLEEP | DROP_60 | BASH_DOOR | FRIENDS | COLD_BLOOD
-D:$A skull animated by necromantic spells.
+D:$A skullpack animated by necromantic spells.
 D:死霊術の呪文により動いている髑髏だ。
 
 #JZ#
@@ -5580,7 +5580,7 @@ F:ONLY_GOLD | DROP_60 | DROP_90 | IM_POIS | CAN_FLY |
 F:OPEN_DOOR | BASH_DOOR | MOVE_BODY | DRAGON |
 F:WILD_WOOD | WILD_MOUNTAIN | DROP_SKELETON | DROP_CORPSE |
 F:ANIMAL | EVIL | RIDING | EAT_POISONOUS
-D:$A fast-moving and deadly dragon-like animal. Beware its poisonous sting!
+D:$A fast-moving and deadly dragonian animal. Beware its poisonous sting!
 D:それは素早く動く危険なドラゴンのような生き物だ。
 D:その毒爪には気をつけろ!
 
@@ -5675,7 +5675,7 @@ B:BITE:HURT:1d10
 B:BITE:HURT:1d10
 F:BASH_DOOR | WILD_WOOD | WILD_GRASS |
 F:ANIMAL | DROP_SKELETON | DROP_CORPSE | EAT_SPEED
-D:$A fierce and dangerous cat, its huge tusks and sharp claws would pierc
+D:$A fierce and dangerous cat, its huge tusks and sharp claws would lacerat
 D:$even the strongest armour.
 D:獰猛で危険なネコであり、その巨大な牙と鋭い爪は最強の鎧でさえも切り
 D:裂いてしまう。
@@ -9193,8 +9193,9 @@ B:HIT:EXP_20:13d1
 F:FORCE_MAXHP | OPEN_DOOR | FRIENDS | DROP_60 | REGENERATE |
 F:ONLY_ITEM | NO_FEAR | NONLIVING |
 F:EVIL | IM_POIS | IM_COLD | IM_FIRE | RES_CHAO | DEMON
-D:$It is a slender, red-skinned demon twisted into a nightmarish shape.
-D:$ It is armed with a hellblade, which will suck the life from your body.
+D:$Slender, red-skinned demons twisting in nightmarish shapes. 
+D:$They are armed with hellblades, which will suck the life from 
+D:$your body.
 D:流血の神<コーン>の配下の下級悪魔。
 D:悪夢のような姿に捻じ曲がった、細身で赤い肌をした悪魔だ。
 D:ヘルブレードを装備していて、その刃はあなたの生命力を
@@ -9340,10 +9341,6 @@ B:EXPLODE:SHATTER:100d2
 F:FORCE_SLEEP | FORCE_MAXHP | UNIQUE | REFLECTING |
 F:EMPTY_MIND | COLD_BLOOD | BASH_DOOR | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS
 F:NO_FEAR | NO_CONF | NO_SLEEP | NONLIVING | RES_TELE
-D:$It is the left hand of Killer Queen, the visual manifestation of the life
-D:$ energy of Yoshikage Kira.  It will follow the heat of the adventurer's
-D:$ body forever.  "Sheer Heart Attack in Killer Queen will definitely kill
-D:$ the prey at which he's aimed ...."
 D:吉良吉影のスタンド『キラークイーン』の左手だ。冒険者の体温を頼りに
 D:どこまでも追いかける。「『キラークイーン』の『シアーハートアタック』
 D:は狙った獲物は絶対に仕留める……」
@@ -9577,7 +9574,7 @@ F:ANIMAL | RES_INER | NO_CONF | NO_SLEEP
 S:1_IN_5 | 
 S:BR_INER
 D:$Bizarrely, this hound seems to be hardly moving at all, yet it approaches 
-D:$you with deadly menace.  It makes you tired just looking at it.
+D:$you with deadly menace.  It makes you tired just to look at it.
 D:奇怪なことだが、この犬は全然動いていないように見えるにも関わらず、何故か
 D:恐ろしい勢いで近づいてくるのだ。それを見ているだけで疲労してくる。
 
@@ -9838,7 +9835,7 @@ S:1_IN_4|
 S:BO_FIRE
 V:150
 D:$Back from the grave, to wreak vengeance upon the living. A gaunt, tall, 
-D:$skeletal figure wearing ruined plate mail.
+D:$skeletal figure wearing ruined plate mail.
 D:生ける者たちへ復讐するために墓から甦った亡霊だ。
 D:気味の悪い、背の高い骸骨の姿で
 D:壊れたプレートメイルを身につけている。
@@ -13744,7 +13741,8 @@ F:BASH_DOOR | STUPID | DROP_CORPSE
 F:EVIL | IM_FIRE | FORCE_SLEEP | FORCE_MAXHP
 S:1_IN_5 |
 S:BO_PLAS | BA_FIRE
-D:$It is a belligerent minotaur with some magic powers and armed with a hammer.
+D:$It is a belligrent minotaur with some destructive magical arsenal, armed 
+D:$with a hammer.
 D:破壊的な魔法の火器を持ち、ハンマーを装備した好戦的なミノタウロスだ。
 
 #J0#
@@ -14323,7 +14321,7 @@ S:MIND_BLAST | BA_CHAO | SCARE | BRAIN_SMASH | DRAIN_MANA |
 S:S_HOUND | S_DEMON | S_DRAGON | TPORT | HASTE | CONF |
 S:TELE_AWAY | FORGET 
 D:$The most powerful of Tzeentch's servitors. This demon looks like 
-D:$a huge bird-like creature, with the head of a predatory bird and 
+D:$a huge bird-creature, with the head of a predatory bird and 
 D:$fantastically multi-coloured wings. 
 D:混沌の魔神<ティーンチ>の最も強力な手下だ。この悪魔は巨大な鳥のようで、
 D:頭部は肉食の猛禽類、羽根は幻想的な虹色に彩られている。
@@ -16165,7 +16163,7 @@ V:60
 D:$"He saw why the shadow on the frosted pane yesterday had been 
 D:$headless and he screamed... but before he could scream out his 
 D:$protest his breath was cut off, as the hands descended on his 
-D:$face and the wed red mouths opened in their palms."
+D:$face and the wed ret mouths opened in their palms."
 D:煉瓦の壁の向こう側にある広大な廃虚の地下に住む、邪悪な神。
 D:頭の無い太った人間のような姿をしている。
 D:両手に濡れた赤い口が付いており、全身が白熱して光り輝いている。
@@ -16348,7 +16346,7 @@ F:IM_POIS | IM_FIRE | FORCE_SLEEP | FORCE_MAXHP | NONLIVING
 S:1_IN_4 |
 S:ROCKET
 V:166
-D:$Reverberant metal steps announce the arrival of this huge creature, 
+D:$Reverbrant metal steps announce the arrival of this huge creature, 
 D:$half demon half machine. It has an unsurpassable firepower.
 D:響き渡る金属的な足音がこの巨大な、半悪魔半機械の怪物の
 D:到来を告げる。その火力には何者もかなわない。
@@ -18030,7 +18028,6 @@ F:RES_ALL | POWERFUL |
 F:NO_CONF | NO_SLEEP | NO_STUN | EMPTY_MIND | RES_TELE |
 S:1_IN_1 |
 S:BLINK | BO_MANA | BA_CHAO | BA_FIRE | TPORT  | PSY_SPEAR
-D:$Is a bit of magical slime wrapped in hard metal.
 D:硬い金属に包まれたスライムだ。
 
 N:872:『八岐大蛇』
@@ -18052,8 +18049,6 @@ S:1_IN_2 |
 S:BR_FIRE | BR_NEXU | BR_CHAO | BR_POIS | BR_DISE | BR_PLAS | BR_NUKE | BR_DARK
 A:128:1:25
 V:150
-D:$Is a legendary snake, with eight necks and eight tails, living in Izumo.
-D:$  If denied sacrificial victims, it causes floods and annihilates people.
 D:出雲の国に棲む伝説の蛇で、八つの首と八つの尾を持つ。
 D:いけにえを拒むと洪水を起こして人々を全滅させる。
 
@@ -18078,11 +18073,12 @@ S:1_IN_2 |
 S:ROCKET | HEAL | BLINK | INVULNER
 A:16:1:50
 V:900
-D:$His favorite food is grilled rice noodle. 
-D:$He is a lone wolf filled with the adventurous spirit. 
+D:$His favorite food is roasting rice noodle. 
+D:$He is the lone wolf filled with the adventurous spirit. 
 D:$His righteousness and courage are more than the average. 
 D:$He sometimes become emotional. 
-D:$He prefers a haphazard life to an intentional one and is a known misogynist.
+D:$He would like to choose a haphazard life rather than an intentional life. 
+D:$He is poor at treating women.
 D:好きな食べ物は焼きビーフン。抑えてはいるが、冒険心旺盛な
 D:一匹狼。正義感、勇気とも平均以上だがカッとしやすい所もある。
 D:計画的人生より行き当たりばったりの人生を選んでしまうタイプで、
@@ -18179,10 +18175,6 @@ F:NO_CONF | NO_SLEEP | RES_TIME | RES_TELE | REFLECTING |
 S:1_IN_4 | 
 S:SCARE | S_KIN | WORLD | TELE_TO
 A:146:1:20
-D:$Dio, who became an immortal vampire with the help of a stone mask,
-D:$ looks only at the adventurer.  Watch out for The World, Dio's stand
-D:$ or visual manifestation of his life energy:  "I don't know what his
-D:$ stand is, but it is certain that it can only be used at close range."
 D:石仮面の力で不死の吸血鬼となったディオは冒険者を餌としか見ていない。
 D:『ザ・ワールド』に気をつけろ!「奴のスタンドの正体は分からないが、
 D:至近距離でしか使えないことは確かだッ」
@@ -18198,8 +18190,6 @@ F:KILL_WALL | CAN_SWIM | DROP_CORPSE | MOVE_BODY |
 F:FORCE_MAXHP | ONLY_GOLD | DROP_2D2 | DROP_3D2 |
 S:1_IN_3
 S:SPECIAL
-D:$A mass of worms, mad with rage, rushes towards you strewing miasma in
-D:$ its wake.
 D:怒りに狂った王蟲の群は瘴気をまき散らしながら突進してくる。
 
 N:880:時を統べる者『リチャード・ウォン』
@@ -18221,9 +18211,6 @@ S:TPORT | SCARE | S_KIN | BLINK | HEAL |
 S:TELE_TO | CONF | BO_MANA | BRAIN_SMASH |
 S:BA_WATE | TELE_AWAY |
 S:DISPEL | WORLD | PSY_SPEAR
-D:$He has psychic powers that allow him to freely manipulate time and space.
-D:$  He keeps calm and is always smiling, but beneath that mask is a
-D:$ cold-blooded soul.
 D:時間と空間を自在に操る超能力者。
 D:冷静沈着で、常に余裕の笑みを浮かべている。
 D:だが、その仮面の下には冷血な魂が宿り、自分自身の欲望の為なら手段を選ばない。
@@ -18246,9 +18233,6 @@ F:NO_SLEEP | RES_TELE | RES_NETH | RES_TIME | POWERFUL | CAN_FLY |
 S:1_IN_3 | 
 S:TPORT | BLIND | HOLD | BLINK | HEAL | HASTE |
 S:TELE_TO | CONF | BO_MANA | BRAIN_SMASH | PSY_SPEAR
-D:$Seeing the look in your eyes, he asks, "Do you know me?"  You're very
-D:$ tempted to answer, "Of course!  You're Superman Locke!  Immortal,
-D:$ the strongest ESPer ever!"
 D:「そうだ!超人ロック!」「僕を知っているのか?」
 D:「もちろん!不老不死にして、史上最強のエスパー!」
 D:(聖悠紀、超人ロック「赤いサーペント」)
@@ -18273,8 +18257,6 @@ S:TPORT | BLIND | BLINK | HEAL | HASTE |
 S:CONF | BO_MANA | BRAIN_SMASH | PSY_SPEAR |
 S:BA_NETH | BA_DARK | BA_CHAO |
 S:S_MONSTERS | S_DEMON | S_KIN
-D:$She tried to destroy Earth solely because she wanted to fight Locke, the
-D:$ Superman, as a superhuman.
 D:彼女はただ超人として超人との戦いを望むが故に、皇帝に扮し地球を
 D:滅ぼそうとした。「とにかくある朝起きてみるとディナールは皇帝
 D:レイザークの神聖なる領地となっていたのだ」
@@ -18302,8 +18284,6 @@ S:1_IN_3 |
 S:S_MONSTERS | BR_CHAO | BA_CHAO | ROCKET | S_CYBER | S_KIN |
 S:BR_NETH | BR_MANA | S_HI_UNDEAD | S_HI_DRAGON | S_UNIQUE |
 S:BR_NUKE | BR_DISI | HAND_DOOM | DISPEL
-D:$Has returned from the bottom of Hell to take revenge on those who
-D:$ destroyed it.
 D:自分を滅ぼした者に復讐するため、地獄の底から復活した!
 
 N:884:有毒ガス
@@ -18449,8 +18429,8 @@ F:SMART | OPEN_DOOR | BASH_DOOR | HAS_LITE_2 |
 F:IM_ACID | IM_COLD | IM_ELEC | IM_POIS | NO_CONF | NO_SLEEP |
 S:1_IN_2 | 
 S:CAUSE_3 | BO_WATE | BO_MANA
-D:$This body of a once-mighty warrior was so dominated by Sauron's power that
-D:$  he became little more than a mindless undead of evil.
+D:$This body of once-mighty warrior was so dominated by Sauron's power that he 
+D:$became little more than a mindless undead of evil.
 D:かつて屈強さを誇ったこの戦士の肉体はサウロンの力に完全に支配され、
 D:今ではほとんど意思を持たない邪悪なアンデッドに成り下がってしまった。
 
@@ -18500,7 +18480,7 @@ F:EVIL | TROLL | IM_POIS | NO_CONF | NO_SLEEP | NO_FEAR | REGENERATE
 S:1_IN_8 |
 S:BLINK
 D:$This troll is a king, which means it's still stupid, but has even more power.
-D:$It never comes alone and can call out to other trolls.
+D:$It never comes alone, and can call out to other trolls.
 D:このトロルはトロルの中の王だ。彼は依然としてトロルであり、頭は良くないが、
 D:その力はさらに強力だ。彼は一人でいる事はなく常に手下を連れている。
 
@@ -18943,8 +18923,6 @@ S:1_IN_3 |
 S:BLIND | CONF | SCARE | 
 S:BA_DARK | BO_NETH | BR_NETH | BR_DARK | BR_NUKE | BR_POIS | HAND_DOOM |
 S:S_DEMON | S_KIN | DISPEL
-D:$Said to be the commander of a hellish army, this terrifying demon can cause
-D:$ ruin merely by saying his own name.
 D:その名を口にするだけで破滅をもたらすほどの恐るべきデーモンであり、
 D:地獄の軍勢の指揮官であると言われている。
 
@@ -18962,8 +18940,6 @@ F:RES_CHAO | RES_DISE | RES_WALL | RES_INER | RES_TIME | RES_GRAV | RES_TELE |
 F:NO_FEAR | NO_STUN | NO_CONF | NO_SLEEP | CAN_FLY |
 S:1_IN_3 |
 S:HOLD | BLIND | CONF | SCARE | SLOW
-D:$This is Bull Gates's most devastating weapon, propagating fear and ruin
-D:$ throughout the world.
 D:ブル・ゲイツの究極兵器であり、全世界に破滅をもたらす恐怖の存在だ。
 
 N:922:ピカチャウ
@@ -18978,7 +18954,6 @@ F:DROP_CORPSE | ONLY_GOLD | DROP_1D2 | IM_ELEC | ANIMAL | AURA_ELEC |
 F:SELF_LITE_1 |
 S:1_IN_5 | 
 S:BR_ELEC | BO_ELEC
-D:$It's shockingly pretty, for a rat.
 D:かわいらしい外見をしているが、油断すると思わぬ衝撃を受けるだろう。
 
 N:923:雪女
@@ -18992,13 +18967,6 @@ B:TOUCH:COLD:3d5
 F:FEMALE | IM_COLD | DROP_1D2 | NONLIVING | AURA_COLD |
 S:1_IN_5
 S:BR_COLD | BO_COLD | BA_COLD
-D:$This female figure stirs the memory of a tale of two woodcutters sheltering
-D:$ from a winter storm in a small hut:  "He was awakened by a showering of
-D:$ snow in his face.  The door of the hut had been forced open; and, by the
-D:$ snow-light he saw a woman in the room, - a woman all in white.  She was
-D:$ bending above Mosaku, and blowing her breath upon him; - and her breath
-D:$ was like a bright white smoke." (from Lafcadio Hearn's "Yuki-onna" in his
-D:$ collection of stories, "Kwaidan:  Stories and Studies of Strange Things")
 D:顔に雪がさかんに降りかかるので、巳之吉は目をさました。
 D:小屋の戸はむりにこじ開けられて、小屋の中に一人の女―すっかり白い装いをした
 D:女がいるのが、雪明かりで見えた。女は茂作のうえに身をかがめて、
@@ -19025,8 +18993,6 @@ W:18:3:0:50:0:0
 B:HIT:HURT:2d7
 B:HIT:HURT:2d7
 F:DROP_60 | ANIMAL | DROP_SKELETON | DROP_CORPSE | FRIENDS | ONLY_GOLD
-D:$It is one of the wise monkeys of the Nikko Tosho-gu shrine and very likely
-D:$ has friends nearby.
 D:常に集団で現れる。つまり、日光猿の軍団なわけで……
 
 N:926:ツチノコ
@@ -19039,8 +19005,6 @@ B:CLAW:HURT:2d5
 B:BITE:HURT:3d4
 B:CRUSH:SUPERHURT:5d8
 F:ANIMAL | DROP_SKELETON | DROP_CORPSE
-D:$It is snake-like but much wider in the middle than the ends.  You've heard
-D:$ rumors of someone paying 1,000,000 gold for one captured alive.
 D:それを捕えた者には $1,000,000 の賞金が出るといわれている。
 
 # Description in English by Nick Keulmann
@@ -19253,9 +19217,6 @@ F:OPEN_DOOR | RES_NETH | RES_PLAS |
 F:EVIL | IM_FIRE | NO_CONF | NO_SLEEP
 S:1_IN_3 |
 S:S_DEMON | BA_CHAO | BO_PLAS | BR_FIRE | BR_PLAS
-D:$This horrible creature has four legs, nine arms, and bluish skin.  It wears
-D:$ a high golden crown with horns on either side.  Large fangs protude from
-D:$ its mouth.  According to legend, it guards an artifact that Ishtar wants.
 D:脚が4本。腕は9本。
 D:両脇から角が出ている丈高めの黄金の冠をかぶる。体色は青。牙を持つ。
 D:女神イシターを封印したと伝えられる。
@@ -19276,8 +19237,6 @@ F:DROP_2D2 | DROP_1D2 | DROP_GOOD | ONLY_ITEM | CAN_SWIM |
 F:GOOD | IM_COLD | IM_POIS | IM_ACID | IM_ELEC | IM_FIRE | REGENERATE |
 S:1_IN_3 |
 S:CAUSE_4 | TELE_TO
-D:$He is the rightful master of the martial art, Hokuto Shinken.  At a time
-D:$ when power seems to be everything, he lives in love and fights for love.
 D:一子相伝とされる北斗神拳の伝承者だ。力が全てを支配すると思われた
 D:時代にあって愛に生き、愛のために戦っている。
 
@@ -19339,8 +19298,8 @@ S:1_IN_3 |
 S:BLIND | HOLD | SCARE | CAUSE_3 | CAUSE_4 | MIND_BLAST | 
 S:BO_COLD | BA_COLD | BA_NETH | 
 S:S_UNDEAD | S_HI_UNDEAD
-D:$Is a Ringwraith powerful in fell sorcery.  He suffers eternally yearning
-D:$ for his lost soul.
+D:$A Ringwraith powerful in fell sorcery, he yearns for the life he has lost 
+D:$for a life of everlasting torment.
 D:堕落した魔法使いである強力な指輪の幽鬼だ。彼は魂を失って永劫の苦しみの中に
 D:いるため、新たな魂を心から渇望している。
 
@@ -19552,7 +19511,6 @@ F:ONLY_GOLD | DROP_90 |
 F:EMPTY_MIND | BASH_DOOR | REFLECTING |
 F:IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | IM_ACID |
 F:NO_CONF | NO_SLEEP | NO_FEAR | NONLIVING
-D:$It walks on four legs and has a shiny shell like that of a beetle.
 D:このモンスターに対してはあまりの魔法の無力さに呆然とするであろう。
 D:噂では中にクリボーが入っているとか……
 
@@ -19566,7 +19524,6 @@ F:FORCE_SLEEP |
 F:FRIENDS |
 F:OPEN_DOOR | BASH_DOOR |
 F:ANIMAL | NO_CONF | NO_SLEEP
-D:$This dog is about to explode.
 D:今にも爆発しそうな犬だ。
 
 N:953:折れたデスソード
@@ -19581,7 +19538,6 @@ B:HIT:POISON:1d1
 F:NONLIVING | NO_FEAR |
 F:STUPID | COLD_BLOOD | NO_CONF | NO_SLEEP |
 F:EVIL | IM_COLD | IM_FIRE | IM_ELEC | IM_POIS
-D:$This broken sword moves about, searching for prey.
 D:獲物の血を求めて動き回る折れた剣だ。
 
 N:954:オークの弩弓隊
@@ -19616,6 +19572,7 @@ F:ANIMAL | DROP_SKELETON | DROP_CORPSE | RIDING
 D:$This pitiful horse has not been well fed, it walks unsteadily.
 D:満足に飼葉も与えられていないがりがりでふらふらの哀れな馬だ。
 
+# Description in English by Nick Keulmann
 N:956:馬
 E:Horse
 G:q:o
@@ -19625,8 +19582,8 @@ B:BITE:HURT:1d8
 B:KICK:HURT:2d4
 F:WILD_WASTE | BASH_DOOR |
 F:ANIMAL | DROP_SKELETON | DROP_CORPSE | RIDING
-D:$This four-legged beast is capable of running quickly.  Others like it
-D:$ have been used by humans as vehicles since ancient times.
+D:$As for the horse with the animal of four feet which can run fast, 
+D:$it was utilized for a long time as the vehicle of the human.
 D:馬は速く駆けることのできる四本足の獣で、
 D:古くから人間の乗り物として利用されてきた。
 
@@ -19730,10 +19687,6 @@ F:REGENERATE | EAT_GIVE_STR | EAT_GIVE_CON | EAT_LOSE_INT | EAT_LOSE_CHR |
 S:1_IN_6 |
 S:BR_SHAR | TELE_TO
 V:150
-D:$This muscle-bound man with a horned helmet has won the Great Galaxy
-D:$ Bodybuiling championship ten times in a row.  He is eager to prevent
-D:$ anyone from challenging his title.  He's also know for his signature
-D:$ move, the Bo Emperor Building Cutter.
 D:銀河ボディビルコンテスト十連続グランドチャンピオン。
 D:必殺技はボ帝ビルカッター。
 
@@ -19762,9 +19715,6 @@ F:NO_CONF | NO_SLEEP | NO_FEAR
 S:1_IN_5 | 
 S:BLIND | CONF | SCARE | CAUSE_2 | BA_POIS |
 S:S_MONSTER
-D:$This strange creature, transformed into an image of a strange creature
-D:$ that is transformed into an abandoned box, waits for a stupid adventurer
-D:$ to get close to its poisonous claws.
 D:放置された箱に化けている奇妙な生物の像に化けている奇妙な生物で、
 D:愚かな冒険者がその毒のある爪の射程に入るのを待ち構えている。
 
@@ -19783,7 +19733,6 @@ F:OPEN_DOOR | GOOD | CAN_SWIM | CAN_FLY |
 F:NO_CONF | NO_SLEEP | FRIENDLY | TAKE_ITEM |
 S:1_IN_4 |
 S:BA_FIRE | HASTE | HOLD | CONF | BLIND
-D:$Absolutely not a Mario analog!
 D:断じてマリオの類似品ではない!(本人主張)
 
 N:967:ガキ大将『ジャイアン』
@@ -19802,7 +19751,6 @@ F:OPEN_DOOR | BASH_DOOR | TAKE_ITEM | MOVE_BODY | RES_SOUN
 S:1_IN_5 |
 S:BR_SOUN |
 V:150
-D:$What's yours is mine, and what's mine is mine.
 D:お前のものは俺のもの。俺のものは俺のもの。
 
 N:968:氷竜『ブラムド』
@@ -19863,7 +19811,7 @@ F:NO_FEAR | NO_STUN | RIDING | SELF_DARK_2 |
 S:1_IN_3 | 
 S:BRAIN_SMASH | BR_DARK | BR_NETH | BA_NETH
 D:$One of the ancient dragons of Lodoss, it causes destruction with 
-D:$a dark and nether breath.
+D:$an dark and nether breath.
 D:ロードスの古代竜の一匹で、暗黒と地獄のブレスで破壊を引き起こす。
 
 N:971:金鱗の竜王『マイセン』
@@ -19904,7 +19852,7 @@ F:NO_FEAR | NO_STUN | RIDING |
 S:1_IN_3 | 
 S:BRAIN_SMASH | BR_FIRE | BA_FIRE
 D:$One of the ancient dragons of Lodoss, it causes destruction 
-D:$with its breath of fire.
+D:$with it's breath of fire.
 D:ロードスの古代竜の一匹で、その火炎のブレスで全てを焼き尽くす。
 
 N:973:暗黒の島マーモの皇帝『ベルド』
@@ -20041,8 +19989,6 @@ F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | DROP_GOOD | DROP_CORPSE |
 F:OPEN_DOOR | BASH_DOOR | CAN_SWIM | AURA_ELEC |
 F:EVIL | GIANT | IM_POIS | IM_FIRE | IM_ELEC
 A:194:1:33
-D:$Living on Mt. Oe, in the province of Tanba, this large ogre seized young
-D:$ women and treasure from nearby Kyoto.
 D:丹波の国の大江山をねぐらとし、京の都を襲っては財宝と娘を
 D:奪う凶悪な鬼どもの首領だ。
 
@@ -20089,7 +20035,6 @@ F:COLD_BLOOD | OPEN_DOOR | CAN_FLY |
 F:EVIL | UNDEAD | IM_COLD | IM_POIS | RES_NETH | NO_CONF | NO_SLEEP |
 S:1_IN_5
 S:BLIND | HOLD | SCARE | CAUSE_4 | BO_NETH | S_UNDEAD
-D:$Carrying its head in its hand, this ominous monster comes to announce death.
 D:この不吉なモンスターは自分の首を脇に抱え、死を告げにやってくる。
 
 N:983:ヒバゴン
@@ -20102,9 +20047,6 @@ B:CLAW:HURT:1d7
 B:BITE:HURT:2d7
 F:OPEN_DOOR | BASH_DOOR | WILD_MOUNTAIN | DROP_CORPSE |
 F:ANIMAL
-D:$Resembling a monkey but, at five feet tall, much larger than monkey, this
-D:$ animal must be one of the mysterious beasts that live around Mt. Hiba in
-D:$ Hiroshima Prefecture.
 D:広島県の比婆山一帯に現れる「サルに似ているが、サルよりも大きな」謎の動物。
 
 N:984:鵺
@@ -20117,10 +20059,6 @@ B:CLAW:HURT:1d10
 B:BITE:POISON:1d10
 F:FORCE_SLEEP | DROP_CORPSE | ANIMAL |
 F:BASH_DOOR | WILD_MOUNTAIN |
-D:$This strange hybrid has the head of a monkey, the body of a racoon dog,
-D:$ the legs of a tiger and a tail that is the front half of a snake.  It
-D:$ makes an eerie, sorrowful cry, like that of a scaly thrush, and is
-D:$ wreathed with clouds of black smoke.
 D:頭がサル、胴はタヌキ、尾はヘビ、手足はトラで、鳴き声はトラツグミに
 D:似ていたという奇妙な生物だ。非常に変わった
 D:外見をしていて、近寄りがたい雰囲気がある。
@@ -20137,7 +20075,6 @@ B:BITE:LOSE_ALL:3d8
 F:REFLECTING | DROP_1D2 | DROP_2D2 | RES_DISE | ANIMAL |
 F:REGENERATE | IM_ACID | IM_FIRE | IM_COLD | IM_ELEC | IM_POIS | 
 F:NO_CONF | NO_SLEEP | RES_TELE | CAN_SWIM | RIDING
-D:It is a white horse with a horn on its forehead.
 D:額に一本の角を持った白馬で、乙女にのみ心を許すと言われる。
 
 N:986:猫又
@@ -20151,8 +20088,6 @@ F:MALE | EVIL | FORCE_SLEEP | DROP_1D2 | ANIMAL |
 F:SMART | OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 S:1_IN_3 |
 S:SCARE | CAUSE_2 | S_MONSTER
-D:$This cat has a second tail.  There are fables about old cats becoming
-D:$ such creatures and bedeviling people.
 D:猫が年老いると次第に高い知能と分かれた尻尾を持ち、猫又になるという。
 
 N:987:九尾の狐
@@ -20170,7 +20105,6 @@ F:NO_CONF | NO_SLEEP | RES_TELE | RIDING |
 S:1_IN_2
 S:S_MONSTERS | CAUSE_3 | CAUSE_4 | CONF | BRAIN_SMASH | DRAIN_MANA | SCARE |
 S:HASTE | HOLD |
-D:It is a fox with nine tails, and you can sense its strong magical power.
 D:尾が九つに分かれた狐で、強い妖力を秘めている。
 
 N:988:鳳凰
@@ -20192,10 +20126,6 @@ S:1_IN_3 |
 S:SCARE | BRAIN_SMASH | DRAIN_MANA |
 S:BR_FIRE | BR_LITE | BR_SOUN | HEAL | S_ANGEL
 V:133
-D:$It is a ruler among the birds and a symbol of virtue and grace.  It has
-D:$ the beak of a rooster, the face of a swallow, the forehead of a fowl,
-D:$ the neck of a snake, the back of a tortoise, the hindquarters of a stag,
-D:$ and tail of a fish.
 D:伝説の聖なる鳥だ。前は鴻、後は麟、顎は燕、嘴は鶏、頸は蛇、尾は魚、額は鸛、
 D:顋は鴛、背は亀甲、羽は五采を備え、龍の紋様を持つと言う。
 
@@ -20217,8 +20147,6 @@ F:NO_STUN | NO_CONF | NO_SLEEP | RIDING
 S:1_IN_6 |
 S:BLIND | SHRIEK | DISPEL | INVULNER | S_ANGEL
 V:133
-D:$It is deer-like but with the scales of a dragon and the tail of an ox.  All
-D:$ accounts attest to its holiness and power.
 D:龍の鱗に牛の尾、馬の蹄を持ち、角の生えた四本足の聖なる獣で、
 D:王者が仁のある政治を行った時に姿を現わすと言われている。
 
@@ -20232,11 +20160,10 @@ B:BITE:HURT:3d8
 B:KICK:HURT:4d10
 B:KICK:HURT:4d10
 F:DROP_2D2 | ANIMAL | NO_SLEEP | CAN_FLY | RIDING
-D:$It is a large white horse with wings.
 D:翼の生えた天駆ける白馬だ。
 
 N:991:オーディンの乗馬『スレイプニル』
-E:Sleipnir, Odin's Steed
+E:Sleipnir, the Odin's Steed
 G:q:o
 I:130:40d100:20:140:50
 W:51:3:0:17000:0:0
@@ -20247,8 +20174,6 @@ B:BITE:HURT:10d10
 F:FORCE_MAXHP | UNIQUE | ANIMAL | CAN_FLY |
 F:REGENERATE | BASH_DOOR | IM_FIRE | IM_COLD | IM_ELEC |
 F:IM_POIS | NO_CONF | NO_SLEEP | NO_FEAR | DROP_CORPSE | RIDING
-D:$This great eight-legged horse is Odin's mount.  It is said to be the child
-D:$ of Loki, the giant.
 D:オーディンの乗馬たるスレイプニルは、8本の足を持つ名馬である。
 D:巨人ロキの子供であると言われている。
 
@@ -20265,10 +20190,6 @@ F:UNIQUE | MALE | CAN_SPEAK | DROP_CORPSE | WILD_WOOD |
 F:FORCE_SLEEP | FORCE_MAXHP | RAND_25 | GOOD | FRIENDLY | 
 F:SMART | OPEN_DOOR | BASH_DOOR | MOVE_BODY | RIDING |
 F:ANIMAL | IM_FIRE | IM_POIS | NO_CONF | NO_SLEEP
-D:$As large as a small horse, Huan, the hound of Valinor, has the ability to
-D:$ understand and speak the languages of elves and men.  However, he never
-D:$ speaks in front of Feanor's sons as he's only allowed to speak three times
-D:$ before he dies.
 D:ヴァリノールの猟犬たるフアンは特別な力を持ち、人語を理解し、そして
 D:話すことができる。しかし、フェアノールの子息達の前で話すことは無い。
 D:なぜならば彼は死ぬまでに3度しか話をすることを許されておらず、
@@ -20418,8 +20339,8 @@ B:HIT:SUPERHURT:4d8
 B:HIT:SUPERHURT:4d8
 F:MALE | DROP_CORPSE | DROP_SKELETON | FORCE_MAXHP | HAS_LITE_2 | HUMAN |
 F:OPEN_DOOR | BASH_DOOR | NO_FEAR | UNIQUE2
-D:$He is always traveling together with
-D:$ Mitsukuni of the Yellow Gate, Grand Duke of Mito.
+D:$He is always traveling togather with 
+D:$Mitsukuni of the Yellow Gate, Grand Duke of Mito
 D:ご老公を助けて旅から旅へ。とんだ爺に仕えたもんだ。
 
 N:1002:『格さん』
@@ -20431,8 +20352,8 @@ B:HIT:SUPERHURT:4d8
 B:HIT:SUPERHURT:4d8
 F:MALE | DROP_CORPSE | DROP_SKELETON | FORCE_MAXHP | HAS_LITE_2 | HUMAN |
 F:OPEN_DOOR | BASH_DOOR | NO_FEAR | UNIQUE2
-D:$He is always traveling together with
-D:$ Mitsukuni of the Yellow Gate, Grand Duke of Mito.
+D:$He is always traveling togather with 
+D:$Mitsukuni of the Yellow Gate, Grand Duke of Mito
 D:ご老公を助けて旅から旅へ。とんだ爺に仕えたもんだ。
 
 N:1003:ゴースト『Q』
@@ -20451,12 +20372,12 @@ F:ONLY_ITEM | DROP_90 | DROP_GOOD |
 F:INVISIBLE | COLD_BLOOD | PASS_WALL | RES_NETH
 F:UNDEAD | NO_SLEEP
 V:25
-D:$He has only three hairs. He is careless, but kind, and always a bit hungry.
+D:$He has only three hair. He is careless, but kind, and always a bit hungry.
 D:毛が三本しかないんだよ。ずっこけなんだ優しい奴さ。
 D:いつもおなかを空かせているんだよ。
 
 N:1004:異世界からの勇者『ピップ』
-E:Pip, the Adventurer from Another World
+E:Pip, the Braver from Another World
 G:p:u
 I:110:20d48:20:80:15
 W:35:3:0:1800:0:0
@@ -20471,9 +20392,6 @@ F:NO_CONF | NO_SLEEP | FRIENDLY | TAKE_ITEM |
 S:1_IN_5 |
 S:BA_FIRE | HOLD | BO_FIRE | HEAL
 A:179:1:50
-D:$Merlin the magician summoned this young warrior to complete a variety of
-D:$ tasks.  Pip carries a dubious sword, created by Merlin and modeled on King
-D:$ Arthur's Excalibur.
 D:かの大魔術師マーリンが異世界から召喚した(と言い張っている)戦士だ。
 D:「若者はエクスカリバーを短くしたような怪しげな剣を持ち、
 D:稲妻だとか火の玉だとか、わけのわからぬことを呟いている。」
@@ -20496,8 +20414,6 @@ F:IM_ACID | IM_ELEC | IM_POIS | NO_CONF | NO_SLEEP | EVIL
 S:1_IN_2 | CAUSE_3 | BA_FIRE | HOLD | BLIND | CONF | SCARE
 S:TRAPS | BO_PLAS | BO_NETH
 S:BA_DARK | S_HOUND
-D:$This black-haired sorceror does all he can to wither crops, steal pigs,
-D:$ dry up waterways, and kidnap a queen.
 D:「そこには、魔法の杖を持った黒髪、黒髭、黒い目をして、
 D:黒いローブをまとったいかにも極悪非道といった感じの男が描かれた絵が、
 D:無造作に貼り付けてある」
@@ -20692,7 +20608,8 @@ B:EXPLODE:HURT:30d2
 F:EMPTY_MIND | COLD_BLOOD |
 F:IM_FIRE | IM_COLD | IM_ELEC | IM_POIS |
 F:NO_FEAR | NO_CONF | NO_SLEEP | NONLIVING | RES_TELE
-D:$It is a small bomb in a spider-like package.  It walks toward you!
+D:$It is a small bomb of a form like a spider. 
+D:$It walks toward you!
 D:蜘蛛のような形の小さな爆弾で、あなたに向って歩き、爆発する。
 
 #
@@ -20726,10 +20643,6 @@ F:DROP_2D2 | DROP_1D2 | DROP_GOOD | ONLY_ITEM | CAN_SWIM |
 F:GOOD | IM_COLD | IM_POIS | IM_ACID | IM_ELEC | IM_FIRE | REGENERATE |
 S:1_IN_3 |
 S:CAUSE_3 | TELE_TO
-D:$Raou is the eldest of four honorary brothers, another being Kenshirou,
-D:$ who were trained by the master of Hokuto Shinken, a martial art.
-D:$ Headstrong, Raou tries to forge a new order through conquest in a
-D:$ turbulent dark era.
 D:ラオウは北斗神拳伝承者ケンシロウの義兄であり北斗神拳の使い手である。
 D:激動の闇の時代に、己の信念で新たな時代を築こうとした。
 
@@ -20747,7 +20660,6 @@ B:BITE:HURT:6d6
 F:FORCE_MAXHP | UNIQUE | ANIMAL |
 F:REGENERATE | BASH_DOOR | IM_FIRE | IM_COLD | IM_ELEC |
 F:IM_POIS | NO_CONF | NO_SLEEP | NO_FEAR | DROP_CORPSE | RIDING
-D:$This rough horse, with its large black body, is just right for Raou.
 D:黒く大きな体をしたこの荒ぶる馬は、まさにラオウの乗馬にふさわしい。
 
 #
@@ -20802,9 +20714,10 @@ F:EVIL | REGENERATE |
 F:OPEN_DOOR | BASH_DOOR | RES_WALL
 S:1_IN_8 |
 S:TELE_TO | BO_MANA
-D:$He looks like a brawny human.  However, unlike a man, he has the tail of a
-D:$ monkey.  This tail proves he is a Saiyan.  A Saiyan's fighting power is
-D:$ far superior to a human's and will cause much destruction.
+D:$He looks like brawny human being apparently. 
+D:$However, unlike man, it has the tail of a monkey. 
+D:$This tail proves he is a Saiyan. 
+D:$A Saiyan's fighting power is far superior to human's and will bring many destruction.
 D:逞しい人間のようだが、猿の尻尾が付いている。これこそがサイヤ人の証だ。
 D:その戦闘力は人間を凌駕し、多くの破壊を呼び起こすだろう。
 
@@ -20834,9 +20747,8 @@ F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR |
 F:EVIL |
 S:1_IN_2 |
 S:BLINK | TPORT | TELE_TO | CONF | TRAPS
-D:$He is a thief almost without equal; you are already too late to protect
-D:$ your possessions.  He seems to have studied magic too and is a master
-D:$ of setting traps.
+D:$A class of its own: you are already too late to protect your possessions 
+D:$and he seems to have studied magic too, and is a master of setting traps.
 D:その技、だれにも真似はできない。今さら財産を守っても手遅れだ。
 D:彼は魔法を学び、罠を仕掛けることを覚えているのだ。
 
@@ -20859,8 +20771,8 @@ S:1_IN_3 |
 S:BLIND | HOLD | SCARE | CAUSE_3 | DARKNESS |
 S:BO_ICEE | BO_NETH | BA_COLD | BA_NETH | BA_WATE |
 S:S_UNDEAD
-D:$He is the ferryman for the boat to cross the river Styx to the land of
-D:$ the dead.  He wishes to receive payment for your entry.
+D:$The ferryman across the river Styx to the land of the dead. 
+D:$He wishes to receive payment for your entry.
 D:三途の川の死者の国への渡し守だ。
 D:あなたを乗せて渡し賃をもらおうと考えている。
 
@@ -20901,8 +20813,8 @@ B:BITE:HURT:3d10
 F:MALE | ESCORT
 F:BASH_DOOR | FORCE_MAXHP | UNIQUE | DROP_CORPSE
 F:ANIMAL | EVIL | WILD_WOOD | WILD_MOUNTAIN | NO_SLEEP | NO_FEAR
-D:$He is king of the mad bears.  He has built his stronghold at Hutago
-D:$ mountain and reigns from there.
+D:$A king of mad bear. He had built his stronghold at Hutago mountain, 
+D:$and is reigning over there.
 D:二子峠に己の牙城を築き上げ君臨する凶熊どもの王だ。
 
 N:1028:凶熊
@@ -20915,7 +20827,7 @@ B:CLAW:HURT:2d5
 B:BITE:HURT:3d6
 F:WEIRD_MIND | BASH_DOOR | FRIENDS | DROP_SKELETON | DROP_CORPSE
 F:ANIMAL | EVIL | WILD_WOOD | WILD_MOUNTAIN
-D:$This bear is a follower of Red Helm.
+D:$These bears are followers of Red Helm.
 D:『赤カブト』の配下の熊だ。
 
 N:1029:ベビーサタン
@@ -20933,7 +20845,7 @@ D:$A demon small in stature whose face you can't help but love.
 D:憎めない顔をした小柄な悪魔だ。
 
 N:1030:南蛮王『孟獲』
-E:Meng Huo, the King of the Southerners
+E:Meng Huo, the King of Southerings
 G:p:o
 I:110:38d10:20:50:20
 W:18:2:0:250:0:0
@@ -20967,9 +20879,8 @@ F:NO_CONF | NO_SLEEP | CAN_FLY |
 F:COLD_BLOOD | BASH_DOOR | POWERFUL | RAND_25 |
 F:GOOD | DROP_CORPSE | SELF_LITE_2
 V:150
-D:$He is a robotic soldier from the lost city of Atlantis.  Rediscovered in
-D:$ Tokyo, a Shinto priest converted his body into orihalcon to fight against
-D:$ "Papa".
+D:$He was the braver of Atlantis. His body was converted by a Shinto priest, 
+D:$in order to fight against "Papa". His body is now made by Orihalcon.
 D:もとはアトランティスの勇者。
 D:『パパ』に立ち向かうために神官の手によってオリハルコンの体に改造された。
 
@@ -21043,7 +20954,7 @@ B:CRUSH:HURT:4d8
 F:NEVER_MOVE | NONLIVING | NO_FEAR |
 F:STUPID | COLD_BLOOD | CHAR_MULTI | NO_CONF | NO_SLEEP |
 F:EVIL | IM_COLD | IM_FIRE | FORCE_MAXHP | IM_ELEC | IM_POIS
-D:$It resembles normal armor until some poor fool ventures too close! 
+D:$It resembles normal armor until some poor fool ventures too close! 
 D:哀れで愚かな冒険者が近づいて来るまでは普通の鎧に似ている。
 
 N:1036:トラップマスター
@@ -21056,7 +20967,6 @@ F:MALE | HUMAN | DROP_SKELETON | DROP_CORPSE |
 F:DROP_1D2 | EAT_GIVE_DEX | EAT_LOSE_WIS | OPEN_DOOR | BASH_DOOR | EVIL |
 S:1_IN_2 |
 S:TRAPS | BLINK
-D:$Be careful!  When you see him, you're likely already surrounded with traps.
 D:気をつけろ!姿を見たときはすでに罠に囲まれているぞ。
 
 N:1037:聖堂騎士
@@ -21115,7 +21025,7 @@ F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR
 S:1_IN_4 | 
 S:SHOOT | MISSILE | S_MONSTER | BO_ELEC | BLINK
 D:$A warrior who is at one with nature. A master of both bow and sword, with 
-D:$minor spellcasting skills and animals that come to do his bidding.
+D:$minor spellcasting skills, and animals come to do his bidding.
 D:自然と共に戦う戦士だ。弓にも剣にも達者で、多少の魔法も使うことができ、
 D:動物達を飼い、従えている。
 
@@ -21128,7 +21038,6 @@ F:CHAMELEON | WILD_WOOD | DROP_1D2 | DROP_CORPSE | DROP_SKELETON | ANIMAL |
 F:CAN_FLY | IM_FIRE | IM_COLD | IM_ELEC | IM_ACID | IM_POIS |
 S:1_IN_1
 S:SPECIAL
-D:$This lizard can change its appearance to blend in with its surroundings.
 D:周囲の環境に合わせてその姿を変えると言われる生物だ。
 
 N:1041:カメレオンの王
@@ -21141,8 +21050,8 @@ F:CHAMELEON | DROP_3D2 | DROP_CORPSE | DROP_SKELETON | ANIMAL |
 F:CAN_FLY | IM_FIRE | IM_COLD | IM_ELEC | IM_ACID | IM_POIS
 S:1_IN_1
 S:SPECIAL
-D:$This king of the chameleons, like its lesser kin, can change its appearance
-D:$ to blend in with its surroundings.
+D:カメレオンは周囲の環境に合わせてその姿を変えると言われるが、
+D:それは王とて例外ではない。
 
 N:1042:幻の鯨『イッカク』
 E:Narwhal
@@ -21158,8 +21067,9 @@ F:ONLY_ITEM | DROP_2D2 | DROP_GOOD |
 F:IM_COLD | RES_WATE |
 F:IM_POIS | NO_CONF | NO_SLEEP | NO_STUN |
 F:RIDING
-D:$This is the legendary whale of the Inuit living in the winter world.  It
-D:$ is said that the horn of this whale can cure any disease.
+D:$This is the whale of the tradition which gets across to the Inuit 
+D:$who lives in the world of winter. It is said that the mystical horn 
+D:$of this whale cures all illnesses.
 D:冬の世界に住むイヌイット族に伝わる伝説の鯨で,
 D:その神秘の角はあらゆる病に効くとされる。
 
@@ -21183,8 +21093,8 @@ F:OPEN_DOOR | BASH_DOOR | SMART |
 F:ANIMAL | IM_ACID | IM_FIRE | IM_COLD | IM_POIS | NO_CONF | NO_SLEEP
 S:1_IN_3 |
 S:BO_COLD | BA_COLD | BO_ICEE | BR_COLD
-D:$This bird guards the mansion in which Dio Brando hides and lives.  Dogs
-D:$ may be its favorite food.
+D:$This bird is the porter of the mansion in which Dio Brando hides and lives. 
+D:$For it, a dog may be a favorite food.
 D:ディオが隠れ棲む館の門番であるこの鳥は犬が
 D:大好物なのかもしれない。
 
@@ -21209,7 +21119,7 @@ D:彼にとっては冒険者など獲物にすぎない。
 
 #J0#
 N:1045:分解ボルテックス
-E:Disintegration vortex
+E:Disintegrate vortex
 G:v:s
 I:140:32d20:100:80:0
 W:65:6:0:5000:0:0
@@ -21219,8 +21129,6 @@ F:EMPTY_MIND | BASH_DOOR | POWERFUL | KILL_WALL | KILL_ITEM |
 F:NO_CONF | NO_SLEEP | NO_FEAR | NO_STUN | NONLIVING
 S:1_IN_6 | 
 S:BR_DISI
-D:$You see streams of dust spiraling inward from rapidly crumbling stone on
-D:$ the walls or floor.
 D:周囲のものが渦巻き状に分解されていくのが見える。
 
 N:1046:黒色王『ウルファング』
@@ -21237,7 +21145,7 @@ F:FORCE_MAXHP | HAS_LITE_1 | DROP_SKELETON | DROP_CORPSE |
 F:ONLY_ITEM | DROP_2D2 | DROP_GOOD | 
 F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR | 
 F:EVIL
-D:$A short and swarthy Easterling dressed in black.
+D:$A short and swarthy Easterling dressed in Black.
 D:背が低くて浅黒い肌をした東夷で、黒い服に身を包んでいる。
 
 N:1047:黄衣の修行僧
@@ -21348,7 +21256,7 @@ F:SMART | TAKE_ITEM | OPEN_DOOR | BASH_DOOR | POWERFUL |
 F:IM_FIRE | IM_COLD | IM_POIS | NO_CONF | NO_SLEEP | RES_TELE | 
 S:1_IN_3 | 
 S:HEAL | HASTE | BLIND | CONF | SCARE | TPORT | BLINK
-D:$A shabby humanoid with wrinkled skin. It seems to shift 
+D:$A shabby humanoid with wrinkled skin. It seems to shift 
 D:$in and out of existance as you watch. 
 D:しわくちゃの肌を持つみすぼらしい姿の人間型モンスターだ。
 D:実存と非実存の間を行ったり来たりしている。
@@ -21485,7 +21393,7 @@ F:FORCE_MAXHP | DROP_CORPSE | WILD_TOWN | WILD_ONLY
 #F:ONLY_ITEM | DROP_90 | DROP_GOOD | FRIENDLY |
 F:OPEN_DOOR | BASH_DOOR | HAS_LITE_1 |
 F:NO_CONF | NO_SLEEP
-D:$Brazen faced, this creature is more impudent than a normal troll.
+D:$Brazen faced this creature is more impudent than normal troll.
 D:面の皮は普通のトロルよりも厚い。
 
 N:1061:『恐竜バーニーちゃん』
@@ -21527,7 +21435,7 @@ D:グルーの頭を笑う者は、そのうち笑えないことに気づくだ
 D:ていうかグルーを笑って生きのびた者はいない。
 
 N:1063:巨大白シラミの王『lousy』
-E:Lousy, the King of Lice
+E:Lousy, the King of Louses
 G:I:W
 I:130:11d11:8:10:10
 W:9:3:0:100:0:0
@@ -21543,7 +21451,7 @@ F:ONLY_ITEM | DROP_1D2 | DROP_GOOD |
 S:1_IN_6
 S:S_KIN
 D:$This huge louse is the ruin of the sad man 
-D:$who had become a louse just because he loves lice.
+D:$who had become a louse just because he loves louses.
 D:この巨大なシラミはシラミを愛するあまりシラミになってしまった
 D:哀れな人間のなれの果てだ。
 
@@ -21565,9 +21473,6 @@ S:TPORT | BLINK | TELE_AWAY | TELE_LEVEL | HASTE |
 S:SLOW | HOLD |
 S:BR_TIME | BR_NEXU | BR_GRAV | BR_INER | 
 S:S_DRAGON
-D:$The figure is distorted, like but not like the way swirling water or air
-D:$ above a hot surface can twist a shape, but it appears to be a huge dragon,
-D:$ somehow.
 D:このような存在にはかつて出会ったことがない。
 D:その周囲の空間も時も歪んで見えるためよく分からないが、
 D:なんとなく巨大なドラゴンがいるように見える。
@@ -21623,9 +21528,8 @@ B:HIT:HURT:1d5
 B:CRUSH:HURT:1d6
 F:TAKE_ITEM | OPEN_DOOR | DROP_CORPSE | RAND_25
 F:ANIMAL | TANUKI
-D:$It is a dog-like carnivorous mammal with markings like a raccoon.  In
-D:$ Japanese tales, a tanuki (raccoon dog) can bewitch people or disguise
-D:$ itself as a human being by placing a magic leaf on its head.
+D:$Tanuki (raccoon dog) is thought to bewitch people in Japanese. 
+D:$Tanuki can disguise as human beings by putting a magic leaf on his/her head.
 D:日本の伝説では、たぬきは人を化かすと伝えられている。
 D:魔法の木の葉を頭に載せて人に化けるのだ。
 
@@ -21649,7 +21553,7 @@ F:INVISIBLE | PASS_WALL |
 F:UNDEAD | EVIL
 S:1_IN_2 |
 S:SHOOT | TELE_AWAY | TPORT | HASTE | BLINK | HEAL
-D:$He is one of the greatest tricksters. Even the greatest warrior cannot
+D:$He is one of the greatest trickster. Even greatest warrior cannot
 D:$ defeat him, and his storm of holy might arrows from the dark have
 D:$ defeated numerous victims.
 D:彼はこの世界で最も偉大ないかさま師だ。いかなる剣の達人も彼に深い傷を
@@ -21740,7 +21644,7 @@ F:UNIQUE | MALE | EVIL | HAS_LITE_2 | HUMAN |
 F:FORCE_MAXHP | CAN_SPEAK | WILD_ALL | DROP_SKELETON | DROP_CORPSE |
 F:ONLY_ITEM | DROP_1D2 | DROP_GOOD | 
 F:OPEN_DOOR | BASH_DOOR
-D:$He is a junior brother of the king of the southerners, Meng Huo.
+D:$He is a junior brother of king of southerings Meng Huo.
 D:南蛮王孟獲の弟だ。武勇には多少の自信がある。
 
 N:1074:火の神『祝融』
@@ -21756,13 +21660,13 @@ F:FORCE_MAXHP | CAN_SPEAK | WILD_ALL | DROP_SKELETON | DROP_CORPSE |
 F:ONLY_ITEM | DROP_1D2 | DROP_GOOD | OPEN_DOOR | BASH_DOOR |
 S:1_IN_9
 S:SHRIEK
-D:$She is the wife of king Meng Huo.  She is said to be an avatar of a
-D:$ flame spirit.
+D:$She is the wife of king Meng Huo. She is called as the avater of 
+D:$flame spirit.
 D:南蛮王孟獲の妻だ。彼女は火の神の化身と言われている。
 D:その武勇を侮るな。
 
 N:1075:南蛮人『帯来洞主』
-E:Dailai Dongzhu, the Captain of the Southerners
+E:Dailai Dongzhu, the Captain of Southerings
 G:p:u
 I:110:22d10:20:35:20
 W:10:2:0:100:0:0
@@ -21780,7 +21684,7 @@ D:$He comes to help his sister and her husband Meng Huo.
 D:南蛮王孟獲の援軍として現れた南蛮の将だ。孟獲の義理の弟にあたる。
 
 N:1076:禿竜洞主『朶思大王』
-E:King Duosi, the Chief of the Southerners
+E:King Duosi, the Chief of Southerings
 G:p:v
 I:110:25d10:20:45:20
 W:11:2:0:150:0:0
@@ -21797,7 +21701,7 @@ D:$the enemy.
 D:南蛮随一の知恵者と言われる有力領主だ。彼の知略は蜀軍を苦しめた。
 
 N:1077:南蛮の酋長『木鹿大王』
-E:King Mulu, the Chief of the Southerners
+E:King Mulu, the Chief of Southerings
 G:p:g
 I:110:35d10:20:45:20
 W:16:2:0:250:0:0
@@ -21810,12 +21714,12 @@ F:FORCE_MAXHP | CAN_SPEAK | DROP_SKELETON | DROP_CORPSE |
 F:ONLY_ITEM | DROP_1D2 | DROP_GOOD | OPEN_DOOR | BASH_DOOR
 S:1_IN_6 |
 S:S_ANT | S_SPIDER
-D:$He is one of chiefs of Nanman. He is also good beast master.
+D:$He is one of chiefs of Nanman. He is also good beast master.
 D:南蛮を支配する酋長の一人だ。彼の動物軍団には孟獲も絶大な信頼を寄せる。
 D:ただしカラクリは嫌いだ。
 
 N:1078:烏戈国王『兀突骨』
-E:Wutugu, the Chief of the Southerners
+E:Wutugu, the Chief of Southerings
 G:P:u
 I:110:35d10:20:60:20
 W:17:2:0:250:0:0
@@ -21910,16 +21814,13 @@ F:ONLY_ITEM | DROP_1D2 | DROP_GOOD | DROP_GREAT | WILD_WOOD |
 F:TAKE_ITEM | OPEN_DOOR | BASH_DOOR | EVIL | DROP_SKELETON | DROP_CORPSE
 S:1_IN_4
 S:SHOOT | BLINK
-D:$He is an elementary school student who, with his weapons such as the
-D:$ Alpha Gun, Visual Belt, and Sky Rod, indiscriminately slaughters
-D:$ Juralians on a daily basis. 
 D:アルファガン、ビジュームベルト、スカイロッドなどの破壊兵器を所持し、
 D:毎日のようにジュラル星人を大量虐殺している小学生だ。 
 D:「チャージマン!殺してやる!」「それは僕が言う言葉だ!」
 D:(『チャージマン研!』アニメ第36話・『戦慄!悪魔の病院』)
 
 N:1082:ジュラル星人
-E:Juralian
+E:Alien Jural
 G:h:v
 I:105:3d6:10:10:10
 W:5:8:0:20:0:0
@@ -21930,10 +21831,6 @@ F:DROP_90 | OPEN_DOOR | BASH_DOOR | FRIENDS | DROP_CORPSE |
 F:WILD_WOOD | HAS_LITE_1 |
 S:1_IN_6
 S:SHOOT
-D:$This maroon-colored, vaguely humanoid, creature with one eye, tentacle-like
-D:$ limbs, slim waist and broad chest is a member of an advanced
-D:$ civilization from another world.  They have invaded this world to steal its
-D:$ resources.
 D:彼等の文明は地球より500年進んでいるそうだ。
 D:「これから毎日家を焼こうぜ」
 D:(『チャージマン研!』アニメ第25話・『雄一少年を救え!』)
@@ -21964,8 +21861,8 @@ F:DROP_CORPSE | ONLY_GOLD | DROP_2D2 | DROP_4D2 |
 F:NO_SLEEP | RES_INER | IM_POIS |
 S:1_IN_5 |
 S:SHRIEK
-D:$It can turn an animal into a stone statue.  Beware, you will turn to
-D:$ stone if you touch it with your bare hand!
+D:$It will make animals into stone-like objects. Be aware,
+D:$you become to stone if you touch it with your empty hand!
 D:こいつは獲物を石像のようにしちまうんだ。
 D:気をつけろ!素手で触ると石になっちまうぞ。
 
@@ -22072,7 +21969,6 @@ F:ONLY_ITEM | DROP_2D2 | DROP_GOOD |
 F:OPEN_DOOR | BASH_DOOR
 S:1_IN_2
 S:SHOOT | SHRIEK
-D:$He leads the force of Juralians invading this world.
 D:環境の悪化したジュラル星に変わる新天地を求め、
 D:地球侵略を企てるジュラル星人の統率者だ。
 D:「諸君、今から命令をすりゅ!地球の子供達をかたっぱしからとらえて君! 」
@@ -22087,10 +21983,6 @@ B:EXPLODE:SHATTER:15d8
 F:GOOD | DROP_GOOD | DROP_GREAT | ONLY_ITEM | DROP_90 | FORCE_MAXHP |
 F:UNIQUE | EMPTY_MIND | WILD_TOWN | CAN_SPEAK |
 F:OPEN_DOOR | BASH_DOOR | NONLIVING | RES_TELE
-D:$He was a West German scientist, but the Jurians turned him into a bomb
-D:$ delivery system:  "Dr. Volga, you have been killed.  With a bomb in your
-D:$ head, you are now a human robot!" ("Chargeman Ken!" episode 35,
-D:$ "Dynamite in the Brain!")
 D:ジュラル星人の魔の手により爆弾を頭に仕込まれた西ドイツの科学者だ。
 D:「ボルガ博士、あなたは殺されたんです。
 D:その頭の中に爆弾を仕掛けられて、今のあなたは人間ロボットなんだ!」
@@ -22109,15 +22001,11 @@ F:FORCE_SLEEP | FORCE_MAXHP | SMART | RES_CHAO | MALE | HUMAN |
 F:ONLY_ITEM | DROP_1D2 | DROP_2D2 | NO_FEAR | NO_CONF
 F:OPEN_DOOR | BASH_DOOR | 
 F:IM_FIRE | IM_POIS | HAS_LITE_1 |
-D:$Formerly one of Lord Gwyn's Silver Knights, he fought the demons from the
-D:$ Bed of Chaos and accompanied the lord to the Kiln of the First Flame.  Now
-D:$ burned beyond recognition and clad in charred armor, he wanders the world
-D:$ for eternity.
 D:太陽の光の王グウィンの火継ぎの輝きに焼かれ、灰となった神代の騎士だ。
 D:以来、彼らは世界を彷徨い歩く存在となった。
 
 N:1092:オーラントの公使
-E:Fat official of Allant
+E:Fat offcial of Allant
 G:p:D
 I:108:80d12:10:110:20
 W:34:4:0:2000:0:0
@@ -22127,10 +22015,6 @@ F:IM_POIS | OPEN_DOOR | BASH_DOOR | MALE | FORCE_MAXHP
 F:NO_CONF | NO_SLEEP | EVIL | DEMON | HUMAN
 S:1_IN_2 |
 S:BO_FIRE | BA_FIRE
-D:$After the land of Boletaria, King Allant's kingdom, is engulfed in a
-D:$ colorless fog, this creature is one of King Allant's officials who take
-D:$ charge.  Shaking his fat and ugly body, he rolls out a fireball with an
-D:$ eerie laugh and attacks with a crescent ax.
 D:ボーレタリアが色のない霧に包まれた後、
 D:オーラント王の手先として彼の地を統率する異形の者だ。
 D:その醜く太った体を揺らしながら、不気味な笑いと共に火の玉を繰り出し、
@@ -22162,13 +22046,6 @@ F:IM_FIRE | IM_POIS | NO_SLEEP | NO_CONF
 F:MALE | DROP_CORPSE | DROP_SKELETON
 S:1_IN_3 |
 S:SHOOT
-D:$Firearms were not used in Amber since gunpowder does not work there:
-D:$  chemistry is not always the same in Amber and the parallel worlds that
-D:$ are shadows of it.  Prince Corwin, by accident, had found a substance in
-D:$ Avalon that could work as powder and primer in Amber and its closest
-D:$ shadows.  With that in mind, he devised a plan to take Amber using a small
-D:$ force armed with automatic rifles.  This gunner, from a parallel world
-D:$ where Corwin is worshipped as a god, is one of that force.
 D:アンバーの王子コーウィンは、並行世界の化学的作用が必ずしも
 D:共通でない事を知っている。そこで彼はあらゆる影から数多くの鉱物を取り寄せ、
 D:各世界で作用する火薬を生産し、現代地球の銃器で利用できる手法を確立した。
@@ -22192,7 +22069,7 @@ F:EVIL | ORC | RES_DARK
 S:1_IN_3 |
 S:SHOOT
 D:$A captain of a regiment of weaker orcs, 
-D:$Muzgash schemes promotion by flattering his superiors.
+D:$Muzgash schemes promotion by flattety to his superiors.
 D:$"I've told you twice that Gorbag's swine got to the gate first, and none 
 D:$of ours got out.  Lagduf and Muzgash ran through, but they were shot." 
 D:ムズガッシュは弱いオークの部隊を指揮する隊長で、上役にへつらい出世を企んでいる。
@@ -22313,8 +22190,8 @@ B:HIT:SUPERHURT:5d4
 B:BITE:POISON:9d3
 F:EVIL | DROP_1D2 | DROP_SKELETON | DROP_CORPSE | FORCE_SLEEP
 F:OPEN_DOOR | MALE | WILD_WASTE | WILD_SWAMP | NO_FEAR
-D:$Walking on two legs, this creature looks like a Skaven, of sorts, but it's
-D:$ larger and more terrible than a Skaven.
+D:$It's a biped walking monster, seems subspecies of Skaven,
+D:$but it's larger and more terrible than them.
 D:それはスケイヴンの亜種と思われるが、より大きくおぞましい二足歩行の怪物だ。
 
 N:1103:拡散の尖兵
@@ -22329,9 +22206,6 @@ F:FORCE_SLEEP | FORCE_MAXHP |
 F:ONLY_ITEM | DROP_4D2 |
 F:OPEN_DOOR | BASH_DOOR | POWERFUL | NONLIVING |
 F:EVIL | DEMON | NO_CONF | NO_SLEEP
-D:$This giant demon carrying an axe has three yellow eyes and grey skin
-D:$ covered with spikes.  It is one of the first demons to emerge from the
-D:$ colorless fog engulfing Boletaria.
 D:ボーレタリアの色のない霧から最初に現れたデーモンの尖兵だ。
 D:刺々しい灰色の巨体が斧を握りしめている。
 
@@ -22358,8 +22232,8 @@ B:KICK:HURT:8d4
 F:WILD_ALL | BASH_DOOR | RAND_25 | CAN_SWIM
 F:NO_FEAR | POWERFUL | FRIENDS
 F:ANIMAL | DROP_SKELETON | DROP_CORPSE | RIDING
-D:$It is one of the famed horses from Central Asia.  They are said to sweat
-D:$ blood and to be able to run 300 miles in a day.
+D:$This horse is produced in ancient Fergana.
+D:$It was able to run 1000 Li a day and shed bloogy sweat.
 D:大宛で産出する名馬だ。血の汗を流し、千里を走ることができた。
 
 N:1106:光の堕天使『エミリオ・ミハイロフ』
@@ -22381,8 +22255,6 @@ S:1_IN_4 |
 S:BLIND | SCARE |
 S:BO_MANA | HOLD |
 S:PSY_SPEAR | BA_LITE | BR_LITE
-D:$He is a light-manipulating psychics with a neutral appearance.
-D:$His back has shining light feathers.
 D:光を操るサイキッカーで、中性的な容姿と背中に輝く光の羽根を背負っている。
 
 N:1107:さまようもの
@@ -22457,73 +22329,71 @@ D:自分を含めた全ての人々に及ぶことを常に望んでいる。
 N:1111:ファイア・コボルド
 E:Fire kobold
 G:k:R
-I:110:12d10:20:35:25
+I:110:11d9:20:35:30
 W:12:1:0:42:800:1116
 B:HIT:FIRE:4d5
 F:DROP_90
 F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 F:EVIL | IM_POIS | EAT_POISONOUS
 F:IM_FIRE | WILD_VOLCANO
-D:$It's a red kobold.  Wait, are its hands on fire?
+D:$It seems only a red kobold, but it learned the use of fire.
 D:それは単なる赤いコボルドに見えるが、火の使い方を覚えている。
 
 N:1112:アイス・コボルド
 E:Ice kobold
 G:k:W
-I:110:12d10:20:35:25
+I:110:11d9:20:35:30
 W:12:1:0:42:800:1117
 B:HIT:COLD:4d5
 F:DROP_90
 F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 F:EVIL | IM_POIS | EAT_POISONOUS
 F:IM_COLD | WILD_SWAMP
-D:$It's a white kobold.  Wait, is that frost on its hands?
+D:$It seems only a white kobold, but it learned the use of ice.
 D:それは単なる白いコボルドに見えるが、冷気の浴びせ方を覚えている。
 
-# Eric氏の翻訳、これはひどい(称賛の意)
 N:1113:サンダー・コボルド
 E:Electric kobold
 G:k:B
-I:110:12d10:20:35:25
+I:110:11d9:20:35:30
 W:12:1:0:42:800:1118
 B:HIT:ELEC:4d5
 F:DROP_90
 F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 F:EVIL | IM_POIS | EAT_POISONOUS
 F:IM_ELEC | WILD_MOUNTAIN
-D:$Its a blue kobold, but why do its hands glow with St. Elmo's fire?
+D:$It seems only a blue kobold, but it learned the use of electricity.
 D:それは単なる青いコボルドに見えるが、電撃の浴びせ方を覚えている。
 
 N:1114:アシッド・コボルド
 E:Acid kobold
 G:k:s
-I:110:12d10:20:35:25
+I:110:11d9:20:35:30
 W:12:1:0:42:800:1119
 B:HIT:ACID:4d5
 F:DROP_90
 F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 F:EVIL | IM_POIS | EAT_POISONOUS
 F:IM_ACID | WILD_WOOD
-D:$It's a black kobold, but its hands drip with some sort of caustic substance.
+D:$It seems only a black kobold, but it learned the use of acid.
 D:それは単なる黒いコボルドに見えるが、酸の浴びせ方を覚えている。
 
 N:1115:ポイズン・コボルド
 E:Poison kobold
 G:k:G
-I:115:13d11:25:45:20
+I:115:12d10:25:45:35
 W:14:1:0:55:1100:1120
 B:HIT:POISON:4d6
 F:DROP_90
 F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 F:EVIL | IM_POIS | EAT_POISONOUS
-D:$It's a green kobold, but there's something strange about the oily
-D:$ secretions on its hands.
+D:$It seems only a green kobold, but it learned the use of poison.
 D:それは単なる緑色のコボルドに見えるが、毒のくらわし方を覚えている。
 
 N:1116:フレイム・コボルド
 E:Flame kobold
 G:k:r
-I:110:20d10:25:40:20
+I:110:20d10:25:40:35
 W:23:1:0:240:0:0
 B:HIT:FIRE:8d6
 B:HIT:FIRE:8d6
@@ -22533,15 +22403,16 @@ F:DROP_90
 F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 F:EVIL | IM_POIS | EAT_POISONOUS | CAN_SWIM
 F:IM_FIRE | FRIENDS
-D:$This red kobold has flames on its hands and wisps of smoke issuing
-D:$ from its mouth.
+D:$It is a kobold which emits the fire breath enough to burns down a big tree.
+D:$They are sometimes shunned by other kobolds on the ground that
+D:$he is a somothering guy.
 D:大木を焼き尽くすほどの強力な炎を吐き出すことができるようになったコボルドだ。
 D:コボルド仲間の間でも暑苦しいと煙たがれることがある。
 
 N:1117:ブリザード・コボルド
 E:Blizzard kobold
 G:k:w
-I:110:20d10:25:40:20
+I:110:20d10:25:40:35
 W:23:1:0:240:0:0
 B:HIT:COLD:8d6
 B:HIT:COLD:8d6
@@ -22551,15 +22422,15 @@ F:DROP_90
 F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 F:EVIL | IM_POIS | EAT_POISONOUS | CAN_SWIM
 F:IM_COLD | FRIENDS
-D:$This white kobold has frost covering its hands, and small ice crystals swirl
-D:$ in the air around it.
+D:$It can freeze a room eternally by its strong breath.
+D:$Around him, you may be able to see the diamond dust.
 D:部屋の全てを永遠に凍りつかせるほどの強力な冷気を吐き出すことができる。
 D:それの周りではダイアモンドダストを見ることができるという。
 
 N:1118:ライトニング・コボルド
 E:Lightning kobold
 G:k:b
-I:110:20d10:25:40:20
+I:110:20d10:25:40:35
 W:23:1:0:240:0:0
 B:HIT:ELEC:8d6
 B:HIT:ELEC:8d6
@@ -22570,14 +22441,15 @@ F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 F:EVIL | IM_POIS | EAT_POISONOUS | CAN_SWIM
 F:IM_ELEC | FRIENDS
 F:SELF_LITE_1
-D:$Electric sparks fly from the hands and mouth of this blue kobold.
-D:君は見たことがあるだろうか、あのヱヅソンの忌まわしい実験を!
+D:$Have you seen the very experiment by Edison?
+D:$This kobold can kill an elephant easily by its breath!
+D:君は見たことがあるだろうか、あのエジソンの忌まわしい実験を!
 D:このコボルドはあれと同じことができる!
 
 N:1119:カルボラン・コボルド
 E:Carborane kobold
 G:k:D
-I:110:20d10:25:40:20
+I:110:20d10:25:40:35
 W:23:1:0:240:0:0
 B:HIT:ACID:8d6
 B:HIT:ACID:8d6
@@ -22587,14 +22459,15 @@ F:DROP_90
 F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 F:EVIL | IM_POIS | EAT_POISONOUS | CAN_SWIM
 F:IM_ACID | FRIENDS
-D:$This black kobold has caustic liquid dripping from its hands and mouth.
+D:$O my god!
+D:$This kobold can resolve a candle via its breath!
 D:ああ、何ということだ!
 D:このコボルドが吐き出す酸はロウソクをも溶かしてしまう!
 
 N:1120:アポトキシン・コボルド
 E:Apotoxin kobold
 G:k:g
-I:115:21d11:30:45:15
+I:115:21d11:30:45:40
 W:24:1:0:333:0:0
 B:HIT:POISON:9d6
 B:HIT:POISON:9d6
@@ -22604,14 +22477,14 @@ F:DROP_1D2
 F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE
 F:EVIL | IM_POIS | EAT_POISONOUS | CAN_SWIM
 D:$Be aware!
-D:$  This kobold's poison can change a tough guy to a frail kid!
+D:$This kobold's poison can change a tough guy to a frail kid!
 D:気をつけろ!
 D:やつの毒は大の大人を無力な子供に変えてしまう!
 
 N:1121:ジャイアンの腰巾着『スネヲ』
 E:Suneo, the Follower of Jaian
 G:k:u
-I:120:35d20:30:50:10
+I:120:35d20:30:50:40
 W:25:1:0:410:0:0
 B:HIT:HURT:10d6
 S:1_IN_8 | S_KIN | SHRIEK
@@ -22622,7 +22495,7 @@ F:EVIL | IM_POIS | EAT_POISONOUS
 F:ESCORT | ESCORTS | RES_SOUN | CAN_FLY
 F:NO_CONF
 D:$"Hey Nobita, I regret to say, but the capacity of this dungeon is 3."
-D:$  However, there are clearly more than three money mongers around him!
+D:$However, obviously there are many money mongers around him!
 D:「悪いなのび太、このダンジョンは3人用なんだ」
 D:しかし、彼に群がる金の亡者は明らかに3人よりも多い!
 
@@ -22637,12 +22510,11 @@ B:HIT:FIRE:8d4
 F:MALE | 
 F:FORCE_MAXHP | FRIENDS | DROP_60 | 
 F:OPEN_DOOR | BASH_DOOR | DROP_SKELETON | DROP_CORPSE | EAT_POISONOUS |
-F:EVIL | ORC | IM_POIS | RES_DARK | IM_FIRE | RES_CHAO
-F:DEMON | WILD_VOLCANO | AURA_FIRE
+F:EVIL | ORC | IM_POIS | RES_DARK | IM_FIRE | RES_CHAO | DEMON | WILD_VOLCANO | AURA_FIRE
 S:1_IN_8
 S:SHOOT |  BO_FIRE |
-D:$Cloaked in black flame, this orc must be the descendant of a demon.
-D:$  Such creatures are often seen among the foulest orcs.
+D:$This orc is succeeding demon blood. He wears brack flame.
+D:$This unclean combination is bred in unclean tribe
 D:このオークの体にはデーモンの血が流れており、そこから来る暗黒の炎をまとっている。
 D:この不浄な結合は、暗き風習を持つ生き物の中でしばしば育まれる。
 
index 9a29367..85ce876 100644 (file)
@@ -514,7 +514,7 @@ B:$13:A:1:Wanted unique list:0:0:b:39:0
 B:13:A:1:賞金首リスト:0:0:b:39:0
 B:$13:A:2:Special target:0:0:s:37:0
 B:13:A:2:スペシャル・ターゲット:0:0:s:37:0
-B:$13:A:3:Receive prize:0:0:c:40:0
+B:$13:A:3:Recieve prize:0:0:c:40:0
 B:13:A:3:報酬を受け取る:0:0:c:40:0
 
 
index 6ded376..24fbe2a 100644 (file)
@@ -662,7 +662,7 @@ B:$15:A:1:Wanted unique list:0:0:b:39:0
 B:15:A:1:賞金首リスト:0:0:b:39:0
 B:$15:A:2:Special target:0:0:s:37:0
 B:15:A:2:スペシャル・ターゲット:0:0:s:37:0
-B:$15:A:3:Receive prize:0:0:c:40:0
+B:$15:A:3:Recieve prize:0:0:c:40:0
 B:15:A:3:換金する:0:0:c:40:0
 
 ############### Town Layout ###############
index 59658f0..142b9de 100644 (file)
@@ -12,7 +12,7 @@ angband_files = \
        chainswd.txt dead.txt \
        death.txt elvish.txt error.txt mondeath.txt \
        monfear.txt monfrien.txt monspeak.txt news.txt \
-       rumors.txt seppuku.txt silly.txt sname.txt timefun.txt \
+       rumors.txt seppuku.txt silly.txt timefun.txt \
        timenorm.txt w_cursed.txt w_high.txt w_low.txt\
        w_med.txt
 
@@ -20,7 +20,7 @@ EXTRA_DIST = \
   $(angband_files)
 
 if SET_GID
-angbanddir = @DEFAULT_PATH@file
+angbanddir = @DEFAULT_LIB_PATH@/file
 
 angband_DATA = \
   $(angband_files)
index a21d6ab..554b179 100644 (file)
@@ -74,7 +74,7 @@ of the Ruler of Wallachia
 N:15:BIAS_LAW
 N:13:BIAS_PRIESTLY
 N: 8:BIAS_WIS
-'Enlightenment from Heaven'
+'Enlightenment from Heven'
 'Holy Chant'
 'Holy Prayer'
 'Righteousness'
index 87b6cf6..09b7c53 100644 (file)
@@ -229,7 +229,7 @@ I don't care. I have a Ring of Regeneration.
 I have this dungeon at home, I know where everything is!
 This HAS to be an illusion. I attempt to disbelieve it.
 I thought you could be trusted.
-Never try to sneak in plate mail.
+Never try to sneak in plate mail.
 I'll never surrender.
 I'll use the Cheat Death option...
 I'm invincible!
index 786957c..cf62da1 100644 (file)
@@ -70,8 +70,5 @@ N:1096:濃尾無双『岩本虎眼』
 N:1106:光の堕天使『エミリオ・ミハイロフ』
 「何で僕がーー!」
 
-N:1123:巴流『葦名弦一郎』
-「あし…な……」
-
 N:*:Default
 「グアァァァ!」
index 12c4009..9430cf7 100644 (file)
@@ -557,9 +557,6 @@ N:1081:チャージマン『研』
 「僕は世話をかけないよ!」
 「ちぇっ、…くっそぉ~」
 
-N:1090:『ボルガ博士』
-「何をする!?」
-
 N:1096:濃尾無双『岩本虎眼』
 「い、いくぅ・・・」
 「た、種ぇ・・・」
index 36b1ca4..de0324e 100644 (file)
@@ -31,7 +31,7 @@ mumbles something about mushrooms.
 
 N:19:Lion Heart
 says, 'We must stand up with firm resolve to strive for the eradication of terrorism, together with other nations of the world'
-says, 'Japan supports the U.S. position that it will not bow to terrorism. I think it is only natural for President Bush to hunt down the culprits and take firm steps against this serious crime.'
+says, 'Japan supports the U.S. position that it will not bow to terrorism. Ithink it is only natural for President Bush to hunt down the culprits and take firm steps against this serious crime.'
 says, 'The terrorist acts are extremely heinous and outrageous and cannot be forgiven.'
 says, 'It is a challenge not only to the U.S. but also to democracy, and I am outraged.'
 says, 'Japan-U.S. alliance is becoming bigger and bigger.'
@@ -41,8 +41,8 @@ says, 'The safe society is crumbling and this is a significant incident.'
 ### says, 'I am not a entertainer but a politician.'
 sings, 'As K*izumi as the day is long...'
 says, 'I don't think there's any going back to what politics was in this country even three weeks ago.'
-says, 'What will the prime minister do if the anti-reform forces within the Liberal Democratic Party regain power?'
-says, 'People are driving the LDP members, and the LDP members are driving the party. That is a total reversal of the past.'
+says, 'What will the prime minister do if the anti-reform forces within the Liveral Democratic Party regain power?'
+says, 'People are driving the LDP members, and the LDP members are driveing the party. That is a total reversal of the past.'
 says, 'No pain, no gain.'
 says, 'Here's a present for you. A compact disc of X-JAPAN!'
 sings, 'Forever...'
index b6e61c4..79fbba9 100644 (file)
@@ -119,9 +119,6 @@ N:1004:Pip, the Braver from Another World
 「火の指2!」
 「でくのぼうめ!」
 
-N:1090:『ボルガ博士』
-「お菓子好きかい?」
-
 #N:63:Smeagol
 #N:135:Mughash the Kobold Lord
 #N:137:Wormtongue, Agent of Saruman
index f369ac5..ddd1dc0 100644 (file)
@@ -52,8 +52,8 @@ says, 'The safe society is crumbling and this is a significant incident.'
 ### says, 'I am not a entertainer but a politician.'
 sings, 'As K*izumi as the day is long...'
 says, 'I don't think there's any going back to what politics was in this country even three weeks ago.'
-says, 'What will the prime minister do if the anti-reform forces within the Liberal Democratic Party regain power?'
-says, 'People are driving the LDP members, and the LDP members are driving the party. That is a total reversal of the past.'
+says, 'What will the prime minister do if the anti-reform forces within the Liveral Democratic Party regain power?'
+says, 'People are driving the LDP members, and the LDP members are driveing the party. That is a total reversal of the past.'
 says, 'No pain, no gain.'
 says, 'Here's a present for you. A compact disc of X-JAPAN!'
 sings, 'Forever...'
@@ -324,7 +324,7 @@ says, 'You aren't a caitiff that throws a cloak?!'
 #N:596:Mother Hydra
 
 N:598:Mandor, Master of the Logrus
-enjoys espresso coffee between battles.
+enjoys espresso coffee between battle.
 says, 'My slaves fight with you.'
 says, 'Excuse me, I have no time to continue a small fight.'
 says, 'It is a great pleasure to fight with such a worthy opponent as you.'
@@ -479,7 +479,7 @@ says, 'You'll become a good mounting'
 #N:805:Omarax the Eye Tyrant
 
 N:807:Gerard, Strongman of Amber
-rushes toward you wordlessly.
+rush toward you wordlessly.
 
 #N:809:Atlach-Nacha, the Spider God
 
@@ -601,7 +601,7 @@ says, 'Maybe I won't kill you... NOT!'
 yawns at your pathetic efforts to kill it.
 says, 'Another day, another bastard to slaughter...'
 says, 'I can't be bothered... minions, slaughter this fool!'
-says, 'Such a doomed, pathetic gesture as yours verges on the heroic!'
+says, 'Such a doomed, pathetic gesture as yours  verges on the heroic!'
 says, 'Mere mortals such as you should not meddle the affair of the Powers!'
 
 N:873:Combat-Echizen
@@ -748,7 +748,7 @@ says, 'Thou shalt repent of thy cunning.'
 says, 'Verily, thou shalt be one dead cretin.'
 says, 'Surrender or die!'
 says, 'Savor thy breath, it be thine last.'
-says, 'Prepare to die, miscreant!'
+says, 'Prepare do die, miscreant!'
 says, 'You're history, dude!'
 says, 'Feeling lucky, punk?'
 says, 'You're toast!'
index 4e8c296..d120b9c 100644 (file)
@@ -1032,9 +1032,6 @@ N:1081:チャージマン『研』
 「院長、あなたは狂っているんだ!」
 「どうも怪しいと思ったら やっぱり そうだったのか」
 
-N:1090:『ボルガ博士』
-「お菓子好きかい?」
-
 N:1096:濃尾無双『岩本虎眼』
 について「剣術流祖録」はこのような詩を記す― 狂ほしく 血のごとき 月はのぼれり 秘めおきし 魔剣 いずこぞや
 が構えたる星流れの型が蘇らせた忌まわしき記憶は鮮明であったが 目の前の@がその一件と無関係であることは明確だろうか?
@@ -1048,12 +1045,6 @@ N:1106:光の堕天使『エミリオ・ミハイロフ』
 「僕は今とっても楽しいんだ」
 「いい歌だな、もっと歌ってよ」
 
-N:1123:巴流『葦名弦一郎』
-「俺が芦名を守る」
-「踏みにじらせはせぬぞ」
-「卑怯とは言うまいな」
-「巴の雷、見せてやろう」
-
 N:*:Default lines
 #cackles evilly.
 は邪悪に笑っている。
index bfadb49..c4fc2ac 100644 (file)
@@ -24,9 +24,9 @@ There are Black Market stores hidden deep in the dungeon, with COOL stuff!
 Have you ever seen a Rod of Havoc inscribed {BFG9000}?
 What a pity, you cannot read it!
 You will encounter a dark, tall stranger...
-Mithril mail will not rust.
-Adamantite mail will not rust.
-Rusty Chain Mail cannot rust any further.
+Mithril mail will not rust.
+An Adamantite mail will not rust.
+Rusty Chain Mail cannot rust any further.
 If you are a mage, you will NOT want to find Raal's Tome of Destruction!
 You won't want to find Raal's Tome of Destruction!
 You won't want to find Raal's Tome of Destruction, unless you are a mage.
@@ -241,7 +241,7 @@ Autorollers aren't wary bright things.
 The Wargs give ah very sharpee Choir tonightee!
 The depths are about as unreliable as a dish of over-ripe figs.
 May all the Crows of the Volcano pick your bones clean!
-Ever made your dance around enthusiastic lice without a certain staff?
+Ever made your dance around enthousiastic lice without a certain staff?
 A staff is just like a colleague. But a reliable one!
 You are prepared to thrill us with a traditional heroic display?
 Some underworld lads would *LOVE* to blacken your name!
@@ -297,7 +297,7 @@ Have a rest and a rumor in the inn over some comfortable pitchers of beer.
 The stakes are far too high for a weak bluff, so watch the scores?
 Be not like the others. Proceed carefully, cover yourself at all times.
 You wouldn't want to fool with the Trumps! Aren't they of Doom quality?
-Smeagol's removal is high on your list of things that needed knowing or doing?
+Smeagols removal is high on your list of things that needed knowing or doing?
 Matter of recollection: find the inn and nurse some rumors for a while.
 Served you right: 3 quarters dead. Wasn't it purely a result of your arrogance?
 Confident - Cocky - Lazy - Dead. The Old Man's mantra, and a serious good one.
@@ -395,7 +395,7 @@ Morgoth is the very brink where hope and despair are akin.
 Give little heed to the wreck and slaughter that will lay around the pits.
 Accidents? what accidents? Mighty were your fallen ancestors.
 Fortune has betrayed you but for the momentum. Confidence!
-In the long run - IF you're survivor - winds of fortune will not wreck you.
+On the long run - IF you're survivor - winds of fortune will not wreck you.
 As a spell-striking egghead you'd need convincing offensive powers!
 Once no Recall is left the way up will seem never ending to you.
 The simple scheme ended in failure. That demon called lots of companions.
@@ -418,7 +418,7 @@ Zelazny said: "Sometimes it's damned hard to tell the dancer from the dance."
 If it's not quite visible if you caught a gear curse look it up by Ctrl-C.
 Any lesser titan will not just summon a monster but several combos of them.
 Robin Hood nowadays leads a wretched existence as a trapper and master thief.
-Too many different Zephyrs are the hero's death. IF caught on open ground.
+Too many different Zephyrs are the heroes death. IF caught on open ground.
 If you ever confront a Hru have a Teleport Other at hand!
 Any Hru will rage, spreading earthquake and ruin. Only Shudde is worse.
 You cannot escape a Hru just by blinking. Your life will be shattered!
@@ -497,7 +497,7 @@ You are starting to loose your temper? So what? Gnaw your pistachios!
 It shrieks? Don't bother! Presumably there will be just innocent bystanders.
 Still you might still fade out again! Been seeing so many ghostly apparitions.
 Even if the bluff fails them never give up! The caves are hotbed of banditry.
-Before I settled down, in my younger days I won the arena prize.
+Before I settled down, in my younger days I won the arena price.
 Are you not the refined sensitive type you're disguised as?
 However you shouldn't want to upset sensitivities hereabout. Learn xenology!
 Critters? If action was taken early this conspiracy could be nipped in the bed.
@@ -548,7 +548,7 @@ It's deciding which things are crucial that separates the wise from others.
 Invulnerability is impenetrable.
 Invulnerability may be penetrated by evil creatures.
 Resistance to nether will guard against invulnerability-penetration.
-Creatures of good alignment are not deterred by invulnerability.
+Creatures of good alignment are not deterred by invlnerability.
 Being clocked backwards is just a terrible irony of fate.
 Time is a weird attack - not even sustained stats will save you.
 Stumble on a death mold: another unsettling occurrence in an unsettling world.
@@ -572,7 +572,7 @@ There are no guarantees in life, but it's smarter to take fewer chances.
 Artsi is not susceptible to sorcery, ideal warrior! If ever get him in melee.
 It's a crying shame, but 30000's the highest you'll ever sell an item for.
 There is a shopkeeper who may pay 50000 gold for an item.
-Is it really true that good chain armour once rusted can't be restored?
+Is it really true that good chain armour once rusted can't be restored?
 Never thought about that daylight might be not just an illumination?
 Stone Skin is valuable as diamonds: even the tougher foes will miss you.
 You WILL need some means to prevent to be teleported to and fro unwanted.
@@ -600,7 +600,7 @@ Survival challenges use up superabundant energies, burn off the gland-juices.
 Kittens. Always going for the dramatic. Watching too many adventure holos.
 Young Heroes-to-be are always kept on diet, to increase their aggressiveness.
 Free at last from the blood curse: mirth welled up, boiled over as pure laughter.
-If you encounter groups of usual solitary cats look out for Bast, Cat's goddess!
+If you encounter groups of usual solitary cats look out for Bast, Cat's godess!
 Even protected Books are destroyed by breathers of chaos balls.
 It is more secure to carry precious books yourself, IF you provide resistances.
 Do not cast stone-to-mud while your skin is made of stone.
index ab0dc16..14ec57d 100644 (file)
@@ -1,2 +1,2 @@
 N:*:Default
-Meaning of bushido is found in the death.
+Meaning of Bushi-do is found in the death.
index 596790d..1f63f4a 100644 (file)
@@ -30,7 +30,7 @@ N: 3:BIAS_FIRE
 'Fire Ant'
 'Hot Blood'
 'Fervent Soul'
-of the Damned
+of the Damn
 
 N: 4:BIAS_COLD
 'Freezing'
@@ -81,7 +81,7 @@ N:14:BIAS_NECROMANTIC
 'Dungeon Shade'
 'Elfrist'
 of Misery
-of Voodoo
+of Boodoo
 
 N:15:BIAS_LAW
 N:13:BIAS_PRIESTLY
index e6800bf..4379104 100644 (file)
@@ -98,7 +98,7 @@ N:14:BIAS_NECROMANTIC
 'Dark Banisher'
 'Bloody Mary'
 of Helthing
-of Stormy Darkness
+of Darkness Strom
 of Genocide
 of Thuringwethil
 
index a823db0..25b99f1 100644 (file)
@@ -4,7 +4,7 @@ angband_files = \
        attack.hlp attack.txt birth.hlp birth.txt \
        bldg.txt raceclas.hlp raceclas.txt command.hlp \
        command.txt commdesc.hlp commdesc.txt editor.txt \
-       defend.hlp defend.txt dungeon.hlp dungeon.txt faq.txt \
+       defend.hlp defend.txt dungeon.hlp dungeon.txt \
        gambling.txt general.hlp general.txt help.hlp helpinfo.txt \
        j_general.txt j_item1.txt j_item2.txt j_trans.txt \
        jattack.hlp jattack.txt jbirth.hlp jbirth.txt \
@@ -26,7 +26,7 @@ EXTRA_DIST = \
   $(angband_files)
 
 if SET_GID
-angbanddir = @DEFAULT_PATH@help
+angbanddir = @DEFAULT_LIB_PATH@/help
 
 angband_DATA = \
   $(angband_files)
index 13db4e9..e052a64 100644 (file)
@@ -26,7 +26,7 @@ devices.
 
 You can attack creatures from a distance by firing a missile from a bow
 or other missile launcher, by throwing an object or by using magical
-items such as wands, rods and staffs. If you have chosen to play a
+items such as wands, rods and staves. If you have chosen to play a
 spell casting class, you may be able to learn some spells which allow
 you to attack a creature from a distance. You can use distance attacks
 even when your target is next to you.
@@ -54,11 +54,11 @@ creature. If the creature is invisible and you do not have the ability
 to see invisible creatures, you must tunnel into the wall space
 containing the creature.
 
-Bolt spells do full damage to a creature in a wall, but ball spells
-will be stopped and blow up just in front of a wall and do only half
-damage. Inversely, when you have ghost like form and are in a wall,
-you will take only half damage from ball spells and breaths of
-monsters, which is a very important privilege.
+Bolt spells does full damage to such creature in a wall, but ball
+spells will be stopped and blow up just in front of a wall and does
+only half damages. Inversely, when you have ghost like form, and are
+in a wall, you will take only half damage from ball spells and
+breathes of monsters, which is very important privilege.
 
 ***** <MeleeWeapons>
 === Melee Weapons ===
@@ -323,7 +323,7 @@ Weapon of *Slay* Animal
 
 Weapon of *Slay* Evil
     This weapon is especially effective against evil creatures and
-    will inflict damage with 3.5 times the normal dice against such
+    will inflict damage with two times the normal dice against such
     creatures, and allows wielder to sense the presence of evil
     creatures.  It will increase your wisdom and will also be a
     blessed blade.
@@ -417,8 +417,7 @@ Ammunition of Slaying
     This ammunition will have unusually large damage dice.
 
 Ammunition of Wounding
-    This ammunition will have unusually large bonuses +to-hit and
-    +to-dam.
+    This ammunition will have unusually bonuses +to-hit and +to-dam.
 
 --- Other Items ---
 
@@ -447,7 +446,7 @@ realms contain equivalent spells.
 ***** <MonkAttacks>
 === Monk Attacks ===
 
-The Monk and ForceTrainer are designed to be barehanded fighters
+The Monk and ForceTrainer is designed to be a barehanded fighter
 rather than using a weapon like the other Hengband classes. As a
 Monk's level increases the number of attacks they get per round
 increases and new, increasingly powerful attacks become
index 7a7861c..2d008b8 100644 (file)
@@ -37,7 +37,7 @@ Each character has a few secondary attributes, height, weight, social
 class, and background history, which are randomly determined, but
 which are affected by the sex and race of the character.  In general,
 these attributes are only used to provide "flavor" to the character,
-to assist in role playing, but they do have a few minor effects on
+to assist in the roll playing, but they do have a few minor effects on
 the game.  For example, background history affects social class, which
 affects the amount of money the character will start with.  And weight
 affects riding ability.
@@ -183,28 +183,26 @@ above.
 === Background Edit-Mode ===
 
 The computer will randomly generate background information text of the
-character for you.  After rolling up the character, you can modify or
-rewrite that text in Background edit-mode.  Use key-pad or cursor keys
-to move the cursor. Use the Enter key to finish edit-mode and save any
-changes. Use the Escape key to finish edit-mode and discard any
-changes. Use Ctrl-A to load the background information text from
-"histpref-<<playername>>.prf" or "histpref.prf" in lib/user.
+character for you.  But you can modify or rewrite it after rolling up
+the character in Background edit-mode.  Use key-pad or cursor keys to
+move cursor, the Enter key to finish edit-mode, and the Escape key to
+finish edit-mode with discarding changes. Use Ctrl-A key to load the
+background information text from "histpref-<<playername>>.prf" or
+"histpref.prf" on lib/user.
 
-Background information text can be supplied in the background
-information pref files as lines of the form "H:<str>". You can use
-conditional expressions as in other pref files. When displayed, the
-background information will be cropped to fit the area available for
-display, which is not very large.
+You can use conditional expressions like other pref files. Background
+information text can be modified in background information pref files
+as lines of the form "H:<str>". Text area is not much large, so too
+long text will cut down.
 
 
 ***** <QuickStart>
 === Quick Start ===
 
-If you have already generated a character and that character died or
-quit, you will be asked whether you want to use quick start or not at
-start up.  If you choose to use quick start, you get a new character
-with exactly same race, class, stat, background and etc. as your last
-character.
+Once you have generated a character and dead or quit game, you will be
+asked whether you want to use quick start or not at start up.  If you
+choose to use quick start, you get new character with exactly same
+race, class, stat, background and etc. as your last character.
 
 
 ***** <PrimaryStats>
@@ -231,7 +229,7 @@ after the "18/" is as "tenth" points, since it often takes the same
 magic to raise a stat from, say, 4 to 5, or 16 to 17, as it does from,
 say, 18/40 to 18/50.  The important thing to remember is that almost all
 internal calculations "ignore" the final digit of any "bonus", so that,
-for example, "18/40" and "18/49" always have the same effects.
+for example, "18/40" and "18/49" are always have the same effects.
 
 --- The Primary Statistics ---
 
@@ -358,16 +356,16 @@ Searching (Searching Ability)
      entirely upon race and class, and will never improve unless
      magically enhanced.
 
-Infravision
-     Infravision is the ability to see heat sources.  Since most of
-     the dungeon is cool or cold, infravision will not allow the
-     player to see walls and objects.  Infravision will allow a
+Infra-vision
+     Infra-vision is the ability to see heat sources.  Since most of
+     the dungeon is cool or cold, infra-vision will not allow the
+     player to see walls and objects.  Infra-vision will allow a
      character to see any warm-blooded creatures up to a certain
      distance.  This ability works equally well with or with out a
      light source.  The majority of Hengband's creatures are
      cold-blooded, and will not be detected unless lit up by a light
-     source.  Most non-human races have innate infravision ability.
-     Humans can gain infravision only if it is magically enhanced.
+     source.  Most non-human races have innate infra-vision ability.
+     Humans can gain infra-vision only if it is magically enhanced.
 
 
 ***** <Proficiency>
index ed09a06..ba27f2d 100644 (file)
@@ -4,23 +4,23 @@ The town is composed of both stores and buildings.
 
 Classical stores:
 Magic Shop: buy your wands, staffs, rings and amulets here.
-Alchemy Shop: for all sorts of bubbling potions and scrolls.
-Weaponsmith's Shop: they deal in anything sharp and to the point.
-Armoury: to offer protection from the ravages of the dungeon.
+Alchemist: for all sorts of bubbling potions and scrolls.
+Weaponsmith: they deal in anything sharp and to the point.
+Armorer: to offer protection from the ravages of the dungeon.
 General Store: food, torches, ammo, some necessities.
-Temple: those items permitted to the pious in life.
-Black Market: the prices are usurious, but may have powerful items!
+Temple Trade: those items permitted to the pious in life.
+Black Market: the prices are usurious, but some depths items!
 Home: to store some of your precious treasures.
 
 Zangband additional (if you do not prefer Ironman/Vanilla):
-The Fighters' Halls, Order of Paladins, Rangers' Taverns, 
-Thieves' Guilds, and the diverse Towers of magic realms 
+The Fighter's Halls, Order of Paladins, Ranger's Taverns, 
+Gilds of Thieves, and the diverse Towers of magic realms 
 are no longer restricted to the professionals involved. 
 Nevertheless some of the services are exclusive for members. 
 Look out for ambitious quests! 
 
 Buildings that anyone can visit if in need of some diversion:
-Gambling Houses: Read the rules before playing. And, the games 
+Gambling Houses: Read the rules before paying. And, the games 
 are not rigged, just naturally difficult.
 Authorities: Ask for quests to gain reputation and rewards.
 Libraries: For information indexes of all kinds.
index c6ea686..2e3d0d6 100644 (file)
@@ -99,7 +99,7 @@ example, use "\" + "." + "6", to specify "run east".
               4     6
               1  2  3
 
- a  Aim a wand                           A  Activate equipped item
+ a  Aim a wand                           A  Activate an equipment
  b  Browse magic list                    B  Bash a door
  c  Close a door                         C  Character description
  d  Drop an item                         D  Disarm a trap
@@ -165,7 +165,7 @@ example, use "\" + "." + "6", to specify "run east".
               h     l
               b  j  n
 
- a  Zap a rod (Activate)                 A  Activate equipped item
+ a  Zap a rod (Activate)                 A  Activate an artifact
  b  (walk - south west)                  B  (run - south west)
  c  Close a door                         C  Character description
  d  Drop an item                         D  Disarm a trap or chest
index eb6e89e..3620a9c 100644 (file)
@@ -24,7 +24,7 @@ Inventory list (i)
      equipment. Often, many identical objects can be "stacked" into a
      "pile" which will count as a single item. This is always true of
      things like potions, scrolls, and food, but you may have to set
-     options to allow wands, staffs, and other such objects to stack.
+     options to allow wands, staves, and other such objects to stack.
      Each object has a weight, and if you carry more objects than your
      strength permits, you will begin to slow down.
  
@@ -369,7 +369,7 @@ Uninscribe an object (})
 ***** <MagicalObject>
 ---  Magical Object Commands ---
 
-Activate equipped item (A)
+Activate an artifact (A)
      You have heard rumors of special weapons and armor deep in the
      Pits, items that can let you breath fire like a dragon or light
      rooms with just a thought. Should you ever be lucky enough to
@@ -390,13 +390,13 @@ Aim a wand (a) or Zap a wand (z)
 Use a staff (u) or Zap a staff (Z)
      This command will use a staff. A staff is normally very similar
      to a scroll, in that they normally either have an area effect or
-     affect a specific object. Staffs are magical devices, and there
+     affect a specific object. Staves are magical devices, and there
      is a chance you will not be able to figure out how to use them.
  
 Zap a rod (z) or Activate a rod (a)
      Rods are extremely powerful magical items, which cannot be burnt
      or shattered, and which can have either staff-like or wand-like
-     effects, but unlike staffs and wands, they don't have charges.
+     effects, but unlike staves and wands, they don't have charges.
      Instead, they draw on the ambient magical energy to recharge
      themselves, and therefore can only be activated once every few
      turns. The recharging time varies depending on the type of rod.
@@ -414,7 +414,7 @@ Fire an item (f) or Fire an item (t)
      throwing an object will often cause it to break, so be careful!
      If you throw something at a creature, your chances of hitting it
      are determined by your pluses to hit, your ability at throwing,
-     and the object's pluses to hit. Once the creature is hit, the
+     and the object's pluses to hit. Once the creature is it, the
      object may or may not do any damage to it. You've heard rumors
      that some objects found in the dungeon can do huge amounts of
      damage when thrown, but you're not sure which objects those
index 31ae51e..cd9cf43 100644 (file)
@@ -15,7 +15,7 @@ attacks which may be of varying type, power and effect.
 
 In addition to pure damage, there can be a number of side-effects from
 a monster hitting you. For example, an especially powerful attack may
-stun or wound you. Stunning is cumulative and, if not addressed, may
+stun you wound you. Stunning is cumulative and, if not addressed, may
 eventually result in you becoming knocked out which allows your
 opponent to continue attacking while you lie helpless. Wounds will
 cause you to lose hit points each round until you either die or your
@@ -135,12 +135,12 @@ of attacks.
 
 In addition to the ordinary armor items your character may find in
 the dungeon, some of them may be endowed with additional powers.
-Those fall into two types:  (1) artifacts and (2) ego armor.
+These armors are fall into two types(1) artifacts; and (2) ego armors.
 Unlike artifacts which are unique and may only be found once in each
-game, it is not unusual to find several pieces of ego armor of the
-same type during the course of a character's adventures.
+game, it is not unusual to find several ego armors of the same type
+during the course of a character's adventures.
 
-In general, artifacts and ego armor may boost one or more of your
+In general, artifacts and ego armors may boost one or more of your
 primary statistics, may confer certain abilities upon your character
 and may grant resistance to certain forms of attack. Each Ego type may
 only be found on certain types of armor - for example, you can find a
@@ -308,7 +308,7 @@ Dragon Shields and Helms
      random resistances.
 
 Other items
-     Apart from these there are some very rare, and well made armor
+     Apart from these there are some very rare, and well made armors
      in the dungeon with not necessarily any special abilities. These
      include Adamantite Plate Mail, Mithril Plate Mail, Mithril Chain
      Mail, Shields of Deflection, and Shadow Cloaks. The first four
@@ -528,9 +528,9 @@ need to take steps to recover from the damage as soon as possible.
 
 --- Healing Items ---
 
-Healing is available in multiple forms including: Potions and Staffs
+Healing is available in multiple forms including: Potions and Staves
 of Cure Light Wounds, Potions of Cure Serious Wounds, Potions of Cure
-Critical Wounds, Potions, Staffs and Rods of Healing, Potions of
+Critical Wounds, Potions, Staves and Rods of Healing, Potions of
 *Healing* and Potions of Life, from weakest to strongest. Both the Life
 and Nature realms contain spells to heal the player.
 
index 9e9ef69..66dfbb5 100644 (file)
@@ -39,7 +39,7 @@ to something you are more comfortable with.
   [[[[g|.|   Patch of grass              [[[[b|*|   Section of the Pattern  
   [[[[G|:|   Flower                      [[[[U|1|   General Store             
   [[[[g|:|   Brake                       [[[[s|2|   Armoury                     
-  [[[[B|.|   Swamp                       [[[[w|3|   Weaponsmith's Shop
+  [[[[B|.|   Swamp                       [[[[w|3|   Weapon Smiths             
   [[[[B|~|   Shallow Water               [[[[g|4|   Temple                     
   [[[[b|~|   Deep Water                  [[[[b|5|   Alchemy Shop             
   [[[[U|~|   Shallow Lava                [[[[r|6|   Magic Shop                     
index 2dabe1a..dfc485d 100644 (file)
@@ -3,7 +3,7 @@
 Please choose one of the following online help files:
 
     (a) The Basics of Auto-picker Editor      (#Editor)            
-    (b) Cut and Paste                         (#CutAndPaste)       
+    (b) Cur and Paste                         (#CutAndPaste)       
     (c) Register to Auto-picker               (#RegisterName)      
     (d) Insert Name from your Inventory       (#InsertObjectName)  
     (e) Insert Fixed Keyword                  (#InsertKeyword)     
@@ -165,7 +165,7 @@ Keywords:
   good              : {good} items match.
   nameless          : Non ego/non artifact items match.
   average           : {average} items match.
-  rare              : Rare equipment such as Dragon armor etc. match.
+  rare              : Rare equipment such as Dragon armors etc. match.
   common            : Any equipments except 'rare' equipment match.
   wanted            : Wanted monster's corpses or skeletons match.
   unique monster's  : Unique monster's corpses, skeletons or statues match.
@@ -181,8 +181,7 @@ Keywords:
   items             : All items match. Use it with an adjective for 
                       readability (i.e. "unaware items").
   weapons           : All weapons including missile weapons match.
-  armors            : Any piece of armor (helm, cloak, body armor, shield,
-                      gloves, or boots) matches.
+  armors            : All armors match.
   missiles          : Arrows, bolts, and shots match.
   magical devices   : Wands, staffs, rods and scrolls match.
   lights            : Light sources match.
@@ -195,7 +194,7 @@ Keywords:
   You may also use keywords which match specified kinds of equipment:
   weapons, armors, missiles, magical devices, lights, junks, spellbooks, 
   hafted weapons, shields, bows, rings, amulets, suits, cloaks, helms, 
-  gloves, boots.
+  gloves, boots
 
 
 Character strings:
index b3e2cf1..937fcf8 100644 (file)
@@ -11,7 +11,7 @@ A. Scroll of Satisfy Hunger and Berserker's ability of Satisfy Hunger
    are obsoleted.  And races which previously relied on Satisfy Hunger
    have new sources of nutrition now; Android can quaff oil.  Balrogs
    can sacrifice human corpse using the 'E'at command.  Golems,
-   Skeletons, Zombies, and Spectres can absorb mana from staffs and
+   Skeletons, Zombies, and Spectres can absorb mana from staves and
    wands using the 'E'at command.  Ents can gain enough nutrition from
    potions.
 
index 6db6689..a7fcc86 100644 (file)
@@ -404,7 +404,7 @@ XdY. これは武器の基本ダメージです。もし攻撃が命中すると
 
 矢 (1d5) (+0,+0) (16/32)
 
-始めの数値は一回の射撃あたりの平均ダメージで、次の数値は1ターンあたり
+始めの数値は一回の射撃あたりの平均ダメージで、次の数値はターンあたり
 の平均ダメージです。上の例は1ターンあたりの射撃回数が2回の場合の例になっ
 ています。
 
@@ -413,15 +413,13 @@ XdY. これは武器の基本ダメージです。もし攻撃が命中すると
 
 ダンジョン内の多くの武器は特定の種類の敵に対して恐るべき力を発揮します。
 それらの特性は総称してスレイと呼ばれます。そうした武器はダイスを振った
-ダメージを二倍以上に増やします。しかしダメージ修正値には影響しません。
-以下にスレイ属性の一覧を示します:
-
-     滅邪 (または*破邪*): 邪悪なモンスターに対してダメージダイス2倍
-     (*破邪* の場合は3.5倍)
-     アニマルスレイヤー・人間スレイヤー: 対応するモンスターに対して
-     ダメージダイス2.5倍(*滅アニマル*・*滅人間* の場合は4倍)
-     その他の~スレイヤー: 対応するモンスターに対してダメージダイス3倍
-     (*~*スレイヤーの場合は5倍)
+ダメージを二倍、あるいは三倍に増やします。しかしダメージ修正値には影響
+しません。以下にスレイ属性の一覧を示します:
+
+     滅邪 : 邪悪なモンスターに対してダメージダイス2倍
+     アニマルスレイヤー: 対応するモンスターに対してダメージダイス2倍
+     その他の~スレイヤー: 対応するモンスターに対してダメージダイス3倍
+     *ドラゴンスレイヤー*:ドラゴンに対してダメージダイス5倍
 
 元素の属性を持つ武器(溶解、焼棄、凍結、電撃、毒殺)はその元素に耐性を持
 たないモンスターに対し 2.5倍のダメージダイスで攻撃します。さらに(吸血) 
index 0892775..81cbb2c 100644 (file)
@@ -1743,7 +1743,7 @@ Official Angband Home Page で確認することができます。
     an underlying keyset
     refueling torches
     better monster memory
-    nicer targeting mode
+    nicer targetting mode
     object stacking
     the recall window
     the choice window
index 0a06fae..7471367 100644 (file)
@@ -21,14 +21,12 @@ intelligence, wisdom, or charisma.  For spellcasting, you must always
 carry spellbooks which include spells which you want to cast.  You can
 choose either one or two realms, depending on class.  
 
-In Hengband, you cannot be as proficient in the second realm as in
-the first realm.  But you can change the second realm to another realm
-of magic even in the middle of the game.  For that, you must choose a
-spellbook of the new realm in the study command ('G').  But beware!
-After changing realms, you will forget all spells of the old realm,
-moreover the forgotten spells still count towards the total number of
-spells you can learn, limiting the number of new spells you'll be
-able to study.
+In Hengband, you cannot be as proficient in secondary realm as in
+first realm.  But you can change secondary realm to other realm of
+magic even in the middle of the game.  For that, you must choose a
+spellbook of new realm in the study command ('G').  But beware! After
+changing realm, you will forget all spells of old realm, moreover the
+number of learning will not be restored and be lost permanently.
 
 Note that certain realms may be prohibited for some classes.  In the
 table below, '1' indicates that the realm may only be the first
@@ -91,8 +89,8 @@ See raceclas.txt#TheClasses [a] for more details.
 --- Life ---
 
      Life magic is very good for healing; it relies mostly on healing,
-     protection and detection spells. Also life magic has a few
-     attack spells as well. It's said that some high level spells of life
+     protection and detection spells. Also life magic have a few
+     attack spells as well. It said that some high level spell of life
      magic can disintegrate Undead monsters into ash.  The fail rate
      of Life spells goes up if the caster's alignment tends towards
      evil.
@@ -217,7 +215,7 @@ See raceclas.txt#TheClasses [a] for more details.
      powerful attack spells with the properties of Fire or Nether.
      There are a few detection spells which provide a map of the
      nearby area or temporary telepathy.  Daemon magic also provides
-     temporary transformation spells which allow caster to become a
+     temporary transformation spells which allow caster to become a
      Demon or a Demon Lord.  The fail rate of Daemon spells goes up
      for casters aligned towards good.
 
@@ -233,12 +231,10 @@ See raceclas.txt#TheClasses [a] for more details.
 ***** <Hex>
 --- Hex ---
 
-     Hex is an abomination of magic, closer to swordsmanship than
-     spell casting.  Some of the spells can be cast continuously,
-     like songs, for more powerful effects.  Hex spells are good
-     at obstructing opponents and returning damage to those who
-     have damaged the caster.  The fail rate of Hex spells goes
-     up for casters aligned towards good.
+     Hex is a realm of 'Curse'; It is technics rather than magics, and
+     casted continually like a songs. Most of spells give terrible
+     effects during they are spelled. The fail rate of Daemon spells
+     goes up for casters aligned towards good.
 
 
 ***** <CastingSpells>
index a18a350..4559c0b 100644 (file)
@@ -186,7 +186,7 @@ Zangband), your pets are often so eager to destroy your opponents that
 they may forget all about you, and you get trampled under their feet
 as they charge at your foe.  In Hengband, however, pets will never
 attack you by mistake; you can walk around in safety even as your pet
-Great Hell Wyrm breathes.  Pets will also never be irritated with you;
+Great Hell Wyrm breaths.  Pets will also never be irritated with you;
 their will is perfectly dominated by you, and all pets are permanently
 your pets.
 
index b8b2fd5..499414c 100644 (file)
@@ -9,7 +9,7 @@ pick up items automatically or to be prompted before picking up
 objects.
 
 Many objects found within the dungeon have special commands for their
-use. Wands must be 'a'imed, staffs must be 'u'sed, scrolls must be
+use. Wands must be 'a'imed, staves must be 'u'sed, scrolls must be
 'r'ead, and potions must be 'q'uaffed. You may, in general, not only
 use items in your pack, but also items on the ground, if you are
 standing on top of them.
@@ -202,7 +202,7 @@ the dying curse of an Amberite.
 ***** <ObjectFlavors>
 === Object Flavors ===
 
-Some objects (scrolls, potions, wands, rods and staffs) are 'flavored
+Some objects (scrolls, potions, wands, rods and staves) are 'flavored
 items'. This means that with each game they are given a random flavor.
 For example, the first time you find a Potion of Heroism it might be
 described as a 'Dark Blue Potion'.  Once you have identified it, the
@@ -227,13 +227,13 @@ your backpack. This sensing ability is called 'pseudo-id'. The speed
 and accuracy of your pseudo-id ability depends on a number of factors
 but the primary considerations are your class and level. Pseudo-id
 speed can be 'slow', 'medium' or 'fast'. Pseudo-id method of weapons
-and armor can be 'strong' or 'weak'. Pseudo-id method of others is
+and armors can be 'strong' or 'weak'. Pseudo-id method of others is
 always 'strong'.
 
 
 Table 1 - Pseudo-Id ability of the Classes
 
-                       Weapons and Armor        Others
+                       Weapons and Armors       Others
     Class              Method     Speed         Speed
     --------------------------------------------------------
     Warrior            Strong     Very Fast     Impossible
@@ -303,7 +303,7 @@ pseudo-id ability to ascertain the quality of some items. For the most
 part you will need to identify them before you can ascertain how much
 use they will be to you. There are several methods of identifying items
 available to you. These include Scrolls of Identify and *Identify*,
-Staffs and Rods of Perception, spells and prayers and services from
+Staves and Rods of Perception, spells and prayers and services from
 town buildings among others.
 
 There is an important difference between 'identify'ing an object and
@@ -334,12 +334,12 @@ in the dungeon, some of them may be endowed with additional powers.
 These objects fall into three types: (b) artifacts which are dealt with
 below and can be identified by their name; (c) Ego Weapons which are
 described more fully in Attacking Monsters (see attack.txt#EgoArtifact
-[g]); and (d) pieces of Ego Armor which are discussed more fully in
-Defending Yourself (see defend.txt#EgoArtifact [h]).
+[g]); and (d) Ego Armors which are discussed more fully in Defending
+Yourself (see defend.txt#EgoArtifact [h]).
 
 Unlike artifacts which are unique and may only be found once in each
-game, it is not unusual to find several Ego Weapons or pieces of Ego
-Armor of the same type during the course of a character's adventures.
+game, it is not unusual to find several Ego Weapons or Ego Armor of the
+same type during the course of a character's adventures.
 
 Note that some Ego Armor types are limited to only certain types of
 armor. For example, you can find a Shield of Elvenkind but not Boots of
@@ -469,7 +469,7 @@ special meaning to inscriptions containing any text of the form "@#" or
 "@x#" or "!x" or "!*" (see command.txt#ObjectSelection [i]) .
 
 The game provides some "fake" inscriptions to help you keep track of
-your possessions. Wands and staffs which are known to be empty will be
+your possessions. Wands and staves which are known to be empty will be
 inscribed with "empty". Objects which have been tried at least once but
 haven't been identified yet will be inscribed with "tried". Cursed
 objects are inscribed with "cursed". Broken objects may be inscribed
@@ -783,15 +783,15 @@ Wands ('-')
     and most wands will require a target.
 
 Staffs ('_')
-    Staffs are a flavored item and are made of various types of wood.
+    Staves are a flavored item and are made of various types of wood.
     Like wands, they contain a limited number of charges and must be
-    recharged when empty. In general, staffs have an area affect or
-    act on the player. Unlike wands, few staffs may be used directly
-    for offense. Staffs must be 'u'sed and do not require a target.
+    recharged when empty. In general, staves have an area affect or
+    act on the player. Unlike wands, few staves may be used directly
+    for offense. Staves must be 'u'sed and do not require a target.
     
 Rods ('-')
-    Rods are similar to both wands and staffs in that many magical
-    effects available from wands and staffs are also available from
+    Rods are similar to both wands and staves in that many magical
+    effects available from wands and staves are also available from
     rods. The main difference is that a rod carries a single charge but
     over time will recharge itself. Typically, the better the rod, the
     longer it will take to recharge itself. This means you have an
index 3d05cd6..15ad187 100644 (file)
@@ -48,7 +48,7 @@ Activate quick messages    [quick_messages]
 ***** <auto_more>
 Automatically clear '-more-' prompts    [auto_more]
     The game does not wait for a keypress when it comes to a -more-
-    prompt and automatically displays the next message.
+    prompt, but carries on going.
 
 ***** <command_menu>
 Enable command selection menu    [command_menu]
@@ -93,7 +93,7 @@ Prompt before exiting a quest level    [confirm_quest]
     you go up the stairs from such quest levels.
 
 ***** <target_pet>
-Allow targeting pets    [target_pet]
+Allow targetting pets    [target_pet]
     Normally, the program doesn't automatically choose pets as target
     in the targeting mode of attack spells. If this option is set, the
     program always chooses every monster in sight as target.
@@ -292,8 +292,8 @@ Plain object descriptions    [plain_descriptions]
 ***** <always_show_list>
 Always show list when choosing items    [always_show_list]
     When this option is set, all commands which lets you to choose an
-    item from inventory or equipment list will automatically show the
-    list when activated.
+    item from inventory or equipment list will automatically show list
+    when activated.
 
 ***** <depth_in_feet>
 Show dungeon level in feet    [depth_in_feet]
@@ -442,10 +442,10 @@ Send score dump to the world score server    [send_score]
 ***** <allow_debug_opts>
 Allow use of debug/cheat options  [allow_debug_opts]
     Since use of debug command(^A), wizard mode(^W), and Cheating
-    options ('C' in options panel) mark the player as a "Cheater"
-    who can't register their score, these debug/cheat options are
+    options ('C' in options panel) mark the player as "Cheater" who
+    can't register their score, these debug/cheat options are
     forbidden to use on default.  The allow_debug_opts option removes
-    these restrictions, and allow the player to become "Cheater".
+    these restrictions, and allow the player to become "Cheater".
 
 
 ***** <Disturbance>
@@ -535,7 +535,7 @@ Disturb whenever player state changes    [disturb_state]
 
 ***** <disturb_minor>
 Disturb whenever boring things happen    [disturb_minor]
-    This option causes you to be disturbed by various boring things,
+    This option causes you to be disturbed by various bring things,
     including monsters bashing down doors, inventory feelings, and
     beginning to run out of fuel.
 
@@ -762,7 +762,7 @@ Display overhead view
     and does not even look very good.
 
 Display monster recall
-    Display a description of the monster which has been most recently
+    Display a description of the most monster which has been most recently
     attacked, targeted, or examined in some way.
 
 Display object recall
@@ -789,7 +789,7 @@ Display borg status
 ***** <Cheating>
 === Option C - Cheating Options ===
 
-Using the cheating options marks your character as "Cheater" and
+Using the cheating options marks your character as "Cheater" and
 you won't get into the high-score list.  Turning off the cheating
 options later does NOT allow your character to get a highscore entry,
 so think twice before using any cheat.
@@ -909,7 +909,7 @@ Always generate very unusual rooms (*)    [ironman_rooms]
 Nightmare mode(it isn't even remotely fair!)(*)    [ironman_nightmare]
     If this option is enabled, all monsters become unusually
     powerful, and fast. And there will be various unbelievable
-    happenings from time to time. Furthermore, at 12:00 every
+    happening in various situations. Furthermore, at 12:00 every
     night, you will have a real nightmare.
 
 ***** <left_hander>
index defeccd..b3aa812 100644 (file)
@@ -51,8 +51,8 @@ intuitive way than the user pref commands allow. The commands include
 "Interact with macros" (@), "Interact with visuals" (%), and "Interact
 with colors" (&), described below.
 
-In Hengband, all preferences which will be generated in-game are not
-simply appended to old files but replace old lines. You don't need to
+In Hengband, all preference which will be generated in-game are not
+simply appended to old files but replaces old lines. You don't need to
 delete old lines with text editor.
 
 ***** <Commands>
index fb6c0e1..8cf4447 100644 (file)
@@ -53,9 +53,9 @@ by the racial/class power command ("U"/"O").
     good saving throws.  They also are very good at searching,
     disarming, perception, and stealth; so they make excellent rogues,
     but prefer to be called burglars.  They are much weaker than
-    humans and no good at melee fighting.  Halflings have fair
+    humans, and no good at melee fighting.  Halflings have fair
     infravision, so they can detect warm creatures at a distance.
-    They have a strong hold on their life force and are thus
+    They have a strong hold on their life force, and are thus
     intrinsically resistant to life draining.
 
 
@@ -64,10 +64,10 @@ by the racial/class power command ("U"/"O").
 
     Gnomes are smaller than dwarves but larger than Halflings.  They,
     like the hobbits, live in the earth in burrow-like homes.  Gnomes
-    make excellent mages and have very good saving throws.  They are
+    make excellent mages, and have very good saving throws.  They are
     good at searching, disarming, perception, and stealth.  They have
     lower strength than humans so they are not very good at fighting
-    with hand weapons.  Gnomes have fair infravision, so they can
+    with hand weapons.  Gnomes have fair infra-vision, so they can
     detect warm-blooded creatures at a distance.  Gnomes are
     intrinsically protected against paralysis.
 
@@ -79,7 +79,7 @@ by the racial/class power command ("U"/"O").
     tend to be stronger and tougher but slower and less intelligent
     than humans.  Because they are so headstrong and are somewhat
     wise, they resist spells which are cast on them.  They are very
-    good at searching, perception, fighting, and bows.  Dwarves have
+    good at searching, perception, fighting, and bows.  Dwarves have a
     miserable stealth.  They can never be blinded.
 
 
@@ -88,7 +88,7 @@ by the racial/class power command ("U"/"O").
 
     Half-orcs make excellent warriors, but are terrible at magic.
     They are as bad as dwarves at stealth, and horrible at searching,
-    disarming, and perception.  Half-orcs are quite ugly and tend to
+    disarming, and perception.  Half-orcs are quite ugly, and tend to
     pay more for goods in town.  Because of their preference to living
     underground to on the surface, half-orcs resist darkness attacks.
 
@@ -96,13 +96,13 @@ by the racial/class power command ("U"/"O").
 ***** <Half-Troll>
 --- Half-Troll ---
 
-    Half-Trolls are incredibly strong and have more hit points than
+    Half-Trolls are incredibly strong, and have more hit points than
     most other races.  They are also very stupid and slow.  They are
     bad at searching, disarming, perception, and stealth.  They are so
     ugly that a Half-Orc grimaces in their presence.  They also happen
     to be fun to run...  Half-trolls always have their strength
     sustained.  At higher levels, Half-Trolls regenerate wounds
-    automatically and, if a warrior, require food less often.
+    automatically, and if he or her is warrior slowly.
 
 
 ***** <Amberite>
@@ -110,8 +110,8 @@ by the racial/class power command ("U"/"O").
 
     The Amberites are a reputedly immortal race, who are endowed with
     numerous advantages in addition to their longevity.  They are very
-    tough and their constitution cannot be reduced.  Their ability to
-    heal wounds far surpasses that of any other race.  Having seen
+    tough and their constitution cannot be reduced, and their ability
+    to heal wounds far surpasses that of any other race.  Having seen
     virtually everything, very little is new to them, and they gain
     levels much slower than the other races.
 
@@ -154,10 +154,10 @@ by the racial/class power command ("U"/"O").
 ***** <Half-Giant>
 --- Half-Giant ---
 
-    Half-Giants' limited intelligence makes it difficult for them to
-    become full spellcasters, but, with their great strength, they
-    make excellent warriors.  Their thick skin makes them resistant
-    to shards, and, like Half-Ogres and Half-Trolls, they have their
+    Half-Giants limited intelligence makes it difficult for them to
+    become full spellcasters, but with their huge strength they make
+    excellent warriors.  Their thick skin makes them resistant to
+    shards, and like Half-Ogres and Half-Trolls, they have their
     strength sustained.
 
 
@@ -258,9 +258,9 @@ by the racial/class power command ("U"/"O").
 ***** <Imp>
 --- Imp ---
 
-    Demon-creatures from the nether-world, imps are naturally resistant
-    to fire attacks and capable of learning fire bolt and fire ball
-    attacks.  They are little loved by other races but can perform
+    A demon-creature from the nether-world, naturally resistant to
+    fire attacks, and capable of learning fire bolt and fire ball
+    attacks.  They are little loved by other races, but can perform
     fairly well in most professions.  As they advance levels, they
     gain the powers of See Invisible.
 
@@ -275,7 +275,7 @@ by the racial/class power command ("U"/"O").
     poison, they can see invisible things, and move freely.  At higher
     levels, they also become resistant to attacks which threaten to
     drain away their life force.  Golems gain very little nutrition
-    from ordinary food, but can absorb mana from staffs and wands as
+    from ordinary food, but can absorb mana from staves and wands as
     their power source.  Golems also gain a natural armor class bonus
     from their tough body.
 
@@ -293,7 +293,7 @@ by the racial/class power command ("U"/"O").
     effects of these will affect the skeleton even without entering
     the skeleton's (non-existent) belly, the potion or food itself
     will fall through the skeleton's jaws, giving no nutritional
-    benefit.  They can absorb mana from staffs and wands as their
+    benefit.  They can absorb mana from staves and wands as their
     energy source.
 
 
@@ -307,7 +307,7 @@ by the racial/class power command ("U"/"O").
     see invisible.  While still vulnerable to cuts (unlike skeletons),
     Zombies are resistant to Nether.  Like Golems, they gain very
     little nutrition from the food of mortals, but can absorb mana
-    from staffs and wands as their energy source.
+    from staves and wands as their energy source.
 
 
 ***** <Vampire>
@@ -337,14 +337,14 @@ by the racial/class power command ("U"/"O").
     cold.  They also resist nether.  At higher levels they develop
     telepathic abilities.  Spectres make superb spellcasters, but
     their physical form is very weak.  They gain very little nutrition
-    from the food of mortals, but can absorb mana from staffs and
+    from the food of mortals, but can absorb mana from staves and
     wands as their energy source.
 
 
 ***** <Sprite>
 --- Sprite ---
 
-    One of several fairy races, Sprites are very small.  They have
+    One of the several fairy races, Sprites are very small.  They have
     tiny wings and can fly over traps that may open up beneath them.
     They enjoy sunlight intensely, and need worry little about light
     based attacks.  Although physically among the weakest races,
@@ -356,7 +356,7 @@ by the racial/class power command ("U"/"O").
 ***** <Beastman>
 --- Beastman ---
 
-    This race is a blasphemous abomination produced by Chaos.  It is
+    "This race is a blasphemous abomination produced by Chaos.  It is
     not an independent race but rather a humanoid creature, most often
     a human, twisted by the Chaos, or a nightmarish crossbreed of a
     human and a beast.  All Beastmen are accustomed to Chaos so much
@@ -418,9 +418,9 @@ by the racial/class power command ("U"/"O").
 ***** <Shadow-Fairy>
 --- Shadow Fairy ---
 
-    Shadow Fairies are one of several fairy races.  They have wings,
-    and can fly over traps that may open up beneath them.  Shadow
-    Fairies must beware of sunlight, as they are vulnerable to
+    Shadow Fairies are one of the several fairy races.  They have
+    wings, and can fly over traps that may open up beneath them.
+    Shadow Fairies must beware of sunlight, as they are vulnerable to
     bright light.  They are physically weak, but have advantages in
     using magic and are amazingly stealthy.  Shadow Fairies have a
     wonderful advantage in that they never aggravate monsters (If
@@ -475,8 +475,8 @@ command("U"/"O").
 --- Warrior ---
 
     A Warrior is a hack-and-slash character, who solves most of his
-    or her problems by cutting them to pieces, but will occasionally
-    fall back on the help of a magical device.  Unfortunately, many
+    problems by cutting them to pieces, but will occasionally fall
+    back on the help of a magical device.  Unfortunately, many
     high-level devices may be forever beyond their use.
 
     Warriors cast no spells.  They hate magic.  In fact, they even
@@ -488,13 +488,12 @@ command("U"/"O").
 ***** <Mage>
 --- Mage ---
 
-    A Mage is a spell caster that must live by his or her wits as
-    a mage cannot hope to simply hack his or her way through the
-    dungeon like a warrior.  In addition to spellbooks, a mage
-    should carry a range of magical devices to help his or her
-    endeavors.  A mage can master those devices far more easily
-    than anyone else.  A Mage's prime statistic is Intelligence
-    as this determines his or her spell casting ability.
+    A Mage is a spell caster that must live by his wits as he cannot
+    hope to simply hack his way through the dungeon like a warrior.
+    In addition to his spellbooks, a Mage should carry a range of
+    magical devices to help him in his endeavors which he can master
+    far more easily than anyone else.  A Mage's prime statistic is
+    Intelligence as this determines his spell casting ability.
 
     Mages have the least restrictions in choosing and learning spells.
     They can freely choose any two realms when a character is created.
@@ -505,26 +504,25 @@ command("U"/"O").
     second realm can be changed in the middle of the game.  You can
     change second realm by studying ("G") from a spellbook of new
     realm.  They have a class power - 'Eat Magic' - which absorbs mana
-    from wands, staffs or rods.
+    from wands, staves or rods.
 
 
 ***** <Priest>
 --- Priest ---
 
-    A Priest is a character devoted to serving a higher power.  He
-    or she explores the dungeon in the service of a God.  Since
-    Priests receive new prayers as gifts from their patron deity,
-    they cannot choose which ones they will learn.  Priests are
-    familiar with magical devices which they believe act as foci for
-    divine intervention in the natural order of things.  A priest
-    wielding an edged weapon will be so uncomfortable with it that
-    his or her fighting ability decreases.  A Priest's primary stat
-    is Wisdom since this determines the success of the prayers to
-    his or her deity.
+    A Priest is a character devoted to serving a higher power.  They
+    explore the dungeon in the service of their God.  Since Priests
+    receive new prayers as gifts from their patron deity, they cannot
+    choose which ones they will learn.  Priests are familiar with
+    magical devices which they believe act as foci for divine
+    intervention in the natural order of things.  A priest wielding an
+    edged weapon will be so uncomfortable with it that his fighting
+    ability.  A Priest's primary stat is Wisdom since this determine
+    his success at praying to his deity.
 
     Priest can select from Life, Death, Daemon, or Crusade as a first
-    realm, and choose a second realm almost freely.  But pairs of a
-    good magic and an evil magic from these four realms are not allowed.
+    realm, and choose second realm almost freely.  But pairs of a good
+    magic and an evil magic from these four realms are not allowed.
     Priests can learn all spells in the selected realms, even if not
     as efficiently as mages.  However, when learning spells, priests
     cannot voluntarily decide which spells to study: they are rewarded
@@ -540,13 +538,14 @@ command("U"/"O").
 ***** <Rogue>
 --- Rogue ---
 
-    A Rogue is a character that prefers to live by his or her cunning,
-    but is capable of fighting out of a tight spot.  Rogues are good
-    at locating hidden traps and doors and are the masters of disarming
-    traps and picking locks.  A rogue is very stealthy, allowing him or
-    her to sneak around many creatures without having to fight or to
-    get in a telling first blow.  A rogue may also backstab a fleeing
-    monster.  Intelligence determines a Rogue's spell casting ability.
+    A Rogue is a character that prefers to live by his cunning, but is
+    capable of fighting his way out of a tight spot.  Rogues are good
+    at locating hidden traps and doors and are the masters of
+    disarming traps and picking locks.  A rogue has a high stealth
+    allowing him to sneak around many creatures without having to
+    fight, or to get in a telling first blow.  A rogue may also
+    backstab a fleeing monster.  Intelligence determines a Rogue's
+    spell casting ability.
 
     Rogues can select one realm from Sorcery, Death, Trump, Arcane, or
     Craft.  All Rogues have certain limitations on which spells they
@@ -559,10 +558,10 @@ command("U"/"O").
 --- Ranger ---
 
     A Ranger is a combination of a warrior and a mage who has
-    developed a special affinity for the natural world.  He or she
-    is a good fighter and also good with missile weapons such as
-    bows.  A ranger has good stealth, good perception, good
-    searching, good saving throws and is good with magical devices.
+    developed a special affinity for the natural world around him.  He
+    is a good fighter and also good about a missile weapon such as a
+    bow.  A ranger has a good stealth, good perception, good
+    searching, a good saving throw and is good with magical devices.
     Intelligence determines a Ranger's spell casting ability.
 
     All rangers are trained in Nature magic, and all Nature spells are
@@ -580,10 +579,10 @@ command("U"/"O").
 
     A Paladin is a combination of a warrior and a priest.  Paladins
     are very good fighters, but not very good at missile weapons.  A
-    paladin lacks much in the way of abilities.  He or she is poor at
+    paladin lacks much in the way of abilities.  He is poor at
     stealth, perception, searching, and magical devices but has a
     decent saving throw due to his divine alliance.  Wisdom determines
-    a Paladin's success at praying to his or her deity.
+    a Paladin's success at praying to his deity.
 
     Paladins can select a realm from Crusade and Death.  Like priests,
     they cannot select which prayers to learn, but are rewarded with
@@ -600,11 +599,11 @@ command("U"/"O").
 --- Warrior-Mage ---
 
     A Warrior-Mage is precisely what the name suggests: a cross
-    between the warrior and mage classes.  Unlike rangers, who
-    specialize in Nature magic and survival skills, true Warrior-
-    Mages attempt to reach the best of both worlds.  As warriors
-    they are much superior to the usual Mage class.  Intelligence
-    determines a Warrior-Mage's spell casting ability.
+    between the warrior and mage classes.  While their brothers, the
+    rangers, specialize in Nature magic and survival skills, true
+    Warrior-Mages attempt to reach the best of both worlds.  As
+    warriors they are much superior to the usual Mage class.
+    Intelligence determines a Warrior-Mage's spell casting ability.
 
     Warrior-mages begin the game with Arcane magic, and they can
     freely select another realm of magic.  Although they do not gain
@@ -620,14 +619,14 @@ command("U"/"O").
 
     Chaos Warriors are the feared servants of the terrible Demon Lords
     of Chaos.  Every Chaos Warrior has a Patron Demon and, when
-    gaining a level, may receive a reward from his or her Patron.  He
-    or she might be healed or polymorphed, given an awesome weapon,
-    or have his or her stats increased.  On the other hand, the Patron
-    might surround the Chaos Warrior with monsters, drain his or her
-    stats, wreck his or her equipment, or simply ignore the Chaos
-    Warrior.  The Demon Lords of Chaos are chaotic and unpredictable
-    indeed.  The exact type of reward depends on both the Patron Demon
-    (different Demons give different rewards) and chance.
+    gaining a level, may receive a reward from his Patron.  He might
+    be healed or polymorphed, his stats could be increased, or he
+    might be rewarded with an awesome weapon.  On the other hand, the
+    Patrons might surround him with monsters, drain his stats or wreck
+    his equipment or they might simply ignore him.  The Demon Lords of
+    Chaos are chaotic and unpredictable indeed.  The exact type of
+    reward depends on both the Patron Demon (different Demons give
+    different rewards) and chance.
 
     Chaos Warriors can select a realm from Chaos and Daemon.  They are
     not interested in any other form of magic.  They can learn every
@@ -642,11 +641,11 @@ command("U"/"O").
     Their training in martial arts makes them much more powerful with
     no armor or weapons.  To gain the resistances necessary for
     survival a monk may need to wear some kind of armor, but if the
-    armor he or she wears is too heavy, it will severely disturb his
-    or her martial arts maneuvers.  As the monk advances levels, new,
-    powerful forms of attack become available.  Their defensive
-    capabilities increase likewise, but if armour is being worn, this
-    effect decreases.  Wisdom determines a Monk's spell casting ability.
+    armor he wears is too heavy, it will severely disturb his martial
+    arts maneuvers.  As the monk advances levels, new, powerful forms
+    of attack become available.  Their defensive capabilities increase
+    likewise, but if armour is being worn, this effect decreases.
+    Wisdom determines a Monk's spell casting ability.
 
     The different sects of monks are devoted to different areas of
     magic.  They select a realm from Life, Nature, Craft, and Death.
@@ -681,13 +680,13 @@ command("U"/"O").
     High-mages are mages who specialize in one particular field of
     magic and learn it very well - much better than the ordinary mage.
     A high mage's prime statistic is intelligence as this determines
-    his or her spell casting ability.
+    his spell casting ability.
 
     For the price of giving up a second realm of magic, High-mages
     gain substantial benefits in the mana costs, minimum levels, and
     failure rates of the spells in their speciality realm.  They have
     a class power - 'Eat Magic' - which absorbs mana from wands,
-    staffs, or rods.
+    staves, or rods.
 
     And then, only High-Mages are able to cast Hex spells.
 
@@ -696,7 +695,7 @@ command("U"/"O").
 --- Tourist ---
 
     Tourists have visited this world for the purpose of sightseeing.
-    Their fighting skills are bad, and they cannot cast powerful
+    Their fighting skills is bad, and they cannot cast powerful
     spells.  They are the most difficult class to win the game with.
     Intelligence determines a tourist's spell casting ability.
 
@@ -720,12 +719,12 @@ command("U"/"O").
     When monsters in view use spells, they are added to a temporary
     spell list which the imitator can choose among.  Spells should be
     imitated quickly, because timing and situation are everything.  An
-    imitator can only repeat a spell once each time he or she observes
-    it.  They only have a small long-term memory for spells, which
-    ranges from one to three, depending on their level.  When they
-    memorize more spells than this, they will forget the oldest spell
-    in the list.  They have a class power - 'Double Revenge' - which
-    allows them to imitate spells at double damage or duration.
+    imitator can only repeat a spell once each time he observes it.
+    They only have a small long-term memory for spells, which ranges
+    from one to three, depending on their level.  When they memorize
+    more spells than this, they will forget the oldest spell in the
+    list.  They have a class power - 'Double Revenge' - which allows
+    them to imitate spells at double damage or duration.
 
 
 ***** <BeastMaster>
@@ -733,11 +732,11 @@ command("U"/"O").
 
     Beastmasters are in tune with the minds of the creatures of the
     world of Hengband.  They are very good at riding, and have enough
-    fighting ability.  The monsters that a beastmaster summons or
-    dominates become the beastmaster's hands and feet.  Beastmasters
-    can cast trump magic and are very good at summoning spells, but
-    they can not summon non-living creatures.  Charisma determines a
-    Beastmaster's spell casting ability.
+    fighting ability.  They use monsters which summoned or dominated
+    by him as his hands and feet.  Beastmasters can cast trump magic,
+    and very good at summoning spell, but they can not summon
+    non-living creatures.  Charisma determines a Beastmaster's spell
+    casting ability.
 
     Beastmasters use Trump magic to make good use of their monster
     domination and riding abilities.  They are very good at summoning
@@ -758,7 +757,7 @@ command("U"/"O").
     Sorcerers can cast any spell from any spellbooks of all nine magic
     realms with 'Master' proficiency level without having to learn it.
     They have a class power - 'Eat Magic' - which absorbs mana from
-    wands, staffs or rods.
+    wands, staves or rods.
 
 
 ***** <Archer>
@@ -837,7 +836,7 @@ command("U"/"O").
     techniques.  Samurai are not good at most other skills, and many
     magical devices may be too difficult for them to use.  Wisdom
     determines a Samurai's ability to use the special combat
-    techniques available to him or her.
+    techniques available to him.
 
     Samurai use the art of the blade called Kendo (or Bugei).  Books
     of Kendo are similar to spellbooks, but Samurai don't need to
@@ -856,7 +855,7 @@ command("U"/"O").
 --- ForceTrainer ---
 
     A ForceTrainer is a master of the spiritual Force.  They prefer
-    fighting with neither weapons nor armor.  They are not as good
+    fighting with neither weapon nor armor.  They are not as good
     fighters as are Monks, but they can use both magic and the
     spiritual Force.  Wielding weapons or wearing heavy armor disturbs
     use of the Force.  Wisdom is a ForceTrainer's primary stat.
@@ -878,12 +877,12 @@ command("U"/"O").
 ***** <Blue-Mage>
 --- Blue-Mage ---
 
-    A Blue-Mage is a spell caster that must live by his or her wits,
-    as a Blue-Mage cannot hope to simply hack his or her way through
-    the dungeon like a warrior.  A major difference between the Mage
-    and the Blue-Mage is the method of learning spells: Blue-Mages
-    may learn spells from monsters.  A Blue-Mage's prime statistic
-    is Intelligence as this determines his or her spell casting ability.
+    A Blue-Mage is a spell caster that must live by his wits, as he
+    cannot hope to simply hack his way through the dungeon like a
+    warrior.  A major difference between the Mage and the Blue-Mage is
+    the method of learning spells: Blue-Mages may learn spells from
+    monsters.  A Blue-Mage's prime statistic is Intelligence as this
+    determines his spell casting ability.
 
     A Blue-Mage can learn and cast monster ranged attacks, spells, or
     summons as their own spells; this technique is called Blue magic.
@@ -932,15 +931,15 @@ command("U"/"O").
 ***** <Weaponsmith>
 --- Weaponsmith ---
 
-    A Weaponsmith can improve weapons and armor for him or herself.
+    A Weaponsmith can improve weapons and armors for him or herself.
     They are good at fighting, and they have potential ability to
-    become even better than Warriors using improved equipment.  They
+    become even better than Warriors using improved equipments.  They
     cannot cast spells, and are poor at skills such as stealth or
     magic defense.
 
     A Weaponsmith extract the essences of special effects from weapons
-    or armor which have various special abilities, and can add these
-    essences to another weapon or armor.  Normally, each item can
+    or armors which have various special abilities, and can add these
+    essences to another weapon or armor.  Normally, each equipment can
     be improved only once, but they can remove a previously added
     essence from improved equipment to improve it with another
     essence.  To-hit, to-damage bonus, and AC can be improved freely
@@ -978,7 +977,7 @@ command("U"/"O").
     navigate effectively with no light source, catch enemies unawares,
     and kill with a single blow.  Ninjas can use Ninjutsu, and are
     good at locating hidden traps and doors, disarming traps and
-    picking locks.  Since heavy armor, heavy weapons, or shields will
+    picking locks.  Since heavy armors, heavy weapons, or shields will
     restrict their motion greatly, they prefer light clothes, and
     become faster and more stealthy as they gain levels.  A Ninja
     knows no fear and, at high level, becomes almost immune to poison
@@ -1050,7 +1049,8 @@ its own adjustments to a character's stats and abilities.
 ***** <Nimble>
 --- Nimble ---
 
-    "Nimble" improves most skills except for melee combat.
+    "Nimble" renders you highly skilled comparatively well, but
+    reduces your physical ability.
 
 
 ***** <Fearless>
@@ -1104,7 +1104,7 @@ its own adjustments to a character's stats and abilities.
 ***** <Munchkin>
 --- Munchkin ---
 
-    "Munchkin" is a personality for beginners.  It raises all your
+    "munchkin" is a personality for beginners.  It raises all your
     stats and skills.  With this personality, you can win the game
     easily, but gain little honor in doing so.
 
index 3e524cf..1d7ff66 100644 (file)
@@ -49,15 +49,15 @@ an absolutely ridiculous price. Any good item can show up in this store
 show up in other stores.
 
 
-Be sure to visit shops #1 and #2, the General Store and Armoury,
+Be sure to visit shops #1 and #2, the General Store and Armory,
 respectively. At the General Store, buy a cloak and a Brass Lantern,
-and a flask of oil or two. Sell your torches. At the Armoury, buy some
+and a flask of oil or two. Sell your torches. At the Armory, buy some
 of the light armor. Suggested: Hard Leather Boots, a Leather Cap,
 Leather Gloves. If a Small Leather Shield is on sale and you can afford
 it, buy it.
 
 This should have cleaned out your money. However, if it hasn't, it is
-strongly recommended that you go to the Alchemy Shop (#5) and
+strongly recommended that you go to the Alchemist's shop (#5) and
 purchase a scroll of Phase Door. If you get surrounded by monsters,
 read it, and you'll be teleported a short distance away.
 
@@ -170,7 +170,7 @@ damage, and magical bonuses to stats. It also tells you if the item is
 cursed. It tells you what a wand/rod/staff/potion/scroll/mushroom/etc.
 does, and this is very important. There are nasty potions deep in the
 dungeon that you *do not* want to drink! Sometimes, the descriptions of
-the items are a little obscure; things like Staffs of Holiness and
+the items are a little obscure; things like Staves of Holiness and
 Power, Mushrooms of Unhealth, and others. You may have to experiment a
 bit to determine their powers. 
 
@@ -224,7 +224,7 @@ draining attacks respectively.
 Resistances can be provided by certain items and also may be part of
 your racial characteristics. There are certain types of items that
 provide all four elemental resistances. These include Defender weapons,
-Robes of Permanence, armor or shields of Resistance, armor of Elvenkind,
+Robes of Permanence, armors/shields of Resistance, armor of Elvenkind,
 and Helms/Crowns of the Magi. Many artifacts also provide some or all
 of the basic resistances, and also perhaps one or two "high"
 resistances.
@@ -275,7 +275,7 @@ you watch, helpless.
 
 Confusion and Blindness resistance are vital. If you have these, you
 can rely on scrolls of Teleportation to get you out of any situation.
-Before this, you need Staffs of Teleportation which can be activated
+Before this, you need Staves of Teleportation which can be activated
 when blinded or confused, although with a decent failure rate. Scrolls
 are fail-safe.
 
@@ -366,7 +366,7 @@ level" which gives you no information whatsoever.
 === On weapons and armor ===
 
 Your equipment will always carry around little numbers that tell you
-how effective it is. Pieces of armor take this form:
+how effective it is. Armors take this form:
  
 A Robe (+x,+y) [a,+b] (+c)
  
@@ -374,7 +374,7 @@ Weapons take this form:
  
 A Long Sword (XdY) (+x,+y) [+b] (+c)
  
-When unidentified, pieces of armor will show just this:
+When unidentified, armors will show just this:
  
 A Robe [a]
  
@@ -384,14 +384,13 @@ A Long Sword (XdY)
  
 (+x,+y). This is the item's magical bonuses to your to-hit and
 to-damage bonus respectively. These are added to whatever other
-bonuses you have when you attack. Some pieces of armor have
-similar bonuses to your to-hit and to-damage, but they are mostly
-artifacts, the exceptions being Gloves/Gauntlets/Cesti of Slaying
-and Power. Many pieces of body armor have a small negative number
-before the base armor bonus (see below); this is a penalty to your
-skill (the armor is so heavy that you have trouble moving around
-in it). However, this penalty is small enough for all but the
-youngest of characters to ignore.
+bonuses you have when you attack. Some armors have similar bonuses to
+your to-hit and to-damage, but they are mostly artifacts, the
+exceptions being Gloves/Gauntlets/Cesti of Slaying and Power. Many
+body armors have a small negative number before the base armor bonus
+(see below); this is a penalty to your skill (the armor is so heavy
+that you have trouble moving around in it). However, this penalty is
+small enough for all but the youngest of characters to ignore.
 
 Rings of Combat or Skill have a single (+y) or (+x). When worn, they
 affect your to-damage and to-hit bonus in melee battle respectively.
@@ -449,23 +448,19 @@ melee weapons.)
 
 Many weapons you find in the dungeon are considered to be particularly
 deadly against a type of creature. These qualities are collectively
-known as slays. They multiply *the damage done by the damage dice* by
-a value between two and five, depending on the specific quality. They
-DO NOT affect bonuses to damage. Thus, while slays may play an
-important part in the early game (especially if you find a weapon
-of Slay Orc), in the later part of the game, where magical bonuses
-to damage all but take over combat, slays play a very minor role. The
-rundown on slays:
-
-     Slay (or *Slay*) Evil: x2 (x3.5 for *Slay*) damage dice against
-       evil monsters
-     Slay (or *Slay*) Animal, Human: x2.5 (x4.0 for *Slay*) against
-       the relevant monster type
-     Slay (or *Slay*) Undead, Demon, Orc, Troll, Giant, Dragon: x3
-       (x5 for *Slay*) damage dice against the relevant monster type
+known as slays. They double, triple, or multiply by five *the damage
+done by the damage dice*. They DO NOT affect bonuses to damage. Thus,
+while slays may play an important part in the early game (especially if
+you find a weapon of Slay Orc), in the later part of the game, where
+magical bonuses to damage all but take over combat, slays play a very
+minor role. The rundown on slays:
+
+     Slay (or *Slay*) Evil: x2 damage dice against evil monsters
+     Slay (or *Slay*) Animal, Undead, Demon, Giant, Dragon: x2 damage
+       dice against the relevant monster type
 
 The brands ("of Melting", "of Burning", "of Freezing", "of Shocking",
-and "of Poisoning") all do x2.5 damage dice to those monsters not
+and "of Poisoning") all do x2 damage dice to those monsters not
 resistant to the relevant element. There is also a "(Vampiric)" brand
 which will suck life from your foes and heal you at the same time and
 a "(Chaotic)" brand which can cause some unexpected results when using
index 3c8eba4..daf2f8c 100644 (file)
@@ -260,8 +260,8 @@ The General Store ("1")
      lamps, oil, shovels, picks, and spikes. All of these items and
      some others can be sold back to the General store for money.
 
-The Armoury ("2")
-     The Armoury is where the town's armor is fashioned. All sorts of
+The Armory ("2")
+     The Armory is where the town's armor is fashioned. All sorts of
      protective gear may be bought and sold here.
 
 The Weaponsmith's Shop ("3")
@@ -274,12 +274,12 @@ The Temple ("4")
      bless scrolls, word of recall scrolls, some approved priestly
      weapons, as well as books of Life magic for priests and paladins.
 
-The Alchemy Shop ("5")
+The Alchemy shop ("5")
      The Alchemy Shop deals in all types of potions and scrolls.
 
-The Magic Shop ("6")
-     The Magic Shop deals in all sorts of rings, wands, amulets,
-     and staffs, as well as some magic books.
+The Magic User's Shop ("6")
+     The Magic User's Shop deals in all sorts of rings, wands, amulets,
+     and staves, as well as some magic books.
 
 The Black Market ("7")
      The Black Market will sell and buy anything at extortionate
index 75e2d38..1e33628 100644 (file)
@@ -206,7 +206,7 @@ Implemented 'Saved Floors':
 - Removed scrolls of satisfy hunger and that class power of Berserkers.
   Androids can quaff flasks of oil.
   Barlogs can sacrifice corpses with symbol 't','p', or 'h' using the Eat command.
-  Golems, Zombies, Skeletons, and Spectors can Eat charges of wands and staffs.
+  Golems, Zombies, Skeletons, and Spectors can Eat charges of wands and staves.
   Ents can get nutritions from water in any potions.
 - Added lists of known monsters/objects from Eyangband.
 - Shift + direction keys will move cursor quickly in the look command.
index 8a6b5ef..e7d0eed 100644 (file)
@@ -7,7 +7,7 @@ EXTRA_DIST = \
   $(angband_files)
 
 if SET_GID
-angbanddir = @DEFAULT_PATH@info
+angbanddir = @DEFAULT_LIB_PATH@/info
 
 angband_DATA = \
   $(angband_files)
index efe4191..65e6bf0 100644 (file)
@@ -6,7 +6,7 @@ angband_files = \
        font-ami.prf font-dos.prf font-ibm.prf font-mac.prf \
        font-mon.prf font-win.prf font-x11.prf font-xxx.prf \
        font.prf graf-ami.prf graf-dos.prf graf-gcu.prf \
-       graf-ibm.prf graf-mac.prf graf-new.prf graf-ne2.prf graf-win.prf \
+       graf-ibm.prf graf-mac.prf graf-new.prf graf-win.prf \
        graf-x11.prf graf-xaw.prf graf-xxx.prf graf.prf \
        pref-acn.prf pref-ami.prf pref-emx.prf pref-gcu.prf \
        pref-key.prf pref-mac.prf pref-opt.prf pref-win.prf \
@@ -18,7 +18,7 @@ EXTRA_DIST = \
   $(angband_files)
 
 if SET_GID
-angbanddir = @DEFAULT_PATH@pref
+angbanddir = @DEFAULT_LIB_PATH@/pref
 
 angband_DATA = \
   $(angband_files)
index c92fde5..d967ae9 100644 (file)
@@ -7,7 +7,7 @@ EXTRA_DIST = \
   $(angband_files)
 
 if SET_GID
-angbanddir = @DEFAULT_PATH@save
+angbanddir = @DEFAULT_VAR_PATH@/save
 
 angband_DATA = \
   $(angband_files)
index ce5ddb5..aef9b0a 100644 (file)
@@ -7,7 +7,7 @@ EXTRA_DIST = \
   $(angband_files)
 
 if SET_GID
-angbanddir = @DEFAULT_PATH@script
+angbanddir = @DEFAULT_LIB_PATH@/script
 
 angband_DATA = \
   $(angband_files)
index 0d34a7c..263c2c5 100644 (file)
@@ -7,7 +7,7 @@ EXTRA_DIST = \
   $(angband_files)
 
 if SET_GID
-angbanddir = @DEFAULT_PATH@user
+angbanddir = @DEFAULT_VAR_PATH@/user
 
 angband_DATA = \
   $(angband_files)
index 7098ee0..bbd77a4 100644 (file)
@@ -7,7 +7,7 @@ EXTRA_DIST = \
   $(angband_files)
 
 if SET_GID
-angbanddir = @DEFAULT_PATH@xtra/graf
+angbanddir = @DEFAULT_LIB_PATH@/xtra/graf
 
 angband_DATA = \
   $(angband_files)
index c6991e7..44812f7 100644 (file)
@@ -1,5 +1,4 @@
 ## Makefile.am -- Process this file with automake to process Makefile.in
 
 EXTRA_DIST = \
-       delete.me \
-       music.cfg
+       delete.me
index c241ddb..e7e3346 100644 (file)
@@ -1,7 +1,7 @@
 # \81¡\95Ï\8bð\94Ø\93{BGM\90Ý\92è\83t\83@\83C\83\8b
 # lib\xtra\music\82É\82±\82Ì\83t\83@\83C\83\8b\82Æ\8dÄ\90\82µ\82½\82¢BGM\83t\83@\83C\83\8b\82ð\92u\82«\81A
 # \83R\83\81\83\93\83g\82É\8f]\82Á\82Ä\90Ý\92è\82µ\82Ä\89º\82³\82¢\81
-# \83t\83@\83C\83\8b\82Í\83X\83y\81[\83X\82Å\8bæ\90Ø\82Á\82Ä16\8eí\97Þ\82Ü\82Å\8ew\92è\82Å\82«\82Ü\82·\81B
+# \83t\83@\83C\83\8b\82Í\83X\83y\81[\83X\82Å\8bæ\90Ø\82Á\82Ä8\8eí\97Þ\82Ü\82Å\8ew\92è\82Å\82«\82Ü\82·\81B
 # \95¡\90\94\8ew\92è\82µ\82½\8fê\8d\87\83\89\83\93\83_\83\80\82É\91I\91ð\82³\82ê\82Ü\82·\81B
 
 
index 8a1cca7..e8d86cd 100644 (file)
@@ -1,22 +1,4 @@
 ## Makefile.am -- Process this file with automake to process Makefile.in
 
 EXTRA_DIST = \
-       readme.txt \
-       sound.cfg \
-       $(sound_files)
-
-sound_files = \
-       se_maoudamashii_voice_monster01.wav \
-       apple1-r.wav \
-       decision25r.wav \
-       drop1.wav \
-       enemy-advent1-r.wav \
-       sea-lion2-r.wav \
-       se_maoudamashii_battle07.wav \
-       se_maoudamashii_retro22.wav \
-       se_maoudamashii_se_drink01.wav \
-       se_maoudamashii_se_footstep01.wav \
-       sword-clash1-r.wav \
-       sword-drawn1-r.wav \
-       sword-gesture3-r.wav \
-       sword-slash3-r.wav
+       sound.cfg
index 83f829d..5bbfc4b 100644 (file)
@@ -1,93 +1,29 @@
 ## Makefile.am -- Process this file with automake to process Makefile.in
 
-AUTOMAKE_OPTIONS = foreign subdir-objects nostdinc
+AUTOMAKE_OPTIONS = foreign
 
 bin_PROGRAMS = hengband
 
 hengband_SOURCES = \
-       action/action-limited.c action/action-limited.h \
-       action/activation-execution.c action/activation-execution.h \
-       action/movement-execution.c action/movement-execution.h \
-       action/mutation-execution.c action/mutation-execution.h \
-       action/open-util.c action/open-util.h \
-       action/open-close-execution.c action/open-close-execution.h \
-       action/racial-execution.c action/racial-execution.h \
-       action/run-execution.c action/run-execution.h \
-       action/throw-util.c action/throw-util.h \
-       action/travel-execution.c action/travel-execution.h \
-       action/tunnel-execution.c action/tunnel-execution.h \
-       action/weapon-shield.c action/weapon-shield.h \
-       \
-       artifact/artifact-info.c artifact/artifact-info.h \
-       artifact/fixed-art-generator.c artifact/fixed-art-generator.h \
-       artifact/random-art-activation.c artifact/random-art-activation.h \
-       artifact/random-art-bias-types.h \
-       artifact/random-art-characteristics.c artifact/random-art-characteristics.h \
-       artifact/random-art-generator.c artifact/random-art-generator.h \
-       artifact/random-art-misc.c artifact/random-art-misc.h \
-       artifact/random-art-pval-investor.c artifact/random-art-pval-investor.h \
-       artifact/random-art-resistance.c artifact/random-art-resistance.h \
-       artifact/random-art-slay.c artifact/random-art-slay.h \
-       \
-       art-definition/art-accessory-types.h \
-       art-definition/art-armor-types.h \
-       art-definition/art-bow-types.h \
-       art-definition/art-protector-types.h \
-       art-definition/art-sword-types.h \
-       art-definition/art-weapon-types.h \
-       art-definition/random-art-effects.h \
-       \
-       autopick/autopick.c autopick/autopick.h \
-       autopick/autopick-commands-table.h autopick/autopick-dirty-flags.h \
-       autopick/autopick-editor-table.h autopick/autopick-flags-table.h \
-       autopick/autopick-key-flag-process.h autopick/autopick-keys-table.h \
-       autopick/autopick-menu-data-table.c autopick/autopick-menu-data-table.h \
-       autopick/autopick-methods-table.h \
-       autopick/autopick-util.c autopick/autopick-util.h \
-       autopick/autopick-entry.c autopick/autopick-entry.h \
-       autopick/autopick-initializer.c autopick/autopick-initializer.h \
-       autopick/autopick-matcher.c autopick/autopick-matcher.h \
-       autopick/autopick-describer.c autopick/autopick-describer.h \
-       autopick/autopick-destroyer.c autopick/autopick-destroyer.h \
-       autopick/autopick-reader-writer.c autopick/autopick-reader-writer.h \
-       autopick/autopick-finder.c autopick/autopick-finder.h \
-       autopick/autopick-pref-processor.c autopick/autopick-pref-processor.h \
-       autopick/autopick-drawer.c autopick/autopick-drawer.h \
-       autopick/autopick-inserter-killer.c autopick/autopick-inserter-killer.h \
-       autopick/autopick-registry.c autopick/autopick-registry.h \
-       autopick/autopick-command-menu.c autopick/autopick-command-menu.h \
-       autopick/autopick-editor-util.c autopick/autopick-editor-util.h \
-       autopick/autopick-editor-command.c autopick/autopick-editor-command.h \
-       \
-       birth/birth-explanations-table.c birth/birth-explanations-table.h \
-       birth/character-builder.c birth/character-builder.h \
-       birth/history.c birth/history.h \
-       birth/birth-util.c birth/birth-util.h \
-       birth/birth-select-realm.c birth/birth-select-realm.h \
-       birth/quick-start.c birth/quick-start.h \
-       birth/birth-stat.c birth/birth-stat.h \
-       birth/history-generator.c birth/history-generator.h \
-       birth/birth-body-spec.c birth/birth-body-spec.h \
-       birth/initial-equipments-table.c birth/initial-equipments-table.h \
-       birth/inventory-initializer.c birth/inventory-initializer.h \
-       birth/game-play-initializer.c birth/game-play-initializer.h \
-       birth/history-editor.c birth/history-editor.h \
-       birth/birth-select-race.c birth/birth-select-race.h \
-       birth/birth-select-class.c birth/birth-select-class.h \
-       birth/birth-select-personality.c birth/birth-select-personality.h \
-       birth/auto-roller.c birth/auto-roller.h \
-       birth/birth-wizard.c birth/birth-wizard.h \
-       \
-       blue-magic/blue-magic-ball-bolt.c blue-magic/blue-magic-ball-bolt.h \
-       blue-magic/blue-magic-breath.c blue-magic/blue-magic-breath.h \
-       blue-magic/blue-magic-caster.c blue-magic/blue-magic-caster.h \
-       blue-magic/blue-magic-checker.c blue-magic/blue-magic-checker.h \
-       blue-magic/blue-magic-spirit-curse.c blue-magic/blue-magic-spirit-curse.h \
-       blue-magic/blue-magic-status.c blue-magic/blue-magic-status.h \
-       blue-magic/blue-magic-summon.c blue-magic/blue-magic-summon.h \
-       blue-magic/blue-magic-util.c blue-magic/blue-magic-util.h \
-       blue-magic/learnt-info.c blue-magic/learnt-info.h \
-       blue-magic/learnt-power-getter.c blue-magic/learnt-power-getter.h \
+       artifact.c artifact.h \
+       \
+       angband.h autopick.c \
+       \
+       avatar.h avatar.c \
+       \
+       birth.c bldg.c chest.c chest.h chuukei.c \
+       cmd2.c cmd4.c cmd-activate.c cmd-activate.h cmd-eat.c cmd-eat.h \
+       cmd-item.c cmd-item.h cmd-magiceat.c cmd-magiceat.h \
+       cmd-mane.c cmd-mane.h cmd-pet.c cmd-pet.h \
+       cmd-quaff.c cmd-quaff.h cmd-read.c cmd-read.h cmd-spell.c cmd-spell.h \
+       cmd-usestaff.c cmd-usestaff.h cmd-zaprod.c cmd-zaprod.h cmd-zapwand.c \
+       cmd-zapwand.h cmd-smith.c cmd-smith.h cmd-hissatsu.c cmd-hissatsu.h\
+       \
+       defines.h dungeon.c effects.c externs.h files.c flavor.c \
+       \
+       floor.h floor-events.c floor-events.h floor-generate.c floor-generate.h \
+       floor-save.h floor-save.c \
+       floor-streams.c floor-streams.h \
        \
        cmd-action/cmd-attack.c cmd-action/cmd-attack.h \
        cmd-action/cmd-hissatsu.c cmd-action/cmd-hissatsu.h \
@@ -376,7 +312,12 @@ hengband_SOURCES = \
        lore/magic-types-setter.c lore/magic-types-setter.h \
        lore/monster-lore.c lore/monster-lore.h \
        \
+       gameoption.c gameoption.h gamevalue.h \
+       generate.h grid.c grid.h h-basic.h h-config.h h-define.h \
+       history.h history.c \
+       h-system.h h-type.h inet.c init1.c init2.c init.h japanese.c load.c \
        main.c main-x11.c main-gcu.c \
+       melee.h melee1.c mind.c \
        \
        main/angband-headers.c main/angband-headers.h \
        main/angband-initializer.c main/angband-initializer.h \
@@ -475,89 +416,18 @@ hengband_SOURCES = \
        monster-attack/monster-attack-util.c monster-attack/monster-attack-util.h \
        monster-attack/monster-eating.c monster-attack/monster-eating.h \
        \
-       monster-floor/monster-death.c monster-floor/monster-death.h \
-       monster-floor/monster-death-util.c monster-floor/monster-death-util.h \
-       monster-floor/monster-direction.c monster-floor/monster-direction.h \
-       monster-floor/monster-dist-offsets.c monster-floor/monster-dist-offsets.h \
-       monster-floor/monster-generator.c monster-floor/monster-generator.h \
-       monster-floor/monster-move.c monster-floor/monster-move.h \
-       monster-floor/monster-object.c monster-floor/monster-object.h \
-       monster-floor/monster-remover.c monster-floor/monster-remover.h \
-       monster-floor/monster-runaway.c monster-floor/monster-runaway.h \
-       monster-floor/monster-safety-hiding.c monster-floor/monster-safety-hiding.h \
-       monster-floor/monster-summon.c monster-floor/monster-summon.h \
-       monster-floor/monster-sweep-grid.c monster-floor/monster-sweep-grid.h \
-       monster-floor/monster-lite.c monster-floor/monster-lite.h \
-       monster-floor/monster-lite-util.c monster-floor/monster-lite-util.h \
-       monster-floor/one-monster-placer.c monster-floor/one-monster-placer.h \
-       monster-floor/place-monster-types.h \
-       monster-floor/quantum-effect.c monster-floor/quantum-effect.h \
-       monster-floor/special-death-switcher.c monster-floor/special-death-switcher.h \
-       \
-       monster-race/monster-race.c monster-race/monster-race.h \
-       monster-race/monster-race-hook.c monster-race/monster-race-hook.h \
-       monster-race/race-flags-resistance.h \
-       monster-race/race-flags1.h monster-race/race-flags2.h \
-       monster-race/race-flags3.h monster-race/race-flags4.h \
-       monster-race/race-flags-ability1.h monster-race/race-flags-ability2.h \
-       monster-race/race-flags7.h monster-race/race-flags8.h \
-       monster-race/race-flags9.h \
-       monster-race/race-indice-types.h \
-       \
-       mspell/assign-monster-spell.c mspell/assign-monster-spell.h \
-       mspell/element-resistance-checker.c mspell/element-resistance-checker.h \
-       mspell/high-resistance-checker.c mspell/high-resistance-checker.h \
-       mspell/improper-mspell-remover.c mspell/improper-mspell-remover.h \
-       mspell/monster-power-table.c mspell/monster-power-table.h \
-       mspell/mspell-attack.c mspell/mspell-attack.h \
-       mspell/mspell-attack-util.c mspell/mspell-attack-util.h \
-       mspell/mspell-breath.c mspell/mspell-breath.h \
-       mspell/mspell-ball.c mspell/mspell-ball.h \
-       mspell/mspell-bolt.c mspell/mspell-bolt.h \
-       mspell/mspell-checker.c mspell/mspell-checker.h \
-       mspell/mspell-curse.c mspell/mspell-curse.h \
-       mspell/mspell-dispel.c mspell/mspell-dispel.h \
-       mspell/mspell-judgement.c mspell/mspell-judgement.h \
-       mspell/mspell-lite.c mspell/mspell-lite.h \
-       mspell/mspell-summon.c mspell/mspell-summon.h \
-       mspell/mspell-util.c mspell/mspell-util.h \
-       mspell/mspell-type.h \
-       mspell/mspell-damage-calculator.c mspell/mspell-damage-calculator.h \
-       mspell/mspell-learn-checker.c mspell/mspell-learn-checker.h \
-       mspell/mspell-floor.c mspell/mspell-floor.h \
-       mspell/mspell-mask-definitions.h \
-       mspell/mspell-special.c mspell/mspell-special.h \
-       mspell/mspell-status.c mspell/mspell-status.h \
-       mspell/mspell-particularity.c mspell/mspell-particularity.h \
-       mspell/mspell-selector.c mspell/mspell-selector.h \
-       mspell/smart-mspell-util.c mspell/smart-mspell-util.h \
-       mspell/specified-summon.c mspell/specified-summon.h \
-       mspell/summon-checker.c mspell/summon-checker.h \
-       \
-       mutation/gain-mutation-switcher.c mutation/gain-mutation-switcher.h \
-       mutation/lose-mutation-switcher.c mutation/lose-mutation-switcher.h \
-       mutation/mutation-calculator.c mutation/mutation-calculator.h \
-       mutation/mutation-investor-remover.c mutation/mutation-investor-remover.h \
-       mutation/mutation-util.c mutation/mutation-util.h \
-       mutation/mutation-flag-types.h \
-       mutation/mutation-processor.c mutation/mutation-processor.h \
-       mutation/mutation-techniques.c mutation/mutation-techniques.h \
-       \
-       object/item-tester-hooker.c object/item-tester-hooker.h \
-       object/object-broken.c object/object-broken.h \
-       object/object-flags.c object/object-flags.h \
-       object/object-generator.c object/object-generator.h \
-       object/object-info.c object/object-info.h \
-       object/object-kind.c object/object-kind.h \
-       object/object-kind-hook.c object/object-kind-hook.h \
-       object/object-stack.c object/object-stack.h \
-       object/object-value.c object/object-value.h \
-       object/object-value-calc.c object/object-value-calc.h \
-       object/lite-processor.c object/lite-processor.h \
-       object/tval-types.h \
-       object/warning.c object/warning.h \
-       object/object-mark-types.h \
-       object/item-use-flags.h \
+       object-boost.c object-boost.h \
+       object-curse.c object-curse.h object-broken.c object-broken.h \
+       object-hook.c object-hook.h object1.c object2.c \
+       objectkind-hook.c objectkind-hook.h \
+       \
+       patron.h patron.c \
+       \
+       projection.h projection.c\
+       \
+       player-move.c player-move.h player-damage.c player-damage.h player-status.c player-status.h \
+       \
+       quest.h quest.c\
        \
        object-activation/activation-bolt-ball.c object-activation/activation-bolt-ball.h \
        object-activation/activation-breath.c object-activation/activation-breath.h \
@@ -569,38 +439,23 @@ hengband_SOURCES = \
        object-activation/activation-teleport.c object-activation/activation-teleport.h \
        object-activation/activation-util.c object-activation/activation-util.h \
        \
-       object-enchant/activation-info-table.c object-enchant/activation-info-table.h \
-       object-enchant/apply-magic.c object-enchant/apply-magic.h \
-       object-enchant/apply-magic-accessory.c object-enchant/apply-magic-accessory.h \
-       object-enchant/apply-magic-armor.c object-enchant/apply-magic-armor.h \
-       object-enchant/apply-magic-others.c object-enchant/apply-magic-others.h \
-       object-enchant/apply-magic-weapon.c object-enchant/apply-magic-weapon.h \
-       object-enchant/dragon-breaths-table.c object-enchant/dragon-breaths-table.h \
-       object-enchant/object-boost.c object-enchant/object-boost.h \
-       object-enchant/object-curse.c object-enchant/object-curse.h \
-       object-enchant/object-ego.c object-enchant/object-ego.h \
-       object-enchant/item-apply-magic.h object-enchant/item-feeling.h \
-       object-enchant/old-ego-extra-values.h object-enchant/special-object-flags.h \
-       object-enchant/tr-types.h object-enchant/trc-types.h \
-       object-enchant/trg-types.h \
-       object-enchant/vorpal-weapon.c object-enchant/vorpal-weapon.h \
-       \
-       object-hook/hook-armor.c object-hook/hook-armor.h \
-       object-hook/hook-bow.c object-hook/hook-bow.h \
-       object-hook/hook-checker.c object-hook/hook-checker.h \
-       object-hook/hook-enchant.c object-hook/hook-enchant.h \
-       object-hook/hook-expendable.c object-hook/hook-expendable.h \
-       object-hook/hook-magic.c object-hook/hook-magic.h \
-       object-hook/hook-perception.c object-hook/hook-perception.h \
-       object-hook/hook-quest.c object-hook/hook-quest.h \
-       object-hook/hook-weapon.c object-hook/hook-weapon.h \
-       \
-       object-use/quaff-execution.c object-use/quaff-execution.h \
-       object-use/read-execution.c object-use/read-execution.h \
-       \
-       perception/identification.c perception/identification.h \
-       perception/object-perception.c perception/object-perception.h \
-       perception/simple-perception.c perception/simple-perception.h \
+       rumor.h rumor.c \
+       \
+       spells.h \
+       spells1.c spells2.c spells3.c \
+       spells-diceroll.c spells-diceroll.h \
+       spells-floor.c spells-floor.h \
+       spells-object.c spells-object.h \
+       spells-status.c spells-status.h \
+       spells-summon.c spells-summon.h \
+       spells-world.c spells-world.h \
+       \
+       sort.c sort.h \
+       store.h store.c tables.c term.c term.h trap.c trap.h types.h util.c \
+       variable.c wild.h wild.c wizard1.c wizard2.c \
+       warning.c warning.h world.c world.h \
+       \
+       view-mainwindow.c\
        \
        pet/pet-fall-off.c pet/pet-fall-off.h \
        pet/pet-util.c pet/pet-util.h \
@@ -898,79 +753,13 @@ hengband_SOURCES = \
        world/world-turn-processor.c world/world-turn-processor.h
 
 EXTRA_hengband_SOURCES = \
-       angband.ico angband.rc ang_eng.rc maid-x11.c main-win.c \
-       makefile.bcc makefile.std term/readdib.c term/readdib.h wall.bmp
-
-EXTRA_DIST = \
-       gcc-wrap
+       angband.ico angband.rc ang_eng.rc maid-x11.c main-mac.c main-win.c \
+       main-dos.c main-ibm.c \
+       makefile.bcc makefile.std makefile.dos makefile.ibm \
+       readdib.c wall.bmp
 
-DEFAULT_INCLUDES = -I$(srcdir) \
-       -I$(srcdir)/artifact \
-       -I$(srcdir)/art-definition \
-       -I$(srcdir)/autopick \
-       -I$(srcdir)/birth \
-       -I$(srcdir)/blue-magic \
-       -I$(srcdir)/cmd-action \
-       -I$(srcdir)/cmd-building \
-       -I$(srcdir)/cmd-io \
-       -I$(srcdir)/cmd-item \
-       -I$(srcdir)/cmd-visual \
-       -I$(srcdir)/combat \
-       -I$(srcdir)/core \
-       -I$(srcdir)/dungeon \
-       -I$(srcdir)/effect \
-       -I$(srcdir)/flavor \
-       -I$(srcdir)/floor \
-       -I$(srcdir)/game-option \
-       -I$(srcdir)/grid \
-       -I$(srcdir)/info-reader \
-       -I$(srcdir)/inventory \
-       -I$(srcdir)/io \
-       -I$(srcdir)/io-dump \
-       -I$(srcdir)/knowledge \
-       -I$(srcdir)/load \
-       -I$(srcdir)/lore \
-       -I$(srcdir)/market \
-       -I$(srcdir)/melee \
-       -I$(srcdir)/mind \
-       -I$(srcdir)/monster \
-       -I$(srcdir)/monster-attack \
-       -I$(srcdir)/monster-floor \
-       -I$(srcdir)/monster-race \
-       -I$(srcdir)/mspell \
-       -I$(srcdir)/mutation \
-       -I$(srcdir)/object \
-       -I$(srcdir)/object-activation \
-       -I$(srcdir)/object-enchant \
-       -I$(srcdir)/object-hook \
-       -I$(srcdir)/object-use \
-       -I$(srcdir)/pet \
-       -I$(srcdir)/player \
-       -I$(srcdir)/player-attack \
-       -I$(srcdir)/player-info \
-       -I$(srcdir)/racial \
-       -I$(srcdir)/realm \
-       -I$(srcdir)/room \
-       -I$(srcdir)/save \
-       -I$(srcdir)/specific-object \
-       -I$(srcdir)/spell \
-       -I$(srcdir)/spell-kind \
-       -I$(srcdir)/spell-realm \
-       -I$(srcdir)/status \
-       -I$(srcdir)/sv-definition \
-       -I$(srcdir)/system \
-       -I$(srcdir)/target \
-       -I$(srcdir)/term \
-       -I$(srcdir)/util \
-       -I$(srcdir)/view \
-       -I$(srcdir)/window \
-       -I$(srcdir)/wizard \
-       -I$(srcdir)/world \
-       -I$(top_builddir)/src 
-CFLAGS += $(XFT_CFLAGS)
-LIBS += $(XFT_LIBS)
-COMPILE = $(srcdir)/gcc-wrap $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-       $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) 
+COMPILE = ./gcc-wrap $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 
 install-exec-hook:
 if SET_GID
index 1ec8cb2..39d06e6 100644 (file)
@@ -11,7 +11,7 @@
 #ifdef USE_X11
 
 #include <math.h>
-#include "main/x11-gamma-builder.h"
+
 
 /*
  * This file defines some "XImage" manipulation functions for X11.
   ((unsigned)(keysym) >= 0xFF00)
 
 
+#ifdef SUPPORT_GAMMA
 static bool gamma_table_ready = FALSE;
 static int gamma_val = 0;
+#endif /* SUPPORT_GAMMA */
 
 
 /*
  * Hack -- Convert an RGB value to an X11 Pixel, or die.
  */
-#ifdef USE_XFT
-static XftColor create_pixel(Display *dpy, byte red, byte green, byte blue)
-#else
 static unsigned long create_pixel(Display *dpy, byte red, byte green, byte blue)
-#endif
 {
        Colormap cmap = DefaultColormapOfScreen(DefaultScreenOfDisplay(dpy));
        XColor xcolour;
+
+#ifdef SUPPORT_GAMMA
+
        if (!gamma_table_ready)
        {
                concptr str = getenv("ANGBAND_X11_GAMMA");
@@ -102,6 +103,8 @@ static unsigned long create_pixel(Display *dpy, byte red, byte green, byte blue)
                blue = gamma_table[blue];
        }
 
+#endif /* SUPPORT_GAMMA */
+
        /* Build the color */
        
        xcolour.red = red * 255;
@@ -109,20 +112,6 @@ static unsigned long create_pixel(Display *dpy, byte red, byte green, byte blue)
        xcolour.blue = blue * 255;
        xcolour.flags = DoRed | DoGreen | DoBlue;
 
-#ifdef USE_XFT
-       XftColor color;
-       XRenderColor xcol;
-       xcol.red = xcolour.red;
-       xcol.green = xcolour.green;
-       xcol.blue = xcolour.blue;
-       if (!XftColorAllocValue(dpy, DefaultVisual(dpy, 0), cmap, &xcol, &color))
-       {
-               quit_fmt("Couldn't allocate bitmap color '#%02x%02x%02x'\n",
-                        red, green, blue);
-       }
-
-       return color;
-#else
        /* Attempt to Allocate the Parsed color */
        if (!(XAllocColor(dpy, cmap, &xcolour)))
        {
@@ -131,11 +120,11 @@ static unsigned long create_pixel(Display *dpy, byte red, byte green, byte blue)
        }
 
        return (xcolour.pixel);
-#endif
 }
 
 
-#ifndef USE_XFT
+
+#ifdef USE_GRAPHICS
 
 /*
  * The Win32 "BITMAPFILEHEADER" type.
@@ -890,6 +879,7 @@ static XImage *ResizeImage(Display *dpy, XImage *Im,
        return Tmp;
 }
 
-#endif /* !USE_XFT */
+#endif /* USE_GRAPHICS */
+
 
 #endif /* USE_X11 */
index ab26706..a250255 100644 (file)
@@ -2,8 +2,8 @@
 
 /* Purpose: Support for "term.c" using "termcap" calls */
 
-#include "system/angband.h"
-#include "io/exit-panic.h"
+#include "angband.h"
+
 
 #ifdef USE_CAP
 
  * Mega-Hack -- try to guess when "POSIX" is available.
  * If the user defines two of these, we will probably crash.
  */
+#if !defined(USE_TPOSIX)
+# if !defined(USE_TERMIO) && !defined(USE_TCHARS)
 #  if defined(_POSIX_VERSION)
 #   define USE_TPOSIX
 #  else
-#   if defined(linux)
+#   if defined(USG) || defined(linux) || defined(SOLARIS)
 #    define USE_TERMIO
 #   else
 #    define USE_TCHARS
 #   endif
 #  endif
+# endif
+#endif
+
+
 
 /*
  * POSIX stuff
@@ -317,9 +323,21 @@ static void do_move(int x1, int y1, int x2, int y2)
                if ((y2 <= 0) && ho) tp(ho);
                else if ((y2 >= rows-1) && ll) tp(ll);
                else if ((y2 == y1) && cr) tp(cr);
+#if 0
+               else if ((y2 == y1+1) && cr && dn)
+               { tp(cr); tp(dn); }
+               else if ((y2 == y1-1) && cr && up)
+               { tp(cr); tp(up); }
+#endif
                else do_cm(x2, y2);
        }
 
+#if 0
+       /* Up/Down one line */
+       else if ((x2 == x1) && (y2 == y1+1) && dn) tp(dn);
+       else if ((x2 == x1) && (y2 == y1-1) && up) tp(up);
+#endif
+
        /* Default -- go directly there */
        else do_cm(x2, y2);
 }
@@ -634,6 +652,18 @@ static void keymap_game_prepare(void)
        game_termio.c_cc[VEOF] = (char)-1;
        game_termio.c_cc[VEOL] = (char)-1;
 
+#if 0
+       /* Disable the non-posix control characters */
+       game_termio.c_cc[VEOL2] = (char)-1;
+       game_termio.c_cc[VSWTCH] = (char)-1;
+       game_termio.c_cc[VDSUSP] = (char)-1;
+       game_termio.c_cc[VREPRINT] = (char)-1;
+       game_termio.c_cc[VDISCARD] = (char)-1;
+       game_termio.c_cc[VWERASE] = (char)-1;
+       game_termio.c_cc[VLNEXT] = (char)-1;
+       game_termio.c_cc[VSTATUS] = (char)-1;
+#endif
+
        /* Normally, block until a character is read */
        game_termio.c_cc[VMIN] = 1;
        game_termio.c_cc[VTIME] = 0;
@@ -756,7 +786,7 @@ static errr Term_xtra_cap_event(int v)
                i = read(0, buf, 1);
 
                /* Hack -- Handle "errors" */
-               if ((i <= 0) && (errno != EINTR)) exit_game_panic(p_ptr);
+               if ((i <= 0) && (errno != EINTR)) exit_game_panic();
        }
 
        /* Do not wait */
index c7a5801..87022a0 100644 (file)
  * XXX XXX XXX Consider the use of "savetty()" and "resetty()".
  */
 
-#include "system/angband.h"
-#include "game-option/runtime-arguments.h"
-#include "game-option/special-options.h"
-#include "io/exit-panic.h"
-#include "io/files-util.h"
-#include "main/sound-definitions-table.h"
-#include "main/sound-of-music.h"
-#include "term/gameterm.h"
-#include "term/term-color-types.h"
-#include "util/angband-files.h"
-#include "view/display-map.h"
+#include "angband.h"
+
 
 #ifdef USE_GCU
 
 /*
  * Include the proper "header" file
  */
+#ifdef USE_NCURSES
+# undef bool
+# include <ncurses.h>
+#else
 # include <curses.h>
 #include <iconv.h>
 
@@ -185,7 +180,7 @@ typedef struct term_data term_data;
 
 struct term_data
 {
-   term_type t;
+   term t;
 
    WINDOW *win;
 };
@@ -201,23 +196,36 @@ static iconv_t iconvd;
  * Mega-Hack -- try to guess when "POSIX" is available.
  * If the user defines two of these, we will probably crash.
  */
-#if !defined(USE_TCHARS)
-# if defined(_POSIX_VERSION)
-#  define USE_TPOSIX
-# else
-#  if defined(linux)
-#   define USE_TERMIO
+#if !defined(USE_TPOSIX)
+# if !defined(USE_TERMIO) && !defined(USE_TCHARS)
+#  if defined(_POSIX_VERSION)
+#   define USE_TPOSIX
 #  else
-#   define USE_TCHARS
+#   if defined(USG) || defined(linux) || defined(SOLARIS)
+#    define USE_TERMIO
+#   else
+#    define USE_TCHARS
+#   endif
 #  endif
 # endif
 #endif
 
 /*
+ * Hack -- Amiga uses "fake curses" and cannot do any of this stuff
+ */
+#if defined(AMIGA)
+# undef USE_TPOSIX
+# undef USE_TERMIO
+# undef USE_TCHARS
+#endif
+
+/*
  * Try redefining the colors at startup.
  */
 #define REDEFINE_COLORS
 
+
+
 /*
  * POSIX stuff
  */
@@ -245,8 +253,10 @@ static iconv_t iconvd;
 # include <sys/types.h>
 #endif
 
+
 #include <locale.h>
 
+
 /*
  * XXX XXX Hack -- POSIX uses "O_NONBLOCK" instead of "O_NDELAY"
  *
@@ -256,12 +266,14 @@ static iconv_t iconvd;
 # define O_NDELAY O_NONBLOCK
 #endif
 
+
 /*
  * OPTION: some machines lack "cbreak()"
  * On these machines, we use an older definition
  */
 /* #define cbreak() crmode() */
 
+
 /*
  * OPTION: some machines cannot handle "nonl()" and "nl()"
  * On these machines, we can simply ignore those commands.
@@ -269,10 +281,12 @@ static iconv_t iconvd;
 /* #define nonl() */
 /* #define nl() */
 
+
+#ifdef USE_SOUND
+
 static concptr ANGBAND_DIR_XTRA_SOUND;
 
 /*
- * todo 有効活用されていない疑惑
  * Flag set once "sound" has been initialized
  */
 static bool can_use_sound = FALSE;
@@ -282,6 +296,8 @@ static bool can_use_sound = FALSE;
  */
 static concptr sound_file[SOUND_MAX];
 
+#endif /* USE_SOUND */
+
 /*
  * Save the "normal" and "angband" terminal settings
  */
@@ -303,6 +319,7 @@ static struct termio  game_termio;
 #endif
 
 #ifdef USE_TCHARS
+
 static struct ltchars norm_speciax_chars;
 static struct sgttyb  norm_ttyb;
 static struct tchars  norm_tchars;
@@ -312,14 +329,20 @@ static struct ltchars game_speciax_chars;
 static struct sgttyb  game_ttyb;
 static struct tchars  game_tchars;
 static int            game_locax_chars;
+
 #endif
 
+
+
 /*
  * Hack -- Number of initialized "term" structures
  */
 static int active = 0;
 
+
+
 #ifdef A_COLOR
+
 /*
  * Hack -- define "A_BRIGHT" to be "A_BOLD", because on many
  * machines, "A_BRIGHT" produces ugly "inverse" video.
@@ -342,30 +365,41 @@ static int can_fix_color = FALSE;
  * Simple Angband to Curses color conversion table
  */
 static int colortable[16];
+
 #endif
 
+
+
 /*
  * Place the "keymap" into its "normal" state
  */
 static void keymap_norm(void)
 {
+
 #ifdef USE_TPOSIX
+
    /* restore the saved values of the special chars */
    (void)tcsetattr(0, TCSAFLUSH, &norm_termios);
+
 #endif
 
 #ifdef USE_TERMIO
+
    /* restore the saved values of the special chars */
    (void)ioctl(0, TCSETA, (char *)&norm_termio);
+
 #endif
 
 #ifdef USE_TCHARS
+
    /* restore the saved values of the special chars */
    (void)ioctl(0, TIOCSLTC, (char *)&norm_speciax_chars);
    (void)ioctl(0, TIOCSETP, (char *)&norm_ttyb);
    (void)ioctl(0, TIOCSETC, (char *)&norm_tchars);
    (void)ioctl(0, TIOCLSET, (char *)&norm_locax_chars);
+
 #endif
+
 }
 
 
@@ -374,23 +408,31 @@ static void keymap_norm(void)
  */
 static void keymap_game(void)
 {
+
 #ifdef USE_TPOSIX
+
    /* restore the saved values of the special chars */
    (void)tcsetattr(0, TCSAFLUSH, &game_termios);
+
 #endif
 
 #ifdef USE_TERMIO
+
    /* restore the saved values of the special chars */
    (void)ioctl(0, TCSETA, (char *)&game_termio);
+
 #endif
 
 #ifdef USE_TCHARS
+
    /* restore the saved values of the special chars */
    (void)ioctl(0, TIOCSLTC, (char *)&game_speciax_chars);
    (void)ioctl(0, TIOCSETP, (char *)&game_ttyb);
    (void)ioctl(0, TIOCSETC, (char *)&game_tchars);
    (void)ioctl(0, TIOCLSET, (char *)&game_locax_chars);
+
 #endif
+
 }
 
 
@@ -399,23 +441,31 @@ static void keymap_game(void)
  */
 static void keymap_norm_prepare(void)
 {
+
 #ifdef USE_TPOSIX
+
    /* Get the normal keymap */
    tcgetattr(0, &norm_termios);
+
 #endif
 
 #ifdef USE_TERMIO
+
    /* Get the normal keymap */
    (void)ioctl(0, TCGETA, (char *)&norm_termio);
+
 #endif
 
 #ifdef USE_TCHARS
+
    /* Get the normal keymap */
    (void)ioctl(0, TIOCGETP, (char *)&norm_ttyb);
    (void)ioctl(0, TIOCGLTC, (char *)&norm_speciax_chars);
    (void)ioctl(0, TIOCGETC, (char *)&norm_tchars);
    (void)ioctl(0, TIOCLGET, (char *)&norm_locax_chars);
+
 #endif
+
 }
 
 
@@ -424,7 +474,9 @@ static void keymap_norm_prepare(void)
  */
 static void keymap_game_prepare(void)
 {
+
 #ifdef USE_TPOSIX
+
    /* Acquire the current mapping */
    tcgetattr(0, &game_termios);
 
@@ -446,9 +498,11 @@ static void keymap_game_prepare(void)
    /* Normally, block until a character is read */
    game_termios.c_cc[VMIN] = 1;
    game_termios.c_cc[VTIME] = 0;
+
 #endif
 
 #ifdef USE_TERMIO
+
    /* Acquire the current mapping */
    (void)ioctl(0, TCGETA, (char *)&game_termio);
 
@@ -458,6 +512,8 @@ static void keymap_game_prepare(void)
    /* Force "Ctrl-Z" to suspend */
    game_termio.c_cc[VSUSP] = (char)26;
 
+   /* Hack -- Leave "VSTART/VSTOP" alone */
+
    /* Disable the standard control characters */
    game_termio.c_cc[VQUIT] = (char)-1;
    game_termio.c_cc[VERASE] = (char)-1;
@@ -465,12 +521,26 @@ static void keymap_game_prepare(void)
    game_termio.c_cc[VEOF] = (char)-1;
    game_termio.c_cc[VEOL] = (char)-1;
 
+#if 0
+   /* Disable the non-posix control characters */
+   game_termio.c_cc[VEOL2] = (char)-1;
+   game_termio.c_cc[VSWTCH] = (char)-1;
+   game_termio.c_cc[VDSUSP] = (char)-1;
+   game_termio.c_cc[VREPRINT] = (char)-1;
+   game_termio.c_cc[VDISCARD] = (char)-1;
+   game_termio.c_cc[VWERASE] = (char)-1;
+   game_termio.c_cc[VLNEXT] = (char)-1;
+   game_termio.c_cc[VSTATUS] = (char)-1;
+#endif
+
    /* Normally, block until a character is read */
    game_termio.c_cc[VMIN] = 1;
    game_termio.c_cc[VTIME] = 0;
+
 #endif
 
 #ifdef USE_TCHARS
+
    /* Get the default game characters */
    (void)ioctl(0, TIOCGETP, (char *)&game_ttyb);
    (void)ioctl(0, TIOCGLTC, (char *)&game_speciax_chars);
@@ -498,16 +568,20 @@ static void keymap_game_prepare(void)
    game_tchars.t_quitc = (char)-1;
    game_tchars.t_eofc = (char)-1;
    game_tchars.t_brkc = (char)-1;
+
 #endif
+
 }
 
 
 
+
 /*
  * Suspend/Resume
  */
 static errr Term_xtra_gcu_alive(int v)
 {
+   /* Suspend */
    if (!v)
    {
       /* Go to normal keymap mode */
@@ -519,13 +593,18 @@ static errr Term_xtra_gcu_alive(int v)
       nl();
 
       /* Hack -- make sure the cursor is visible */
-      term_xtra(TERM_XTRA_SHAPE, 1);
+      Term_xtra(TERM_XTRA_SHAPE, 1);
 
       /* Flush the curses buffer */
       (void)refresh();
 
+#ifdef SPECIAL_BSD
+      /* this moves curses to bottom right corner */
+      mvcur(curscr->cury, curscr->curx, LINES - 1, 0);
+#else
       /* this moves curses to bottom right corner */
       mvcur(getcury(curscr), getcurx(curscr), LINES - 1, 0);
+#endif
 
       /* Exit curses */
       endwin();
@@ -533,8 +612,14 @@ static errr Term_xtra_gcu_alive(int v)
       /* Flush the output */
       (void)fflush(stdout);
    }
+
+   /* Resume */
    else
    {
+      /* Refresh */
+      /* (void)touchwin(curscr); */
+      /* (void)wrefresh(curscr); */
+
       /* Restore the settings */
       cbreak();
       noecho();
@@ -544,16 +629,17 @@ static errr Term_xtra_gcu_alive(int v)
       keymap_game();
    }
 
+   /* Success */
    return (0);
 }
 
-
 /*
  * Check for existance of a file
  */
 static bool check_file(concptr s)
 {
    FILE *fff;
+
    fff = fopen(s, "r");
    if (!fff) return (FALSE);
 
@@ -562,41 +648,51 @@ static bool check_file(concptr s)
 }
 
 
+
+#ifdef USE_SOUND
+
 /*
  * Initialize sound
  */
 static bool init_sound(void)
 {
    /* Initialize once */
-       if (can_use_sound) return can_use_sound;
+   if (!can_use_sound)
+   {
+      int i;
 
-       int i;
-       char wav[128];
-       char buf[1024];
+      char wav[128];
+      char buf[1024];
 
-       /* Prepare the sounds */
-       for (i = 1; i < SOUND_MAX; i++)
-       {
-               /* Extract name of sound file */
-               sprintf(wav, "%s.wav", angband_sound_name[i]);
+      /* Prepare the sounds */
+      for (i = 1; i < SOUND_MAX; i++)
+      {
+        /* Extract name of sound file */
+        sprintf(wav, "%s.wav", angband_sound_name[i]);
 
-               /* Access the sound */
-               path_build(buf, sizeof(buf), ANGBAND_DIR_XTRA_SOUND, wav);
+        /* Access the sound */
+        path_build(buf, sizeof(buf), ANGBAND_DIR_XTRA_SOUND, wav);
 
-               /* Save the sound filename, if it exists */
-               if (check_file(buf)) sound_file[i] = string_make(buf);
-       }
+        /* Save the sound filename, if it exists */
+        if (check_file(buf)) sound_file[i] = string_make(buf);
+      }
+
+      /* Sound available */
+      can_use_sound = TRUE;
+   }
 
-       /* Sound available */
-       can_use_sound = TRUE;
-       return (can_use_sound);
+   /* Result */
+   return (can_use_sound);
 }
 
+#endif /* USE_SOUND */
+
+
 
 /*
  * Init the "curses" system
  */
-static void Term_init_gcu(term_type *t)
+static void Term_init_gcu(term *t)
 {
    term_data *td = (term_data *)(t->data);
 
@@ -620,7 +716,7 @@ static void Term_init_gcu(term_type *t)
 /*
  * Nuke the "curses" system
  */
-static void Term_nuke_gcu(term_type *t)
+static void Term_nuke_gcu(term *t)
 {
    term_data *td = (term_data *)(t->data);
 
@@ -631,15 +727,20 @@ static void Term_nuke_gcu(term_type *t)
    if (--active != 0) return;
 
    /* Hack -- make sure the cursor is visible */
-   term_xtra(TERM_XTRA_SHAPE, 1);
+   Term_xtra(TERM_XTRA_SHAPE, 1);
 
 #ifdef A_COLOR
   /* Reset colors to defaults */
   start_color();
 #endif
 
+#ifdef SPECIAL_BSD
+   /* This moves curses to bottom right corner */
+   mvcur(curscr->cury, curscr->curx, LINES - 1, 0);
+#else
    /* This moves curses to bottom right corner */
    mvcur(getcury(curscr), getcurx(curscr), LINES - 1, 0);
+#endif
 
    /* Flush the curses buffer */
    (void)refresh();
@@ -676,8 +777,8 @@ static errr Term_xtra_gcu_event(int v)
       for (k = 0; (k < 10) && (i == ERR); k++) i = getch();
 
       /* Broken input is special */
-      if (i == ERR) exit_game_panic(p_ptr);
-      if (i == EOF) exit_game_panic(p_ptr);
+      if (i == ERR) exit_game_panic();
+      if (i == EOF) exit_game_panic();
    }
 
    /* Do not wait */
@@ -698,7 +799,7 @@ static errr Term_xtra_gcu_event(int v)
    }
 
    /* Enqueue the keypress */
-   term_key_push(i);
+   Term_keypress(i);
 
    /* Success */
    return (0);
@@ -722,7 +823,7 @@ static errr Term_xtra_gcu_event(int v)
       i = read(0, buf, 1);
 
       /* Hack -- Handle bizarre "errors" */
-      if ((i <= 0) && (errno != EINTR)) exit_game_panic(p_ptr);
+      if ((i <= 0) && (errno != EINTR)) exit_game_panic();
    }
 
    /* Do not wait */
@@ -748,7 +849,7 @@ static errr Term_xtra_gcu_event(int v)
    if ((i != 1) || (!buf[0])) return (1);
 
    /* Enqueue the keypress */
-   term_key_push(buf[0]);
+   Term_keypress(buf[0]);
 
    /* Success */
    return (0);
@@ -756,6 +857,8 @@ static errr Term_xtra_gcu_event(int v)
 
 #endif   /* USE_GETCH */
 
+#ifdef USE_SOUND
+
 /*
  * Hack -- make a sound
  */
@@ -776,10 +879,39 @@ static errr Term_xtra_gcu_sound(int v)
    
    return (system(buf) < 0);
 
+#if 0
+   char *argv[4];
+   pid_t pid;
+
+   /* Sound disabled */
+   if (!use_sound) return (1);
+
+   /* Illegal sound */
+   if ((v < 0) || (v >= SOUND_MAX)) return (1);
+
+   /* Unknown sound */
+   if (!sound_file[v]) return (1);
+
+   pid=fork();
+
+   /* cannot fork? */
+   if (pid==-1) return (1);
+
+   if (pid==0)
+   {
+      char *argv[4];
+      argv[0]="sh";
+      argv[1]="-c";
+      argv[2]="./gcusound.sh";
+      strcpy(argv[3],sound_file[v]);
+      execvp(argv[0], argv);
+      exit(0);
+   }
+#endif
    return (0);
 
 }
-
+#endif
 
 /*
  * React to changes
@@ -830,9 +962,11 @@ static errr Term_xtra_gcu(int n, int v)
       case TERM_XTRA_NOISE:
       return write(1, "\007", 1) != 1;
 
+#ifdef USE_SOUND
       /* Make a special sound */
       case TERM_XTRA_SOUND:
         return (Term_xtra_gcu_sound(v));
+#endif
 
       /* Flush the Curses buffer */
       case TERM_XTRA_FRESH:
@@ -982,9 +1116,7 @@ static errr Term_text_gcu(int x, int y, int n, byte a, concptr s)
    memcpy(intext, s, (size_t)n);
 
    /* Obtain a copy of the text */
-   res = iconv(iconvd, 0, 0, 0, 0);
    if(res == (size_t)-1) return (-1);
-   res = iconv(iconvd, &inbuf, &inlen, &outbuf, &outlen);
    if(res == (size_t)-1) return (-1);
    res = iconv(iconvd, 0, 0, &outbuf, &outlen);
    if(res == (size_t)-1) return (-1);
@@ -994,7 +1126,6 @@ static errr Term_text_gcu(int x, int y, int n, byte a, concptr s)
 
    /* Move the cursor and dump the string */
    wmove(td->win, y, x);
-
 #ifdef A_COLOR
    /* Set the color */
    if (can_use_color) wattrset(td->win, colortable[a & 0x0F]);
@@ -1011,7 +1142,7 @@ static errr Term_text_gcu(int x, int y, int n, byte a, concptr s)
 
 static errr term_data_init(term_data *td, int rows, int cols, int y, int x)
 {
-   term_type *t = &td->t;
+   term *t = &td->t;
 
    /* Make sure the window has a positive size */
    if (rows <= 0 || cols <= 0) return (0);
@@ -1050,7 +1181,7 @@ static errr term_data_init(term_data *td, int rows, int cols, int y, int x)
    t->data = td;
 
    /* Activate it */
-   term_activate(t);
+   Term_activate(t);
 
 
    /* Success */
@@ -1094,17 +1225,26 @@ errr init_gcu(int argc, char *argv[])
    iconvd = iconv_open("", "EUC-JP");
    if(iconvd == (iconv_t)-1) return (-1);
 
+#ifdef USE_SOUND
+
    /* Build the "sound" path */
    path_build(path, sizeof(path), ANGBAND_DIR_XTRA, "sound");
 
    /* Allocate the path */
    ANGBAND_DIR_XTRA_SOUND = string_make(path);
 
+#endif
+
    /* Extract the normal keymap */
    keymap_norm_prepare();
 
+#if defined(USG)
+   /* Initialize for USG Unix */
+   if (initscr() == NULL) return (-1);
+#else
    /* Initialize for others systems */
    if (initscr() == (WINDOW*)ERR) return (-1);
+#endif
 
    /* Activate hooks */
    quit_aux = hook_quit;
@@ -1133,16 +1273,23 @@ errr init_gcu(int argc, char *argv[])
    if (can_fix_color)
    {
       /* Prepare the color pairs */
-          for (i = 1; i <= 15; i++)
-          {
-                  if (init_pair(i, i, 0) == ERR)
-                  {
-                          quit("Color pair init failed");
-                  }
-
-                  colortable[i] = COLOR_PAIR(i);
-                  Term_xtra_gcu_react();
-          }
+      for (i = 1; i <= 63; i++)
+      {
+        /* Reset the color */
+        if (init_pair(i, (i - 1) % 8, (i - 1) / 8) == ERR)
+        {
+           quit("Color pair init failed");
+        }
+
+       /* Set up the colormap */
+       colortable[i - 1] = (COLOR_PAIR(i) | A_NORMAL);
+       colortable[i + 7] = (COLOR_PAIR(i) | A_BRIGHT);
+
+       /* XXX XXX XXX Take account of "gamma correction" */
+
+       /* Prepare the "Angband Colors" */
+       Term_xtra_gcu_react();
+      }
    }
    /* Attempt to use colors */
    else if (can_use_color)
@@ -1181,6 +1328,7 @@ errr init_gcu(int argc, char *argv[])
 
 #endif
 
+#ifdef USE_SOUND
    /* Handle "arg_sound" */
    if (use_sound != arg_sound)
    {
@@ -1197,6 +1345,9 @@ errr init_gcu(int argc, char *argv[])
       /* Change setting */
       use_sound = arg_sound;
    }
+#endif
+
+#ifdef USE_GRAPHICS
 
    /* Try graphics */
    if (arg_graphics)
@@ -1207,6 +1358,10 @@ errr init_gcu(int argc, char *argv[])
 #endif
    }
 
+#endif /* USE_GRAPHICS */
+
+
+
    /*** Low level preparation ***/
 
 #ifdef USE_GETCH
@@ -1276,7 +1431,7 @@ errr init_gcu(int argc, char *argv[])
    }
 
    /* Activate the "Angband" window screen */
-   term_activate(&data[0].t);
+   Term_activate(&data[0].t);
 
    /* Store */
    term_screen = &data[0].t;
@@ -1287,3 +1442,5 @@ errr init_gcu(int argc, char *argv[])
 
 
 #endif /* USE_GCU */
+
+
index f677f78..78819f5 100644 (file)
@@ -9,6 +9,19 @@
  */
 
 
+#ifdef USE_JP_FONTSTRUCT
+/*
+ * 日本語(EUC-JAPAN)対応 (-DJP)
+ *    ・漢字フォントの扱いを追加
+ *    ・日本語を含む文字列の表示ルーチン XDrawMultiString() の追加
+ *    ・日本語の表示幅は,フォントの情報によらすASCIIフォントの2倍に固定
+ *
+ * 未対応
+ *      EUC半角の扱い
+ *
+ * 1996/6/7  李 晃伸 (ri@kuis.kyoto-u.ac.jp)
+ */
+#endif
 /*
  * This file helps Angband work with UNIX/X11 computers.
  *
  *
  */
 
-#include "system/angband.h"
-#include "cmd-io/macro-util.h"
-#include "game-option/runtime-arguments.h"
-#include "game-option/special-options.h"
-#include "io/files-util.h"
-#include "main/sound-definitions-table.h"
-#include "main/sound-of-music.h"
-#include "main/x11-type-string.h"
-#include "system/system-variables.h"
-#include "term/gameterm.h"
-#include "term/term-color-types.h"
-#include "util/int-char-converter.h"
-#include "util/angband-files.h"
-#include "util/string-processor.h"
-
-/*
- * Available graphic modes
- */
-#define GRAPHICS_NONE       0
-#define GRAPHICS_ORIGINAL   1
-#define GRAPHICS_ADAM_BOLT  2
-#define GRAPHICS_HENGBAND   3
+
+#include "angband.h"
+
+
 #ifdef USE_X11
+
+
 #ifndef __MAKEDEPEND__
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
 #ifdef USE_LOCALE
 #include <X11/Xlocale.h>
 #endif
+#if 0
+char *XSetIMValues(XIM, ...); /* Hack for XFree86 4.0 */
+#endif
 #include <X11/Xatom.h>
 #endif /* __MAKEDEPEND__ */
 
 #include <iconv.h>
-#ifdef USE_XFT
-#include <X11/Xft/Xft.h>
-#endif
-
 /*
  * Include some helpful X11 code.
  */
 
 
 /*
+ * Hack -- avoid some compiler warnings
+ */
+#define IGNORE_UNUSED_FUNCTIONS
+
+
+/*
  * Notes on Colors:
  *
  *   1) On a monochrome (or "fake-monochrome") display, all colors
  *   is not necessarily either black or white.
  */
 
+
+
 /**** Generic Types ****/
 
+
 /*
  * An X11 pixell specifier
  */
-#ifdef USE_XFT
-typedef XftColor Pixell;
-#else
 typedef unsigned long Pixell;
-#endif
 
 /*
  * The structures defined below
@@ -174,6 +175,7 @@ typedef struct infowin infowin;
 typedef struct infoclr infoclr;
 typedef struct infofnt infofnt;
 
+
 /*
  * A structure summarizing a given Display.
  *
@@ -224,15 +226,15 @@ struct metadpy
 
        Pixell bg;
        Pixell fg;
-#ifndef USE_XFT
        Pixell zg;
-#endif
 
        uint mono:1;
        uint color:1;
        uint nuke:1;
 };
 
+
+
 /*
  * A Structure summarizing Window Information.
  *
@@ -266,9 +268,6 @@ struct infowin
        XIC xic;
        long xic_mask;
 #endif
-#ifdef USE_XFT
-       XftDraw *draw;
-#endif
 
        long mask;
 
@@ -292,6 +291,11 @@ struct infowin
        uint flag4:1;
 };
 
+
+
+
+
+
 /*
  * A Structure summarizing Operation+Color Information
  *
@@ -306,9 +310,7 @@ struct infowin
  */
 struct infoclr
 {
-#ifndef USE_XFT
        GC gc;
-#endif
 
        Pixell fg;
        Pixell bg;
@@ -318,6 +320,8 @@ struct infoclr
        uint nuke:1;
 };
 
+
+
 /*
  * A Structure to Hold Font Information
  *
@@ -336,11 +340,12 @@ struct infoclr
  */
 struct infofnt
 {
-#ifdef USE_XFT
-       XftFont *info;
-#else
+#ifdef USE_FONTSET
        XFontSet info;
+#else
+       XFontStruct *info;
 #endif
+
        concptr name;
 
        s16b wid;
@@ -354,10 +359,18 @@ struct infofnt
        uint nuke:1;
 };
 
+
+
+
+/**** Generic Macros ****/
+
+
+
 /* Set current metadpy (Metadpy) to 'M' */
 #define Metadpy_set(M) \
        Metadpy = M
 
+
 /* Initialize 'M' using Display 'D' */
 #define Metadpy_init_dpy(D) \
        Metadpy_init_2(D,cNULL)
@@ -370,27 +383,33 @@ struct infofnt
 #define Metadpy_init() \
        Metadpy_init_name("")
 
+
 /* Init an infowin by giving father as an (info_win*) (or NULL), and data */
 #define Infowin_init_dad(D,X,Y,W,H,B,FG,BG) \
        Infowin_init_data(((D) ? ((D)->win) : (Window)(None)), \
                          X,Y,W,H,B,FG,BG)
 
+
 /* Init a top level infowin by pos,size,bord,Colors */
 #define Infowin_init_top(X,Y,W,H,B,FG,BG) \
        Infowin_init_data(None,X,Y,W,H,B,FG,BG)
 
+
 /* Request a new standard window by giving Dad infowin and X,Y,W,H */
 #define Infowin_init_std(D,X,Y,W,H,B) \
        Infowin_init_dad(D,X,Y,W,H,B,Metadpy->fg,Metadpy->bg)
 
+
 /* Set the current Infowin */
 #define Infowin_set(I) \
        (Infowin = (I))
 
+
 /* Set the current Infoclr */
 #define Infoclr_set(C) \
        (Infoclr = (C))
 
+
 #define Infoclr_init_ppo(F,B,O,M) \
        Infoclr_init_data(F,B,O,M)
 
@@ -403,10 +422,12 @@ struct infofnt
 #define Infoclr_init_ccn(F,B,O,M) \
        Infoclr_init_cco(F,B,Infoclr_Opcode(O),M)
 
+
 /* Set the current infofnt */
 #define Infofnt_set(I) \
        (Infofnt = (I))
 
+
 /* Errr: Expose Infowin */
 #define Infowin_expose() \
        (!(Infowin->redraw = 1))
@@ -415,11 +436,17 @@ struct infofnt
 #define Infowin_unexpose() \
        (Infowin->redraw = 0)
 
+
+
+/**** Generic Globals ****/
+
+
 /*
  * The "default" values
  */
 static metadpy metadpy_default;
 
+
 /*
  * The "current" variables
  */
@@ -429,8 +456,23 @@ static infowin *Infowin = (infowin*)(NULL);
 static infowin *Focuswin = (infowin*)(NULL);
 #endif
 static infoclr *Infoclr = (infoclr*)(NULL);
+#ifdef USE_JP_FONTSTRUCT
 static infofnt *Infofnt = (infofnt*)(NULL);
+static infofnt *Infokfnt = (infofnt*)(NULL);
+#else
+static infofnt *Infofnt = (infofnt*)(NULL);
+#endif
+
+
 
+
+/**** Generic code ****/
+
+
+#ifdef USE_JP_FONTSTRUCT
+#define Infokfnt_set(I) \
+       (Infokfnt = (I))
+#endif
 /*
  * Init the current metadpy, with various initialization stuff.
  *
@@ -448,57 +490,117 @@ static infofnt *Infofnt = (infofnt*)(NULL);
 static errr Metadpy_init_2(Display *dpy, concptr name)
 {
        metadpy *m = Metadpy;
+
+       /*** Open the display if needed ***/
+
+       /* If no Display given, attempt to Create one */
        if (!dpy)
        {
+               /* Attempt to open the display */
                dpy = XOpenDisplay(name);
+
+               /* Failure */
                if (!dpy) return (-1);
 
+               /* We will have to nuke it when done */
                m->nuke = 1;
        }
+
+       /* Since the Display was given, use it */
        else
        {
+               /* We will not have to nuke it when done */
                m->nuke = 0;
        }
 
+
+       /*** Save some information ***/
+
+       /* Save the Display itself */
        m->dpy = dpy;
+
+       /* Get the Screen and Virtual Root Window */
        m->screen = DefaultScreenOfDisplay(dpy);
        m->root = RootWindowOfScreen(m->screen);
+
+       /* Get the default colormap */
        m->cmap = DefaultColormapOfScreen(m->screen);
+
+       /* Extract the true name of the display */
        m->name = DisplayString(dpy);
+
+       /* Extract the fd */
        m->fd = ConnectionNumber(Metadpy->dpy);
+
+       /* Save the Size and Depth of the screen */
        m->width = WidthOfScreen(m->screen);
        m->height = HeightOfScreen(m->screen);
        m->depth = DefaultDepthOfScreen(m->screen);
 
-#ifdef USE_XFT
-       Visual *vis = DefaultVisual(dpy, 0);
-       XftColorAllocName(dpy, vis, m->cmap, "black", &m->black);
-       XftColorAllocName(dpy, vis, m->cmap, "white", &m->white);
-#else
+       /* Save the Standard Colors */
        m->black = BlackPixelOfScreen(m->screen);
        m->white = WhitePixelOfScreen(m->screen);
-#endif
 
+       /*** Make some clever Guesses ***/
+
+       /* Guess at the desired 'fg' and 'bg' Pixell's */
        m->bg = m->black;
        m->fg = m->white;
 
-#ifndef USE_XFT
+       /* Calculate the Maximum allowed Pixel value.  */
        m->zg = (1 << m->depth) - 1;
-#endif
 
+       /* Save various default Flag Settings */
        m->color = ((m->depth > 1) ? 1 : 0);
        m->mono = ((m->color) ? 0 : 1);
+
+       /* Return "success" */
+       return (0);
+}
+
+
+#ifndef IGNORE_UNUSED_FUNCTIONS
+
+/*
+ * Nuke the current metadpy
+ */
+static errr Metadpy_nuke(void)
+{
+       metadpy *m = Metadpy;
+
+
+       /* If required, Free the Display */
+       if (m->nuke)
+       {
+               /* Close the Display */
+               XCloseDisplay(m->dpy);
+
+               /* Forget the Display */
+               m->dpy = (Display*)(NULL);
+
+               /* Do not nuke it again */
+               m->nuke = 0;
+       }
+
+       /* Return Success */
        return (0);
 }
 
+#endif /* IGNORE_UNUSED_FUNCTIONS */
+
+
 /*
  * General Flush/ Sync/ Discard routine
  */
 static errr Metadpy_update(int flush, int sync, int discard)
 {
+       /* Flush if desired */
        if (flush) XFlush(Metadpy->dpy);
+
+       /* Sync if desired, using 'discard' */
        if (sync) XSync(Metadpy->dpy, discard);
 
+       /* Success */
        return (0);
 }
 
@@ -508,10 +610,14 @@ static errr Metadpy_update(int flush, int sync, int discard)
  */
 static errr Metadpy_do_beep(void)
 {
+       /* Make a simple beep */
        XBell(Metadpy->dpy, 100);
+
        return (0);
 }
 
+
+
 /*
  * Set the name (in the title bar) of Infowin
  */
@@ -527,40 +633,106 @@ static errr Infowin_set_name(concptr name)
        return (0);
 }
 
+
+#ifndef IGNORE_UNUSED_FUNCTIONS
+
+/*
+ * Set the icon name of Infowin
+ */
+static errr Infowin_set_icon_name(concptr name)
+{
+       Status st;
+       XTextProperty tp;
+       char buf[128];
+       char *bp = buf;
+       strcpy(buf, name);
+       st = XStringListToTextProperty(&bp, 1, &tp);
+       if (st) XSetWMIconName(Metadpy->dpy, Infowin->win, &tp);
+       return (0);
+}
+
+
+/*
+ * Nuke Infowin
+ */
+static errr Infowin_nuke(void)
+{
+       infowin *iwin = Infowin;
+
+       /* Nuke if requested */
+       if (iwin->nuke)
+       {
+               /* Destory the old window */
+               XDestroyWindow(Metadpy->dpy, iwin->win);
+       }
+
+       /* Success */
+       return (0);
+}
+
+#endif /* IGNORE_UNUSED_FUNCTIONS */
+
+
 /*
  * Prepare a new 'infowin'.
  */
 static errr Infowin_prepare(Window xid)
 {
        infowin *iwin = Infowin;
+
        Window tmp_win;
        XWindowAttributes xwa;
        int x, y;
        unsigned int w, h, b, d;
+
+       /* Assign stuff */
        iwin->win = xid;
-       XGetGeometry(Metadpy->dpy, xid, &tmp_win, &x, &y, &w, &h, &b, &d);
 
-#ifdef USE_XFT
-       Visual *vis = DefaultVisual(Metadpy->dpy, 0);
-       if (vis->class != TrueColor) {
-               quit_fmt("Display does not support truecolor.\n");
-        }
-       iwin->draw = XftDrawCreate(Metadpy->dpy, iwin->win, vis, Metadpy->cmap);
-#endif
+       /* Check For Error XXX Extract some ACTUAL data from 'xid' */
+       XGetGeometry(Metadpy->dpy, xid, &tmp_win, &x, &y, &w, &h, &b, &d);
 
+       /* Apply the above info */
        iwin->x = x;
        iwin->y = y;
        iwin->w = w;
        iwin->h = h;
        iwin->b = b;
 
+       /* Check Error XXX Extract some more ACTUAL data */
        XGetWindowAttributes(Metadpy->dpy, xid, &xwa);
+
+       /* Apply the above info */
        iwin->mask = xwa.your_event_mask;
        iwin->mapped = ((xwa.map_state == IsUnmapped) ? 0 : 1);
+
+       /* And assume that we are exposed */
        iwin->redraw = 1;
+
+       /* Success */
        return (0);
 }
 
+
+#ifndef IGNORE_UNUSED_FUNCTIONS
+
+/*
+ * Initialize a new 'infowin'.
+ */
+static errr Infowin_init_real(Window xid)
+{
+       /* Wipe it clean */
+       (void)WIPE(Infowin, infowin);
+
+       /* Start out non-nukable */
+       Infowin->nuke = 0;
+
+       /* Attempt to Prepare ourself */
+       return (Infowin_prepare(xid));
+}
+
+#endif /* IGNORE_UNUSED_FUNCTIONS */
+
+
 /*
  * Init an infowin by giving some data.
  *
@@ -577,75 +749,202 @@ static errr Infowin_init_data(Window dad, int x, int y, int w, int h,
                              int b, Pixell fg, Pixell bg)
 {
        Window xid;
+
+       /* Wipe it clean */
        (void)WIPE(Infowin, infowin);
-       if (dad == None) dad = Metadpy->root;
 
-#ifdef USE_XFT
-       xid = XCreateSimpleWindow(Metadpy->dpy, dad, x, y, w, h, b, fg.pixel, bg.pixel);
-#else
+
+       /*** Error Check XXX ***/
+
+
+       /*** Create the Window 'xid' from data ***/
+
+       /* What happened here?  XXX XXX XXX */
+
+       /* If no parent given, depend on root */
+       if (dad == None)
+
+/* #ifdef USE_GRAPHICS
+
+               xid = XCreateWindow(Metadpy->dpy, Metadpy->root, x, y, w, h, b, 8, InputOutput, CopyFromParent, 0, 0);
+
+       else
+*/
+
+/* #else */
+
+               dad = Metadpy->root;
+
+/* #endif */
+
+       /* Create the Window XXX Error Check */
        xid = XCreateSimpleWindow(Metadpy->dpy, dad, x, y, w, h, b, fg, bg);
-#endif
 
+       /* Start out selecting No events */
        XSelectInput(Metadpy->dpy, xid, 0L);
+
+
+       /*** Prepare the new infowin ***/
+
+       /* Mark it as nukable */
        Infowin->nuke = 1;
+
+       /* Attempt to Initialize the infowin */
        return (Infowin_prepare(xid));
 }
 
+
+
 /*
  * Modify the event mask of an Infowin
  */
 static errr Infowin_set_mask(long mask)
 {
+       /* Save the new setting */
        Infowin->mask = mask;
+
+       /* Execute the Mapping */
        XSelectInput(Metadpy->dpy, Infowin->win, Infowin->mask);
+
+       /* Success */
        return (0);
 }
 
+
 /*
  * Request that Infowin be mapped
  */
 static errr Infowin_map(void)
 {
+       /* Execute the Mapping */
        XMapWindow(Metadpy->dpy, Infowin->win);
+
+       /* Success */
+       return (0);
+}
+
+
+#ifndef IGNORE_UNUSED_FUNCTIONS
+
+/*
+ * Request that Infowin be unmapped
+ */
+static errr Infowin_unmap(void)
+{
+       /* Execute the Un-Mapping */
+       XUnmapWindow(Metadpy->dpy, Infowin->win);
+
+       /* Success */
        return (0);
 }
 
+#endif /* IGNORE_UNUSED_FUNCTIONS */
+
+
 /*
  * Request that Infowin be raised
  */
 static errr Infowin_raise(void)
 {
+       /* Raise towards visibility */
        XRaiseWindow(Metadpy->dpy, Infowin->win);
+
+       /* Success */
+       return (0);
+}
+
+
+#ifndef IGNORE_UNUSED_FUNCTIONS
+
+/*
+ * Request that Infowin be lowered
+ */
+static errr Infowin_lower(void)
+{
+       /* Lower towards invisibility */
+       XLowerWindow(Metadpy->dpy, Infowin->win);
+
+       /* Success */
        return (0);
 }
 
+#endif /* IGNORE_UNUSED_FUNCTIONS */
+
+
 /*
  * Request that Infowin be moved to a new location
  */
 static errr Infowin_impell(int x, int y)
 {
+       /* Execute the request */
        XMoveWindow(Metadpy->dpy, Infowin->win, x, y);
+
+       /* Success */
        return (0);
 }
 
+
 /*
  * Resize an infowin
  */
 static errr Infowin_resize(int w, int h)
 {
+       /* Execute the request */
        XResizeWindow(Metadpy->dpy, Infowin->win, w, h);
+
+       /* Success */
        return (0);
 }
 
+
+#ifndef IGNORE_UNUSED_FUNCTIONS
+
+/*
+ * Move and Resize an infowin
+ */
+static errr Infowin_locate(int x, int y, int w, int h)
+{
+       /* Execute the request */
+       XMoveResizeWindow(Metadpy->dpy, Infowin->win, x, y, w, h);
+
+       /* Success */
+       return (0);
+}
+
+#endif /* IGNORE_UNUSED_FUNCTIONS */
+
+
 /*
  * Visually clear Infowin
  */
 static errr Infowin_wipe(void)
 {
+       /* Execute the request */
        XClearWindow(Metadpy->dpy, Infowin->win);
+
+       /* Success */
+       return (0);
+}
+
+
+#ifndef IGNORE_UNUSED_FUNCTIONS
+
+/*
+ * Visually Paint Infowin with the current color
+ */
+static errr Infowin_fill(void)
+{
+       /* Execute the request */
+       XFillRectangle(Metadpy->dpy, Infowin->win, Infoclr->gc,
+                      0, 0, Infowin->w, Infowin->h);
+
+       /* Success */
        return (0);
 }
 
+#endif /* IGNORE_UNUSED_FUNCTIONS */
+
+
 /*
  * A NULL terminated pair list of legal "operation names"
  *
@@ -677,6 +976,7 @@ static concptr opcode_pairs[] =
        NULL
 };
 
+
 /*
  * Parse a word into an operation "code"
  *
@@ -690,17 +990,126 @@ static concptr opcode_pairs[] =
 static int Infoclr_Opcode(concptr str)
 {
        register int i;
+
+       /* Scan through all legal operation names */
        for (i = 0; opcode_pairs[i*2]; ++i)
        {
+               /* Is this the right oprname? */
                if (streq(opcode_pairs[i*2], str))
                {
+                       /* Convert the second element in the pair into a Code */
                        return (atoi(opcode_pairs[i*2+1]));
                }
        }
 
+       /* The code was not found, return -1 */
        return (-1);
 }
 
+
+#ifndef IGNORE_UNUSED_FUNCTIONS
+
+/*
+ * Request a Pixell by name.  Note: uses 'Metadpy'.
+ *
+ * Inputs:
+ *      name: The name of the color to try to load (see below)
+ *
+ * Output:
+ *     The Pixell value that metched the given name
+ *     'Metadpy->fg' if the name was unparseable
+ *
+ * Valid forms for 'name':
+ *     'fg', 'bg', 'zg', '<name>' and '#<code>'
+ */
+static Pixell Infoclr_Pixell(concptr name)
+{
+       XColor scrn;
+
+       /* Attempt to Parse the name */
+       if (name && name[0])
+       {
+               /* The 'bg' color is available */
+               if (streq(name, "bg")) return (Metadpy->bg);
+
+               /* The 'fg' color is available */
+               if (streq(name, "fg")) return (Metadpy->fg);
+
+               /* The 'zg' color is available */
+               if (streq(name, "zg")) return (Metadpy->zg);
+
+               /* The 'white' color is available */
+               if (streq(name, "white")) return (Metadpy->white);
+
+               /* The 'black' color is available */
+               if (streq(name, "black")) return (Metadpy->black);
+
+               /* Attempt to parse 'name' into 'scrn' */
+               if (!(XParseColor(Metadpy->dpy, Metadpy->cmap, name, &scrn)))
+               {
+                       plog_fmt("Warning: Couldn't parse color '%s'\n", name);
+               }
+
+               /* Attempt to Allocate the Parsed color */
+               if (!(XAllocColor(Metadpy->dpy, Metadpy->cmap, &scrn)))
+               {
+                       plog_fmt("Warning: Couldn't allocate color '%s'\n", name);
+               }
+
+               /* The Pixel was Allocated correctly */
+               else return (scrn.pixel);
+       }
+
+       /* Warn about the Default being Used */
+       plog_fmt("Warning: Using 'fg' for unknown color '%s'\n", name);
+
+       /* Default to the 'Foreground' color */
+       return (Metadpy->fg);
+}
+
+
+/*
+ * Initialize a new 'infoclr' with a real GC.
+ */
+static errr Infoclr_init_1(GC gc)
+{
+       infoclr *iclr = Infoclr;
+
+       /* Wipe the iclr clean */
+       (void)WIPE(iclr, infoclr);
+
+       /* Assign the GC */
+       iclr->gc = gc;
+
+       /* Success */
+       return (0);
+}
+
+
+/*
+ * Nuke an old 'infoclr'.
+ */
+static errr Infoclr_nuke(void)
+{
+       infoclr *iclr = Infoclr;
+
+       /* Deal with 'GC' */
+       if (iclr->nuke)
+       {
+               /* Free the GC */
+               XFreeGC(Metadpy->dpy, iclr->gc);
+       }
+
+       /* Forget the current */
+       Infoclr = (infoclr*)(NULL);
+
+       /* Success */
+       return (0);
+}
+
+#endif /* IGNORE_UNUSED_FUNCTIONS */
+
+
 /*
  * Initialize an infoclr with some data
  *
@@ -714,43 +1123,74 @@ static errr Infoclr_init_data(Pixell fg, Pixell bg, int op, int stip)
 {
        infoclr *iclr = Infoclr;
 
-#ifndef USE_XFT
        GC gc;
        XGCValues gcv;
        unsigned long gc_mask;
-#endif
 
-#ifndef USE_XFT
+
+
+       /*** Simple error checking of opr and clr ***/
+
+       /* Check the 'Pixells' for realism */
        if (bg > Metadpy->zg) return (-1);
        if (fg > Metadpy->zg) return (-1);
+
+       /* Check the data for trueness */
        if ((op < 0) || (op > 15)) return (-1);
 
+
+       /*** Create the requested 'GC' ***/
+
+       /* Assign the proper GC function */
        gcv.function = op;
+
+       /* Assign the proper GC background */
        gcv.background = bg;
+
+       /* Assign the proper GC foreground */
        gcv.foreground = fg;
+
+       /* Hack -- Handle XOR (xor is code 6) by hacking bg and fg */
        if (op == 6) gcv.background = 0;
        if (op == 6) gcv.foreground = (bg ^ fg);
 
+       /* Assign the proper GC Fill Style */
        gcv.fill_style = (stip ? FillStippled : FillSolid);
+
+       /* Turn off 'Give exposure events for pixmap copying' */
        gcv.graphics_exposures = False;
-       gc_mask = (GCFunction | GCBackground | GCForeground | GCFillStyle | GCGraphicsExposures);
+
+       /* Set up the GC mask */
+       gc_mask = (GCFunction | GCBackground | GCForeground |
+                  GCFillStyle | GCGraphicsExposures);
+
+       /* Create the GC detailed above */
        gc = XCreateGC(Metadpy->dpy, Metadpy->root, gc_mask, &gcv);
-#endif
 
+
+       /*** Initialize ***/
+
+       /* Wipe the iclr clean */
        (void)WIPE(iclr, infoclr);
 
-#ifndef USE_XFT
+       /* Assign the GC */
        iclr->gc = gc;
-#endif
 
+       /* Nuke it when done */
        iclr->nuke = 1;
+
+       /* Assign the parms */
        iclr->fg = fg;
        iclr->bg = bg;
        iclr->code = op;
        iclr->stip = stip ? 1 : 0;
+
+       /* Success */
        return (0);
 }
 
+
+
 /*
  * Change the 'fg' for an infoclr
  *
@@ -761,47 +1201,107 @@ static errr Infoclr_change_fg(Pixell fg)
 {
        infoclr *iclr = Infoclr;
 
-#ifdef USE_XFT
-       iclr->fg = fg;
-#else
+
+       /*** Simple error checking of opr and clr ***/
+
+       /* Check the 'Pixells' for realism */
        if (fg > Metadpy->zg) return (-1);
 
+
+       /*** Change ***/
+
+       /* Change */
        XSetForeground(Metadpy->dpy, iclr->gc, fg);
+
+       /* Success */
+       return (0);
+}
+
+
+
+#ifndef IGNORE_UNUSED_FUNCTIONS
+
+/*
+ * Nuke an old 'infofnt'.
+ */
+static errr Infofnt_nuke(void)
+{
+       infofnt *ifnt = Infofnt;
+
+#ifdef USE_JP_FONTSTRUCT
+       infofnt *ikfnt = Infokfnt;
+#endif
+       /* Deal with 'name' */
+       if (ifnt->name)
+       {
+               /* Free the name */
+               string_free(ifnt->name);
+       }
+
+#ifdef USE_JP_FONTSTRUCT
+       if (ikfnt->name)
+       {
+               /* Free the name */
+               string_free(ikfnt->name);
+       }
+#endif
+
+       /* Nuke info if needed */
+       if (ifnt->nuke)
+       {
+               /* Free the font */
+#ifdef USE_FONTSET
+               XFreeFontSet(Metadpy->dpy, ifnt->info);
+#else
+               XFreeFont(Metadpy->dpy, ifnt->info);
 #endif
+       }
 
+#ifdef USE_JP_FONTSTRUCT
+       if (ikfnt->nuke)
+       {
+               /* Free the font */
+               XFreeFont(Metadpy->dpy, ikfnt->info);
+       }
+#endif
+       /* Success */
        return (0);
 }
 
+#endif /* IGNORE_UNUSED_FUNCTIONS */
+
+
 /*
  * Prepare a new 'infofnt'
  */
-#ifdef USE_XFT
-static errr Infofnt_prepare(XftFont *info)
+#ifdef USE_JP_FONTSTRUCT
+static errr Infofnt_prepare(XFontStruct *info, XFontStruct *kinfo)
 #else
+#ifdef USE_FONTSET
 static errr Infofnt_prepare(XFontSet info)
+#else
+static errr Infofnt_prepare(XFontStruct *info)
 #endif
+#endif
+
 {
        infofnt *ifnt = Infofnt;
 
-#ifndef USE_XFT
+#ifdef USE_JP_FONTSTRUCT
+       infofnt *ikfnt = Infokfnt;
+#endif
        XCharStruct *cs;
+#ifdef USE_FONTSET
        XFontStruct **fontinfo;
        char **fontname;
        int n_fonts;
        int ascent, descent, width;
 #endif
 
+       /* Assign the struct */
        ifnt->info = info;
 
-
-#ifdef USE_XFT
-       ifnt->asc = info->ascent;
-       ifnt->hgt = info->ascent + info->descent;
-       const char *text = "A";
-       XGlyphInfo extent;
-       XftTextExtentsUtf8(Metadpy->dpy, info, (FcChar8*)text, strlen(text), &extent);
-       ifnt->wid = extent.xOff;
-#else
+#ifdef USE_FONTSET
        n_fonts = XFontsOfFontSet(info, &fontinfo, &fontname);
 
        ascent = descent = width = 0;
@@ -821,6 +1321,14 @@ static errr Infofnt_prepare(XFontSet info)
        ifnt->asc = ascent;
        ifnt->hgt = ascent + descent;
        ifnt->wid = width;
+#else
+       /* Jump into the max bouonds thing */
+       cs = &(info->max_bounds);
+
+       /* Extract default sizing info */
+       ifnt->asc = info->ascent;
+       ifnt->hgt = info->ascent + info->descent;
+       ifnt->wid = cs->width;
 #endif
 
        if (use_bigtile)
@@ -828,33 +1336,108 @@ static errr Infofnt_prepare(XFontSet info)
        else
                ifnt->twid = ifnt->wid;
 
+#ifdef USE_JP_FONTSTRUCT
+    /* Assign the struct */
+    ikfnt->info = kinfo;
+    /* Jump into the max bouonds thing */
+    cs = &(kinfo->max_bounds);
+    /* Extract default sizing info */
+    ikfnt->asc = kinfo->ascent;
+    ikfnt->hgt = kinfo->ascent + kinfo->descent;
+    ikfnt->wid = cs->width;
+#endif
+#ifndef JP
+#ifdef OBSOLETE_SIZING_METHOD
+       /* Extract default sizing info */
+       ifnt->asc = cs->ascent;
+       ifnt->hgt = (cs->ascent + cs->descent);
+       ifnt->wid = cs->width;
+#endif
+#endif
+
+       /* Success */
        return (0);
 }
 
+
+#ifndef IGNORE_UNUSED_FUNCTIONS
+
+/*
+ * Initialize a new 'infofnt'.
+ */
+#ifdef USE_JP_FONTSTRUCT
+static errr Infofnt_init_real(XFontStruct *info, XFontStruct *kinfo)
+#else
+#ifdef USE_FONTSET
+static errr Infofnt_init_real(XFontSet info)
+#else
+static errr Infofnt_init_real(XFontStruct *info)
+#endif
+#endif
+
+{
+       /* Wipe the thing */
+       (void)WIPE(Infofnt, infofnt);
+
+#ifdef USE_JP_FONTSTRUCT
+       WIPE(Infokfnt, infofnt);
+#endif
+       /* No nuking */
+       Infofnt->nuke = 0;
+
+#ifdef USE_JP_FONTSTRUCT
+       Infokfnt->nuke = 0;
+#endif
+       /* Attempt to prepare it */
+#ifdef USE_JP_FONTSTRUCT
+       return (Infofnt_prepare (info, kinfo));
+#else
+       return (Infofnt_prepare(info));
+#endif
+
+}
+
+#endif /* IGNORE_UNUSED_FUNCTIONS */
+
+
 /*
  * Init an infofnt by its Name
  *
  * Inputs:
  *     name: The name of the requested Font
  */
+#ifdef USE_JP_FONTSTRUCT
+static void Infofnt_init_data(concptr name, concptr kname)
+#else
 static void Infofnt_init_data(concptr name)
+#endif
 
 {
-#ifdef USE_XFT
-       XftFont *info;
-#else
+#ifdef USE_FONTSET
        XFontSet info;
        char **missing_list;
        int missing_count;
        char *default_font;
+#else
+       XFontStruct *info;
+#endif
+
+
+#ifdef USE_JP_FONTSTRUCT
+       XFontStruct *kinfo;
 #endif
+       /*** Load the info Fresh, using the name ***/
 
+       /* If the name is not given, report an error */
        if (!name || !*name) quit("Missing font!");
 
-#ifdef USE_XFT
-       info = XftFontOpenName(Metadpy->dpy, 0, name);
-       /* TODO: error handling */
-#else
+#ifdef USE_JP_FONTSTRUCT
+       if (!kname || !*kname) quit("Missing kanji font!");
+#endif
+       /* Attempt to load the font */
+#ifdef USE_FONTSET
        info = XCreateFontSet(Metadpy->dpy, name, &missing_list, &missing_count, &default_font);
        if(missing_count > 0){
                printf("missing font(s): \n");
@@ -863,108 +1446,305 @@ static void Infofnt_init_data(concptr name)
                }
                XFreeStringList(missing_list);
        }
+#else
+       info = XLoadQueryFont(Metadpy->dpy, name);
+#ifdef USE_JP_FONTSTRUCT
+       kinfo = XLoadQueryFont(Metadpy->dpy, kname);
+#endif
 #endif
 
+
+       /* The load failed, try to recover */
        if (!info) quit_fmt("Failed to find font:\"%s\"", name);
+#ifdef USE_JP_FONTSTRUCT
+       if (!kinfo) quit_fmt("Failed to find font:\"%s\"", kname);
+#endif
 
+
+
+       /*** Init the font ***/
+
+       /* Wipe the thing */
        (void)WIPE(Infofnt, infofnt);
+
+#ifdef USE_JP_FONTSTRUCT
+       WIPE(Infokfnt, infofnt);
+#endif
+       /* Attempt to prepare it */
+#ifdef USE_JP_FONTSTRUCT
+       if (Infofnt_prepare(info, kinfo))
+#else
        if (Infofnt_prepare(info))
+#endif
+
        {
-#ifdef USE_XFT
-               XftFontClose(Metadpy->dpy, info);
-#else
+               /* Free the font */
+#ifdef USE_FONTSET
                XFreeFontSet(Metadpy->dpy, info);
+#else
+               XFreeFont(Metadpy->dpy, info);
+#ifdef USE_JP_FONTSTRUCT
+               XFreeFont(Metadpy->dpy, kinfo);
 #endif
+#endif
+               /* Fail */
                quit_fmt("Failed to prepare font:\"%s\"", name);
        }
 
+       /* Save a copy of the font name */
        Infofnt->name = string_make(name);
+#ifdef USE_JP_FONTSTRUCT
+       Infokfnt->name = string_make(kname);
+#endif
+
+       /* Mark it as nukable */
        Infofnt->nuke = 1;
+#ifdef USE_JP_FONTSTRUCT
+       Infokfnt->nuke = 1;
+#endif
+}
+
+
+#ifdef USE_JP_FONTSTRUCT
+/*
+ * EUC日本語コードを含む文字列を表示する (Xlib)
+ */
+static void
+XDrawMultiString(display,d,gc, x, y, string, len, afont, 
+      afont_width, afont_height, afont_ascent, kfont, kfont_width)
+    Display *display;
+    Drawable d;
+    GC gc;
+    int       x, y;
+    char      *string;
+    int len;
+    XFontStruct *afont;
+    int afont_width, afont_height, afont_ascent;
+    XFontStruct *kfont;
+    int kfont_width;
+{
+    XChar2b       kanji[500];
+    char *p;
+    unsigned char *str;
+    unsigned char *endp;
+    int slen;
+    str = string;
+    endp = string + len;
+
+    while ( str < endp && *str ) {
+
+#ifdef TOFU      
+      if ( (*str) == 0x7f ) {
+         
+         /* 0x7Fは■で決め打ち */
+         
+         /* 連続する0x7Fの長さを検出 */
+         slen = 0;
+         while ( str < endp && (*str) == 0x7f ) {
+             slen++; 
+             str++;
+         }
+         
+         /* 描画 */
+         XFillRectangle( display, d, gc, x, y-afont_ascent, 
+                         slen * afont_width, afont_height);
+         /* ポインタを進める */
+         x += afont_width * slen;
+      } 
+      else  
+#endif
+      if ( iskanji(*str) ) {
+         
+         /* UJISの始まり */
+         
+         /* 連続するUJIS文字の長さを検出 */
+         slen = 0;
+         while ( str < endp && *str && iskanji(*str) ) {
+             kanji[slen].byte1 = *str++ & 0x7f;
+             kanji[slen++].byte2 = *str++ & 0x7f;
+         }
+         
+         /* 描画 */
+         XSetFont( display, gc, kfont->fid );
+         XDrawImageString16( display, d, gc, x, y, kanji, slen );
+
+         /* ポインタを進める */
+         x += kfont_width * slen;
+         
+      } else {
+         
+         /* 非漢字(=ASCIIと仮定)の始まり */
+         
+         /* 連続するASCII文字を検出 */
+         p = str;
+         slen = 0;
+         while ( str < endp && *str && !iskanji(*str) ) {
+#ifdef TOFU
+             if (*str == 0x7f)break;
+#endif
+             str++;
+             slen++;
+         }
+         
+         /* 描画 */
+         XSetFont( display, gc, afont->fid );
+         XDrawImageString( display, d, gc, x, y, p, slen );
+         
+         /* ポインタを進める */
+         x += afont_width * slen;
+      }
+    }
 }
+#endif
 
 /*
  * Standard Text
  */
 static errr Infofnt_text_std(int x, int y, concptr str, int len)
 {
+       int i;
+
+
+       /*** Do a brief info analysis ***/
+
+       /* Do nothing if the string is null */
        if (!str || !*str) return (-1);
 
+       /* Get the length of the string */
        if (len < 0) len = strlen(str);
 
+       /*** Decide where to place the string, vertically ***/
+
+       /* Ignore Vertical Justifications */
        y = (y * Infofnt->hgt) + Infofnt->asc + Infowin->oy;
+
+
+       /*** Decide where to place the string, horizontally ***/
+
+       /* Line up with x at left edge of column 'x' */
        x = (x * Infofnt->wid) + Infowin->ox;
+
+
+       /*** Actually draw 'str' onto the infowin ***/
+
+#ifndef USE_FONTSET
+       /* Be sure the correct font is ready */
+       XSetFont(Metadpy->dpy, Infoclr->gc, Infofnt->info->fid);
+#endif
+
+       /*** Handle the fake mono we can enforce on fonts ***/
+
+       /* Monotize the font */
        if (Infofnt->mono)
        {
-#ifndef USE_XFT
-               int i;
+#ifdef USE_JP_FONTSTRUCT
+               /* Be sure the correct font is ready */
+               XSetFont(Metadpy->dpy, Infoclr->gc, Infofnt->info->fid);
+#endif
+               /* Do each character */
                for (i = 0; i < len; ++i)
                {
-                       XDrawImageString(Metadpy->dpy, Infowin->win, Infoclr->gc, x + i * Infofnt->wid + Infofnt->off, y, str + i, 1);
+                       /* Note that the Infoclr is set up to contain the Infofnt */
+                       XDrawImageString(Metadpy->dpy, Infowin->win, Infoclr->gc,
+                                        x + i * Infofnt->wid + Infofnt->off, y, str + i, 1);
                }
-#endif
        }
+
+       /* Assume monoospaced font */
        else
        {
+               /* Note that the Infoclr is set up to contain the Infofnt */
+#ifdef USE_JP_FONTSTRUCT
+               /* 漢字フォントの表示幅は ASCIIフォントの2倍に固定 */
+               XDrawMultiString(Metadpy->dpy, Infowin->win, Infoclr->gc,
+                                x, y, str, len,
+                                Infofnt->info, Infofnt->wid, Infofnt->hgt,
+                                Infofnt->asc, 
+                                Infokfnt->info, Infofnt->wid * 2);
+#else
+#ifdef USE_FONTSET
+
                iconv_t cd = iconv_open("UTF-8", "EUC-JP");
                size_t inlen = len;
                size_t outlen = len * 2;
                char *kanji = malloc(outlen);
                char *sp; char *kp = kanji;
                char sbuf[1024];
-               angband_strcpy(sbuf, str, sizeof(sbuf));
+               my_strcpy(sbuf, str, sizeof(sbuf));
                sp = sbuf;
                iconv(cd, &sp, &inlen, &kp, &outlen);
                iconv_close(cd);
 
-#ifdef USE_XFT
-               XftDraw* draw = Infowin->draw;
-
-               XRectangle r;
-               r.x = 0;
-               r.y = 0;
-               r.width = Infofnt->wid*len;
-               r.height = Infofnt->hgt;
-               XftDrawSetClipRectangles(draw, x, y-Infofnt->asc, &r, 1);
-               XftDrawRect(draw, &Infoclr->bg, x, y-Infofnt->asc, Infofnt->wid*len, Infofnt->hgt);
-               XftDrawStringUtf8(draw, &Infoclr->fg, Infofnt->info, x, y,
-                        (FcChar8*)kanji, kp - kanji);
-               XftDrawSetClip(draw, 0);
-#else
                XmbDrawImageString(Metadpy->dpy, Infowin->win, Infofnt->info,
                                Infoclr->gc, x, y, kanji, kp-kanji);
-#endif
                free(kanji);
+#else
+               XDrawImageString(Metadpy->dpy, Infowin->win, Infoclr->gc,
+                                x, y, str, len);
+#endif
+#endif
+
        }
 
+
+       /* Success */
        return (0);
 }
 
+
 /*
  * Painting where text would be
  */
 static errr Infofnt_text_non(int x, int y, concptr str, int len)
 {
        int w, h;
+
+
+       /*** Find the width ***/
+
+       /* Negative length is a flag to count the characters in str */
        if (len < 0) len = strlen(str);
 
+       /* The total width will be 'len' chars * standard width */
        w = len * Infofnt->wid;
+
+
+       /*** Find the X dimensions ***/
+
+       /* Line up with x at left edge of column 'x' */
        x = x * Infofnt->wid + Infowin->ox;
+
+
+       /*** Find other dimensions ***/
+
+       /* Simply do 'Infofnt->hgt' (a single row) high */
        h = Infofnt->hgt;
+
+       /* Simply do "at top" in row 'y' */
        y = y * h + Infowin->oy;
 
-#ifdef USE_XFT
-       XftDrawRect(Infowin->draw, &Infoclr->fg, x, y, w, h);
-#else
+
+       /*** Actually 'paint' the area ***/
+
+       /* Just do a Fill Rectangle */
        XFillRectangle(Metadpy->dpy, Infowin->win, Infoclr->gc, x, y, w, h);
-#endif
 
+       /* Success */
        return (0);
 }
 
+
+
+/*************************************************************************/
+
+
 /*
  * Angband specific code follows... (ANGBAND)
  */
 
+
 /*
  * Hack -- cursor color
  */
@@ -990,15 +1770,28 @@ typedef struct term_data term_data;
  */
 struct term_data
 {
-       term_type t;
+       term t;
+
        infofnt *fnt;
+#ifdef USE_JP_FONTSTRUCT
+       infofnt *kfnt;
+#endif
+
+
        infowin *win;
-#ifndef USE_XFT
+
+#ifdef USE_GRAPHICS
+
        XImage *tiles;
+
+       /* Tempory storage for overlaying tiles. */
        XImage *TmpImage;
+
 #endif
+
 };
 
+
 /*
  * The number of term data structures
  */
@@ -1014,6 +1807,7 @@ static term_data data[MAX_TERM_DATA];
 #define DPY (Metadpy->dpy)
 #define WIN (Infowin->win)
 
+
 /* Describe a set of co-ordinates. */
 typedef struct co_ord co_ord;
 struct co_ord
@@ -1022,6 +1816,7 @@ struct co_ord
        int y;
 };
 
+
 /*
  * A special structure to store information about the text currently
  * selected.
@@ -1031,7 +1826,7 @@ struct x11_selection_type
 {
        bool select; /* The selection is currently in use. */
        bool drawn; /* The selection is currently displayed. */
-       term_type *t; /* The window where the selection is found. */
+       term *t; /* The window where the selection is found. */
        co_ord init; /* The starting co-ordinates. */
        co_ord cur; /* The end co-ordinates (the current ones if still copying). */
        co_ord old; /* The previous end co-ordinates. */
@@ -1040,6 +1835,7 @@ struct x11_selection_type
 
 static x11_selection_type s_ptr[1];
 
+
 /*
  * Convert to EUC-JP
  */
@@ -1081,9 +1877,13 @@ static void term_string_push(char *buf)
 static void react_keypress(XKeyEvent *xev)
 {
        int i, n, mc, ms, mo, mx;
+
        uint ks1;
+
        XKeyEvent *ev = (XKeyEvent*)(xev);
+
        KeySym ks;
+
        char buf[128];
        char msg[128];
 
@@ -1091,6 +1891,7 @@ static void react_keypress(XKeyEvent *xev)
        int valid_keysym = TRUE;
 #endif
 
+       /* Check for "normal" keypresses */
 #ifdef USE_XIM
        if(Focuswin && Focuswin->xic){
                Status status;
@@ -1109,6 +1910,7 @@ static void react_keypress(XKeyEvent *xev)
        n = XLookupString(ev, buf, 125, &ks, NULL);
 #endif
 
+       /* Terminate */
        buf[n] = '\0';
 
 #ifdef USE_XIM
@@ -1119,51 +1921,63 @@ static void react_keypress(XKeyEvent *xev)
        }
 #endif
 
+       /* Hack -- Ignore "modifier keys" */
        if (IsModifierKey(ks)) return;
 
+
+       /* Hack -- convert into an unsigned int */
        ks1 = (uint)(ks);
+
+       /* Extract four "modifier flags" */
        mc = (ev->state & ControlMask) ? TRUE : FALSE;
        ms = (ev->state & ShiftMask) ? TRUE : FALSE;
        mo = (ev->state & Mod1Mask) ? TRUE : FALSE;
        mx = (ev->state & Mod2Mask) ? TRUE : FALSE;
+
+
+       /* Normal keys with no modifiers */
        if (n && !mo && !mx && !IsSpecialKey(ks))
        {
                term_string_push(buf);
                return;
        }
 
+
+       /* Handle a few standard keys (bypass modifiers) XXX XXX XXX */
        switch (ks1)
        {
                case XK_Escape:
                {
-                       term_key_push(ESCAPE);
+                       Term_keypress(ESCAPE);
                        return;
                }
 
                case XK_Return:
                {
-                       term_key_push('\r');
+                       Term_keypress('\r');
                        return;
                }
 
                case XK_Tab:
                {
-                       term_key_push('\t');
+                       Term_keypress('\t');
                        return;
                }
 
                case XK_Delete:
                {
-                       term_key_push(0x7f);
+                       Term_keypress(0x7f);
                        return;
                }
                case XK_BackSpace:
                {
-                       term_key_push('\010');
+                       Term_keypress('\010');
                        return;
                }
        }
 
+
+       /* Hack -- Use the KeySym */
        if (ks)
        {
                sprintf(msg, "%c%s%s%s%s_%lX%c", 31,
@@ -1171,6 +1985,8 @@ static void react_keypress(XKeyEvent *xev)
                        mo ? "O" : "", mx ? "M" : "",
                        (unsigned long)(ks), 13);
        }
+
+       /* Hack -- Use the Keycode */
        else
        {
                sprintf(msg, "%c%s%s%s%sK_%X%c", 31,
@@ -1181,12 +1997,15 @@ static void react_keypress(XKeyEvent *xev)
 
        term_string_push(msg);
 
+       /* Hack -- auto-define macros as needed */
        if (n && (macro_find_exact(msg) < 0))
        {
+               /* Create a macro */
                macro_add(msg, buf);
        }
 }
 
+
 /*
  * Find the square a particular pixel is part of.
  */
@@ -1224,7 +2043,7 @@ static void sort_co_ord(co_ord *min, co_ord *max,
  */
 static void mark_selection_clear(int x1, int y1, int x2, int y2)
 {
-       term_redraw_section(x1,y1,x2,y2);
+       Term_redraw_section(x1,y1,x2,y2);
 }
 
 /*
@@ -1236,12 +2055,8 @@ static void mark_selection_mark(int x1, int y1, int x2, int y2)
 {
        square_to_pixel(&x1, &y1, x1, y1);
        square_to_pixel(&x2, &y2, x2, y2);
-#ifdef USE_XFT
-       XftDrawRect(Infowin->draw, &clr[2]->fg, x1, y1, x2-x1+Infofnt->wid - 1, y2-y1+Infofnt->hgt - 1);
-#else
        XDrawRectangle(Metadpy->dpy, Infowin->win, clr[2]->gc, x1, y1,
                x2-x1+Infofnt->wid - 1, y2-y1+Infofnt->hgt - 1);
-#endif
 }
 
 /*
@@ -1250,10 +2065,12 @@ static void mark_selection_mark(int x1, int y1, int x2, int y2)
 static void mark_selection(void)
 {
        co_ord min, max;
-       term_type *old = Term;
+       term *old = Term;
        bool draw = s_ptr->select;
        bool clear = s_ptr->drawn;
-       if (s_ptr->t != old) term_activate(s_ptr->t);
+
+       /* Open the correct term if necessary. */
+       if (s_ptr->t != old) Term_activate(s_ptr->t);
 
        if (clear)
        {
@@ -1266,7 +2083,8 @@ static void mark_selection(void)
                mark_selection_mark(min.x, min.y, max.x, max.y);
        }
 
-       if (s_ptr->t != old) term_activate(old);
+       /* Finish on the current term. */
+       if (s_ptr->t != old) Term_activate(old);
 
        s_ptr->old.x = s_ptr->cur.x;
        s_ptr->old.y = s_ptr->cur.y;
@@ -1278,7 +2096,10 @@ static void mark_selection(void)
  */
 static void copy_x11_release(void)
 {
+       /* Deselect the current selection. */
        s_ptr->select = FALSE;
+
+       /* Remove its graphical represesntation. */
        mark_selection();
 }
 
@@ -1289,6 +2110,7 @@ static void copy_x11_start(int x, int y)
 {
        if (s_ptr->select) copy_x11_release();
 
+       /* Remember where the selection started. */
        s_ptr->t = Term;
        s_ptr->init.x = s_ptr->cur.x = s_ptr->old.x = x;
        s_ptr->init.y = s_ptr->cur.y = s_ptr->old.y = y;
@@ -1299,15 +2121,27 @@ static void copy_x11_start(int x, int y)
  */
 static void copy_x11_cont(int x, int y, unsigned int buttons)
 {
+       /* Use the nearest square within bounds if the mouse is outside. */
        x = MIN(MAX(x, 0), Term->wid-1);
        y = MIN(MAX(y, 0), Term->hgt-1);
+
+       /* The left mouse button isn't pressed. */
        if (~buttons & Button1Mask) return;
+
+       /* Not a selection in this window. */
        if (s_ptr->t != Term) return;
+
+       /* Not enough movement. */
        if (x == s_ptr->old.x && y == s_ptr->old.y && s_ptr->select) return;
 
+       /* Something is being selected. */
        s_ptr->select = TRUE;
+
+       /* Track the selection. */
        s_ptr->cur.x = x;
        s_ptr->cur.y = y;
+
+       /* Hack - display it inefficiently. */
        mark_selection();
 }
 
@@ -1317,18 +2151,27 @@ static void copy_x11_cont(int x, int y, unsigned int buttons)
  */
 static void copy_x11_end(const Time time)
 {
+       /* No selection. */
        if (!s_ptr->select) return;
+
+       /* Not a selection in this window. */
        if (s_ptr->t != Term) return;
 
+       /* Remember when the selection was finalised. */
        s_ptr->time = time;
+
+       /* Acquire the primary selection. */
        XSetSelectionOwner(Metadpy->dpy, XA_PRIMARY, Infowin->win, time);
        if (XGetSelectionOwner(Metadpy->dpy, XA_PRIMARY) != Infowin->win)
        {
+               /* Failed to acquire the selection, so forget it. */
+               /* bell("Failed to acquire primary buffer."); */
                s_ptr->select = FALSE;
                mark_selection();
        }
 }
 
+
 static Atom xa_targets, xa_timestamp, xa_text, xa_compound_text;
 
 /*
@@ -1342,6 +2185,7 @@ static void set_atoms(void)
        xa_compound_text = XInternAtom(DPY, "COMPOUND_TEXT", False);
 }
 
+
 static Atom request_target = 0;
 
 /*
@@ -1349,7 +2193,13 @@ static Atom request_target = 0;
  */
 static void paste_x11_request(Atom target, const Time time)
 {
+       /*
+        * It's from some sample programs on the web.
+        * What does it mean? -- XXX
+        */
        Atom property = XInternAtom(DPY, "__COPY_TEXT", False);
+
+       /* Check the owner. */
        if (XGetSelectionOwner(DPY, XA_PRIMARY) == None)
        {
                /* No selection. */
@@ -1358,9 +2208,12 @@ static void paste_x11_request(Atom target, const Time time)
        }
 
        request_target = target;
-    XConvertSelection(DPY, XA_PRIMARY, target, property, WIN, time);
+    
+       /* Request the event */
+       XConvertSelection(DPY, XA_PRIMARY, target, property, WIN, time);
 }
 
+
 /*
  * Add the contents of the PRIMARY buffer to the input queue.
  *
@@ -1374,11 +2227,20 @@ static void paste_x11_accept(const XSelectionEvent *ptr)
        const long length = 32000;
        XTextProperty xtextproperty;
        errr err = 0;
+
+       /*
+        * It's from some sample programs on the web.
+        * What does it mean? -- XXX
+        */
        Atom property = XInternAtom(DPY, "__COPY_TEXT", False);
+
+
+       /* Failure. */
        if (ptr->property == None)
        {
                if (request_target == xa_compound_text)
                {
+                       /* Re-request as STRING */
                        paste_x11_request(XA_STRING, ptr->time);
                }
                else
@@ -1386,7 +2248,6 @@ static void paste_x11_accept(const XSelectionEvent *ptr)
                        request_target = 0;
                        plog("Paste failure (remote client could not send).");
                }
-
                return;
        }
 
@@ -1402,6 +2263,7 @@ static void paste_x11_accept(const XSelectionEvent *ptr)
                return;
        }
 
+       /* Get text */
        if (XGetWindowProperty(Metadpy->dpy, Infowin->win, property, offset,
                               length, TRUE, request_target,
                               &xtextproperty.encoding,
@@ -1411,6 +2273,7 @@ static void paste_x11_accept(const XSelectionEvent *ptr)
                               &xtextproperty.value)
            != Success)
        {
+               /* Failure */
                return;
        }
 
@@ -1427,25 +2290,33 @@ static void paste_x11_accept(const XSelectionEvent *ptr)
 
                        for (i = 0; i < count; i++)
                        {
+                               /* Paste the text. */
                                err = type_string(list[i], 0);
+
                                if (err) break;
                        }
 
+                       /* Free the string */
                        XFreeStringList(list);
                }
        }
-       else
+       else /* if (request_target == XA_STRING) */
        {
+               /* Paste the text. */
                err = type_string((char *)xtextproperty.value, xtextproperty.nitems);
        }
 
+       /* Free the data pasted. */
        XFree(xtextproperty.value); 
+
+       /* No room. */
        if (err)
        {
                plog("Paste failure (too much text selected).");
        }
 }
 
+
 /*
  * Add a character to a string in preparation for sending it to another
  * client as a STRING.
@@ -1463,14 +2334,20 @@ static bool paste_x11_send_text(XSelectionRequestEvent *rq)
        TERM_COLOR a;
        char c;
 
+       /* Too old, or incorrect call. */
        if (rq->time < s_ptr->time) return FALSE;
 
+       /* Work out which way around to paste. */
        sort_co_ord(&min, &max, &s_ptr->init, &s_ptr->cur);
+
+       /* Paranoia. */
        if (XGetSelectionOwner(DPY, XA_PRIMARY) != WIN)
        {
+               /* bell("Someone stole my selection!"); */
                return FALSE;
        }
 
+       /* Delete the old value of the property. */
        XDeleteProperty(DPY, rq->requestor, rq->property);
 
        for (n = 0, y = 0; y < Term->hgt; y++)
@@ -1486,7 +2363,9 @@ static bool paste_x11_send_text(XSelectionRequestEvent *rq)
 #ifdef JP
                        if (x > max.x) break;
 
-                       term_what(x, y, &a, &c);
+                       /* Find the character. */
+                       Term_what(x, y, &a, &c);
+
                        if (1 == kanji) kanji = 2;
                        else if (iskanji(c)) kanji = 1;
                        else kanji = 0;
@@ -1504,34 +2383,45 @@ static bool paste_x11_send_text(XSelectionRequestEvent *rq)
                        if (x > max.x) break;
                        if (x < min.x) continue;
 
-                       term_what(x, y, &a, &c);
+                       /* Find the character. */
+                       Term_what(x, y, &a, &c);
 #endif
 
+                       /* Add it. */
                        buf[l] = c;
                        l++;
                }
 
+               /* Ignore trailing spaces */
                while (buf[l-1] == ' ') l--;
 
+               /* Terminate all line unless it's single line. */
                if (min.y != max.y)
                {
                        buf[l] = '\n';
                        l++;
                }
 
+               /* End of string */
                buf[l] = '\0';
+
                list[n++] = (char *)string_make(buf);
        }
 
+       /* End of the list */
        list[n] = NULL;
+
+
        if (rq->target == XA_STRING)
        {
                for (n = 0; list[n]; n++)
                {
+                       /* Send the (non-empty) string. */
                        XChangeProperty(DPY, rq->requestor, rq->property, rq->target, 8,
                                        PropModeAppend, (unsigned char *)list[n], strlen(list[n]));
                }
        }
+
        else if (rq->target == xa_text || 
                 rq->target == xa_compound_text)
        {
@@ -1540,12 +2430,13 @@ static bool paste_x11_send_text(XSelectionRequestEvent *rq)
 
                if (rq->target == xa_text)
                        style = XStdICCTextStyle;
-               else
+               else /* if (rq->target == xa_compound_text) */
                        style = XCompoundTextStyle;
 
                if (Success ==
                    XmbTextListToTextProperty(DPY, list, n, style, &text_prop))
                {
+                       /* Send the compound text */
                        XChangeProperty(DPY,
                                        rq->requestor,
                                        rq->property,
@@ -1554,10 +2445,13 @@ static bool paste_x11_send_text(XSelectionRequestEvent *rq)
                                        PropModeAppend,
                                        text_prop.value,
                                        text_prop.nitems);
+                               
+                       /* Free the data. */
                        XFree(text_prop.value);
                }
        }
 
+       /* Free the list of strings */
        for (n = 0; list[n]; n++)
        {
                string_free(list[n]);
@@ -1574,6 +2468,7 @@ static void paste_x11_send(XSelectionRequestEvent *rq)
        XEvent event;
        XSelectionEvent *ptr = &(event.xselection);
 
+       /* Set the event parameters. */
        ptr->type = SelectionNotify;
        ptr->property = rq->property;
        ptr->display = rq->display;
@@ -1582,8 +2477,7 @@ static void paste_x11_send(XSelectionRequestEvent *rq)
        ptr->target = rq->target;
        ptr->time = rq->time;
 
-       /*
-        * Paste the appropriate information for each target type.
+       /* Paste the appropriate information for each target type.
         * Note that this currently rejects MULTIPLE targets.
         */
 
@@ -1617,14 +2511,18 @@ static void paste_x11_send(XSelectionRequestEvent *rq)
                ptr->property = None;
        }
 
+       /* Send whatever event we're left with. */
        XSendEvent(DPY, rq->requestor, FALSE, NoEventMask, &event);
 }
 
+
 /*
  * Handle various events conditional on presses of a mouse button.
  */
-static void handle_button(Time time, int x, int y, int button, bool press)
+static void handle_button(Time time, int x, int y, int button,
+       bool press)
 {
+       /* The co-ordinates are only used in Angband format. */
        pixel_to_square(&x, &y, x, y);
 
        if (press && button == 1) copy_x11_start(x, y);
@@ -1632,6 +2530,7 @@ static void handle_button(Time time, int x, int y, int button, bool press)
        if (!press && button == 2) paste_x11_request(xa_compound_text, time);
 }
 
+
 /*
  * Process events
  */
@@ -1647,26 +2546,77 @@ static errr CheckEvent(bool wait)
        int i;
 
 #ifdef USE_XIM
-       do
+ redo_checkevent:
+#endif
+
+       /* Do not wait unless requested */
+       if (!wait && !XPending(Metadpy->dpy)) return (1);
+
+       /*
+        * Hack - redraw the selection, if needed.
+        * This doesn't actually check that one of its squares was drawn to,
+        * only that this may have happened.
+        */
+       if (s_ptr->select && !s_ptr->drawn) mark_selection();
+
+       /* Load the Event */
+       XNextEvent(Metadpy->dpy, xev);
+
+#ifdef USE_XIM
+/* #define DEBUG_EVENT */
+#ifdef DEBUG_EVENT
        {
+               printf("event: type=%d", xev->type);
+               switch(xev->type){
+               case KeyPress:
+                       printf("(KeyPress), keycode=%X", xev->xkey.keycode);
+                       break;
+               case FocusIn:
+                       printf("(FocusIn)");
+                       break;
+               case FocusOut:
+                       printf("(FocusOut)");
+                       break;
+               case ReparentNotify:
+                       printf("(ReparentNotify)");
+                       break;
+               case ConfigureNotify:
+                       printf("(ConfigureNotify)");
+                       break;
+               case MapNotify:
+                       printf("(MapNotify)");
+                       break;
+               case Expose:
+                       printf("(Expose)");
+                       break;
+               case ClientMessage:
+                       printf("(ClientMessage)");
+                       break;
+               }
+                       
+       }
+#endif
+       if (XFilterEvent(xev, xev->xany.window)
+               /*XFilterEvent(xev, (data[0].win)->win)*/){
+#ifdef DEBUG_EVENT
+               printf(", [filtered by IM]\n");
+#endif
+               goto redo_checkevent;
+       }
+#ifdef DEBUG_EVENT
+       printf("\n");
 #endif
-
-               if (!wait && !XPending(Metadpy->dpy)) return (1);
-
-               if (s_ptr->select && !s_ptr->drawn) mark_selection();
-
-               XNextEvent(Metadpy->dpy, xev);
-
-#ifdef USE_XIM
-       } while (XFilterEvent(xev, xev->xany.window));
 #endif
 
+       /* Notice new keymaps */
        if (xev->type == MappingNotify)
        {
                XRefreshKeyboardMapping(&xev->xmapping);
                return 0;
        }
 
+
+       /* Scan the windows */
        for (i = 0; i < MAX_TERM_DATA; i++)
        {
                if (!data[i].win) continue;
@@ -1678,19 +2628,32 @@ static errr CheckEvent(bool wait)
                }
        }
 
+       /* Unknown window */
        if (!td || !iwin) return (0);
 
-       term_activate(&td->t);
+
+       /* Hack -- activate the Term */
+       Term_activate(&td->t);
+
+       /* Hack -- activate the window */
        Infowin_set(iwin);
+
+
+       /* Switch on the Type */
        switch (xev->type)
        {
                case ButtonPress:
                case ButtonRelease:
                {
                        bool press = (xev->type == ButtonPress);
+
+                       /* Where is the mouse */
                        int x = xev->xbutton.x;
                        int y = xev->xbutton.y;
+
                        int z;
+
+                       /* Which button is involved */
                        if (xev->xbutton.button == Button1) z = 1;
                        else if (xev->xbutton.button == Button2) z = 2;
                        else if (xev->xbutton.button == Button3) z = 3;
@@ -1698,52 +2661,87 @@ static errr CheckEvent(bool wait)
                        else if (xev->xbutton.button == Button5) z = 5;
                        else z = 0;
 
+                       /* XXX Handle */
                        handle_button(xev->xbutton.time, x, y, z, press);
+
                        break;
                }
+
                case EnterNotify:
                case LeaveNotify:
                {
+                       /* XXX Handle */
+
                        break;
                }
+
                case MotionNotify:
                {
+                       /* Where is the mouse */
                        int x = xev->xmotion.x;
                        int y = xev->xmotion.y;
                        unsigned int z = xev->xmotion.state;
+
+                       /* Convert to co-ordinates Angband understands. */
                        pixel_to_square(&x, &y, x, y);
+
+                       /* Highlight the current square, if appropriate. */
+                       /* highlight_square(window, y, x); */
+
+                       /* Alter the selection if appropriate. */
                        copy_x11_cont(x, y, z);
+
+                       /* XXX Handle */
+
                        break;
                }
+
                case SelectionNotify:
                {
                        paste_x11_accept(&(xev->xselection));
                        break;
                }
+
                case SelectionRequest:
                {
                        paste_x11_send(&(xev->xselectionrequest));
                        break;
                }
+
                case SelectionClear:
                {
                        s_ptr->select = FALSE;
                        mark_selection();
                        break;
                }
+
                case KeyRelease:
                {
+                       /* Nothing */
                        break;
                }
+
                case KeyPress:
                {
-                       term_activate(&old_td->t);
+                       /* Hack -- use "old" term */
+                       Term_activate(&old_td->t);
+
+                       /* Process the key */
                        react_keypress(&(xev->xkey));
+
                        break;
                }
+
                case Expose:
                {
                        int x1, x2, y1, y2;
+                       
+                       /* Ignore "extra" exposes */
+                       /*if (xev->xexpose.count) break;*/
+
+                       /* Clear the window */
+                       /*Infowin_wipe();*/
+                       
                        x1 = (xev->xexpose.x - Infowin->ox)/Infofnt->wid;
                        x2 = (xev->xexpose.x + xev->xexpose.width -
                                 Infowin->ox)/Infofnt->wid;
@@ -1752,46 +2750,68 @@ static errr CheckEvent(bool wait)
                        y2 = (xev->xexpose.y + xev->xexpose.height -
                                 Infowin->oy)/Infofnt->hgt;
                        
-                       term_redraw_section(x1, y1, x2, y2);
+                       Term_redraw_section(x1, y1, x2, y2);
+
+                       /* Redraw */
+                       /*Term_redraw();*/
+
                        break;
                }
+
                case MapNotify:
                {
                        Infowin->mapped = 1;
                        Term->mapped_flag = TRUE;
                        break;
                }
+
                case UnmapNotify:
                {
                        Infowin->mapped = 0;
                        Term->mapped_flag = FALSE;
                        break;
                }
+
+               /* Move and/or Resize */
                case ConfigureNotify:
                {
                        int cols, rows, wid, hgt;
+
                        int ox = Infowin->ox;
                        int oy = Infowin->oy;
+
+                       /* Save the new Window Parms */
                        Infowin->x = xev->xconfigure.x;
                        Infowin->y = xev->xconfigure.y;
                        Infowin->w = xev->xconfigure.width;
                        Infowin->h = xev->xconfigure.height;
+
+                       /* Determine "proper" number of rows/cols */
                        cols = ((Infowin->w - (ox + ox)) / td->fnt->wid);
                        rows = ((Infowin->h - (oy + oy)) / td->fnt->hgt);
+
+                       /* Hack -- minimal size */
                        if (cols < 1) cols = 1;
                        if (rows < 1) rows = 1;
 
                        if (td == &data[0])
                        {
+                               /* Hack the main window must be at least 80x24 */
                                if (cols < 80) cols = 80;
                                if (rows < 24) rows = 24;
                        }
 
+                       /* Desired size of window */
                        wid = cols * td->fnt->wid + (ox + ox);
                        hgt = rows * td->fnt->hgt + (oy + oy);
-                       term_resize(cols, rows);
+
+                       /* Resize the Term (if needed) */
+                       Term_resize(cols, rows);
+
+                       /* Resize the windows if any "change" is needed */
                        if ((Infowin->w != wid) || (Infowin->h != hgt))
                        {
+                               /* Resize window */
                                Infowin_set(td->win);
                                Infowin_resize(wid, hgt);
                        }
@@ -1809,21 +2829,30 @@ static errr CheckEvent(bool wait)
                }
                case FocusOut:
                {
-                       if(iwin->xic)
-                       {
+                       if(iwin->xic){
                                XUnsetICFocus(iwin->xic);
                        }
-
+                       /* Focuswin = NULL;*/
                        break;
                }
 #endif
        }
 
-       term_activate(&old_td->t);
+
+       /* Hack -- Activate the old term */
+       Term_activate(&old_td->t);
+
+       /* Hack -- Activate the proper window */
        Infowin_set(old_td->win);
+
+
+       /* Success */
        return (0);
 }
 
+
+#ifdef USE_SOUND
+
 /*
  * An array of sound file names
  */
@@ -1852,14 +2881,22 @@ static void init_sound(void)
        char wav[128];
        char buf[1024];
        char dir_xtra_sound[1024];
+               
+       /* Build the "sound" path */
        path_build(dir_xtra_sound, sizeof(dir_xtra_sound), ANGBAND_DIR_XTRA, "sound");
+               
+       /* Prepare the sounds */
        for (i = 1; i < SOUND_MAX; i++)
        {
+               /* Extract name of sound file */
                sprintf(wav, "%s.wav", angband_sound_name[i]);
+               
+               /* Access the sound */
                path_build(buf, sizeof(buf), dir_xtra_sound, wav);
+               
+               /* Save the sound filename, if it exists */
                if (check_file(buf)) sound_file[i] = string_make(buf);
        }
-
        use_sound = TRUE;
        return;
 }
@@ -1870,14 +2907,23 @@ static void init_sound(void)
 static errr Term_xtra_x11_sound(int v)
 {
        char buf[1024];
+       
+       /* Sound disabled */
        if (!use_sound) return (1);
+       
+       /* Illegal sound */
        if ((v < 0) || (v >= SOUND_MAX)) return (1);
+       
+       /* Unknown sound */
        if (!sound_file[v]) return (1);
        
        sprintf(buf,"./playwave.sh %s\n", sound_file[v]);
+       
        return (system(buf) < 0);
        
 }
+#endif /* USE_SOUND */
+
 
 /*
  * Handle "activation" of a term
@@ -1885,15 +2931,25 @@ static errr Term_xtra_x11_sound(int v)
 static errr Term_xtra_x11_level(int v)
 {
        term_data *td = (term_data*)(Term->data);
+
+       /* Handle "activate" */
        if (v)
        {
+               /* Activate the window */
                Infowin_set(td->win);
+
+               /* Activate the font */
                Infofnt_set(td->fnt);
+#ifdef USE_JP_FONTSTRUCT
+               Infokfnt_set(td->kfnt);
+#endif
        }
 
+       /* Success */
        return (0);
 }
 
+
 /*
  * React to changes
  */
@@ -1903,6 +2959,7 @@ static errr Term_xtra_x11_react(void)
        
        if (Metadpy->color)
        {
+               /* Check the colors */
                for (i = 0; i < 256; i++)
                {
                        if ((color_table[i][0] != angband_color_table[i][0]) ||
@@ -1911,49 +2968,77 @@ static errr Term_xtra_x11_react(void)
                            (color_table[i][3] != angband_color_table[i][3]))
                        {
                                Pixell pixel;
+
+                               /* Save new values */
                                color_table[i][0] = angband_color_table[i][0];
                                color_table[i][1] = angband_color_table[i][1];
                                color_table[i][2] = angband_color_table[i][2];
                                color_table[i][3] = angband_color_table[i][3];
+
+                               /* Create pixel */
                                pixel = create_pixel(Metadpy->dpy,
                                                     color_table[i][1],
                                                     color_table[i][2],
                                                     color_table[i][3]);
+
+                               /* Change the foreground */
                                Infoclr_set(clr[i]);
                                Infoclr_change_fg(pixel);
                        }
                }
        }
 
+       /* Success */
        return (0);
 }
 
+
 /*
  * Handle a "special request"
  */
 static errr Term_xtra_x11(int n, int v)
 {
+       /* Handle a subset of the legal requests */
        switch (n)
        {
+               /* Make a noise */
                case TERM_XTRA_NOISE: Metadpy_do_beep(); return (0);
+
+#ifdef USE_SOUND
+               /* Make a special sound */
                case TERM_XTRA_SOUND: return (Term_xtra_x11_sound(v));
-#ifdef USE_XFT
-               case TERM_XTRA_FRESH: Metadpy_update(1, 1, 0); return (0);
-#else
-               case TERM_XTRA_FRESH: Metadpy_update(1, 0, 0); return (0);
 #endif
+
+               /* Flush the output XXX XXX */
+               case TERM_XTRA_FRESH: Metadpy_update(1, 0, 0); return (0);
+
+               /* Process random events XXX */
                case TERM_XTRA_BORED: return (CheckEvent(0));
+
+               /* Process Events XXX */
                case TERM_XTRA_EVENT: return (CheckEvent(v));
+
+               /* Flush the events XXX */
                case TERM_XTRA_FLUSH: while (!CheckEvent(FALSE)); return (0);
+
+               /* Handle change in the "level" */
                case TERM_XTRA_LEVEL: return (Term_xtra_x11_level(v));
+
+               /* Clear the screen */
                case TERM_XTRA_CLEAR: Infowin_wipe(); s_ptr->drawn = FALSE; return (0);
+
+               /* Delay for some milliseconds */
                case TERM_XTRA_DELAY: usleep(1000 * v); return (0);
+
+               /* React to changes */
                case TERM_XTRA_REACT: return (Term_xtra_x11_react());
        }
 
+       /* Unknown */
        return (1);
 }
 
+
 /*
  * Draw the cursor as an inverted rectangle.
  *
@@ -1963,16 +3048,6 @@ static errr Term_curs_x11(int x, int y)
 {
        if (use_graphics)
        {
-#ifdef USE_XFT
-               XftDrawRect(Infowin->draw, &xor->fg,
-                           x * Infofnt->wid + Infowin->ox,
-                           y * Infofnt->hgt + Infowin->oy,
-                           Infofnt->wid - 1, Infofnt->hgt - 1);
-               XftDrawRect(Infowin->draw, &xor->fg,
-                           x * Infofnt->wid + Infowin->ox + 1,
-                           y * Infofnt->hgt + Infowin->oy + 1,
-                           Infofnt->wid - 3, Infofnt->hgt - 3);
-#else
                XDrawRectangle(Metadpy->dpy, Infowin->win, xor->gc,
                               x * Infofnt->wid + Infowin->ox,
                               y * Infofnt->hgt + Infowin->oy,
@@ -1981,14 +3056,17 @@ static errr Term_curs_x11(int x, int y)
                               x * Infofnt->wid + Infowin->ox + 1,
                               y * Infofnt->hgt + Infowin->oy + 1,
                               Infofnt->wid - 3, Infofnt->hgt - 3);
-#endif
        }
        else
        {
+               /* Draw the cursor */
                Infoclr_set(xor);
+
+               /* Hilite the cursor character */
                Infofnt_text_non(x, y, " ", 1);
        }
 
+       /* Success */
        return (0);
 }
 
@@ -2000,16 +3078,6 @@ static errr Term_bigcurs_x11(int x, int y)
 {
        if (use_graphics)
        {
-#ifdef USE_XFT
-               XftDrawRect(Infowin->draw, &xor->fg,
-                           x * Infofnt->wid + Infowin->ox,
-                           y * Infofnt->hgt + Infowin->oy,
-                           Infofnt->twid - 1, Infofnt->hgt - 1);
-               XftDrawRect(Infowin->draw, &xor->fg,
-                           x * Infofnt->wid + Infowin->ox + 1,
-                           y * Infofnt->hgt + Infowin->oy + 1,
-                           Infofnt->twid - 3, Infofnt->hgt - 3);
-#else
                XDrawRectangle(Metadpy->dpy, Infowin->win, xor->gc,
                               x * Infofnt->wid + Infowin->ox,
                               y * Infofnt->hgt + Infowin->oy,
@@ -2018,40 +3086,60 @@ static errr Term_bigcurs_x11(int x, int y)
                               x * Infofnt->wid + Infowin->ox + 1,
                               y * Infofnt->hgt + Infowin->oy + 1,
                               Infofnt->twid - 3, Infofnt->hgt - 3);
-#endif
        }
        else
        {
+               /* Draw the cursor */
                Infoclr_set(xor);
+
+               /* Hilite the cursor character */
                Infofnt_text_non(x, y, "  ", 2);
        }
-
+       /* Success */
        return (0);
 }
 
+
 /*
  * Erase some characters.
  */
 static errr Term_wipe_x11(int x, int y, int n)
 {
+       /* Erase (use black) */
        Infoclr_set(clr[TERM_DARK]);
+
+       /* Mega-Hack -- Erase some space */
        Infofnt_text_non(x, y, "", n);
+
+       /* Redraw the selection if any, as it may have been obscured. (later) */
        s_ptr->drawn = FALSE;
+
+       /* Success */
        return (0);
 }
 
+
 /*
  * Draw some textual characters.
  */
 static errr Term_text_x11(TERM_LEN x, TERM_LEN y, int n, TERM_COLOR a, concptr s)
 {
+       /* Draw the text */
        Infoclr_set(clr[a]);
+
+       /* Draw the text */
        Infofnt_text_std(x, y, s, n);
+
+       /* Redraw the selection if any, as it may have been obscured. (later) */
        s_ptr->drawn = FALSE;
+
+       /* Success */
        return (0);
 }
 
-#ifndef USE_XFT
+
+#ifdef USE_GRAPHICS
+
 /*
  * Draw some graphical characters.
  */
@@ -2075,32 +3163,46 @@ static errr Term_pict_x11(TERM_LEN x, TERM_LEN y, int n, const TERM_COLOR *ap, c
        y *= Infofnt->hgt;
        x *= Infofnt->wid;
 
+       /* Add in affect of window boundaries */
        y += Infowin->oy;
        x += Infowin->ox;
+
        for (i = 0; i < n; ++i, x += td->fnt->wid)
        {
                a = *ap++;
                c = *cp++;
+
+               /* For extra speed - cache these values */
                x1 = (c&0x7F) * td->fnt->twid;
                y1 = (a&0x7F) * td->fnt->hgt;
+
+               /* Illegal tile index */
                if (td->tiles->width < x1 + td->fnt->wid ||
                    td->tiles->height < y1 + td->fnt->hgt)
                {
-                       XFillRectangle(Metadpy->dpy, td->win->win, clr[0]->gc, x, y,  td->fnt->twid, td->fnt->hgt);
+                       /* Draw black square */
+                       XFillRectangle(Metadpy->dpy, td->win->win, clr[0]->gc,
+                                      x, y, 
+                                      td->fnt->twid, td->fnt->hgt);
+
+                       /* Skip drawing tile */
                        continue;
                }
 
                ta = *tap++;
                tc = *tcp++;
 
+               /* For extra speed - cache these values */
                x2 = (tc&0x7F) * td->fnt->twid;
                y2 = (ta&0x7F) * td->fnt->hgt;
                
+               /* Optimise the common case */
                if (((x1 == x2) && (y1 == y2)) ||
                    !(((byte)ta & 0x80) && ((byte)tc & 0x80)) ||
                    td->tiles->width < x2 + td->fnt->wid ||
                    td->tiles->height < y2 + td->fnt->hgt)
                {
+                       /* Draw object / terrain */
                        XPutImage(Metadpy->dpy, td->win->win,
                                clr[0]->gc,
                                td->tiles,
@@ -2110,20 +3212,29 @@ static errr Term_pict_x11(TERM_LEN x, TERM_LEN y, int n, const TERM_COLOR *ap, c
                }
                else
                {
+
+                       /* Mega Hack^2 - assume the top left corner is "black" */
                        blank = XGetPixel(td->tiles, 0, td->fnt->hgt * 6);
+
                        for (k = 0; k < td->fnt->twid; k++)
                        {
                                for (l = 0; l < td->fnt->hgt; l++)
                                {
+                                       /* If mask set... */
                                        if ((pixel = XGetPixel(td->tiles, x1 + k, y1 + l)) == blank)
                                        {
+                                               /* Output from the terrain */
                                                pixel = XGetPixel(td->tiles, x2 + k, y2 + l);
                                        }
                                        
+                                       /* Store into the temp storage. */
                                        XPutPixel(td->TmpImage, k, l, pixel);
                                }
                        }
 
+
+                       /* Draw to screen */
+
                        XPutImage(Metadpy->dpy, td->win->win,
                              clr[0]->gc,
                             td->TmpImage,
@@ -2132,10 +3243,14 @@ static errr Term_pict_x11(TERM_LEN x, TERM_LEN y, int n, const TERM_COLOR *ap, c
                }
        }
 
+       /* Redraw the selection if any, as it may have been obscured. (later) */
        s_ptr->drawn = FALSE;
+
+       /* Success */
        return (0);
 }
-#endif
+
+#endif /* USE_GRAPHICS */
 
 #ifdef USE_XIM
 static void IMDestroyCallback(XIM, XPointer, XPointer);
@@ -2148,6 +3263,7 @@ IMInstantiateCallback(Display *display, XPointer unused1, XPointer unused2)
        XIMStyles *xim_styles = NULL;
        int i;
 
+       /* Unused */
        (void)unused1;
        (void)unused2;
 
@@ -2157,9 +3273,12 @@ IMInstantiateCallback(Display *display, XPointer unused1, XPointer unused2)
                return;
        }
 
+       /* initialize destroy callback */
        ximcallback.callback = IMDestroyCallback;
        ximcallback.client_data = NULL;
        XSetIMValues(xim, XNDestroyCallback, &ximcallback, NULL);
+
+       /* set style (only "Root" is supported yet...) */
        XGetIMValues(xim, XNQueryInputStyle, &xim_styles, NULL);
        for (i = 0; i < xim_styles->count_styles; i++){
                if(xim_styles->supported_styles[i] == (XIMPreeditNothing | XIMStatusNothing)) break;
@@ -2178,17 +3297,14 @@ IMInstantiateCallback(Display *display, XPointer unused1, XPointer unused2)
                infowin *iwin = data[i].win;
                if (!iwin) continue;
                iwin->xic = XCreateIC(xim, XNInputStyle, (XIMPreeditNothing | XIMStatusNothing), XNClientWindow, iwin->win, XNFocusWindow, iwin->win, NULL);
-               if(!iwin->xic)
-               {
+               if(!iwin->xic){
                        printf("Can't create input context for Term%d\n", i);
                        continue;
                }
-
-               if(XGetICValues(iwin->xic, XNFilterEvents, &iwin->xic_mask, NULL) != NULL)
-               {
+               if(XGetICValues(iwin->xic, XNFilterEvents, &iwin->xic_mask, NULL) != NULL){
+/*                     printf("Can't get XNFilterEvents\n"); */
                        iwin->xic_mask = 0L;
                }
-
                XSelectInput(Metadpy->dpy, iwin->win, iwin->mask | iwin->xic_mask);
        }
 
@@ -2198,6 +3314,8 @@ IMInstantiateCallback(Display *display, XPointer unused1, XPointer unused2)
 static void IMDestroyCallback(XIM xim, XPointer client_data, XPointer call_data)
 {
        int i;
+
+       /* Unused */
        (void)xim;
        (void)client_data;
 
@@ -2220,21 +3338,21 @@ static void IMDestroyCallback(XIM xim, XPointer client_data, XPointer call_data)
 }
 #endif
 
-static char force_lower(char a)
-{
-       return ((isupper((a))) ? tolower((a)) : (a));
-}
-
 /*
  * Initialize a term_data
  */
 static errr term_data_init(term_data *td, int i)
 {
-       term_type *t = &td->t;
+       term *t = &td->t;
 
        concptr name = angband_term_name[i];
 
        concptr font;
+#ifdef USE_JP_FONTSTRUCT
+       concptr kfont;
+#endif
+
+
        int x = 0;
        int y = 0;
 
@@ -2262,10 +3380,16 @@ static errr term_data_init(term_data *td, int i)
        XWMHints *wh;
 #endif
 
+       /* Window specific font name */
        sprintf(buf, "ANGBAND_X11_FONT_%d", i);
+
+       /* Check environment for that font */
        font = getenv(buf);
+
+       /* Check environment for "base" font */
        if (!font) font = getenv("ANGBAND_X11_FONT");
 
+       /* No environment variables, use default font */
        if (!font)
        {
                switch (i)
@@ -2317,86 +3441,187 @@ static errr term_data_init(term_data *td, int i)
                }
        }
 
+#ifdef USE_JP_FONTSTRUCT
+       /* Window specific font name */
+       sprintf(buf, "ANGBAND_X11_KFONT_%d", i);
+
+       /* Check environment for that font */
+       kfont = getenv(buf);
+
+       /* Check environment for "base" font */
+       if (!kfont) kfont = getenv("ANGBAND_X11_KFONT");
+
+       /* No environment variables, use default font */
+       if (!kfont)
+       {
+               switch (i)
+               {
+                       case 0:
+                       {
+                               kfont = DEFAULT_X11_KFONT_0;
+                       }
+                       break;
+                       case 1:
+                       {
+                               kfont = DEFAULT_X11_KFONT_1;
+                       }
+                       break;
+                       case 2:
+                       {
+                               kfont = DEFAULT_X11_KFONT_2;
+                       }
+                       break;
+                       case 3:
+                       {
+                               kfont = DEFAULT_X11_KFONT_3;
+                       }
+                       break;
+                       case 4:
+                       {
+                               kfont = DEFAULT_X11_KFONT_4;
+                       }
+                       break;
+                       case 5:
+                       {
+                               kfont = DEFAULT_X11_KFONT_5;
+                       }
+                       break;
+                       case 6:
+                       {
+                               kfont = DEFAULT_X11_KFONT_6;
+                       }
+                       break;
+                       case 7:
+                       {
+                               kfont = DEFAULT_X11_KFONT_7;
+                       }
+                       break;
+                       default:
+                       {
+                               kfont = DEFAULT_X11_KFONT;
+                       }
+               }
+       }
+#endif
+       /* Window specific location (x) */
        sprintf(buf, "ANGBAND_X11_AT_X_%d", i);
        str = getenv(buf);
        x = (str != NULL) ? atoi(str) : -1;
 
+       /* Window specific location (y) */
        sprintf(buf, "ANGBAND_X11_AT_Y_%d", i);
        str = getenv(buf);
        y = (str != NULL) ? atoi(str) : -1;
 
+
+       /* Window specific cols */
        sprintf(buf, "ANGBAND_X11_COLS_%d", i);
        str = getenv(buf);
        val = (str != NULL) ? atoi(str) : -1;
        if (val > 0) cols = val;
 
+       /* Window specific rows */
        sprintf(buf, "ANGBAND_X11_ROWS_%d", i);
        str = getenv(buf);
        val = (str != NULL) ? atoi(str) : -1;
        if (val > 0) rows = val;
 
+       /* Hack the main window must be at least 80x24 */
        if (!i)
        {
                if (cols < 80) cols = 80;
                if (rows < 24) rows = 24;
        }
 
+       /* Window specific inner border offset (ox) */
        sprintf(buf, "ANGBAND_X11_IBOX_%d", i);
        str = getenv(buf);
        val = (str != NULL) ? atoi(str) : -1;
        if (val > 0) ox = val;
 
+       /* Window specific inner border offset (oy) */
        sprintf(buf, "ANGBAND_X11_IBOY_%d", i);
        str = getenv(buf);
        val = (str != NULL) ? atoi(str) : -1;
        if (val > 0) oy = val;
 
+
+       /* Prepare the standard font */
+#ifdef USE_JP_FONTSTRUCT
+       MAKE(td->fnt, infofnt);
+       Infofnt_set(td->fnt);
+       MAKE(td->kfnt, infofnt);
+       Infokfnt_set(td->kfnt);
+       Infofnt_init_data(font, kfont);
+#else
        MAKE(td->fnt, infofnt);
        Infofnt_set(td->fnt);
        Infofnt_init_data(font);
+#endif
 
+
+       /* Hack -- key buffer size */
        num = ((i == 0) ? 1024 : 16);
+
+       /* Assume full size windows */
        wid = cols * td->fnt->wid + (ox + ox);
        hgt = rows * td->fnt->hgt + (oy + oy);
+
+       /* Create a top-window */
        MAKE(td->win, infowin);
        Infowin_set(td->win);
        Infowin_init_top(x, y, wid, hgt, 0,
                         Metadpy->fg, Metadpy->bg);
 
+       /* Ask for certain events */
 #if defined(USE_XIM)
        Infowin_set_mask(ExposureMask | StructureNotifyMask | KeyPressMask | PointerMotionMask | ButtonPressMask | ButtonReleaseMask | FocusChangeMask);
 #else
        Infowin_set_mask(ExposureMask | StructureNotifyMask | KeyPressMask | PointerMotionMask | ButtonPressMask | ButtonReleaseMask);
 #endif
 
+       /* Set the window name */
        Infowin_set_name(name);
+
+       /* Save the inner border */
        Infowin->ox = ox;
        Infowin->oy = oy;
+
+       /* Make Class Hints */
        ch = XAllocClassHint();
 
        if (ch == NULL) quit("XAllocClassHint failed");
 
        strcpy(res_name, name);
-       res_name[0] = force_lower(res_name[0]);
+       res_name[0] = FORCELOWER(res_name[0]);
        ch->res_name = res_name;
 
        strcpy(res_class, "Angband");
        ch->res_class = res_class;
 
        XSetClassHint(Metadpy->dpy, Infowin->win, ch);
+
+       /* Make Size Hints */
        sh = XAllocSizeHints();
+
+       /* Oops */
        if (sh == NULL) quit("XAllocSizeHints failed");
 
+       /* Main window has a differing minimum size */
        if (i == 0)
        {
+               /* Main window min size is 80x24 */
                sh->flags = PMinSize | PMaxSize;
                sh->min_width = 80 * td->fnt->wid + (ox + ox);
                sh->min_height = 24 * td->fnt->hgt + (oy + oy);
                sh->max_width = 255 * td->fnt->wid + (ox + ox);
                sh->max_height = 255 * td->fnt->hgt + (oy + oy);
        }
+
+       /* Other windows can be shrunk to 1x1 */
        else
        {
+               /* Other windows */
                sh->flags = PMinSize | PMaxSize;
                sh->min_width = td->fnt->wid + (ox + ox);
                sh->min_height = td->fnt->hgt + (oy + oy);
@@ -2404,16 +3629,24 @@ static errr term_data_init(term_data *td, int i)
                sh->max_height = 256 * td->fnt->hgt + (oy + oy);
        }
 
+       /* Resize increment */
        sh->flags |= PResizeInc;
        sh->width_inc = td->fnt->wid;
        sh->height_inc = td->fnt->hgt;
+
+       /* Base window size */
        sh->flags |= PBaseSize;
        sh->base_width = (ox + ox);
        sh->base_height = (oy + oy);
+
+       /* Use the size hints */
        XSetWMNormalHints(Metadpy->dpy, Infowin->win, sh);
+
+       /* Map the window */
        Infowin_map();
 
 #ifdef USE_XIM
+       /* Make WM Hints */
        wh = XAllocWMHints();
        if(wh == NULL) quit("XAllocWMHints failed");
        wh->flags = InputHint;
@@ -2421,40 +3654,61 @@ static errr term_data_init(term_data *td, int i)
        XSetWMHints(Metadpy->dpy, Infowin->win, wh);
 #endif
 
+       /* Move the window to requested location */
        if ((x >= 0) && (y >= 0)) Infowin_impell(x, y);
 
+
+       /* Initialize the term */
        term_init(t, cols, rows, num);
+
+       /* Use a "soft" cursor */
        t->soft_cursor = TRUE;
+
+       /* Erase with "white space" */
        t->attr_blank = TERM_WHITE;
        t->char_blank = ' ';
+
+       /* Hooks */
        t->xtra_hook = Term_xtra_x11;
        t->curs_hook = Term_curs_x11;
        t->bigcurs_hook = Term_bigcurs_x11;
        t->wipe_hook = Term_wipe_x11;
        t->text_hook = Term_text_x11;
+
+       /* Save the data */
        t->data = td;
-       term_activate(t);
+
+       /* Activate (important) */
+       Term_activate(t);
+
+       /* Success */
        return (0);
 }
 
+
 /*
  * Initialization function for an "X11" module to Angband
  */
 errr init_x11(int argc, char *argv[])
 {
        int i;
+
        concptr dpy_name = "";
+
        int num_term = 3;
 
-#ifndef USE_XFT
+#ifdef USE_GRAPHICS
+
        char filename[1024];
 
        int pict_wid = 0;
        int pict_hgt = 0;
 
        char *TmpData;
-#endif
+#endif /* USE_GRAPHICS */
+
 
+       /* Parse args */
        for (i = 1; i < argc; i++)
        {
                if (prefix(argv[i], "-d"))
@@ -2463,7 +3717,7 @@ errr init_x11(int argc, char *argv[])
                        continue;
                }
                
-#ifndef USE_XFT
+#ifdef USE_GRAPHICS
                if (prefix(argv[i], "-s"))
                {
                        smoothRescaling = FALSE;
@@ -2481,13 +3735,13 @@ errr init_x11(int argc, char *argv[])
                        arg_graphics = GRAPHICS_ORIGINAL;
                        continue;
                }
-#endif
 
                if (prefix(argv[i], "-b"))
                {
                        arg_bigtile = use_bigtile = TRUE;
                        continue;
                }
+#endif /* USE_GRAPHICS */
 
                if (prefix(argv[i], "-n"))
                {
@@ -2499,6 +3753,7 @@ errr init_x11(int argc, char *argv[])
 
                if (prefix(argv[i], "--"))
                {
+                       /* Ignore */
                        continue;
                }
 
@@ -2508,6 +3763,7 @@ errr init_x11(int argc, char *argv[])
 #ifdef USE_LOCALE
 
 #ifdef JP
+       /* Get locale information from environment variables */
        setlocale(LC_ALL, "");
 
 #ifdef DEFAULT_LOCALE
@@ -2527,48 +3783,78 @@ errr init_x11(int argc, char *argv[])
                setlocale(LC_ALL, "C");
        }
 #else
+       /* Set locale to "C" without using environment variables */
        setlocale(LC_ALL, "C");
 #endif /* JP */
 
 #endif /* USE_LOCALE */
 
+
+       /* Init the Metadpy if possible */
        if (Metadpy_init_name(dpy_name)) return (-1);
 
+
+       /* Prepare cursor color */
        MAKE(xor, infoclr);
        Infoclr_set(xor);
        Infoclr_init_ppn(Metadpy->fg, Metadpy->bg, "xor", 0);
+
+
+       /* Prepare normal colors */
        for (i = 0; i < 256; ++i)
        {
                Pixell pixel;
+
                MAKE(clr[i], infoclr);
+
                Infoclr_set(clr[i]);
+
+               /* Acquire Angband colors */
                color_table[i][0] = angband_color_table[i][0];
                color_table[i][1] = angband_color_table[i][1];
                color_table[i][2] = angband_color_table[i][2];
                color_table[i][3] = angband_color_table[i][3];
+
+               /* Default to monochrome */
                pixel = ((i == 0) ? Metadpy->bg : Metadpy->fg);
+
+               /* Handle color */
                if (Metadpy->color)
                {
+                       /* Create pixel */
                        pixel = create_pixel(Metadpy->dpy,
                                             color_table[i][1],
                                             color_table[i][2],
                                             color_table[i][3]);
                }
 
+               /* Initialize the color */
                Infoclr_init_ppn(pixel, Metadpy->bg, "cpy", 0);
        }
 
+
+       /* Prepare required atoms. */
        set_atoms();
+
+
+       /* Initialize the windows */
        for (i = 0; i < num_term; i++)
        {
                term_data *td = &data[i];
+
+               /* Initialize the term_data */
                term_data_init(td, i);
+
+               /* Save global entry */
                angband_term[i] = Term;
        }
 
+       /* Raise the "Angband" window */
        Infowin_set(data[0].win);
        Infowin_raise();
-       term_activate(&data[0].t);
+
+       /* Activate the "Angband" window screen */
+       Term_activate(&data[0].t);
 
 #ifdef USE_XIM
        {
@@ -2577,52 +3863,87 @@ errr init_x11(int argc, char *argv[])
                if(!p || !*p){
                        p = XSetLocaleModifiers("@im=");
                }
+/*             printf("XMODIFIERS=\"%s\"\n", p); */
        }
        XRegisterIMInstantiateCallback(Metadpy->dpy, NULL, NULL, NULL, IMInstantiateCallback, NULL);
 #endif
 
+#ifdef USE_SOUND
+       /* initialize sound */
        if (arg_sound) init_sound();
+#endif
+
+#ifdef USE_GRAPHICS
 
-#ifndef USE_XFT
+       /* Try graphics */
        switch (arg_graphics)
        {
        case GRAPHICS_ORIGINAL:
+               /* Try the "8x8.bmp" file */
                path_build(filename, sizeof(filename), ANGBAND_DIR_XTRA, "graf/8x8.bmp");
+
+               /* Use the "8x8.bmp" file if it exists */
                if (0 == fd_close(fd_open(filename, O_RDONLY)))
                {
+                       /* Use graphics */
                        use_graphics = TRUE;
+
                        pict_wid = pict_hgt = 8;
+
                        ANGBAND_GRAF = "old";
                        break;
                }
+               /* Fall through */
+
        case GRAPHICS_ADAM_BOLT:
+               /* Try the "16x16.bmp" file */
                path_build(filename, sizeof(filename), ANGBAND_DIR_XTRA, "graf/16x16.bmp");
+
+               /* Use the "16x16.bmp" file if it exists */
                if (0 == fd_close(fd_open(filename, O_RDONLY)))
                {
+                       /* Use graphics */
                        use_graphics = TRUE;
+
                        pict_wid = pict_hgt = 16;
+
                        ANGBAND_GRAF = "new";
+
                        break;
                }
        }
 
+       /* Load graphics */
        if (use_graphics)
        {
                Display *dpy = Metadpy->dpy;
+
                XImage *tiles_raw;
+
+               /* Load the graphical tiles */
                tiles_raw = ReadBMP(dpy, filename);
+
+               /* Initialize the windows */
                for (i = 0; i < num_term; i++)
                {
                        term_data *td = &data[i];
-                       term_type *t = &td->t;
+
+                       term *t = &td->t;
+
+                       /* Graphics hook */
                        t->pict_hook = Term_pict_x11;
+
+                       /* Use graphics sometimes */
                        t->higher_pict = TRUE;
+
+                       /* Resize tiles */
                        td->tiles =
                        ResizeImage(dpy, tiles_raw,
                                    pict_wid, pict_hgt,
                                    td->fnt->twid, td->fnt->hgt);
                }
 
+               /* Initialize the transparency masks */
                for (i = 0; i < num_term; i++)
                {
                        term_data *td = &data[i];
@@ -2630,18 +3951,32 @@ errr init_x11(int argc, char *argv[])
                        int depth = DefaultDepth(dpy, DefaultScreen(dpy));
                        Visual *visual = DefaultVisual(dpy, DefaultScreen(dpy));
                        int total;
+
+
+                       /* Determine total bytes needed for image */
                        ii = 1;
                        jj = (depth - 1) >> 2;
                        while (jj >>= 1) ii <<= 1;
                        total = td->fnt->twid * td->fnt->hgt * ii;
+                       
+                       
                        TmpData = (char *)malloc(total);
+
                        td->TmpImage = XCreateImage(dpy,visual,depth,
                                ZPixmap, 0, TmpData,
                                td->fnt->twid, td->fnt->hgt, 8, 0);
+
                }
+
+               /* Free tiles_raw? XXX XXX */
        }
-#endif /* ! USE_XFT */
+
+#endif /* USE_GRAPHICS */
+
+
+       /* Success */
        return (0);
 }
 
 #endif /* USE_X11 */
+
index fc025cc..c97236c 100644 (file)
@@ -5,9 +5,8 @@
 
 #ifdef USE_XAW
 
-#include "system/angband.h"
-#include "game-option/runtime-arguments.h"
-#include "util/int-char-converter.h"
+#include "angband.h"
+
 
 #ifndef __MAKEDEPEND__
 #include <X11/Xlib.h>
@@ -303,6 +302,39 @@ static XtResource resources[] =
        { XtNcolor15, XtCColor, XtRPixel, sizeof(Pixel),
        offset(color[15]), XtRString, "#ffcc80" },
 
+#if 0
+
+       { XtNcolor2, XtCColor, XtRPixel, sizeof(Pixel),
+       offset(color[2]), XtRString, "#a6a6a6" },
+       { XtNcolor3, XtCColor, XtRPixel, sizeof(Pixel),
+       offset(color[3]), XtRString, "#ff6302" },
+       { XtNcolor4, XtCColor, XtRPixel, sizeof(Pixel),
+       offset(color[4]), XtRString, "#ca0808" },
+       { XtNcolor5, XtCColor, XtRPixel, sizeof(Pixel),
+       offset(color[5]), XtRString, "#008e18" },
+       { XtNcolor6, XtCColor, XtRPixel, sizeof(Pixel),
+       offset(color[6]), XtRString, "#0000e3" },
+       { XtNcolor7, XtCColor, XtRPixel, sizeof(Pixel),
+       offset(color[7]), XtRString, "#814007" },
+       { XtNcolor8, XtCColor, XtRPixel, sizeof(Pixel),
+       offset(color[8]), XtRString, "#6b6b6b" },
+       { XtNcolor9, XtCColor, XtRPixel, sizeof(Pixel),
+       offset(color[9]), XtRString, "#d6d6d6" },
+       { XtNcolor10, XtCColor, XtRPixel, sizeof(Pixel),
+       offset(color[10]), XtRString, "#5100c2" },
+       { XtNcolor11, XtCColor, XtRPixel, sizeof(Pixel),
+       offset(color[11]), XtRString, "#fdf105" },
+       { XtNcolor12, XtCColor, XtRPixel, sizeof(Pixel),
+       offset(color[12]), XtRString, "#ff9259" },
+       { XtNcolor13, XtCColor, XtRPixel, sizeof(Pixel),
+       offset(color[13]), XtRString, "#26cf17" },
+       { XtNcolor14, XtCColor, XtRPixel, sizeof(Pixel),
+       offset(color[14]), XtRString, "#02b2f2" },
+       { XtNcolor15, XtCColor, XtRPixel, sizeof(Pixel),
+       offset(color[15]), XtRString, "#b28b48" },
+
+#endif
+
        { XtNredrawCallback, XtCCallback, XtRCallback, sizeof(XtPointer),
        offset(redraw_callbacks), XtRCallback, (XtPointer)NULL }
 };
index 08e28c8..e43b9d6 100644 (file)
@@ -98,12 +98,13 @@ static void create_user_dir(void)
  * Initialize and verify the file paths, and the score file.
  *
  * Use the ANGBAND_PATH environment var if possible, else use
- * DEFAULT_PATH, and in either case, branch off appropriately.
+ * DEFAULT_(LIB|VAR)_PATH, and in either case, branch off
+ * appropriately.
  *
  * First, we'll look for the ANGBAND_PATH environment variable,
  * and then look for the files in there.  If that doesn't work,
- * we'll try the DEFAULT_PATH constant.  So be sure that one of
- * these two things works...
+ * we'll try the DEFAULT_(LIB|VAR)_PATH constants.  So be sure
+ * that one of these two things works...
  *
  * We must ensure that the path ends with "PATH_SEP" if needed,
  * since the "init_file_paths()" function will simply append the
@@ -298,6 +299,11 @@ int main(int argc, char *argv[])
     /* Default permissions on files */
     (void)umask(022);
 
+# ifdef SECURE
+       /* Authenticate */
+       Authenticate();
+# endif
+
 #endif
 
     /* Get the file paths */
@@ -545,3 +551,6 @@ int main(int argc, char *argv[])
 }
 
 #endif
+
+
+
index 65d94dc..3f0b28a 100644 (file)
@@ -91,7 +91,7 @@ OBJS = \
 ## change the compiler to "cc", or remove the "debugging" options, or
 ## remove the X11 or Curses support, etc, as desired.
 ##
-## See also "h-config.h" for important information.
+## See also "z-config.h" and "h-config.h" for important information.
 ##
 ## Some "examples" are given below, they can be used by simply
 ## removing the FIRST column of "#" signs from the "block" of lines
@@ -130,8 +130,8 @@ JP_OPT= -D"JP" -D"EUC" -DDEFAULT_LOCALE="\"ja_JP.eucJP\""
 # "new curses" library instead of the "old curses" library, and
 # you may have to add "-l/usr/include/ncurses" to the "CFLAGS".
 #
-# See "main-gcu.c" for some optional "curses" defines,
-# including "USE_GETCH" and "USE_CURS_SET".  Note that "h-config.h" will
+# See "main-gcu.c" and "z-config.h" for some optional "curses" defines,
+# including "USE_GETCH" and "USE_CURS_SET".  Note that "z-config.h" will
 # attempt to "guess" at many of these flags based on your system.
 #
 #CFLAGS = -Wall -O1 -pipe -g -D"USE_X11" -D"USE_GCU"
@@ -210,6 +210,14 @@ LIBS = -L/usr/X11R6/lib -lX11 -lncurses
 
 
 ##
+## Variation -- compile for SGI Indigo runnig Irix
+##
+#CFLAGS = -Wall -O2  -fno-strength-reduce -g -D"USE_X11" $(JP_OPT) -D"USE_GCU" -I/usr/X11R6/include
+#LIBS = -L/usr/X11R6/lib -lX11 -lncurses -ltermcap -lsun
+
+
+
+##
 ## Variation -- compile for Dec ALPHA OSF/1 v2.0
 ##
 #CC     = cc
@@ -291,7 +299,7 @@ HDRS = \
 
 INCS = \
        angband.h \
-       defines.h types.h externs.h \
+       z-config.h defines.h types.h externs.h \
        z-term.h z-rand.h z-util.h z-virt.h z-form.h $(HDRS)