jnethack (3.6.7-0.1) | 2023-02-23 16:22 |
nethack (3.6.6) | 2020-06-07 04:50 |
1.2までは「日本人のためのNetHack」を目指して作成されていましたが、 3.4ではメンテナンスコストの削減のために単に「NetHackの日本語版」を目指します。
これにより、1.2までの追加機能(F、リポート、GTK…)は切り離します。
変更部分は、
#if 0 /*JP*/ foo bar #else ほげ ふが #endifでくくります。 単純な追加でない限り#if 1 /*JP*/は使いません。
変更前・変更後とも一行の場合かつ、変更がこの部分で完結する場合は、
/*JP foo */ ほげの形を取ります。この部分は専用プログラムでパッチを当てます。
複数行だが完結する変更部分は
#if 0 /*JP:T*/ foo bar #else ほげ ふが #endifとします。これも専用プログラムでパッチを当てます。
C ソース部分は差分を取ったときに追加行だけですむ形にします。 これによりパッチミスを発見しやすくします。
Windows,Unixのそれぞれtty,guiの対応を目標とします。 MS-DOS/DJGPPは対応しません。
WindowsではVisualStudioのみの対応とします。
レポジトリの文字コードはWindows用のShift_JISにします。 これは、メンテナがWindowsをメインに使っていることと、 文字コード変換はWindowsよりUnixの方がやりやすいだろうという判断です。
ISO-2022-JP(JIS)対応は外します。 おそらくもう使われていないでしょうし、文字コード変換処理が シンプルになります。
3.4まではこれらは内部的には英語名で持ち、出力のときに日本語に変換していました。 この方法は全ての出力処理に変換処理を追加する必要があり、 メンテナンスコストが非常に高いものでした。 3.6ではこれらは日本語名で持つことにより、メンテナンスコストを大幅にできました。
副作用として虐殺や願いで英語名を指定できなくなりますが、3.4の頃からゲーム中には日本語名しか表示されていないので、 ゲームとしては問題ないはずです。
但し、現状makedefsで英語名を使っていますので、 monst.c,object.cを直接上書きせずにmonstj.c,objectj.cを作成する形にします。
3.4までは英語版のhelpファイルに対して日本語のjhelpファイルを用意していましたが、 helpファイル自体を日本語で上書きするようにします。
これによりビルド部分のパッチを減らせます。