CDW オプションルーチンを整理した


2022年 8月 5日
 
 
 と言う訳でオプションルーチンを整理しました。

 前回までは *game_mainルーチン内からオプションを呼び出してましたけど、ご覧のように一度 *game_mainルーチンを抜けてから *optionルーチンに入るようにしてます。

 これによって何とか SAVE、LOADのタイミングの整合性を取る事ができました。
 
 

 プレイヤー操作の場合は、そのまま抜けても大丈夫です。

 ;オプションの部分ですね、mainf=6でオプションモードに切り替えてます。

 その下にコメントアウトで変更前の gosub *optionがあるのが分かります。

 if mainf!5 or tarn_endf=1 or msf=0 or loadf=1 : break で抜けてます。
 
 
 CPUの場合は、ターンエンド時のダイス積み増し表示の時にキー入力を受付、入力があった場合は全部ダイス増を終わって次のプレイヤーに変わるタイミングでオプションに入ります。

 if kf=3 : te_kf=3 : break の部分で待機モードになり、その場合先頭の if te_kf=3 : returnの部分で表示をスキップします。

 ここでもコメントアウトで変更前の gosub *optionがあるのが分かります、変更前はここから直接オプションを呼び出していた訳です。
 
 
 *game_mainのルーチンです。

 CPUのターンエンド処理(gosub *tarn_end)をした後に、スイッチである te_kf=3で mainf=6にしてオプションモードにして抜けるようにしてます。

 プレイヤーの場合は順番である padnを -1してからセーブします、これは先頭で padn+してるので、LOAD時やオプションからの復帰時もこのプレイヤーから始めるためです。
 
 
 後はセーブ時にプレイヤー順番である padnを控えておきます。

 5番目くらいのデータですね。

 LOADの時に、この padnを呼び出して、続きの順番から *game_mainに入ります。
 
 
これで挙動がスッキリしました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です