mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-05-09 18:54:07 +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;
|
||||
ship_pt = 0;
|
||||
no_param_change = all_params_default();
|
||||
init_gamedata();
|
||||
}
|
||||
|
||||
|
@ -153,12 +153,13 @@ ld read_movement() {
|
||||
bool ads_turn(int idelta) {
|
||||
multi::handleInput(idelta, multi::scfg_default);
|
||||
ld delta = idelta / 1000.;
|
||||
|
||||
|
||||
if(!(cmode & sm::NORMAL)) return false;
|
||||
|
||||
|
||||
hybrid::in_actual([&] {
|
||||
|
||||
handle_crashes();
|
||||
if(no_param_change && !all_params_default()) no_param_change = false;
|
||||
|
||||
auto& act = multi::action_states[1];
|
||||
|
||||
|
@ -345,6 +345,7 @@ bool ds_turn(int idelta) {
|
||||
if(!(cmode & sm::NORMAL)) return false;
|
||||
|
||||
ds_handle_crashes();
|
||||
if(no_param_change && !all_params_default()) no_param_change = false;
|
||||
|
||||
auto& act = multi::action_states[1];
|
||||
|
||||
@ -396,7 +397,7 @@ bool ds_turn(int idelta) {
|
||||
if(mshift) {
|
||||
#if RVCOL
|
||||
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");
|
||||
#endif
|
||||
current.shift += mshift;
|
||||
@ -741,6 +742,7 @@ void ds_restart() {
|
||||
}
|
||||
|
||||
ship_pt = 0;
|
||||
no_param_change = all_params_default();
|
||||
|
||||
rocks.clear();
|
||||
history.clear();
|
||||
|
@ -251,6 +251,8 @@ string get_main_help();
|
||||
int generate_mouseovers();
|
||||
|
||||
bool all_params_default();
|
||||
bool no_param_change;
|
||||
bool params_changed();
|
||||
|
||||
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";
|
||||
game_over = true;
|
||||
#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);
|
||||
if(!main_rock && all_params_default()) {
|
||||
if(!main_rock && no_param_change) {
|
||||
auto& s = pdata.score;
|
||||
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);
|
||||
|
@ -81,8 +81,11 @@ void edit_difficulty() {
|
||||
});
|
||||
}
|
||||
|
||||
dialog::addBoolItem(XLAT("all default"), all_params_default(), 'D');
|
||||
dialog::add_action([] { all_params_reset(); restart(); });
|
||||
bool pa = all_params_default();
|
||||
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::display();
|
||||
|
@ -201,7 +201,7 @@ void gain_resource(eResourceType rsrc) {
|
||||
for(auto r: {rtGoldGate, rtGoldRocks, rtGoldTurret}) {
|
||||
D(r, score[treasure_id(r)])
|
||||
#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
|
||||
}
|
||||
playSound(nullptr, rsrc_sound[rsrc]);
|
||||
|
Loading…
x
Reference in New Issue
Block a user