mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-05-11 11:44:08 +00:00
rogueviz::ads:: better handling of param changes
This commit is contained in:
parent
8fe5b5bed2
commit
aa6727c564
@ -85,6 +85,7 @@ void restart() {
|
|||||||
|
|
||||||
paused = false;
|
paused = false;
|
||||||
ship_pt = 0;
|
ship_pt = 0;
|
||||||
|
no_param_change = all_params_default();
|
||||||
init_gamedata();
|
init_gamedata();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -159,6 +159,7 @@ bool ads_turn(int idelta) {
|
|||||||
hybrid::in_actual([&] {
|
hybrid::in_actual([&] {
|
||||||
|
|
||||||
handle_crashes();
|
handle_crashes();
|
||||||
|
if(no_param_change && !all_params_default()) no_param_change = false;
|
||||||
|
|
||||||
auto& act = multi::action_states[1];
|
auto& act = multi::action_states[1];
|
||||||
|
|
||||||
|
@ -345,6 +345,7 @@ bool ds_turn(int idelta) {
|
|||||||
if(!(cmode & sm::NORMAL)) return false;
|
if(!(cmode & sm::NORMAL)) return false;
|
||||||
|
|
||||||
ds_handle_crashes();
|
ds_handle_crashes();
|
||||||
|
if(no_param_change && !all_params_default()) no_param_change = false;
|
||||||
|
|
||||||
auto& act = multi::action_states[1];
|
auto& act = multi::action_states[1];
|
||||||
|
|
||||||
@ -396,7 +397,7 @@ bool ds_turn(int idelta) {
|
|||||||
if(mshift) {
|
if(mshift) {
|
||||||
#if RVCOL
|
#if RVCOL
|
||||||
constexpr ld win_time = 60;
|
constexpr ld win_time = 60;
|
||||||
if(current.shift < win_time && (current.shift + mshift) >= win_time && !game_over && all_params_default())
|
if(current.shift < win_time && (current.shift + mshift) >= win_time && !game_over && no_param_change)
|
||||||
rogueviz::rv_achievement("DSGAME");
|
rogueviz::rv_achievement("DSGAME");
|
||||||
#endif
|
#endif
|
||||||
current.shift += mshift;
|
current.shift += mshift;
|
||||||
@ -741,6 +742,7 @@ void ds_restart() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ship_pt = 0;
|
ship_pt = 0;
|
||||||
|
no_param_change = all_params_default();
|
||||||
|
|
||||||
rocks.clear();
|
rocks.clear();
|
||||||
history.clear();
|
history.clear();
|
||||||
|
@ -251,6 +251,8 @@ string get_main_help();
|
|||||||
int generate_mouseovers();
|
int generate_mouseovers();
|
||||||
|
|
||||||
bool all_params_default();
|
bool all_params_default();
|
||||||
|
bool no_param_change;
|
||||||
|
bool params_changed();
|
||||||
|
|
||||||
void start_relhell_tour();
|
void start_relhell_tour();
|
||||||
|
|
||||||
|
@ -66,9 +66,9 @@ void game_over_with_message(const string& reason) {
|
|||||||
if(pdata.ammo <= 0) cur.deathreason += " while out of ammo";
|
if(pdata.ammo <= 0) cur.deathreason += " while out of ammo";
|
||||||
game_over = true;
|
game_over = true;
|
||||||
#if RVCOL
|
#if RVCOL
|
||||||
if(main_rock && all_params_default())
|
if(main_rock && no_param_change)
|
||||||
rogueviz::rv_leaderboard("de Sitter", current.shift * 1000, 1, rvlc::ms);
|
rogueviz::rv_leaderboard("de Sitter", current.shift * 1000, 1, rvlc::ms);
|
||||||
if(!main_rock && all_params_default()) {
|
if(!main_rock && no_param_change) {
|
||||||
auto& s = pdata.score;
|
auto& s = pdata.score;
|
||||||
string data = lalign(0, s[0], " ", s[1], " ", s[2]);
|
string data = lalign(0, s[0], " ", s[1], " ", s[2]);
|
||||||
rogueviz::rv_leaderboard("anti de Sitter: total score", s[0] + s[1] + s[2], 1, rvlc::num, data);
|
rogueviz::rv_leaderboard("anti de Sitter: total score", s[0] + s[1] + s[2], 1, rvlc::num, data);
|
||||||
|
@ -81,8 +81,11 @@ void edit_difficulty() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
dialog::addBoolItem(XLAT("all default"), all_params_default(), 'D');
|
bool pa = all_params_default();
|
||||||
dialog::add_action([] { all_params_reset(); restart(); });
|
dialog::addSelItem(XLAT("all default"),
|
||||||
|
(pa && !no_param_change) ? XLAT("PARTIAL") : ONOFF(pa), 'd');
|
||||||
|
if(pa)
|
||||||
|
dialog::add_action([] { all_params_reset(); restart(); });
|
||||||
|
|
||||||
dialog::addBack();
|
dialog::addBack();
|
||||||
dialog::display();
|
dialog::display();
|
||||||
|
@ -201,7 +201,7 @@ void gain_resource(eResourceType rsrc) {
|
|||||||
for(auto r: {rtGoldGate, rtGoldRocks, rtGoldTurret}) {
|
for(auto r: {rtGoldGate, rtGoldRocks, rtGoldTurret}) {
|
||||||
D(r, score[treasure_id(r)])
|
D(r, score[treasure_id(r)])
|
||||||
#ifdef RVCOL
|
#ifdef RVCOL
|
||||||
if(pdata.score[0] + pdata.score[1] + pdata.score[2] == 30 && all_params_default()) rogueviz::rv_achievement("ADSGAME");
|
if(pdata.score[0] + pdata.score[1] + pdata.score[2] == 30 && no_param_change) rogueviz::rv_achievement("ADSGAME");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
playSound(nullptr, rsrc_sound[rsrc]);
|
playSound(nullptr, rsrc_sound[rsrc]);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user