document

phase 583 public test


  • .caption を指定してポップアップメニューのキャプションを変えるとプロセスを再起動するまでリセットされない

  • phase 582 public test


  • \![set,balloonoffset,sakura.x,y]

    現スコープのバルーンオフセットを x,y に設定する。

  • 全ポップアップメニューの caption と visible を SHIORI にリクエストする。

    duibutton.visible
    callsstpsendboxbutton.visible
    regionenabledbutton.visible
    collisionvisiblebutton.visible
    debugballoonbutton.visible
    recommendrootbutton.visible
    portalrootbutton.visible
    updatebutton.visible
    vanishbutton.visible
    headlinesenserootbutton.visible
    pluginrootbutton.visible
    sntpbutton.visible
    biffbutton.visible
    configurationbutton.visible
    switchrootbutton.visible
    switchproxybutton.visible
    switchlocalsstpbutton.visible
    switchremotesstpbutton.visible
    switchblacklistingbutton.visible
    switchautobiffbutton.visible
    switchautoheadlinesensebutton.visible
    switchmovetodefaultpositionbutton.visible
    switchquietbutton.visible
    switchconsolevisiblebutton.visible
    switchconsolealwaysvisiblebutton.visible
    switchduivisiblebutton.visible
    dressuprootbutton.visible
    ghostexplorerbutton.visible
    ghostrootbutton.visible
    shellrootbutton.visible
    readmebutton.visible
    balloonrootbutton.visible
    rateofuserootbutton.visible
    rateofusetotalbutton.visible
    rateofusebutton.visible
    rateofuseballoonbutton.visible
    alwaysstayontopbutton.visible
    alwaystrayiconvisiblebutton.visible
    hidebutton.visible
    firststaffbutton.visible
    quitbutton.visible

    duibutton.caption
    callsstpsendboxbutton.caption
    regionenabledbutton.caption
    collisioncaptionbutton.caption
    debugballoonbutton.caption
    recommendrootbutton.caption
    portalrootbutton.caption
    updatebutton.caption
    vanishbutton.caption
    headlinesenserootbutton.caption
    pluginrootbutton.caption
    sntpbutton.caption
    biffbutton.caption
    configurationbutton.caption
    switchrootbutton.caption
    switchproxybutton.caption
    switchlocalsstpbutton.caption
    switchremotesstpbutton.caption
    switchblacklistingbutton.caption
    switchautobiffbutton.caption
    switchautoheadlinesensebutton.caption
    switchmovetodefaultpositionbutton.caption
    switchquietbutton.caption
    switchconsolecaptionbutton.caption
    switchconsolealwayscaptionbutton.caption
    switchduicaptionbutton.caption
    dressuprootbutton.caption
    ghostexplorerbutton.caption
    ghostrootbutton.caption
    shellrootbutton.caption
    readmebutton.caption
    balloonrootbutton.caption
    rateofuserootbutton.caption
    rateofusetotalbutton.caption
    rateofusebutton.caption
    rateofuseballoonbutton.caption
    alwaysstayontopbutton.caption
    alwaystrayiconcaptionbutton.caption
    hidebutton.caption
    firststaffbutton.caption
    quitbutton.caption

  • phase 580 public test


  • OnDisplayChange イベントを削除

    画面解像度の変化は GUI フロントエンドである MATERIA とは関係がない

  • OnInitialize イベントを削除

  • phase 579 public test


  • ×スクロールマーカが sakura 側のみビットずれ

  • ×sstp マーカが kero 側のみビットずれ

  • ×\_b で貼られたビットマップが kero 側のみビットずれ

  • ×kero 側に \_b でビットマップを貼ると次に \_b が呼ばれるかさもなくばいったん MATERIA を終了するまでビットマップが破棄されない

  • phase 578 public test


  • ×surface element で存在しないファイルが指定されているとそこで halt

    間違っているのはデータファイルの方なので正常とも言えるがこの厳密性は意図していない

  • phase 577 public test


  • フェードエフェクト廃止

    いらない

  • phase 576 public test


  • ×updates.txt 系ダウンロード時にプロクシの認証データがセットアップされていない

  • phase 575 public test


  • \![set,choicetimeout]

    選択肢のタイムアウトを n ミリ秒に設定する。-1 の場合タイムアウトしない。永続。デフォルト値は 16000 ミリ秒

    \* は存在意義を失った

  • ×desktopalignment がプロセス永続

    当該ゴースト限りで bottom にリセットされるのが妥当

  • ×FUDS 判定廃止

    判定しづらすぎる=重すぎる

  • phase 574 public test


  • surfaces.txt に下記の書式追加

    surface0,surface50
    {
    }

  • phase 573 public test


  • ×zip を用いたネットワーク更新後 zip を消すせいで MD5 以前の問題で毎回 zip が更新対象となる


  • 寝てるときに onghostchanging でいきなり起きる

  • phase 572 public test


  • いわゆる「コミュニケート」を OnCommunicate イベントへ

  • 延々 embryo のままだった Sender ヘッダを materia へ

  • phase 571 public test


  • OnFileDropping 廃止
  • OnFileDrop 廃止
  • OnFileDropped 廃止
  • OnDirectoryDrop 廃止

  • OnFileDrop2 追加

    r0: ファイル名[1]ファイル名[1]....
    r1: サイド(0/1)

  • phase 570 public test


  • 「喋るときフォアに」設定を除き絶対に自動でフォアグラウンドに来ない

    ウインドウが裏に入っているとヘッドラインがセンスされたことやメールが来ていることに気付かない可能性があるが、それについては知らない

  • ×ハイバネーション等から復帰した際にタイマが溜まったメッセージを一気に送ろうとする

  • phase 569 public test


  • ×SHIORI/2.x を用いている SHIORI に対する SSTP が全て Owned SSTP

    かなり危険

  • phase 568 public test


  • COMMUNICATE を除き SHIORI/3.0 実装終わり

    COMMUNICATE だけなぜか 2.x で来るので全面移行は無理


    2.x → 3.0

    2.x ではリクエストごとにバラバラだったヘッダを ID と Reference だけで構成。リクエストの外形は同じ

    ヘッダの一行目には GET / NOTIFY といったコマンドとバージョン情報以外何も書かない。そこにあったものは ID ヘッダに移される。

    GET Sentence SHIORI/2.x
    Event: OnClose
    Reference0: ....



    GET SHIORI/3.0
    ID: OnClose
    Reference0: ....


    NOTIFY OwnerGhostName SHIORI/2.x
    Ghost: ....



    NOTIFY SHIORI/3.0
    ID: ownerghostname
    Reference0: ....


    どんなリクエストであっても戻り値は Value: で返す

    SHIORI/3.0 200 OK
    Value: 味噌


    GET と NOTIFY の違いは戻り値が必要とされているか否かだけ

    メリットは整合性の向上とそれに伴う SHIORI 側のパーサの簡略化

    以上

  • phase 567 public test


  • AI グラフ廃止

    事由

    何の指標にもならない
    「使えるように」突き詰めていくと結局汎用のグラフ描画エンジンが必要となる。この事実はそもそも初めから発想が間違っている(実装するレイヤがおかしい)ことを示している。SHIORI が自力でウインドウを出せばこのような問題は起こらない

  • インスペクタウインドウ廃止

    事由

    意味がない

  • SHIORI/1.x 切り捨て

    getversion を含む
    エラー処理等もない(現 MATERIA に 1.x を読ませると 100% 落ちる)

  • slave AI システム削除

  • Age ヘッダ削除

    事由

    使われていない
    Reference で 100% 再現できる


  • リミット項目がどうやら無くなっている模様

  • phase 565 public test


  • ×インストール時 zip を復元しない

    しなくてどうする

  • ×NOTIFY OwnerGhostName のリクエストヘッダが壊れている

  • phase 564 public test


  • /debug2 引数つきで起動すると printf デバッグモード

    正に地獄

  • ゴースト切り替え部で printf デバッグ

  • Direct SSTP 処理部で printf デバッグ

  • ×\b[-1] でなぜか本体ウインドウがフォーカスを取る

  • win9x でも direct sstp の返値を返す

    wm_copydata のハンドリング中に別のウインドウに wm_copydata を送る(Direct SSTP)と win9x は落ちたような気がする(落ちてよい妥当な理由はない)。つまり返値があって落ちるか、返値がなくて落ちないかどちらか。にも関わらず最近まで送るコードになっていてかつそれがエラーを出していなかった、らしい。なお NT にはこういった問題はない

    この変更で再び Direct SSTP 受信と同時に落ちるようになった場合、やはり win9x に限り返値を送らないようにするしかないと思う

  • phase 559 public test


  • ゴーストエクスプローラ FUDS 判定

    全ファイル総当りして FUDS という文字を探す痴呆処理

  • phase 558 public test


  • ×kero 側の \_a エリアが正しい識別子を返さない

  • phase 557 public test


  • updates.txt

  • twin tail に \1\b[2] 追加

  • phase 556 public test


  • ×DirectSSTP で Owned SSTP 使用可

  • さくらが Owned SSTP を Direct SSTP で送信

    http://todo.tir.ne.jp/sakura/todo.cgi?ID=607&Command=Disp&design=pastel

  • phase 555 public test


  • ×timecritical/primary/passive でもトレイアイコンのポップアップメニューだけは開く

    そもそも開くのが間違いで開いた先異常が出るのは当たり前

  • ×寝ている間にも F11 で意図的なヘッドラインセンス可能

  • phase 554 public test


  • 乳カーソル

  • phase 553 public test


  • ×オリジナルカーソルを持つバルーン使用時、一度でも OnChoiceEnter を発生させると以降デフォルトカーソルに戻される

  • ×kero 側の選択肢上でマウスカーソルが変化しない

  • ×kero 側で OnChoiceEnter が発生しない

  • phase 552 public test


  • ×kero 側の OnMouseWheel が timecritical/primary/passive その他あらゆる状況制限を無視して来る

  • phase 551 public test


  • ×へたインストール→本体新版で上書き→へたが未インストール扱い

  • B 体制移行

    phase 507 public test


  • オーナードローメニュー描画位置に centertop 追加

  • ×選択肢を囲う矩形領域が右下方向に1ピクセルほど短い

  • phase 506 public test


  • ×限界領域を越えて文字を描くと halt

    kero 側バルーンで約32行程度(バルーンによる)。sakura 側はその倍程度のキャパシティがあったが、広い狭いに関わらずそもそもエリアオーバー即 halt になるのが問題。

  • phase 505 public test


  • ゴーストエクスプローラに pna カラム

  • ゴーストエクスプローラの「シェルファイルサイズ」カラム廃止

  • 「サーフィスカウント」カラム追加

  • phase 504 public test


  • ×win9x のみバルーン形状変化後の背面ウインドウ再描画に失敗

    w2k では正常に動作するため、手元での再現不能。どういった理由でどのように失敗するのか不明。

  • phase 503 public test


  • \![raise]

    ユーザ定義イベントの発生。第2引数がイベント識別子、第3引数以降が reference ヘッダ。カンマはダブルクォートでエスケープできる。例示

    \![raise,OnUserEvent,r0,r1,r2,r3,r4,r5,r6,r7]
    \![raise,OnUserEvent,"0,100"]
    \![raise,OnClose]

  • phase 502 public test


  • ×kero 側で link カーソルが出ない

  • phase 501 public test


  • ×delete.txt の動作が仕様書の記述と異なる

  • phase 500 public test


  • 領域内およびアンカー上でマウスカーソル形状変化

  • balloon 形状変化時の再描画手法を本体の再描画と同レベルのものに変更(region)

  • ×コンソールが時間切れで不可視になっても内部的に点滅再描画していて無意味に重い

  • phase 498 public test


  • ×割り込まれた際に \_s が失効しない

  • phase 497 public test


  • ×\_q 区間内の文字の即時描画失敗

  • ×自動改行時の文字の即時描画失敗

  • phase 496 public test


  • console が速い(特に点滅含む連続再描画時)

  • ×\c がかかっても即座にバッファがクリアされない

  • phase 495 public test


  • ×バルーンの alpha が 0xff でないとき初回のバルーン再描画と同時に halt

  • ×ghost explorer からゴーストを切り替えた際 modal なまま

  • phase 494 public test


  • 速い

  • phase 491 public test


  • fake + region 時のみ region の下端1ライン残留

  • phase 490 public test


  • kero 側にもファイルドロップ可能

    起きるイベント等に違いはない。ただし kero 側に drop した場合 refrence1 が 1 になっている(sakura 側では 0)。

  • 本体所有の壁紙セット機能放棄


  • ghost / shell 双方の descript.txt に craftman craftmanw craftmanurl エントリ追加。

    craftman エントリは製作者名を表す。craftman は ASCII 文字のみで構成しなくてはならない。craftmanw はワイド文字(例えば日本語等)も使用可能。

  • phase 488 public test


  • ×「切り替え」ボタンがないごみ箱のリストでもダブルクリックすると「切り替え」選択動作を行わせられる

  • ×「全部」表示しているとき、ごみ箱に入っているゴーストも通常扱い(選択すると落ちる)

  • ごみ箱からさらに完全に削除するボタン追加

  • setup に Speed Control スイッチ追加

  • phase 487 public test


  • ×kero スコープで \![set,alignmentondesktop,top] を使用した際、期待された動作をしない

  • phase 486 public test


  • ゴーストエクスプローラ

  • region モードで kero 側のバルーンが抜けない(ように見える)

  • 他何点か

  • phase 481 public test


  • ×バルーンの descript override の処理が微妙

  • ×over 8191 判定にミス

  • phase 480


  • ×ネットワーク更新で shiori.dll(に限らず、コアとなる dll ファイル)を更新する際、比較的高い確率でファイルを破壊し、その結果壊れた dll をロードして halt

  • phase 479


  • http リクエストを一回の送信で送り切らないといきなり切断してくる恐怖サーバ(Zeus)への対策

    |`) …

  • phase 478


  • オーナードローメニューを開く際、画像ファイルが前と同じだったらいちいち読み直さない

    無駄すぎ

  • phase 477


  • ×最終位置が保存されていないゴーストを本体起動と同時に Materialize すると halt

    この条件にあてはまるのはほぼ faked first のみ。

  • ×\q の矩形が不細工

    とある事情によって不細工になったまま放置されていた。

  • phase 476


  • surface000.png/surface0000.png 等と surface0.png が等価

    前方を 0 で埋める限り何桁でも正しく解釈される。従来でも element でファイル名を指定すればどのような命名規則でも使用可能だったが、これはシームレスに解釈される点で異なる(element エントリを省略して surface0000.png というファイルのみ置いても surface0 としてロードされる)。

    桁数を合わせる利点は alphabet sort で正しくファイル名順に並ぶという一点に尽きます。

    これは仕様の変更ではないので、今既に単純命名になっているものをわざわざこっちに変える必要はありません。

  • phase 475


  • ×シェルを変更し、かつそのシェルに過去の起動情報がなかった場合(つまり初回起動時)直前のシェルの位置情報をそのまま引き継ぐ

  • phase 474


  • ×バルーンをクリックして消した際、いきなりフォーカスをロストする(ことがある)

  • ×SSTP Send を受けた際に必ず foreground window になる

  • phase 473


  • \![set,alignmentondesktop,top]
  • \![set,alignmentondesktop,bottom]

    天使/首吊り用

    仕様書

  • phase 472


  • ×\q において、第二引数に MBCS を使用し、かつ下位バイトが ] と同一のバイト値を持つ場合、右端1バイトが欠落

  • ×ブラウザのファイルパスが設定されていないと(空白だと)\![open,browser] が起動しない

  • 古い \q は \h や \u 同様おそらく永久に削除しませんので、そういう意味では追随しなくともよいです。

    phase 471


  • ×ロードする shell のディレクトリ内に surface*.png という名前のファイルが 1つも存在しない場合 maxwidth の初期化に失敗し halt

  • surfaces.txt に properties ブレスエントリ追加
  • properties ブレスエントリ内に maxwidth エントリ追加

    element のことも考えると横幅を完璧に自動取得するのはコストが高く、おそらく手で書いてもらった方が速くて確実。省略時は従来通り自動取得するが、これは仕様なのか過去互換なのか微妙

  • オーナードローメニュー BG の位置アラインメント leftbottom および rightbottom を仕様から削除

    よく考えると異常に難しいような‥‥

  • phase 470


  • ×特定条件下で overlay surface が出ないことがある

    ヒルデの左耳が消し飛んだり等。

  • ×shell ディレクトリ内に正の整数として解釈できない文字が suffix になっている surface*.png ファイルがあるとメモリ破壊

  • http://todo.tir.ne.jp/sakura/todo.cgi?ID=532&Command=Disp&design=pastel

    手元で 100.png を作成しそれを element で指定すると思ったとおりの動作をします。

    そういう意味ではない‥‥?

    phase 469


  • ×passive mode が SSTP をブロックしない

  • passive mode は多くのイベントを抑制しますが、OnMouse 系を含むいくつかの低レベルイベントはゲーム等で使用される可能性が非常に高いためブロックできません。従って、撫で反応、突き反応といったゴーストが低レベルイベントを「解釈」して起こすアクションについてはゴーストマスタが自力でブロックする必要があります。

    phase 468


  • teach ボックスと communicate ボックスをコールするホットキー削除

  • phase 467


  • 開発用メニューに「SSTP Box」ボタン追加(復活)

  • /debug で起動するとデバッグモード

  • phase 466


  • ×COMMUNICATE の Reference が不定期に消失

  • phase 465


  • ×457 以降で新設された \! が全て動かない

  • phase 464


  • ×SAKURA API 全死

    nar の実行による install 含む

  • ×Communicate 時、Surface ヘッダが仕様書ではカンマセパレートになっているが、バイト値1セパレートで来る

  • phase 463


  • ×Mode.ULW 時に kero 側の bind が不可視

  • phase 462


  • ×オーナードローメニューが出ない

  • ×意図的に誤った書式の \_c を送ると無限ループ

  • phase 461


  • 1 surface が持つ最大の当たり判定数を 256 に拡張

    オセロ用‥‥なんですがちょっと遅かった。

  • phase 460


  • ghost 側の alias.txt 廃止

    shiori/makoto エントリ共に descript.txt に移動

  • \! の方針は「たまにしか使わずどのみち仕様書を見ないと意味が思い出せないようなコマンドをここに詰め込む」。

    phase 459


  • \__t \__c 廃止

  • \![open,teachbox]
  • \![open,communicatebox]

    それぞれ \__t \__c と等価。

  • phase 458


  • ×ポップアップメニューを開くたびに若干のメモリリーク

  • ×ゴーストを切り替えるたびに若干のメモリリーク

  • phase 457


  • \![open,browser]
  • \![open,mailer]

    それぞれブラウザ/メーラを起動。第3引数以降はブラウザないしメーラの起動パラメータとなる。

  • 454-456 Conflict 仕様

    phase 456


  • \![open,inputbox,symbol,limittime] で単純入力ボックス表示。

    開いたボックスに文字列を入力し enter すると、OnUserInput イベントが発生し、reference0 に symbol、reference1 に入力された文字列が返る。また何も入力しなかった場合でも limittime で示される時間が経過すると入力待ちが打ち切られ reference1 に文字列 "timeout" が返る。ただし limittime に -1 をセットした場合はタイムアウトは発生しない。limittime の単位は milli second。

    入力待ちの間は passive かつモーダルになっており、文字列が入力されるかタイムアウトするまでユーザは他に何もできない。

    例示

    \![open,inputbox,test,4000]

  • phase 455


  • \![lock,repaint] で一時的な再描画の停止
  • \![unlock,repaint] で抜け

    オセロの石を綺麗に並べるためのコマンド。

    |_・) …


    cg-change : \![lock","repaint]\1\i[0]$(set full-mass 0)${cg-change2}$(if $([ ${attack-turn} -eq 0 ]) ${reaction-uh} ${reaction-hh}) \![unlock","repaint]

  • phase 454


  • 汎用コマンドシンボル \!

  • \![enter,passivemode] でパッシブモード
  • \![leave,passivemode] で抜け


    ※パッシブモード

    システムによる interrupt を抑制したモード。主にゲーム等において使用する。パッシブモードには以下のような特徴がある。

    ポップアップメニューが出ない
    メールチェックしない
    ヘッドラインセンスしない
    オートチェンジしない
    選択肢がタイムアウトしない
    吹き出しが時間経過で消えない
    ファイルが DnD されても無視
    nar ダブルクリックも無視
    OnSurfaceRestoreが来ない
    cantalk は常に false(OnSecondChange および OnMinuteChange 自体は来る)
    コミュニケートボックスは閉じられ、また開かない
    最小化できない
    終了できない

    仕様書

  • phase 453


  • sakura.surface.alias および kero.surface.alias の記述位置を surfaces.txt に移動

  • \q は安易に変えても意味もなく被害甚大なので追加という形になるかと思います。

    現状の選択肢仕様に不満がない限り変えても利点がないので。

    surfaces コンバータはバグってました‥‥

    phase 452


  • ×新しい \q を用いた際、描画位置が横に動かない

    字では説明しづらい‥‥

  • phase 451


  • ネットワーク更新時 balloon ダブルクリックで中止(意図的失敗)

  • メールチェック時 balloon ダブルクリックで中止(意図的失敗)

  • phase 450


  • ×\q のタイトルに shadow が入らない

  • phase 449


  • ×\_n で自動改行スイッチ

  • \_q が \_n を含まない

    \_n 後は吹き出し右端に至っても何も面倒を見ない。

  • phase 448


  • ×一度自動切り替えが起きると以降毎分自動切り替えが発生

  • ×\* が動いていない

    削除したことはなく、内部的にはずっと動いていたが、\e で失効していたため表面上動作していなかった。

  • phase 447


  • ×時限切換えが始まると死亡

  • 自動切換えメソッドをランダム/シーケンシャルに分化(従来は選択の余地なくシーケンシャル固定)

  • phase 446


  • ×toolhelp32 をスタティックリンク

  • phase 445


  • ×ULW モード時に wininichanged を受けると以後 balloon が不可視になる

    http://todo.tir.ne.jp/sakura/todo.cgi?ID=487&Command=Disp&design=pastel の 02/01/31 15:04 で全てが一本の線に繋がった。

  • phase 444


  • ×自動切り替えの条件一致と同時にゴーストが OnMinuteChange 系のイベントに応答すると自動切り替えが潰される

    極端に言えば OnMinuteChange に毎分応答していれば永久に自動切り替えが発生しないということ。もっともこれが原因の全てとは思えないが‥‥

  • phase 443


  • ×fake が古いバージョンのままだったため 441 の修正が入っていない

  • phase 442


  • ×{

  • phase 441


  • ×mahoro fake を region モードで用いると右端および下端1ラインぶんだけ region が足りない

  • ×region モードで surfaces - element を用い、かつ (0,0) 以外のオフセットで overlay を用いた際、画像自体は正しいオフセットで overlay されるが、region がオフセットゼロで combine される

  • phase 440


  • lcl ファイルの system.properties に menu.* エントリ追加

    オーナードローメニューに使用されるフォントを規定する。

    menu.font.name,Arial
    menu.font.height,10
    menu.font.charset,ascii



  • さらに前

    戻る