some Euclidean lands are now available only in single land mode

This commit is contained in:
Zeno Rogue 2021-08-08 18:23:38 +02:00
parent 2f11237171
commit ae03bd5272
2 changed files with 8 additions and 2 deletions

View File

@ -204,7 +204,7 @@ EX void ge_land_selection() {
if(landvisited[l]) dialog::do_if_confirmed(dual::mayboth([l] {
stop_game_and_switch_mode(tactic::on ? rg::tactic : rg::nothing);
firstland = specialland = l;
if(l == laCanvas || l == laAsteroids)
if(l == laCanvas || l == laAsteroids || (land_validity(l).flags & lv::switch_to_single))
land_structure = lsSingle;
else if(among(l, laCrossroads, laCrossroads2))
land_structure = lsNiceWalls;

View File

@ -598,6 +598,7 @@ namespace lv {
static const flagtype appears_in_ptm = 8;
static const flagtype display_in_help = 16;
static const flagtype one_and_half = 32;
static const flagtype switch_to_single = 64;
}
struct land_validity_t {
@ -693,6 +694,7 @@ namespace lv {
land_validity_t shmup_only = {0, q0, "This land works only in the shmup mode."};
land_validity_t not_in_shmup = {0, q0, "This land is not available in the shmup mode."};
land_validity_t not_in_multi = {0, q0, "This land is not available in multiplayer."};
land_validity_t single_only = {2, q0 | switch_to_single, "Available in single land mode only." };
}
// old Daily Challenges should keep their validity forever
@ -952,12 +954,16 @@ EX land_validity_t& land_validity(eLand l) {
if(l == laEndorian && geometry)
return not_implemented;
// special Euclidean implementations
if(euclid && (l == laIvoryTower || l == laMountain || l == laOcean || l == laMountain))
if(euclid && !ls::single() && old_daily_id > 9999) return single_only;
if(euclid && (l == laIvoryTower || l == laMountain || l == laOcean || l == laMountain)) {
return special_geo;
}
// in other geometries, it works
if(geometry)
return ok;
}
if(l == laCaribbean && !ls::single() && old_daily_id > 9999) return single_only;
if(l == laPrincessQuest && ls::any_chaos())
return not_in_chaos;