mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-06-02 06:24:07 +00:00
CLI function -listmodes
This commit is contained in:
parent
226881020d
commit
c9b7e0ac1d
46
yendor.cpp
46
yendor.cpp
@ -1388,6 +1388,52 @@ int read_mode_args() {
|
|||||||
peace::otherpuzzles = false;
|
peace::otherpuzzles = false;
|
||||||
stop_game_and_switch_mode(peace::on ? 0 : rg::peace);
|
stop_game_and_switch_mode(peace::on ? 0 : rg::peace);
|
||||||
}
|
}
|
||||||
|
else if(argis("-listmodes")) { println(hlog, "analyzing modes");
|
||||||
|
stop_game();
|
||||||
|
auto st = stamplen;
|
||||||
|
PHASE(3);
|
||||||
|
for(auto m: meaning) {
|
||||||
|
if(identify_modes[m.first] != m.first) continue;
|
||||||
|
println(hlog, "meaning of: ", m.first);
|
||||||
|
|
||||||
|
for(auto& p: params) p.second->reset();
|
||||||
|
stamplen = st;
|
||||||
|
|
||||||
|
if(m.first < FIRST_MODECODE) {
|
||||||
|
legacy_modecode_read(m.first);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
shstream ss;
|
||||||
|
ss.s = m.second;
|
||||||
|
ss.read(ss.vernum);
|
||||||
|
if(ss.vernum < 0xAA05)
|
||||||
|
mapstream::load_geometry(ss);
|
||||||
|
else {
|
||||||
|
ss.write_char(0);
|
||||||
|
load_mode_data_with_zero(ss);
|
||||||
|
}
|
||||||
|
println(hlog, "version code: ", ss.vernum);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(auto& p: params) if(p.second->dosave()) if(p.first != "stamplen")
|
||||||
|
println(hlog, p.first, "=", p.second->save());
|
||||||
|
|
||||||
|
if(yendor::bestscore.count(m.first))
|
||||||
|
println(hlog, "Yendor scores: ", yendor::bestscore[m.first]);
|
||||||
|
|
||||||
|
if(tactic::recordsum.count(m.first)) {
|
||||||
|
for(int i=0; i<landtypes; i++) if(tactic::recordsum[m.first][i] > 0) {
|
||||||
|
vector<int> res;
|
||||||
|
for(auto& v: tactic::lsc[m.first][i]) res.push_back(v);
|
||||||
|
while(res.size() && res.back() == 0) res.pop_back();
|
||||||
|
reverse(res.begin(), res.end());
|
||||||
|
println(hlog, "record sum for ", dnameof(eLand(i)), ": ", tactic::recordsum[m.first][i], " = ", res);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
println(hlog);
|
||||||
|
}
|
||||||
|
}
|
||||||
TOGGLE('T', tactic::on, stop_game_and_switch_mode(rg::tactic))
|
TOGGLE('T', tactic::on, stop_game_and_switch_mode(rg::tactic))
|
||||||
|
|
||||||
else return 1;
|
else return 1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user