現在表示されているテキスト文字をアルファ付き画像として保存し、効果 の後の再描画にこれを使うようにする。これで、文字色やルビが正しく復帰す るようになりました。
名前が紛らわしいので、画像のみを picture_surface に、アルファつき文 字画面を text_surface に、両者を合成した最終画面を accumultation_surface に変更。
SL-C860 に対応した阿川さんのパッチに追従し、Zaurus 用の SDL library を更新。
rubyon, rubyoff を実装。ただし、画面の再描画が生じると、ルビが消え てしまいます。これは、以前からある、部分的に文字の色を変更した後に画面 の再描画が生じると文字の色が全部同じになってしまう問題と同じ原因です。 原因は分かっていますが、ちょっとどうしたらよいか思案中です。
これにともない、セーブファイルのバージョンを上げました。この ONScripter で生成したセーブファイルは、以前のバージョンの ONScripter では読み込めません。逆はできます。また、NScripter とセーブファイルを共 有している場合には、セーブファイルを移行した上で NScripter を最新のも のに変更する必要があります(ONScripter しか使わない場合には特に移行作 業をする必要はありません)。セーブファイルを移行するには、
これが面倒な人は、既存のゲームに関しては古い ONScripter をそのままお使い下さい。
と思いきや、20031103 以前では、ロードした直後にセーブするとロードデー タがセーブデータに反映されない場合があるバグがありました。20031103 以 前でセーブし直す場合には、一回毎に ONScripter を立ち上げ直すか、もしく は読み込み後にテキストを一つ進めてから保存するなどした方が安全です。
某所にあった MacOS9 用のパッチを一部取り入れました。
MACOSX もしくは MACOS9 が定義されている場合に ctrl キー押下を無視す る仕様を廃止。元に戻しました。この辺りの挙動は検証できないので、おかし かったらご報告下さい。
SL-7x0 上の onscripter-cf-s, onscripter-sd-s で QVGA 起動ができないバグを修正。どうやら、複数のアイコンが同じ実行ファイ ルを共有している場合に、解像度情報を /home/zaurus/Settings/display.conf で実行ファイル毎に管理しているため、 QVGA,VGA を使い分けることができないようです。アイコン毎に固有の実行ファ イル(スクリプト)を用意することで解決しました。
ロード時に、gosub のネスト情報の一部を初期化していないバグを修正。 テキスト文が一行ずれることがありました。
if 文で条件節が真にもかかわらず実行文が空の場合など、 RET_CONTINUE_NOREAD を返しながら現在位置が改行コードの時に、行番号がず れるバグを修正。こういう変則的なスクリプトはほとんどありませんが、もし 遭遇するとセーブ時にほぼ必ず落ちる致命的なバグでした。
ONScripter では、ctrl キー押下時に強制スキップ状態になりますが、Mac では ctrl + マウスクリックでマウス右クリック相当になるようなので、 MACOSX もしくは MACOS9 が定義されている場合には ctrl キー押下を無視す るようにしました。
某所にあった MacOS9 用のパッチを一部取り入れました。
textgosub 使用時には、スキップモードにおいても textgosub で指定され たラベルに飛ぶようにする。
humanorder を実装。
shadowTextDisplay 内では dirty_rect に追加しない。refreshSurface の最後で dirty_rect に追加する。アニメーションが正しく描画されないバグ を修正。
解像度変換ルーチンで、縮小比が大きいときにあまりに遅いので、処理を 簡略化。ただし計算量自体は変わらないので、せいぜい体感で倍くらい。
既読スキップが効かなくなっていたのを修正。
btntime2 及び automode の挙動の修正。指定時間とボイス演奏時間のう ち長い方だけ待つようにする。
skip モードで textbtnwait に入った場合に、skip を継続できるように 修正。
automode_time が負の場合、前回の文末(@,\\)から現在の位置までの文字 数と -automode_time の積だけ待つように修正。
アニメーションスプライトで、セルの表示時間が0の場合も正しく取り扱 えるように修正。
btnwait 時に、ある条件で過去のボタン定義を消去していなかったバグを 修正。
Makefile.Win で、nsaconv, sarconv を生成するようにし、また OggVorbis を標準で使うようにする。