セーブデータの件。
長くなりそうなのと、内部処理の話なので閉じ。
まずは、蟲様。ありがとうございます。
此方ではさっぱり原因が掴めませんでしたもので・・・

>> (前略)
>> ・名前、誕生日、性別を全て入力しないとuserdataが保存されない。
>> ・userdataが保存されていない状態では設定メニューでの値表示が上手くいかない。
>> 問題は上記の2つに切り分けられますが、前者については説明がつきました。
>> また、後者については現在は解消されているようです。
>> YAYAは汎用配列初期化の際に要素として記述された変数が存在しない場合は左辺に記述された変数が破壊されてしまうようです。
>> (例:i=(IARRAY,a,"test")でaが存在しないとき。)
>> 一方リーライナはかつては誕生日等の項目ごとに値を保存していたのをuserdataにまとめるように更新がなされたかと思います。
>> これ以前に性別を入力していなかったため、このタイミングでuserdetaが作成されず、各項目の値が失われてしまったものと思われます。

新ゴの仕掛けの前準備で、纏めるように変更したのですが・・・
このタイミングでセーブデータの破壊が起こって、復帰できずにいたようですね・・・
これは完全にこちらの手落ちです。申し訳ありませんでした。
もし他にもセーブデータの破壊が起こっている方がいらっしゃれば・・・
申し訳ありませんが、一旦セーブファイルそのものを削除していただく他は無いかもしれません。
(弄れる方でしたら、編集すれば復帰する可能性もあるにはあるのですが・・・)

一応、他のYAYA使いの方向けに。何が起こっていたのかを。

  1. 元々リーライナは、ユーザーから教えてもらった情報を個別の変数として持っていた。
  2. それを、ある時期に一つの配列として持つように変更。
  3. その際に怪しい事をしていたので、データが破壊されていた。


で、その怪しい内容。
元は、

  • 名前
  • 性別
  • 誕生日
  • (等々)

と、個別の変数だったものを

  • userdata=(IARRAY,"名前","性別","誕生日",・・・)

と、纏めたのです。
で、他はともかくとして誕生日が曲者だった様子。
誕生日は元々配列変数で3つの値を持っていました。(BathDay=(IARRAY,年,月,日) として。)
これを分解せずにぶち込むという怪しさMAXなことをしたのですね。
つまり変更後の変数は

  • userdata=(IARRAY,"名前","性別","年,月,日",・・・)

となっていました。
で、誕生日は数値扱いで持っていたのでダブルクォーテーションは入りません。
この際、名前か性別がNullだと、ずれるか何かするんでしょうか。
ありえない値が入っていると抹消するようにしてたと思うので、その際に全部クリアされていたのだと思います。
・・・素直に分解して代入してればこんな事にはならなかったはず・・・
手元では意図通りに動いたので、まさかこんな罠が潜んでいるとは思いませんでした。

そして。
これ、更に困った事に。
おぞんの環境では再現性が無いのです。
正確には「再現する時としない時がある」のです・・・
助けて所長!と、丸投げはさておいて。
初歩的な勘違いと言えば確かにそうなんだけど・・・文屋あたりに書いておくべきなのかなぁ・・・