「伺か」のゴースト製作記(18)(2002/06/10)
あんまし逃げ回っててもしようが無いので、止むを得ず SSP でも起動チェックだけはしようと思い立つ。ダウンロードし、インストールし、起動し、力が抜けた。すまんエミリ、好みじゃない(爆弾発言)
とりあえず gp01-0317112.nar をドロップしてみた。反応無し。あれ? 駄目? 何でだ。メニューにも無いし。仕方がないのでエクスプローラで直接フォルダ構築……と、思ったらゴーストのインストールはやはりアレで良かったみたい。再起動しないとメニューに出ないのは何故? どうして? 俺、何か間違った? ま、いいか……。
で拙作を選んだら無事起動、しかしながらエミリは退場しない。なんだとォ、ひっこめゴルァ!(ぉ って色々やってみたですが、操作方法が全然わかんなかった。つーか、ここまで違うんだったら初めから似せなきゃ良いに……ぶつぶつ。
て思ったら原因判明、「ゴーストを呼ぶ」って紛らわしいメニューの責。キャラを右クリックで閉じるって選んだら拙作退陣。するとゴーストの切り替えが出来るように。
よく見ると、SSP では右クリックの乗っ取りが出来てないです。アンチフック機能でもあるのでしょうか。それでふと思いついたら要するに初期化の位置が拙いらしいです。Operation雛では本体からのウィンドウハンドルの通知をうけて初めてマウスイベントを横取りするよう初期化するのですが、多分 SSP ではウィンドウハンドルを投げてくれてません。
ってことは、昔みたいなハンドル探しをしなくてはならないようです。
起動自体は上手くいっていますが、MAKOTO トランスレータを呼んでくれないのでトークが正しく表示できませんな。descript.txt の仕様が違うのか……。拙作ではトランスレータがないとメニューも実行できない虚弱設計でして、設定の仕方が判らんのでサジ投げます。Operation雛は SSP に正式に不対応ですΣ( ̄□ ̄; よわっ
SHIORI レイヤーでのトランスレータですが、MATERIA とはヘッダのバージョンが違ってました。昔の GET String などバージョン違いで動作の違うものもありましたんで、ヘッダのバージョンまで分岐に入ってるせいでした。あははははっ。
そういうわけで、SSP でも動いてます。ただ、なんか「...」という台詞が……なんだこれ(汗) 設定した覚え無し!!
まぁ、開発がサジ投げる形で終わったものですから(^-^;) CROW には積極的に対応したいなーと思いつつ、今のところまだβしか出てないんで何とも言えません。
トランスレータに対応するまでは動いてるうちには入りませんねぇ。
そろそろソースコード全体の見直しに手をつけたほうがいいかな、てな具合のバグが二つ三つありました。とくにダブルクリックでのメニューが動かなくなってるのに気が付かんとは……(汗) 内蔵バルーンでの選択と融合して失敗してたりなんかしたんですが、撤収するときに元のコードを再生するのを忘れてました。
ついでに汎用ルーチンユニットから手続きを多く移動。最初はあちこちから呼び出してたんですが、整理が進むにつれ特定のユニットからしか使わなくなってた関数が意外に多かったりして。
もともとの編集ポリシーはユニットの参照はあまり散らかさないように、としてたんで準汎用手続きを呼ぶためだけに一見して無関係なユニットを uses することは避けてました。が、既にこのルールはタテマエでしかなくなってましたんで今回の処置が生まれる余地が出来たと。
ゴースト設定ウィンドウとの通信方法を一新。今まではレコード(構造体)を直接やりとりしてましたが、今リリースからはいったん文字列にして投げ合うように変更。これで構造体のサイズが変わっても落ちません。もちろん、対応してない項目は無視しますけど(^-^;)
無視した項目は呼び出し前のデータをそのまま使う設計なので、多分ユーザーは項目が増えたことに気が付かない、はず、なんですけど。
にしても内蔵バルーン計画、駄目ですなー。どうしたって本体がバルーンを処理したがる。表示されないバルーンを作ってみても底でアプリが止まったように見えるから処置ありません。
で、実験的にバルーンのウインドウをスレッドの中で生成してみたらどうだろう? というのをやってみました。
結果。駄目です。スレッドの中でフォームを生成するのには親ウィンドウとして TApplication オブジェクトを渡さなければ成りませんが、その辺でコケてしまいます。よしんば成功したとしてもスクリプトを渡すのにも一苦労なんです(^-^;)
いっそ独立した EXE を使いメッセージ駆動で組んだ方が確実みたいで。無論これはエレガントじゃないので保留にしています。
現状、お手上げ。
とりあえずスクリプト拡張だけやっとくかぁ? フォントタグだけでも研究してみる価値はあるし……。
SSP と MATERIA とで、ネットワーク更新の条件が違うのかな? SSP は旧仕様書どおりに動作してます。
それとバグ報告で判ったことですが、MATERIA だとアップデートできないし。……うーん。で仕様書どおりになったのではないか、と思ったんで SSP 対応こみで構成を変えてみましたが失敗。プロキシを使用してると HTTP の 400 つまり不正な要求として扱われ、プロキシを解除すると今度はタイムアウトで失敗します。
そーいやあ本家の TODO にもそんなアーティクル無かったかい? これのことかい?
謎だ謎過ぎる。昔はもっとシンプルに動いてたさ!
しやしかし、プロキシなしの SSP では殆ど上手く行きました……殆どってのは、最後の方で(大きいファイルの後か?)エラーが出てプラットフォームがHALT。
ちゅーわけで、0.3.17.112 をアップロードしておきました。
つづく。