この記事は、Roguelike Advent Calendar 2018 12日目の記事です
寝落ちしておくれました。
rogueclone2s は、
「データ分離版ローグ・クローン2」からフォークした私がメンテナンスしているローグ・クローンです。
ウィザードモードとは
WikiPediaのローグライクゲーム の項目に記載されていますが、
デバッグ目的でつかわれるチート機能です。
主に無敵になれます。
rogueclone2sの元になったデータ分離版ローグクローン2にも搭載されていたので、そのままrogueclone2s にもあります。
どうやって見つけたか?
私が見つけたのは、ウィザードモードを知った時です。
見つけた方法は、ソースコードを全部みる事でした。
すると、wizard という変数名と WIZARD というマクロ名がでてきました。
wizard 変数は、フラグのようになっており、
これをONする所が分かれば解析したも当然です。
wizardize関数
さらに調査を進めると zap.c に wizardize 関数を発見しました。
[https:/github.com/masoo/rogueclone2s/blob/master/src/zap.c#L303]k(https://github.com/masoo/rogueclone2s/blob/master/src/zap.c#L303)
この関数は打ち込まれたパスワードが合致していた場合ウィザードモードに変更する処理を有しています
なお、上記ソースコードを見てわかる通り、現在は、WIZARDマクロを用いて無効化されています。
有効にするには WIZARD マクロに true を設定してコンパイルしましょう。
有効にして遊ぶとある固定値のパスワードを入れるとウィザードモードになって無敵になれますよ。
パスワードを教えてと?
ソースコードを解析したり、ググるとわかるかもしれませんよ。