バグ: 緊急避難を行うと拠点から更新したカードが消失する

Issue #498 resolved
Liar_cw NA created an issue

表題通りです。再現手順は次の通りです。初めからPCの手札に入れてある場合は発生しないようでした。

  1. 荷物袋に「カードA」を入れた状態でシナリオを開始する(シナリオにカードを持ち込む)。
  2. シナリオを中断する。
  3. 拠点でデバッガからカードAの更新を行う。
  4. シナリオを再開して緊急避難F9を行うと、更新したカードAが消失している。
CardWirthPy 2.0 Alpha 3
Build: 2017-03-26 21:38:26

Comments (6)

  1. k4nagatsuki repo owner

    ありがとうございます。pull request #1810で修正しました。

    カード編集ダイアログからカードを更新する時には、更新前カードの破棄処理が走るのですが、その時にF9で復元するためのデータの保存ができていませんでした。

    なぜできていなかったかというと、F9用データを作る条件に「現在シナリオをプレイ中か?」という判断があるためです。通常これは現在アクティブなパーティに対して問いかければいいので、破棄処理でもそうなっていたのですが、カード編集ダイアログは外部からパーティを操作できるため、冒険を中断して宿にいる状態から操作する事によって「シナリオをプレイ中ではない。だからF9用データは不要」となってしまったわけです。

  2. Liar_cw NA reporter

    修正を確認しました。特に問題なく動作しました。

    CardWirthPy 2.0 Alpha 3
    Build: 2017-03-29 06:41:19
    

    追加の報告になりますが、CWPy1~1.1でもこの現象を確認しました。 どうやら大分前からあった穴のようです。

  3. k4nagatsuki repo owner

    たぶんこの問題はF9処理が現在の形になった当初からあったと思います。

    カードの移動の処理はセーブとF9が絡むために複雑怪奇で、どうにかまともに動くようになるまでにも随分時間がかかりました。まだ爆弾が潜んでいてもおかしくありません。問題を見つけたらまたご報告いただけると助かります。

  4. Liar_cw NA reporter

    CWPyの正式版(1~1.1)を愛用しているユーザの事が気になっての追加報告のつもりでしたが、わりと特殊な状況なのできっと大丈夫ですよね……?

    一先ず、当初の問題は解決されたということで このIssueは閉じておきます。

  5. k4nagatsuki repo owner

    このバグは発生すると一部データが失われますが、簡単には発生しませんし、発生する状況では失われるカードを再配布する事も可能(該当シナリオが存在する)なので、たぶん致命的な問題にはならないと思います。

    しかし他にも既知のバグはたくさんあるので、そろそろバージョン2をリリースしたいところですね。

    ありがとうございました。

  6. Log in to comment