2009年

11月15日

バグトラッキングシステム移行以来、今のところ4件スパム投稿がありま した。これらは手動で削除しましたが、今後もこの程度で済んでくれればうれ しいです。

秋月かたねさんからのバグ報告「 動画再生の中断で次のメッセージに進めてしまうことがある」を元に、 mpegplay および avi により動画を再生する際に、これまではキーダ ウンもしくはマウスボタンダウンを検出すると動作再生を終了していたのです が、キーアップもしくはマウスボタンアップを検出すると動画再生を終了する ように変更しました。

秋月かたねさんからのバグ報告「 動画再生中断後、動画の画像が残ってしまう」を元に、mpegplay による動画再生後に、画面の再描画を行い動画の画像を消すようにしました。 なお、avi の場合は本家でも画像が残ってしまうので、ONScripter でもそのままです。

nodaguchiさんからのバグ報告「dwave系のバグ」を元に、アンダーバー(_)が先頭についた命令を処理する際、処理関数内で複数の命令を判別して処理している場合に、命令名が正しく判別されず処理ができないバグを修正しました。

10月18日

バグトラッキングシステムを 影舞 on onscripter.sourceforge.jpに移行しました。今後はこちらをお 使い下さい。

影舞はスパム対策が ほとんどなされておらず、今まできさらさんに運用していただいていた影舞で はスパム投稿が1日に100通以上も蓄積されてしまう状態でした。これ以上 ご迷惑をおかけするわけにもいかないため、unfuddleassemblaなど外部の無料ホスティング サービスを試してみたりしたのですが、少なくとも無料の範囲内では使えない と判断しました。最終的に、使い勝手や移行のしやすさなどから、sourceforge.jp上にONScripterプロジェクトを 作成して、そこで影舞を運用することにしました。

適宜影舞のコードに手を入れ、スパム対策を行うつもりです。現時点では、 新規報告やリプライを行う際に、オプション欄の中央のチェックボックスを外 してから送信しないと無効投稿と見なすようにしています。これでうまく行か ない場合には、ホームページで公開する決まった文字列の入力を求めるなど、 なにかしら対策を取っていきます。外部のスパムフィルタが(簡単に)利用で きればいいのですが……。影舞付属の CAPTCHA は、関連ライブラリが無いと いうエラーが出て使えませんでした。

ついでに、ONScripter のミラーページも、容量制限の厳しかった angelfire から sourceforge.jpに移行しま した。

10月11日

秋月かたねさんからのバグ報告「 --disable-rescaleが有効にならない」を元に、画像読み込み関数におい て、読み込み元がアーカイブか否かを正しく判定していなかったバグを修正し ました。このバグは、exp-20090506 以降で発生していました。

9月21日

nk_0901さんからのバグ報告「 拡張スプライトで拡大率がマイナス値の場合の動作について」を元に、拡 張スプライト表示領域のバウンディングボックスの計算方法が間違っていたバ グを修正しました。

8月22日

表示文のログを logsp を使用して表示する場合などに、行末における禁則 処理が不完全であったバグを修正しました。

コンパイラの warning を取るためコードを微修正しました。

Lua 実装が中途半端ですがいったんリリースします。

7月12日

Paul さんからのパッチを元に、行が半角スペースで終わっている場合に正 しく終端処理がされないバグを修正しました。

宮川さんからのバグ報告「 ONScripter開発版がコンパイルできない on ubuntu」を元に、いただいた パッチを適用し、最新の libavifile-0.7-47 で ONScripter がコンパイルで きない問題を修正しました。

6月14日

Lua の text 関連 callback を実装するために、テキスト処理回りを変更 しています。これまでは、textgosub の処理をする場合に、 ScriptHandler::readToken() はクリック待ち文字までのテキストを返してい ましたが、行末までのテキストを返すようにしました。また、改行文字をテキ ストに含めないようにしました。

6月13日

Paul さんからのバグ報告を元に、文字列で2バイト目の半角スペースが表示されないバグを修正しました。

5月10日

lrclick, getsavestr を実装しました。

NSSetIntValue, NSSetStrValue, NSGetIntValue, NSGetStrValue, NSGoto, NSGosub, NSReturn を実装しました。

5月9日

