2015/12/07
■ [Angband]「Angband Releases: 3.5.0」和訳(Documentation changesまで・完結)
http://rephial.org/release/3.5.0の残り全部。そういえば、Angbandはまだボーグ機能が健在なのか。
ボーグ機能の変更
- borgitemanalyze()関数中のロジックをクリンアップし、バグを修正しました。
- 光源のある部屋の中でのボーグの振る舞いをよりスマートにしました。
- 'lazy movement'状態に対応できない時にはボーグの同モードを切るようになりました。
- ボーグが岩を取り除けるようになりました。
- ボーグの鑑定ルーチンをゲームが擬似的な「光源」を一切持たなくなったことに反映して修正し、装備品/所持品のスクリーン選択の混乱がより少なくなるようにしました。
- 多数の使わなく、機能性のないコードを取り除きました(使用しないグローバル変数、主なゲーム定数やテーブルからのコピーなど)
- 多数の他のコードを重要にクリンアップしました。(使用しない引数、繰り返しコード、msg(NULL) -> message_flush()を除去しました)
コーディング上の変更
- 常にモンスター情報配列中のインデックス参照を止め、代わりにmonster_race *を通して参照するようになりました。これはコードを重要な単純化を可能にしました。
- store.txtの書き直しを通じて、外部ファイル中のストア関連情報を統合しました。
- clangによるビルドをサポートしました。
- デバッグコマンドにモンスターに実際にダメージを与える'H'を追加しました。
- clangやsplintが投げる警告やエラーを修正しました。
- pptr->commandarg を取り除きました。
- alloc_probとレアリティの扱う変数型をbyteからintに変更しました。(#1677)
- daniel santos氏のパッチにより、getobhnumbykind()関数をリファクタリングし、単純化しました。(#1707)
- mon-power.c中の重複したコードの読み込みをリファクタリングしました。daniel santos氏のパッチによるものです。(#1706)
- Carbon特有のOSX上のパス中のホームディレクトリを意味する'~'を用いるサポートを取り除きました。Carbonは陳腐化し、不必要であると判断したためです。
- z-type.cの除去に近いことを行いました。
- externs.hの多数の要素を取り除きました。
- 相変わらず若干のクリンアップと古い不使用なコードを除去しました。
- アイテムの作成を一つのtvalのみの狭い範囲で行うことができるようになりました。
- rinfo、kinfoなどの中の通過ポインタを多数伴った、インデックス周辺の多数を代わりに適切なエントリに置き換えました。これにより#1499が仕上がりました。
- 保存処理コードのオプションをクリンアップしました。
- flavot.txtのフォーマットを各フレーバーが自身の行に収まるように置き換えました。より可動性が増しています。#576
- セーブファイルをロードするフレームワークを複数の短い関数へとリファクタリングしました。これにより多くが明瞭になりました。
- opptr->basenameとprocesslayername()を取り除きました。savefilesetname()をセーブファイル名と、ファイルシステムセーフなプレイヤー名を返すplayersafename()をセットするように置き換えました。
- -dコマンドライン引数を便利にしました(非Windows/OSX系インストールにのみ適用できます)
- マルチユーザインストールやUNIXのために、SETGIDからSET_UIDの定義を分離しました。このUNIXはOS Xを含みます。これはユーザ個人のセットアップ上で、セーブファイルの先頭に最早UIDが付加されなくなったことを意味します。Angbandはセーブファイルを一番最初に稼働させた時に新しいスタイルに改名します。
- 地形フラグの仕様がゲームの表現上として同じビットフラグシステムを持つようになりました。そして適切な場でcave_is*の指定を持ちいるようになりました。
- cave->featへのアクセス(そしてFEAT*の使用)のほとんどを代わりに関数呼び出しに変換しました。(例えばcave->feat == FEATFLOOR を caveisfloor()、caveisshop()など)
- cave_bold*関数やマクロを命名が馬鹿げているために取り除き、より妥当な関数名に変更しました。
- 視界判定処理を多数のBen-eraなハック(vinfoハック、そしてviewg/viewn/fastcave_infoも)に書き直しました。視界判定処理は以前より厳密になりました。
- 様々なCAVE_定数を(cave_info[][]に用いられていたもの)をより分別よく命名し、いくつかの場所で利用を止めました。
- fileseek()関数をfileskip()関数に置き換え、実際に使っていなかったものやスキップしたものをより使いやすくしました。
- ビルドシステムがHTMLやPDFドキュメントをビルドし、インストールするようになりました。OSX向けターゲットとscript/pkgwinはもし存在するならばマニュアルをパッケージするようになりました。angbandディレクトリ中の'make dist'はscripts/pkgsrcに取って代わってゲームをパッケージアップし、マニュアルを作成しようとします。
- defines.hからもっと適した場所に、要素を移動しようとしました。util.cも同様です。
- テキストブロックを用いるように思い出システムをアップデートしました。
- マクロに存在した副作用の可能性を修正しました。(#1668)
- monster_desc()を作成し、その呼び出しを整理しました。
- textouteのために色名に空白を加えました。
- 地獄のブレス使用の表記が地獄耐性を持つモンスターに付与されるのを除きました。#1791の修正となりました。
- docmdwiz_query()が実際に結果を表示するようになりました。
ドキュメント上の変更。
- 古いwikiからプレイヤーガイド(初歩的な戦略と戦術)を追加しました。少なくとも完全ではなく、ある程度です。
- ヘルプファイルを耐性や抵抗に関する内容をアップデートしました。
- アイテムの銘刻みに関するドキュメントをアップデートしました。
- オプションに関するドキュメントを修正しました。
(#1750)