Ticket #5182

アイテムや地形に対するlook(/)コマンドでの詳細説明を有効にするパッチ
Open Date: 2004-11-17 20:01 Last Update: 2005-01-05 05:33

Reporter:
(Anonymous)
Owner:
Type:
Status:
Closed
Component:
(None)
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Remind
File:
1

Details

look(/)コマンドで画面上のオブジェクトを確認した
時、JNethackでは怪物についてだけ詳細説明の
表示(「詳細を見る?(y/n)」)が出ますが、
英語版(本家NetHackやNetHack brass)ではアイテ
ムや扉などに対しても詳細表示が出る事に最近気
がつきました。

原因を追ってみた所、どうやらpager.cのlookat()内
での変数処理に問題があるようです。

英語版では:
 bufに発見物の名前(英語名)を入れ、それを発見
物名の表示とdata.base検索の両方に用いる。
 怪物、アイテム、地形とも問題無く検索可能な模
様。
となっているのですが、

日本語版では:
 bufに発見物の名前(日本語名)を入れ、発見物名
の表示に用いる。
 一方、buf2に発見物の名前を「英語名で」入れ、
jdata.baseでの検索に用いる…はずが、
 何故かアイテムや地形ではbuf2が空っぽ(怪物は
OK)。
と言う状態でした。

------
添付パッチは、アイテムや地形についてもbuf2へ
の出力を行わせ、jdata.base内の検索→詳細表示
を有効にするためのものです。
但し、内容をかなりいじっている箇所があります(後
述)。

・地形については、lookat()内のそれぞれの箇所で
buf2に英語名が入るようにしてあります。
・アイテムについても同様なのですが、アイテム名
の出力にはdistant_name()が用られており、
 日本語版だとそのままでは日本語名しか出力さ
れない為、distant_name()およびその基となる
 xname()周りも大幅にいじって、日本語名・英語名
の出力をソース内で選択できるようにしてありま
す。
  #今まで/*JP*/でコメントアウトされていた英
語名出力箇所を、
  #変数jp_modeをOFFにすれば活かせるように
変更。
  #もっといじれば「アイテム名の日本語/英語
表示切り替え」をディップスイッチで
  #選択できるようになるのかもしれませんが、
今回の目的から外れるので見送り。

ちなみにbuf2に日本語を送らないのは、試験中に
jdata.base内の検索がうまくいかない物が出た為で

(buf2には入っているのに検索に引っかからない)。
jdata.baseの全項目について対策を練るよりは、よ
り動作が確実と思われる英語をbuf2に送る方が
(将来的にも)メンテナンスが容易だと考え、そのよ
うにしてあります。

全オブジェクトについて確認できてはおりません
が、おそらく動作に支障はないものと思われます。
ご検討下さい。

Ticket History (3/4 Histories)

2004-11-17 20:01 Updated by: None
  • File 1139: do_look_datas.diff is attached
2004-11-18 16:23 Updated by: argrath
  • Owner Update from (None) to argrath
  • Resolution Update from None to Remind
Comment
Logged In: YES
user_id=1120

どうもありがとうございます。まだ具体的な中身はチェックしてい
ないのですがとりあえず反応を。

アイテムなどでも詳細説明が出るというのは気付いてませんでした。
これはバグですね…。

アイテム名の英語/日本語切り替えは"`"キーで出来るはずだったの
ですが、
今試したら動きませんね。今は日本語で願えるから、この機能は廃
止でもいいかも。

(j)data.baseの検索は、現物からの検索だけでなく、フリーワードの
検索も必要なので、結局日本語での検索がうまくいかない、という
問題は解決する必要があります。これも直さなくては。

という感じです。
2004-12-05 21:36 Updated by: sakusha
Comment
Logged In: YES
user_id=11019

バグ一覧への転載有難う御座います。
あと、添付のdiffのままだと「奇妙な物体( ] )」をlookした
時に落ちてしまう事が判明しました。
 pager.cの370行目近辺
} elseの下側、
Strcpy(buf, distant_name(otmp, xname)); と
追加行のStrcpy(buf2, distant_name_en_mode(otmp));
を中括弧でくくるようにすれば対処できます。
このままの状態で使われるかどうかはともかく、ご報告
まで。

"`"キー、試してみました。アイテム覧ではなくlookコマ
ンドで見たものが英語表示になってますね…
 #添付diffを適用したものでも変わらず。

日本語検索に関しては、当方の環境では入力が出来
ない(T T)のでお任せします。



2005-01-05 05:33 Updated by: argrath
  • Ticket Close date is changed to 2005-01-05 05:33
  • Status Update from Open to Closed
Comment
Logged In: YES
user_id=1120

Bugの方に移したのでこちらは閉じます。

Attachment File List

  • do_look_datas.diff(25KB)
    • アイテムや地形に対するlook(/)コマンドでの詳細説明を有効にするパッチ.diff

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login