NSPopInt, NSPopIntRef, NSPopStr, NSPopStrRef, NSPopLabel, NSPopID, NSPopComma, NSCheckComma を実装しました。

exp-20090509a

実行方法変更に伴い発生した細かいバグを取りました。

5月8日

実験版として、スクリプトの実行方法を、最上位のイベントループに全ての処理をぶら下げる方式から、命令実行中もしくは実行後に必要ならイベントループを実行する方式に完全に移行しました。また、文字描画中の Lua アニメーションにも対応しました。

NSLuaAnimationInterval を実装しました。

5月6日

lsp の塗り潰し長方形に対応しました。

実験版として Lua に一部対応し、luacall animation, luasub, NSExec, NSLuaAnimationMode を実装しました。不完全ですが、本家のサンプルの一部 が動きます。ただし、クリック待ちのアニメーションには対応していますが、 文字描画中のアニメーションには未対応です。また、今のところ動作確認は Linux + Lua5.1 のみです。

Lua 対応にともない、スクリプトの実行方法を、最上位のイベントループ に全ての処理をぶら下げる方式から、命令実行中もしくは実行後に必要な らイベントループを実行する方式に変更しています(まだ一部のみ)。こちら の方式の方が単純で、画面効果ルーチンなどはかなりすっきりしました。

3月31日

chris_sさんからのバグ報告「 複数の条件が絡むif文の扱い」を元に、if文で複数の条件式が&で連結さ れている場合に、先頭から順に評価していき条件式が成立しない時点で残りは 評価せずに終了するのが正しいところを、誤って全ての条件式を評価していた バグを修正しました。評価するだけでif文の結果自体は正しかったのですが、 評価した条件式が不正な形をしていると強制終了してしまうことがありました。

3月29日

本家との互換性を保つため、ONS のセーブファイルのバージョンを上げま した。過去のセーブファイルももちろん問題なく読み込めます。

chris_sさんからのバグ報告「 intlimit指定時の挙動」を元に、intlimitで指定した値の範囲外の数値を 代入する際のバグを修正しました。intlimitで指定した最小値もしくは最大値 に合わせるのが正しい挙動ですが、値を変更しないようになっていました。

herbas さんからのバグ報告「 拡張スプライトの拡大率・回転角がセーブされない場合がある」を元に、 保存は問題なかったのですが、読み込みの際に拡大率と回転角が正しく反映さ れないバグを修正しました。

herbas さんからのバグ報告「strsp の縦文字数」を元に、strspで縦文字数が1行多く表示されるバグを修正 しました。

shinshin3 さんからのご提案「 EXTERNAL_MIDI_PROGRAM削除の提案」を元に、MacOSX 用の、外部プログラ ムによる MIDI 演奏補助のためのコードを削除しました。

  • 現在の MacOSX 版 SDL_mixer では MIDI 演奏ができる
  • 昔の ONScripter ランチャーは更新終了している

ということだそうです。

1月16日

本家の整数変数および文字変数の最大数は 4096 までであり、この範囲外 へのアクセスは、他の変数を上書きしてしまうか、もしくはセグメンテーショ ンフォルトを引き起こすことになると思っているのですが、まれに範囲外の変 数を使用しているスクリプトがあります。ONScripter では、これまでは範囲 外へのアクセスを 4097 番目の共通変数に強制的に振り替えていました(不完 全でしたが)。今回、範囲外の変数が使用された場合には、その変数を線形リ ストに追加することで、範囲外の変数も通常の変数と同様に使用できるように しました。なお、gloval.sav に保存されるのは従来通り 4096 番目までです。

1月4日

movie を実装しました。ただし、pos, async, stop には未対応です。また、SMPEG が使用できない環境では動作しません。

1月3日

haelethさんからのバグ報告「getparamなどに些細な修正」を元に、いただいたパッチを適用し、reset 後に selectcolor で設定した色が初期化されてしまうバグと、textoff の後に texton をせずに reset を実行した場合に文字が消えることがあるバグを修正しました。

ONScripterLabel::loadImage 内で用いる中間バッファを毎回生成/消去するのではなく、平均データ量のバッファを永続的に持つようにし、その量より大きいデータを読む場合にのみ生成/消去するようにしました。