From bee32afaec49257b2c24c8f5c1b78a0e907b46e9 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Sat, 1 Aug 2026 12:10:43 +0200 Subject: [PATCH] los:: los mode disables achievements/separates scores --- achievement.cpp | 1 + yendor.cpp | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/achievement.cpp b/achievement.cpp index 30f9805d..51da025c 100644 --- a/achievement.cpp +++ b/achievement.cpp @@ -139,6 +139,7 @@ EX bool wrongMode(char flags) { } if(ineligible_starting_land && !flags) return true; if(use_custom_land_list) return true; + if(lineofsight != los::none || lineofsightAt >= PURELOS_LEVEL) return true; if(shmup::on != (flags == rg::shmup || flags == rg::racing)) return true; if(racing::on != (flags == rg::racing)) return true; diff --git a/yendor.cpp b/yendor.cpp index a12db633..6529c933 100644 --- a/yendor.cpp +++ b/yendor.cpp @@ -1092,6 +1092,11 @@ EX void save_mode_data(hstream& f) { } } } + if(lineofsight != los::none || lineofsightAt >= PURELOS_LEVEL) { + f.write(9); + f.write((char) lineofsight); + f.write(lineofsightAt >= PURELOS_LEVEL); + } } EX eLandStructure get_default_land_structure() { @@ -1121,6 +1126,8 @@ EX void other_settings_default() { horodisk_from = -2; randomwalk_size = 10; landscape_div = 25; + lineofsight = los::none; + lineofsightAt = 0; } EX void load_mode_data_with_zero(hstream& f) { @@ -1198,6 +1205,11 @@ EX void load_mode_data_with_zero(hstream& f) { break; } + case 9: { + lineofsight = (los) f.get(); + lineofsightAt = f.get() ? PURELOS_LEVEL : 0; + } + default: throw hstream_exception("wrong option"); }