2010年4月28日水曜日

ランタイム移植

なかなか思ったように進みませんがようやくランタイムが動きました。
とりあえずプレイヤーキャラとイベントの表示まで。

しかしどうもよく分からない挙動がたまにあります。
エディターで標準命令のdialogでファイルを開くダイログボックスを出すだけなのにソースの容量によってエラー1が出て終了したりしなかったりします。
ソースが1万行を軽く超えてるから容量でかすぎで不安定なのか、どこかでメモリリークしてるのか、HSP3の問題なのか、原因が分かりません。

2010年4月16日金曜日

スクロールバー

 モンスターエディター移植完了。


こちらのエディターはRPGにしか使われません。
ところでメニューやタスクバー、HSP2時代は普通にあったX(閉じる)が付かないウィンドウもネットのサンプルソースで簡単に実装出来るのですが
 こういうスクロールバー付きとなるとちょっと困りました。
HSP2では簡単に標準命令で付きます。

本来はHSP3で標準でスクロールバーが搭載される予定だったらしいのですが、予定が変更されてしまったようです。
このエディターにはとりあえずモジュールで代用してます。
こういったアプリケーションに必要な機能が削られると厳しいです。
ただ、HSP2では制限のあった変数の宣言数やウィンドウがメモリの許す限り無制限で使用できるのは非常にありがたいです。
お陰でモンスターや画像数などが大きく拡張できました。

次はいよいよRPG部(のみ)のランタイム移植です。

2010年4月4日日曜日

恐怖のstrmid

アイテム魔法エディター移植完了。SLGに関連するものは取りあえず置き。

しかし、HSP3は文字列取り出し(strmid)が劇的に遅いんですね。
Moji += "あいう"
のような文字列加算もstrmidほどでないにせよ、遅いです。

ネットでもそういう事が書いてありました。
メインエディターでイベントを40個、フルにテキストを入れて保存するとなんと1分以上掛かりました。
最初バグなのかと思ってデバグしてしまいました(苦笑)

結局のところ、HSP3では大量のバイナリを操作する時には
・strmidという命令は無かった事にする。絶対使わない。
・文字列の取り出しにはgetstr、またはmemcpy、peekを使い、
・書き込みにはpoke、またはmemcpyを使う
という事のようです。
これで処理すると、1分以上→0.数秒という超高速になります。

ところでHSP3には
#runtime "hsp3mt"
の記述で使用出来る(少し見つけづらい)マルチスレッド用ランタイムがあるのですが、デュアルコアで使用する分には10秒前後かかる処理ではほぼ速度差は無いです。

次はモンスターエディターの移植です。