Ticket #38852

売却アイテムの食い違いバグ (フォーラムメッセージ #82368 からの引用)

Open Date: 2019-01-08 19:57 Last Update: 2019-01-08 22:22

Reporter:
Owner:
Type:
Status:
Open [Owner assigned]
Component:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
None

Details

フォーラム 変愚蛮怒フォーラム [#82368] からの引用

[forum: 82368]

環境 OS:Windows 10 Ver 1803 (64bit) 変愚蛮怒:2.2.1.6(開発版) (ローグライク実験室のhengband-20190108065314-1ddecd2-win) 事象 未鑑定の物品を売った時、それと違うものが無くなって元のものは鑑定されて残る、といったものです。 再現できる状況としては、例えば ・修行僧で初めて、 ・もの言えぬ証人クエストで未鑑定の酔っ払いの薬と致命傷の薬を拾ってきて、 ・店で未鑑定の酔っ払いの薬を5個いっぺんに売却すると ログが以下のようになり、 ---------------------------------------------------------------------------- 5服の 刺激臭のする薬(e)を売却する。 すんなりとこの金額にまとまった。 そうしよう! 店主は耳うちした: すべてのパターンの武器は混沌の悪魔たちに致命的な一撃を与えるそうだ。 5服の 酔っ払いの薬を $70で売却しました。 ザックの中のアイテムを並べ直した。 誰かがむせび泣く声が聞こえる...。 もうヒーローの薬を持っていない。 ---------------------------------------------------------------------------- 初期物品のヒーローの薬が代わりに無くなってしまい、酔っ払いの薬は手元に残ったままになります。 半年程度前のversion(具体的な数は今確認できないのですが)では起こらなかったと 思っています。

Attachment File List

No attachments

Ticket History (3/3 Histories)

2019-01-08 19:57 Updated by: deskull
  • New Ticket "売却アイテムの食い違いバグ (フォーラムメッセージ [#82368] からの引用)" created
2019-01-08 21:25 Updated by: deskull
Comment

原因判明、更新処理の雑然とした状態に対処するためのリファクタリングに伴う副作用。msg_print()中に統合したhandle_stuff()が予めONにしていたアイテム並び替え処理を行ってしまい、売却するアイテムと残すアイテムが交換されるのが原因であった。

以上を踏まえて、当該問題点は直接対処する上で、今後の拡張性を高めるためにも以下のように再度リファクタリングする。

  • handle_stuff()から、インターフェースの表示更新処理とゲーム内部更新処理の更新をupdate_output()/update_creature()に改名して分化する。
  • プレイヤーのフラグ関係の内、アイテム関係のnoticeとステータス関係のupdateを統合する。
  • windowとredrawはplayer_type構造体から追い出す。
2019-01-08 22:22 Updated by: deskull
Comment

一応今回の直接の原因になった問題は対応。

Edit

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