1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-07-14 15:12:49 +00:00

corrected load_modedata

This commit is contained in:
Zeno Rogue 2024-06-02 16:50:12 +02:00
parent 0c0dcaba45
commit 43f998453e

View File

@ -1028,9 +1028,40 @@ EX void save_mode_data(hstream& f) {
} }
} }
EX eLandStructure get_default_land_structure() {
return
(princess::challenge || tactic::on) ? lsSingle :
racing::on ? lsSingle :
yendor::on ? yendor::get_land_structure() :
lsNiceWalls;
}
EX void other_settings_default() {
land_structure = get_default_land_structure();
shmup::on = false;
inv::on = false;
#if CAP_TOUR
tour::on = false;
#endif
peace::on = false;
peace::otherpuzzles = false;
peace::explore_other = false;
multi::players = 1;
xcheat = false;
casual = false;
bow::weapon = bow::wBlade;
vid.creature_scale = 1;
use_custom_land_list = false;
horodisk_from = -2;
randomwalk_size = 10;
landscape_div = 25;
}
EX void load_mode_data_with_zero(hstream& f) { EX void load_mode_data_with_zero(hstream& f) {
mapstream::load_geometry(f); mapstream::load_geometry(f);
other_settings_default();
land_structure = (eLandStructure) f.get<char>(); land_structure = (eLandStructure) f.get<char>();
shmup::on = f.get<char>(); shmup::on = f.get<char>();
inv::on = f.get<char>(); inv::on = f.get<char>();
@ -1044,9 +1075,6 @@ EX void load_mode_data_with_zero(hstream& f) {
peace::explore_other = f.get<char>(); peace::explore_other = f.get<char>();
multi::players = f.get<char>(); multi::players = f.get<char>();
xcheat = f.get<char>(); xcheat = f.get<char>();
casual = false;
bow::weapon = bow::wBlade;
if(shmup::on) vid.creature_scale = 1;
while(true) { while(true) {
char option = f.get<char>(); char option = f.get<char>();
@ -1496,8 +1524,10 @@ int read_mode_args() {
shstream ss; shstream ss;
ss.s = m.second; ss.s = m.second;
ss.read(ss.vernum); ss.read(ss.vernum);
if(ss.vernum < 0xAA05) if(ss.vernum < 0xAA05) {
mapstream::load_geometry(ss); mapstream::load_geometry(ss);
other_settings_default();
}
else { else {
ss.write_char(0); ss.write_char(0);
load_mode_data_with_zero(ss); load_mode_data_with_zero(ss);