さらなる未練

ファイル移動なし起動への未練 - 永字八法の続き。
コメントでさらに示唆をいただいたので試してみる。
defineresetを使用するとどうだろうと言う提案である。
これは、いったんstart節に突入してセーブ場所を調べるなり確保するなりしてからもう一度defineresetで最初から読み込み、その時、変数に保持していたセーブ場所をsavedirに読ませるのはどうだろう、と言う提案だと理解した。(まちがっていたら容赦なくつっこんでくださいませ>ピト様)
で、試しに以下のスクリプトを組んで動かしてみた。

*define
itoa $0,%0
mesbox $0,""
game
*start
itoa $0,%0
mesbox $0,""
rnd2 %0,1,100
itoa $0,%0
mesbox $0,""
終了しますか?
select "はい",*exit,"いいえ",*resume
*exit
end
*resume
definereset

で、これを動かすとわかるのだが、変数は起動時と、gameコマンド実行時に一度初期化されてしまう仕様なのだ。従って、defineresetをした時点で、変数に取っておいたディレクトリ名は初期化されてしまう。
以前、NScripterのバージョンアップの際に「game実行時に配列変数の初期化をしないことにした」と言うアナウンスがあったが、これは裏を返せば「game実行時に普通の変数は初期化します」と言う意味でもあったのだ。
残念ながら、defineresetを使って望んだような動きを得ることはできないようだ。