ここまで2周目に関連する処理を追加、変更してきたのだが、一度でも1周目をクリアしないと、2周目(ハードモード)に難易度の変更ができない。
ハチャメチャな感じに仕上げる予定の2周目を遊んでもらえないのはさみしいので、隠しコマンドを仕込むことにした。
タイトル画面で、あるコマンドを入力すれば、一時的にオールクリアフラグを立てて、オプション画面でハードモードに変更できるようにした。
本当にクリアしていないので、DBのオールクリアフラグの更新はしない。毎回起動するたびに入力してもらうことにした。
コマンド入力の判定は、それほど難しくない。
キー入力があったら、押したキーを表す文字を、バッファに追加。
追加したバッファの文字数分、正解のコマンド文字列の先頭から比較、間違っていれば、バッファをクリアする。
全ての文字が一致したら、オールクリアフラグを立てて、バッファをクリアする。
コマンドが有効になったかは、音を鳴らすようにしてみた。
判定処理はこんな感じで。
;隠しコマンド入力判定 if leftstr(secretcmd,strlen(inputcmd))=inputcmd { if strlen(secretcmd)=strlen(inputcmd) and cmdon=0 { logmes "Good!" u_acflg=1 cmdon=1 inputcmd="" if sesoundflg=1 : mmvol SE_SEC,-1000+u_sevol*10 : mmplay SE_SEC } } else { inputcmd="" }
※注:leftstrは私が定義した関数で、HSP3標準関数ではありません。
cmdonという変数を用意したのは、オプション画面で、ハードモードに変更したときにDBを更新しないようにするため。
そうしないと、ノーマルモードに戻せないww
隠しコマンドのヒントは、このブログだけで公開。(誰が見てるのかww)
このゲームのネタ元であるグラディウスIII。このゲームには知っている人は知っている、うまーな魔法のワードがあります。
そのワードにちなんだコマンドを入力してください。