内部エラー発生報告

Issue #964 closed
sonofthesoil created an issue

ブイヨンスウプ様のシナリオ「城塞都市キーレ」のプレイ中に内部エラーが発生しましたので報告します。

シナリオ初プレイ時に、Enterを押しっぱなしにして酒場の主人から一通り話を聞いていたところ、エラーが発生しました。

プレイログは添付ファイルのとおり、プレイ環境はWin10 Pro(64bit)、メモリ8GBです。

Comments (5)

  1. k4nagatsuki repo owner

    ご報告ありがとうございます。

    エラーログを見てみたのですが、本来起こらないはずの事が起こってしまっており、今のところその再現方法が分かりません。

    具体的には、カードを使用するかどうかの確認ダイアログを表示する直前か、あるいはダイアログが表示されている最中に酒場の店主を左クリックした、というログが出ているのですが、普通そういう事はできないはずです。手許で何度か試してみましたができませんでした。

    覚えていたらでよいのですが、店主に話しかける時にどのような操作を行ったか教えていただけないでしょうか。

  2. sonofthesoil reporter

    当時の操作を思い出して報告します。

    まず、酒場の店主のカードをマウスで左クリックし、メッセージを表示させました。

    次に、Enterキーを押しっぱなしにした状態で、マウスカーソルを各選択肢の上に動かしてメッセージを読み流しました。

    最後に一番下の選択肢(「もういいです」)を選択した時、意図せず左から3番目のPCカードが選択され、何かのダイアログが一瞬表示された直後に、内部エラー表示が出たと記憶しています。

    最後の部分は一瞬の出来事だったため正確には覚えていませんが、内部エラー表示が出た時に、酒場の店主が選択状態(色が反転した状態)になっていたことは覚えています。

    その後、自分でも現象の再現を試みましたが、残念ながら再現できませんでした。

  3. k4nagatsuki repo owner

    pull request #64

    完全な再現はできていないので「たぶんこうだろう」という感じの修正なのですが、たぶん同じ問題は発生しないようにできたのではないかと思います。

    これはおそらく入力を受け付けるタイミングの問題です。CWPyはカード仕様確認のようなダイアログが表示されている時にはカーソル移動による選択やカードのクリックのような入力は受け付けないようになっているのですが、ダイアログ表示処理を見たところ、

    1. 不要な入力をクリアする
    2. ダイアログ表示ステータスをオンにする

    という順序になっており、1.と2.の間で入力ができるようになっていました。これはナノ秒単位で処理が通過する場所なので滅多な事では実際の入力は発生しませんが(キーを押しっぱなしにしていても入力の発生間隔はミリ秒単位です)、たまたまタイミングが合ってしまった、という事だと思います。

    今回の修正は、1.と2.の順序を入れ替えたものです。他にもダイアログ表示ステータスの操作を行う時は関係パラメータをロックするなどの修正を入れていますが、基本的には順序の入れ替えだけで上記の問題は起きなくなるはずです。

    テスト版は以下にアップロードしています:

    https://drive.google.com/drive/folders/10fvRK9DRVEX0YQv2CYJD-HQDsAnNEjC8

    100%確実に原因を特定して直せたわけではないので、もし万が一同じ問題が発生したらまたお知らせください。

  4. sonofthesoil reporter

    素早い対応、ありがとうございます。もし同じ現象を確認した場合は、再度ご報告いたします。

  5. Log in to comment