rogueclone2s ウィザードモード

この記事は、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 を設定してコンパイルしましょう。

有効にして遊ぶとある固定値のパスワードを入れるとウィザードモードになって無敵になれますよ。

パスワードを教えてと?

ソースコードを解析したり、ググるとわかるかもしれませんよ。