過去の開発日誌
秋月かたねさんからのバグ報告「 --disable-rescaleが有効にならない」を元に、画像読み込み関数におい て、読み込み元がアーカイブか否かを正しく判定していなかったバグを修正し ました。このバグは、exp-20090506 以降で発生していました。
nk_0901さんからのバグ報告「 拡張スプライトで拡大率がマイナス値の場合の動作について」を元に、拡 張スプライト表示領域のバウンディングボックスの計算方法が間違っていたバ グを修正しました。
表示文のログを logsp を使用して表示する場合などに、行末における禁則 処理が不完全であったバグを修正しました。
コンパイラの warning を取るためコードを微修正しました。
Lua 実装が中途半端ですがいったんリリースします。
Paul さんからのパッチを元に、行が半角スペースで終わっている場合に正 しく終端処理がされないバグを修正しました。
宮川さんからのバグ報告「 ONScripter開発版がコンパイルできない on ubuntu」を元に、いただいた パッチを適用し、最新の libavifile-0.7-47 で ONScripter がコンパイルで きない問題を修正しました。
Lua の text 関連 callback を実装するために、テキスト処理回りを変更 しています。これまでは、textgosub の処理をする場合に、 ScriptHandler::readToken() はクリック待ち文字までのテキストを返してい ましたが、行末までのテキストを返すようにしました。また、改行文字をテキ ストに含めないようにしました。
Paul さんからのバグ報告を元に、文字列で2バイト目の半角スペースが表示されないバグを修正しました。
lrclick, getsavestr コマンドを実装しました。
NSSetIntValue, NSSetStrValue, NSGetIntValue, NSGetStrValue, NSGoto, NSGosub, NSReturn を実装しました。
NSPopInt, NSPopIntRef, NSPopStr, NSPopStrRef, NSPopLabel, NSPopID, NSPopComma, NSCheckComma を実装しました。
実行方法変更に伴い発生した細かいバグを取りました。
実験版として、スクリプトの実行方法を、最上位のイベントループに全て の処理をぶら下げる方式から、コマンド実行中もしくは実行後に必要ならイベ ントループを実行する方式に完全に移行しました。また、文字描画中の Lua アニメーションにも対応しました。
NSLuaAnimationInterval を実装しました。
lsp の塗り潰し長方形に対応しました。
実験版として Lua に一部対応し、luacall animation, luasub, NSExec, NSLuaAnimationMode を実装しました。不完全ですが、本家のサンプルの一部 が動きます。ただし、クリック待ちのアニメーションには対応していますが、 文字描画中のアニメーションには未対応です。また、今のところ動作確認は Linux + Lua5.1 のみです。
Lua 対応にともない、スクリプトの実行方法を、最上位のイベントループ に全ての処理をぶら下げる方式から、コマンド実行中もしくは実行後に必要な らイベントループを実行する方式に変更しています(まだ一部のみ)。こちら の方式の方が単純で、画面効果ルーチンなどはかなりすっきりしました。
chris_sさんからのバグ報告「 複数の条件が絡むif文の扱い」を元に、if文で複数の条件式が&で連結さ れている場合に、先頭から順に評価していき条件式が成立しない時点で残りは 評価せずに終了するのが正しいところを、誤って全ての条件式を評価していた バグを修正しました。評価するだけでif文の結果自体は正しかったのですが、 評価した条件式が不正な形をしていると強制終了してしまうことがありました。
本家との互換性を保つため、ONS のセーブファイルのバージョンを上げま した。過去のセーブファイルももちろん問題なく読み込めます。
chris_sさんからのバグ報告「 intlimit指定時の挙動」を元に、intlimitで指定した値の範囲外の数値を 代入する際のバグを修正しました。intlimitで指定した最小値もしくは最大値 に合わせるのが正しい挙動ですが、値を変更しないようになっていました。
herbas さんからのバグ報告「 拡張スプライトの拡大率・回転角がセーブされない場合がある」を元に、 保存は問題なかったのですが、読み込みの際に拡大率と回転角が正しく反映さ れないバグを修正しました。
herbas さんからのバグ報告「strsp の縦文字数」を元に、strspで縦文字数が1行多く表示されるバグを修正 しました。
shinshin3 さんからのご提案「 EXTERNAL_MIDI_PROGRAM削除の提案」を元に、MacOSX 用の、外部プログラ ムによる MIDI 演奏補助のためのコードを削除しました。
本家の整数変数および文字変数の最大数は 4096 までであり、この範囲外 へのアクセスは、他の変数を上書きしてしまうか、もしくはセグメンテーショ ンフォルトを引き起こすことになると思っているのですが、まれに範囲外の変 数を使用しているスクリプトがあります。ONScripter では、これまでは範囲 外へのアクセスを 4097 番目の共通変数に強制的に振り替えていました(不完 全でしたが)。今回、範囲外の変数が使用された場合には、その変数を線形リ ストに追加することで、範囲外の変数も通常の変数と同様に使用できるように しました。なお、gloval.sav に保存されるのは従来通り 4096 番目までです。
movie コマンドを実装しました。ただし、pos, async, stop には未対応で す。また、SMPEG が使用できない環境では動作しません。
haelethさんからのバグ報告「 getparamなどに些細な修正」を元に、いただいたパッチを適用し、reset 命令後に selectcolor で設定した色が初期化されてしまうバグと、textoff の後に texton をせずに reset 命令を実行した場合に文字が消えることがあ るバグを修正しました。
ONScripterLabel::loadImage 内で用いる中間バッファを毎回生成/消去す るのではなく、平均データ量のバッファを永続的に持つようにし、その量より 大きいデータを読む場合にのみ生成/消去するようにしました。