WSN仕様メモ: レイヤ値以外が背景不継承条件を満たしているイメージセルが最初に配置されている時、背景継承が行われない

Issue #846 resolved
k4nagatsuki repo owner created an issue

表題の問題をpull request #2557で修正し、背景継承が行われるようにしたのですが、それによって却って問題が起きるシナリオを見つけました。背景継承が行われる事により、前面に表示したセルが残ってしまいます。

この問題を解決するには2つの方法が考えられます。

  1. 背景継承の判定にレイヤが無視される事を改めて仕様とする。
  2. Wsn.3以前とWsn.4以降で動作を変える。pull request #2557に書いた方法です。

そもそも最初に1.の方法を取らなかった理由として、私がこの問題に気づいたのがcwxeditor 7.0でCWNext(データバージョン7)のシナリオを変換した結果を確認している時だったという経緯があります。データバージョン7では前面セルは背景継承判定の対象になりません。当時の考えでは表題の問題をWSNの仕様バグとして修正しても特に問題が起きるとは思えなかったので、一番安易な方法で修正しました。しかし、実際には問題が起きてしまいました。

ここで改めて1.の方法を採ったとしても、形式間の変換処理を工夫すれば問題に対処する事が可能です。

  1. データバージョン7からWsn.4へ変換する時、前面である事以外背景不継承条件を満たしているセルがあったら、サイズ0のイメージセルを挿入するなどして強制的に背景継承状態にします。
  2. Wsn.4からデータバージョン7へ変換する時、前面位置にあって背景不継承条件を満たしているセルがあったら、レイヤ0の全面イメージセルを1番目に挿入して強制的に背景不継承にします。

Wsn.3とWsn.4で動作を変えるというのは、シナリオのデータバージョンを上げただけで正しく動かなくなるケースが増えるという事なので、筋が悪いです。上記の方法も筋が悪い事には変わりませんが、比較的ましです。こちらを採るべきです。

Comments (2)

  1. Log in to comment