SOLD OUT Item Editor 開発記
[戻る]
04/12/17
なんとなく開発日記でも書いてみようかと思い立ったので唐突に追加。(笑)
現時点で開発セクションにおいてある他のは実のところこのサイトを作る前から既にできていたので
始めから記事に起こせなかったというのもあったのですが。
え〜と、現時点でできてるのは下のスクリーンショットの画面だけです。
ボタンとかはハリボテ(笑)で特に意味のあることはできなかったりします。
とりあえず・・・ウィンドウでかいんですよ・・・大きさにして844*630。
それでも見ての通り画面はいっぱいです。
もうちょっとスッキリしないものかなぁ・・・とか思うのですが。
ページサイズの肥大化を防ぐため、次回はスクリーンショットは別ページに移動する予定です。
04/12/24
今回はイベントページのスクリーンショットの画面を追加です。
しかし・・・アイテム編集と比べると、なんというか・・・スカスカ?
な感じで、アイテムページの設定量がどれだけ多いかを改めて感じます。
これらの項目はマニュアルとmakeitem.cgiを読み取りつつ作成しているのですが、
しばしばマニュアルに書いてない設定項目が見つかるのです。
例えば、どうも@@USEには「code」などの項目もあるようです。
詳しく調べてはいないので間違ってるかもしれませんが、
どうやら省略時は最後の@@ITEMのcode、
指定した場合はそのcodeのアイテムに所属するようです。
最も、分割したところで読みにくくなるだけのような気もするのですが、
構文解析時にはこの辺の対応も必要でしょうかね?
面倒なメモリ管理になりそうな予感。なんとかしなくては(笑)
現在は各要素の検索処理ぐらいしか案がないので、付加機能の原案を募集します。
あくまで原案なので、実装できるか、するかは二の次ですが「あったらいい」機能案、募集します。
(実装に入る前なら融通が利きやすいかも)
05/01/07
残りの3つのページの画面ができたのですが・・・
ほとんど何もないです。わざわざスクリーンショットを載せるほどのものでもないようなほどに。
次回からはしばらくメモリ管理について・・・かなぁ。
05/01/14
メモリ管理クラスをテンプレートベースで書きかけ。
デバッグに時間がかかりそうな雰囲気がします。
templateは初めて使ったのですが・・・コンテナに使うと威力ありますねぇ(笑)
6枚目のページとして「プロジェクト」が追加されました・・・が、
中身はあまり定まっていません。
05/01/21
引き続きメモリ管理クラスを作成中です。
もうしばらくかかるかも・・・
SOLDOUTBATTLING対応の要望もあったことですし、
標準から変更されたmakeitemも扱えるように本格的に検討中です。
05/01/30
とりあえずメモリ管理クラスが書きあがりました。
まだデバッグしてませんが・・・
できたものとSTL::vectorの仕様を比較すると・・・
似て非なるものって感じ・・・に見えます(笑)
実はvector使ったことないので実際どうかはわからないのですが(汗)
次はマップクラスを作ろうと思います。
05/02/11
マップクラスも書きあがりました。
デバッグはまたもまだです(笑)
前回STL::vectorとの比較をした「メモリ管理クラス」ですが、
実はコレ、「配列の」メモリ管理クラスです。
ただのメモリ管理クラスと配列クラスじゃ比較できない・・・説明不足でした(汗)
さて、そろそろ目に見える部分の実装にかかりたいのですが、
その前に拡張要素に対応可能なデータ構造を決めなければなりません。
大体決まっているので、来週までには確定したいなぁ・・・
05/02/25
ここのところ別用で開発に時間を回せなかったので、
ここ2週間の進展はほとんどなしです・・・
データ構造も確定できなかった・・・
05/03/18
ようやく別用がひと段落。
データ構造がだいたい確定しました。
05/04/01
アイテムページの実装を開始しました。
@@ITEMの項目をSOアイテムデータ形式に変換するところまでできました。
・・・逆はまだできません。
05/04/08
今週は独自形式の正規表現っぽいものを作成中です。
一応それっぽくは動くものの、パターンによってはマッチするはずの文字列がマッチしなかったりしています。
まだ実際に使えるレベルには達してませんが、完成すれば構文解析をかなり簡略化できそうで、期待してます(笑)
05/04/15
引き続き正規表現っぽいものを作っていました。
一応それなりに動くようになったんですが・・・ちょっと重いです。
テスト用にCSVからタブ区切りテキストに変換するもの(あまり役に立たない気もする・・・(笑))を作成。
この正規表現が使われたのはCSVの要素切り出し部分です。
テスト用に用意したファイルは51315行、5.89MBのファイルなのですが、評価にかかる時間は
約6秒(AthlonXP2700+にて、CPU時間。タスクマネージャで確認)、直接処理すれば多分1秒かからないだけに、
もう少し早くしたいのですが、現在の技量ではこれぐらいが限界かも・・・
ちなみに指定方法はPerlとかとは全く異なり、
どっちかというとC言語のprintfとかscanfの指定を大改造したようなものです。
実際に使った指定は下のものです。
%*0[%("%{%+0j%p"%}"%[,%$%]%)%(%{%+0j%p%[,%$%]%}%[,%$%]%)%]
これで""で囲まれていても、いなくても区切りを認識して分割できます。
特殊文字は全て%で始まることにしたのですが・・・%が溢れかえって大変なことになってるような(笑)
さて、これでSOLDのアイテム定義を分割しようと思ったら・・・
%*0{@@%[%(ITEM%)%(EVENT%)%(DEFINE%)%(FUNC%)%]%+0j%P@@%[%(ITEM%)%(EVENT%)%(DEFINE%)%(FUNC%)%(END%)%]%}
・・・これで大文字小文字同一視でいけば要素ごとに区切れる・・・かな?
(区切れたとして・・・何秒かかるのだろうか・・・実用できることを祈りつつ、近々テストしてみる予定です)
・・・と、ここまで書いたところで何気なく微修正・・・4秒になりました(笑)。
ファイル読み込みに手間取ってました・・・正規表現部関係ないじゃん(笑)
各部の実装を考えている時に、ふと思ったのですが、
全体をエディットに表示するコマンドって9x系のエディットボックス32KB(64KBだったかな?)制限に引っかかるような。
XPでは制限なしのはずなので問題はないはずですが、それで9xサポートと言えるのかな・・・
と、いうことで最終では98、Meは動作対象から外すかもしれません。
この正規表現はうまくいけばSOIEの検索などに実装するかもしれません。
05/05/06
今回はアイテムページの実装を進めていたのですが・・・
かなり量が多く、このペースでは5月中の完成も危うそうな感じです(汗)
コントロール100個は楽じゃない・・・(笑)
ちなみに前回の分割用正規表現は・・・あれじゃダメっぽいです(笑)
結構@@IFが曲者のようで・・・
05/05/27
引き続きアイテムページの実装を続行、
アイテムページのみで言えば60%近くといったところです。
ある程度動くようになってきたところで、
メモリ使用量についてチェックしました。
中身のない@@USEを30個もつアイテムを100個作って・・・20MB使用。
「中身のない=管理情報のみ」ですが、@@USEは現在の仕様だと相当メモリを食う模様です。
@@USEを持たないアイテムを100個並べても200KB程度しか使用しないあたり@@USEの食いっぷりはたいしたものです(笑)
ファイル読み込み実装後、標準定義を読み込んだ結果の合計使用量によっては管理情報も削らないといけないかも・・・
また、@@IFがアイテム定義などの途中に紛れている場合ですが、
現在のデータの持ち方だとこれを維持するのは無理っぽいので、
@@IFも@@ITEM等と同じように区切りとして認識する方針でいきます。
makeitemの方が簡単な気すらしてきたり・・・(笑)
05/06/10
アイテムページの実装は大体75%ぐらいになったところで、
いったんアイテムページから離れてファイル読み込みの実装に入ろうと思ったのですが、
書き下ろしたコード量がそろそろ記憶力(?)の限界に(汗)
確認作業に時間がかかりすぎな気がしてきたので、
この辺で一度資料整理に入ることにします。
・・・一週間以内には終わらせたいところです。
05/06/17
資料整理、65%ぐらいでしょうか。
しかし、資料整理の意味って結構大きいものです。
作業中に何箇所かヘンな部分を発見し、修正ができました。
もっとこまめにやるべきかな・・・と思いました。
ついでに作業中にちょっとした副産物としてファイル単位の正規表現置換ツールができました。
もっとまともに作れば結構使えるモノになるかも・・・?
関係ないといえば関係ないですが(笑)、
本日のHTMLcreaterの更新も作業中に発覚したバグです。
「ポインタ」って書いたらバグってました。
暇があればHTMLConverterとして再構築したいです。
そもそも変換ツールなんだし、作成ツールみたいな名前はどうかと・・・
・・・しかもこれ実はスペル間違ってます(汗) createrなんて単語無い・・・
05/07/01
資料整理に思ったよりてこずりましたが、ようやく終了し、
今週から再び作成に取り掛かります。
そろそろアイテムページの通しテストができるまで進めないと、
夏中に完成できないかも・・・。
待っていてくださる方々のためにも、スピードアップしないとなぁ・・・(苦笑)
05/07/22
ようやくアイテムページの基本範囲の実装がほぼ完了し、
イベントページの実装に入りました・・・が、
なんだか始めからに戻ったような気分になるのは何故でしょうか(笑)
アイテムページ基本実装完了に伴ってスクリーンショット更新しました。
ファイル読み込みも平行進行し、一部制限付きながら読み込みも可能になっています。
現状、既にアイテムの作成程度ならば利用できるレベルに達していると思うのですが、
仮コードが各所に点在している関係で、各ファイルを正確に配置しないと起動できないなど、
制限が多いため、現在のバージョンの公開は行わない方向です。
また、仕様自体にも変更がかかりました。
●Windows98,Meの動作対象除外
理由:ファイルの読み込み時などのエラー通知時にファイル全体をエディットに出す予定なのですが、
98,Meのエディットが64KBまでしか処理できない(標準で既に80KB近いため確実にオーバー)ため、
98,Me上での動作が難しくなってきたためです。(実際に確認したわけではないのですが・・・)
機能制限などを課せばなんとかできる可能性もあるのですが・・・
その辺は今後皆さんの反応を見て検討します。
●@@END以降の記述の保持
理由:単に解析処理で保持できるコードができたというだけです(笑)
05/07/29
今週は解析系統のバグ取りを主にやってました。
いつぞやのメモリ消費の方は、現状までで読み込んでみて標準データで5MB程度しか使用しないので、
問題なしという方向で決定しました。
ここで初公開の機能をひとつ。
「アイテム名変更の追跡」(実装80%)
アイテム名を変更すると関連する@@ITEMNOやuse、need、get等も修正する必要があります。
そこで、この機能はPerlスクリプト中の@@ITEMNOとuse、need、getのアイテム名指定の部分を検索して全置換します。
メッセージ部分等はどう使われてるか分からないので検索対象からは除外しています。
(例えばポーションを変更してハイポーションのポーションの部分だけ置換されても困りますしねぇ(笑))
05/08/26
気が付けばほぼ一ヶ月ぶりの日記・・・これじゃ月記(?)ですね(笑)
さて、イベントページの基本範囲の実装が完了しました。
というわけでスクリーンショットを更新しました。
現在は関数ページ(@@FUNC系)の実装に入っております。
アイテムページとイベントページの編集時に配置情報を正確に処理できているかが未確認なのですが、
これは配置ページの実装に入らないと色々面倒なので現状後回しです。
そろそろメニューコマンドの実装も検討しておかないと・・・
05/09/09
関数ページ(@@FUNC系担当)と定義ページ(@@DEFINE担当)の基本実装が完了しました。
配置ページの実装に入り、@@IFの分割がバグってたのを修正したところです。
ここらで定義ページと配置ページについて少し解説でも(書くネタがないんで(笑))
定義ページは解析時に最初に遭遇した@@DEFINEのみの編集を行うページです。
このページで定義されたアイテム種類と職業は、
アイテムページの各項目のプルダウン(▼)のリストに反映されます。
@@DEFINEはここ以外でも書けますが、SOIEで反映を受けるにはこのページに書く必要があります。
配置ページは各要素をinc-item-data形式に再変換する時の順番と
ここまでのページで編集できない項目を編集するページです。
ここで順番の定義がある理由として、@@SKIPや@@USEMACROなどの影響の関係があります。
これらは実行後も影響が残るため、SOIEで新しく追加したデータの影響範囲を制御するためにあります。
05/09/30
配置ページの基本実装が完了しました。
次は直接入力などのダイアログの実装に移るところです。
05/10/28
直接入力、アイテム拡張情報ダイアログをだいたい実装完了しました。
ようやくファイル出力が実装されましたが・・・
正常に出力できているか確かめるのが大変(3000行はなかなか(笑))です・・・
11月中旬〜12月上旬ごろにアルファテストバージョンを公開する方針です。
アルファテストバージョンというのは、以下のようなものです。
プログラムは開発中の状態で公開されます。
デバッグはおろか、全機能実装さえ完了する前の公開になる可能性もあります。
そのため、場合によっては予期せぬ動作(暴走、フリーズ、データ化けなど)をする可能性があります。
え〜と・・・ようするに「デバッグに協力してくれる人募集」ってことです。
現状で、デバッグする必要のある範囲、および量が一人でやってるとそれだけで数ヶ月かかりそうな勢いであることと、
操作性、機能に関してより多くの情報、意見を集め、完成版に反映したいということです。
詳細はまだ決まっていませんので、決まり次第書きます。
05/11/18
アルファテストの詳細が決定しました。
まず、公開アルファテストの理由ですが、
一応、ここまでに一通り正常に動く(ように見える)程度にはデバッグされていますが、
このプログラムは操作の通り数が無数にあるため、特定の順序で操作すると問題が発生するといったことがしばしばあります。
特に解析系は複雑になるため、効果的なデバッグ手法がなく、
ひたすら様々なデータを与える物量戦法しかないと判断したためこのような方法をとることにしました。
デバッグに協力してくれる人は来週中に現在のバージョンを公開しますので、
それをダウンロードして実行してください。
このアルファテスト用に専用の掲示板を作成しましたので、
関連事項は専用掲示板の方に書き込んでください。
現在、以下の2タイプについて協力をお願いしたいと思います。
●正常系テストおよび操作性
プログラムを普通に使い続けて、整合性を維持し続けられるかのテストです。
同時に、操作性についての意見をお願いします。
●異常系テスト
プログラムに対し異常なデータを与えて、適切に処理できるかのテストです。
読み込むファイルや各入力項目に変なものを入れてみて、
正しくエラーを報告したりできるかのテストです。
また、inc-item-data形式からの変換時は「元に戻せる」を条件に解析しています。
そのためmakeitemでエラーになるようでも、再変換できるなら解析に成功します。
直接入力ウィンドウとファイル読み込みでは、解析したデータを再度inc-item-data形式に変換して、
意味が変化していなければ正常です。
また、プログラム中には数箇所に、自己異常診断をしかけてあります。
これにひっかかると「内部エラー」というダイアログが出ます。
内部エラーは意図した動作下では絶対に発生しない条件ですので、
表示された場合は同時に表示される付加情報と直前の操作、状況などをアルファテスト専用BBSに報告してください。
また、一度発生した後もプログラムは続行されますが、そのまま変更を破棄して一度終了してください。
内部エラーは内部の整合性が壊れると出されるので多分その後大量発生します。
プログラムをリセットするために×ボタンで終了してください。
他に、「Microsoft Visual C++ Runtime Library」というタイトルに
「Runtime Error!
Program:...(実行ファイル名)
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.」
という内容のダイアログ表示後、強制終了される可能性があります。
この場合はこれ以上の情報が取れないので、直前の操作などをできるだけ細かく報告してください。
普通に「問題が発生したため・・・」で強制終了された場合も上記同様に報告してください。
ただ、これらは発生状況が微妙に異なるのでどちらが発生したかも書き込んでください。
説明ファイルは作成が間に合いそうにないため、同梱されません。
画面のみで操作が理解できるかについてもプログラムの完成度のひとつの尺度となると思いますが、
そういうのは作った本人には分からないもの(だと思う^^;)なので、
見ただけでどれだけ分かったか、分かりにくかったかなども教えていただけると嬉しいです。
最後に、アルファテストに協力していただき、専用掲示板に書き込んでくれた方は
完成後「デバッグ協力」として説明ファイルに名前を入れさせていただく予定です。
05/11/22
アルファテストバージョンを公開しました。
現在、「アイテムページの拡張項目」とメニューの「ツール->プロジェクト整合性チェック」は
実装未了となっています。
05/11/28
アルファテストバージョン第2弾をアップしました。
バージョン proto1 からの変更点は以下の通りです。
●[修正]正規表現の最大数の評価がおかしい問題を修正
●[修正]起動直後にアイテムページの@@USEの関数名リストに@@FUNCITEMの関数が表示されない問題を修正
●[修正]新規作成時、編集中ファイル名がクリアされていない問題を修正
●[追加]アイテム、イベントの関数のインデントレベル検出を追加
●[追加]アイテムアイコン編集用のショートカットと設定を追加
●[追加]アイテムページの関数エリアの別ウィンドウ編集を追加
●新規アイコン用の16x16 PNGファイルを同梱
(新規アイコンはこれをコピーするのでexeと同じフォルダに置いといてください)
解析系に手を入れたんで妙な変換をしないか一応注意してください。
proto1から更新する場合は、入ってるファイルを上書き解凍してください。
環境設定のアイコン編集アプリケーションの欄ですが、
空欄の場合はWindowsのPNGファイルの設定を使うので空欄でも動作はします。多分(笑)
05/12/08
アルファテストバージョン第3弾をアップしました。
バージョン proto2 からの変更点は以下の通りです。
●[修正]検索/置換で通常比較で空文字列を置換すると無限ループでフリーズする問題を修正
●[修正]検索/置換でワイルドカードで空文字列を置換すると正常に処理されない問題を修正
●[修正]検索/置換で正規表現、繰り返し、範囲全文で空文字列を置換するとゴミが混ざる問題を修正
●[完了]プロジェクト整合性チェックが実装完了
●[完了]アイテムページの拡張項目の実装完了
●inc-item-data形式からの解析ルーチンを高速化(約2%高速化した模様。効果実感できず^^;)
●SOLD OUT BATTLING用のルールファイルを同梱しました
拡張項目の実装は完了しましたが、アイテム名変更追跡の対象にはなっていません。
今回も解析系に手を入れたので、一応注意してください。
・・・ちょっとした小ネタですが、使っている方、全部気付いてますか?(笑)
地味な動作なんで、もしかして気付かれてないかも?ってことで書いてみます。
●初回起動時に画面左上に出現するウィンドウ(3種)はそれぞれウィンドウ位置をプログラム終了後も記憶します。
・・・これはわかりやすいかな(笑)
●ウィンドウ位置を記憶しているウィンドウは、リサイズ(サイズ変更)可能です。
ちなみにサイズも記憶されます。
●「固定」チェックボックスを持つウィンドウ(2種)はリスト項目をダブルクリックすると
該当要素または該当行にカーソルを移動することが出来ます。
「固定」チェックボックスはカーソル移動時にウィンドウを閉じるかどうかの設定です。
●0x5c('\')補完・・・プログラム書いてる人や、当サイト講座をご覧の方は分かるかとおもいますが、
2バイト目に\マークと同じ文字コードを持つ文字はPerlスクリプト上でエラーを誘発します。
防ぐには\マークをもう一個繋げることですが、SOIEではこれが行われていない文字がないかをチェックしています。
エスケープされていない文字を発見すると出るのですが、Perl構文解析はしていないため、
注釈やエスケープ不要な''文字列中も探してしまい、問題なくても表示されることがあります。
どちらもエスケープしても問題はないはずなので、補完してしまっても大丈夫です。
この機能の動作は「ファイル->環境設定」から変更できます。
●プログラム引数としてファイル名を渡すと起動直後にファイルを開きます。
ようするに「関連付け」できるってことです(笑)
引数を与えた場合、「起動時に前回開いていたファイルを開く」より優先します。
05/12/22
アルファテストバージョン第4弾をアップしました。
バージョン proto3 からの変更点は以下の通りです。
●[修正]正規表現で%eが正常に処理されないことがある問題を修正
●[追加]アイテムの整列(ソート)を試験的に追加(ただし元に戻す方法はありません)
●[追加]アイテムページの別ウィンドウ編集に最大化ボタンを追加
過去バージョンからのバージョンアップは上書き解凍でOKです。
ところで・・・一回バージョンが上がる毎に結構な勢いでEXEのサイズが巨大化しています(笑)
proto1が364KB、proto4で400KB、10%巨大化しています。
ここにきてテンプレート多用の影響が・・・(笑)
05/12/28
アルファテストバージョン第5弾をアップしました。
バージョン proto4 からの変更点は以下の通りです。
●[修正]アイテムページのargselectが何をしても無効表示が出る問題を修正
●[修正]アイテム名変更追跡の時に異常な置換をすることがある問題を修正
●[修正]ファイルを編集後にファイルを開くと編集しなくても「編集されている」と表示される問題を修正
●[修正]一部メニューからウィンドウを出すと「応答待ち」にならない問題を修正
●[修正]削除系のボタンがウィンドウを出しても「応答待ち」にならない問題を修正
●[修正]配置ページを置換するとアクセス違反で落ちることがある問題を修正
●[修正]プロジェクト情報ページを編集しても編集済みにならない問題を修正
●[修正]F1キーで存在しないヘルプファイルを探す問題を修正
●[修正]何も選択していないとアイテムページの整列が使えない問題を修正
●[修正]置換時に@@DEFINEの報告が表示されない問題を修正
●[修正]置換時に@@EVENTの再解析に失敗した時、@@ITEMとして報告される問題を修正
ご覧の通り今回は小さなものから重要なものまで大修正祭りです。
また、最初の二つは proto3 から発生するようになった問題です。
proto3 の正規表現の修正の影響で今まで隠れていたバグが表に出てきたようです。
同様の原因で他にも隠れていたバグが出てきている可能性があり、現在調査中です。
なお、proto4ではargselectの問題は操作によってはハマってしまい、編集不能になることが確認されています。
argselectを操作する場合は必ず更新してください。
F1キーの修正は・・・修正とは違うんですけど(笑)
ヘルプファイルはHTMLファイルになるのでHLPファイルを探してもムダなので・・・
今までどうやって止めるのか分からなかったんですが・・・まさか数行で止まるとは(笑)
「応答待ち」系は、ほうっておいても問題ない可能性もあったのですが、
いろいろぐちゃぐちゃ操作してると落ちそうなので、全部止めておきました(笑)
今回も過去バージョンからのバージョンアップは上書き解凍でOKです。
06/01/12
アルファテストバージョン第6弾をアップしました。
バージョン proto5 からの変更点は以下の通りです。
●[追加]ルールファイル文法を強化
●[修正]拡張項目で要素項目が複数あるとき、一度選択すると空にしても消えなくなる問題を修正
●[修正]ファイルを開く時にルールファイルの読み込みに失敗すると異常状態に陥る問題を修正
●[修正]配置ページの適用ボタンが効いていない問題を修正
●[修正]拡張項目の配列削除で違う要素を変更してしまう問題を修正
●[変更]ファイルを開く時の選択ダイアログの文字列を変更
●[変更]@@USE拡張項目の選択情報を独立して保存するように変更
●inc-item-data解析処理を微妙に高速化
●同梱のBATTLING用ルールファイルを更新しました
今回は拡張項目に関連する追加、修正が主です。
問題点の発見間隔も開いてきたので、アルファテストは2月頃に終了する予定です。
その後、解説ファイルを作成してベータバージョンの公開となります。
BATTLING用ルールファイルの更新は、追加された機能を使用しています。
装備種別がリスト選択に変更されました。
・・・が、こっちの方が使いにくいようなら以前のものに戻しますので、使用者のご意見お願いします。
今回も過去バージョンからのバージョンアップは上書き解凍でOKです。
06/02/07
アルファテストバージョン第7弾をアップしました。
バージョン proto6 からの変更点は以下の通りです。
●[修正]編集して適用するまでの間に複製を作ると複製のデータが編集前のデータになる問題を修正
●[追加]直接入力ダイアログにサイズ変更、最大化、座標保持を追加
問題点の発見間隔も開いてきたので、アルファテストは2月末に終了する予定です。
その後、解説ファイルを作成してベータバージョンの公開となります。
今回も過去バージョンからのバージョンアップは上書き解凍でOKです。
06/02/10
先ほど、アイテム名変更追跡および、プロジェクト整合性チェックで、
@@EVENTのparamに含まれるアイテム名の存在をおもいっきり忘れてたことに気付きました(汗)
暇を見つけて対応したいと思います・・・(アルファテスト2月で終えられるのか・・・?(笑))
以下、インフォメーション?
アルファテストバージョン第7弾、02/07にてアップしました。
バージョン proto6 からの変更点は以下の通りです。
●[修正]編集して適用するまでの間に複製を作ると複製のデータが編集前のデータになる問題を修正
●[追加]直接入力ダイアログにサイズ変更、最大化、座標保持を追加
今回も過去バージョンからのバージョンアップは上書き解凍でOKです。
06/02/15
アルファテストバージョン第8弾をアップしました。
バージョン proto7 からの変更点は以下の通りです。
●[修正]アイテム名変更追跡に@@EVENTのparamが含まれていなかった問題を修正
●[修正]プロジェクト整合性チェックに@@EVENTのparamが含まれていなかった問題を修正
●[修正]環境設定のアイコン編集アプリ選択ダイアログのタイトルがヘンなのを修正
●[追加]プロジェクト整合性チェックに@@ITEMの分類チェックを追加
●[追加]メニューに最近使ったプロジェクトの項目を追加
●[追加]アイテムの整列に前回の配列に戻すを追加
今回は前回書いた問題の修正と、いくつか新機能を追加してみました。
プロジェクト整合性チェックで@@ITEMの分類のチェックを追加しました。
@@DEFINEで定義されていない分類が設定されていると報告されます。
複数のSOLDを改造する場合も楽になるかな〜という訳で「最近使ったプロジェクト」を付けてみました。
5ファイル分まで残ります。
ソートすると元に戻らないのが気になってたので「前回の配列を復元」を追加しました。
一回整列すると整列の項目に追加されます。(アイテムの要素数が変わると戻らなくなるのでそこは注意?)
今回も過去バージョンからのバージョンアップは上書き解凍でOKです。
06/03/01
ついにアルファテストが終了し、(一応)完成版を公開しました。
アルファテストのバージョンproto8からも多少の変更がかかっています。
バージョンproto8からの変更点は以下の通りです。
●[修正]整列をした後にファイルを読み込むと整列データがクリアされない問題を修正
●[修正]空の関数要素が増殖する問題を修正
●[追加]HTML解説ファイルを開くコマンド追加
アルファテストバージョンからのバージョンアップは上書き解凍でOKです。
06/07/23
非常にひさびさの開発記更新です。
Ver1.00リリース後に発見された以下の3件のバグの修正が予定されています。
●検索/置換の検索において、ワイルドカードの?の日本語処理がおかしい問題の修正
●検索/置換の置換において、ワイルドカードの*の処理が仕様と異なる問題の修正
●ファイル読み込み時、@@DEFINEが存在しなかった場合に@@DEFINEと定義ページが保存できなくなる問題の修正
時間的な都合により、修正版の公開は8月になる可能性が高いです。
申し訳ありませんが、もうしばらくお待ちください。
06/08/02
SOIE バージョン 1.01をリリースしました。
Ver1.00リリース後に発見された以下の3件のバグを修正しました。
●検索/置換の検索において、ワイルドカードの?の日本語処理がおかしい問題の修正
●検索/置換の置換において、ワイルドカードの*の処理が仕様と異なる問題の修正
●ファイル読み込み時、@@DEFINEが存在しなかった場合に@@DEFINEと定義ページが保存できなくなる問題の修正
この間、今さらながらVisual C++6.0 SP6 をインストールしたのですが、(2年近くも前に出た更新を今さら(笑))
その後リビルドしたらSOIEの実行ファイルサイズが2倍に・・・何故?(笑)
試しに他のもひとつリビルドしてみたものの、あんまり変化しなかったのでテンプレート辺りのコンパイルの仕方でも
変わったんでしょうかね・・・てな訳で、実行ファイルサイズが800KBオーバーになってしまいましたが、
そんなに大きな変更をしたという訳ではないのでした。
06/09/02
SOIE バージョン 1.02をリリースしました。
今回は、直接入力ダイアログが特定の操作をすると正常に動作しなくなる問題を発見、修正しました。
↓開発記05/12/28より
>「応答待ち」系は、ほうっておいても問題ない可能性もあったのですが、
> いろいろぐちゃぐちゃ操作してると落ちそうなので、全部止めておきました(笑)
数箇所、止め損ねていました。しかも、止め損ねていたそれが問題を起こしましたorz
今後は、上記「特定の操作」をした場合は「応答待ち」メッセージを表示して問題を回避します。
07/06/01
07/04/20にBBSに投稿された要望「行コメントの保持」機能について、具体的な実装を検討中です。
現状、保持のみ行う方向で実装検討をしていますが、幾分中途半端な状態です。
最近あまり時間がとれないため、完成時期に関しては予定が立っておりません。
07/09/11
行コメントの実装が完了しました。
ただし、@@ITEMなどの項目区切り、_local_などの終了位置区切りなどは
コメントが保持されませんのでご注意ください。
他にも、イベントの解析系統のバグを修正しました。
また、解析系、保持系に比較的大きな変更を加えたため、少々デバッグに不安があります。
安定性を重視する場合、またはこの新機能および修正点が問題にならないようであれば、
引き続きver 1.02をお使いください。
上記変更、修正を含んだVersion 1.03 Betaを公開しました。
1.02からの変更点は以下の通りです。
[追加]行コメントの保持を追加
[修正]イベントの解析エラーが報告されない問題を修正
[修正]イベント関数のパラメータ()までの間にスペースやタブが入ると正常に処理できない問題を修正
08/09/26
ベータ版放置したまま気がついたら1年経ってますがな(汗)
さて、昨日SOIEの仕様の微妙なトコロに関して投稿があったので、
せっかくなので機能追加として検討してみたいと思います。
●@@INCLUDEをもっとちゃんと対応する
現状、@@INCLUDEは単に自由表記要素として処理しています。
しかしこれだと、@@ITEMや@@USE等の中で使用した時に定義がバラされてしまいます。
この点については以前から把握してはいたのですが、
@@INCLUDEは今の仕様では「元に戻せる」基準でのSOIE内部形式変換を行えないのです。
というのもSOIE内部形式はもともとの記述順序を保持していません。
通常の要素は順不同で、@@ITEMなら@@ITEMのカタマリの中にあれば問題なく処理されるのですが、
@@INCLUDEや@@IFのような命令は、記述順序がずれた時に意味が変わらない保証がありません。
そのため、記述順序を変えないため、その位置で強制的に切るという対処をしていたわけですが、
並び変えをした時の影響など、対処しきれていない部分はあります。
また、解析時の順序を記憶したとしても、新規に追加された要素との順序はどうなるかなど、
暗黙には決定しきれない部分はどうしても残ってしまいます。
@@INCLUDE自体が標準定義では使われていなかったりすることもあり、
この点については正直、若干適当にやっていたことは否めません。
現状の方針としては、「元に戻せる」という保証がない機能として新設する方針です。
この機能は初期状態で無効とし、SOIEの環境設定から有効化しない限り、動作させません。
仕様原則を無視した機能はイレギュラーな機能なので、うっかりONにならないよう警告などを行います。
この機能について、提案、意見等ある方はよろしければ BBS までお気軽にどうぞ。
以下、インフォメーション。
解析系、保持系に比較的大きな変更を加えたため、少々デバッグに不安があります。
一年以上特にバグ報告は受けていないので大丈夫だとは思いますが、
安定性を重視する場合、またはこの新機能および修正点が問題にならないようであれば、
引き続きver 1.02をお使いください。
上記変更、修正を含んだVersion 1.03 Betaを公開しました。
1.02からの変更点は以下の通りです。
[追加]行コメントの保持を追加
[修正]イベントの解析エラーが報告されない問題を修正
[修正]イベント関数のパラメータ()までの間にスペースやタブが入ると正常に処理できない問題を修正
08/10/03
@@INCLUDEの扱いを変更する機能の実装他を行ったVersion1.04を公開しました。
Version1.03からの変更点は以下の通りです。
[追加]拡張特殊機能の制御を追加
[追加]「@@INCLUDEを要素として処理する」を追加
[変更]プロジェクト情報設定時にプロジェクト名を空欄にした時、無題を表示するように変更
[変更]初期状態で「データを上書き保存する前に以前のデータをバックアップする」をONに変更
[修正]F1キーを押したときHTMLヘルプが開かなかった問題を修正
Ver1.03がBetaのままだったので、もうしばらくVer1.02は置いておきます。
そのうち折を見てVer1.02は下げる予定なので気になる人は今のうちにどうぞ。
(09/02/06追記)Ver1.02公開終了しました。
10/11/02
開発記 の方で詳しく書きましたが、
環境設定のアイコン編集アプリケーションの欄に横着した記述を
すると問題になる可能性があることがわかりました。
解説資料の通り、アイコン編集アプリケーションの欄は空欄にするか、
または横の参照ボタンから出るファイル選択ダイアログで設定するようにしてください。
[戻る]
最終更新 2016/03/31