サブメニューの処理作成。1つ目はプレイヤー切替。
3人のユーザのうち、どのユーザでプレイするかを決める機能。
サブメニューで「きりかえ」を選択したときにプレイヤーを切り替える。
今まではユーザIDを1に固定してきたので、現在選択中のプレイヤーが誰なのかを、どこかに保持して、読みださないといけない。
せっかくなので、選択プレイヤーのユーザIDは、データベースに記録することにした。
もともと、コンフィグ系の設定内容をデータベースに記録するため、「ConfigTable」を作っていた。
項目が増減しても良いように、ItemNameとItemValueという組み合わせで、1項目、1レコードで登録するようにしている。
とりあえず、ItemNameを’SelectedUserID’、ItemValueをUserIDの数値を登録するようにした。
ゲームを開始する前に、データベースから、レコードを検索して、変数UserIDに値をセットする。
念のため、レコードが無かった時の処理も加えた。
設定レコードがない場合、DelFlgが0のプレイヤーで、ユーザIDが一番若い番号のプレイヤーを設定するようにした。
;選択中のユーザIDを取得 sql_open "tamanetrip.db" sqlstr="select * from ConfigTable " sqlstr=sqlstr+"Where ItemName='SelectedUserID' AND DelFlg=0" sql_q sqlstr if stat>0 { UserID=sql_i("ItemValue") } else { ;設定がないときは現存プレイヤーの1人をセット sqlstr="select ID from UserTable " sqlstr=sqlstr+"Where DelFlg=0 ORDER By ID LIMIT 1" sql_q sqlstr UserID=sql_i("ID") } sql_close
そして、サブメニューの処理に戻る。
サブメニューでは、選択したプレイヤーに切り換えるため、変数UserIDの更新と、ConfigTableの設定値を更新するSQLの実行を行う。
UserID=uid(csrpos) sqlstr="update ConfigTable SET ItemValue='"+UserID+"'" sqlstr=sqlstr+"Where ItemName='SelectedUserID' AND DelFlg=0" sql_q sqlstr
これで、ゲームを終了しても、前回選択していたプレイヤーでゲームを再開できるようになった。