mapeditor:: loading maps now sets the default settings like pmodel for 3D

This commit is contained in:
Zeno Rogue 2021-09-17 12:20:15 +02:00
parent 23a860d405
commit a5228b06a5
2 changed files with 9 additions and 3 deletions

View File

@ -522,6 +522,7 @@ EX namespace mapstream {
}
EX void load_geometry(hstream& f) {
bool was_default = pmodel == default_model();
auto vernum = f.get_vernum();
f.read(geometry);
char nbtype;
@ -649,6 +650,7 @@ EX namespace mapstream {
}
if(vernum >= 0xA810)
f.read(mine_adjacency_rule);
geometry_settings(was_default);
}
EX hookset<void(fhstream&)> hooks_savemap, hooks_loadmap_old;

View File

@ -1329,6 +1329,12 @@ EX eModel default_model() {
EX purehookset hooks_on_geometry_change;
EX void geometry_settings(bool was_default) {
if(was_default) pmodel = default_model();
if(WDIM == 2 && (cgflags & qIDEAL) && vid.always3 && vid.texture_step < 32) vid.texture_step = 32;
if(sl2) nisot::geodesic_movement = true;
}
EX void set_geometry(eGeometry target) {
bool was_default = pmodel == default_model();
callhooks(hooks_on_geometry_change);
@ -1363,9 +1369,7 @@ EX void set_geometry(eGeometry target) {
if(INVERSE && !hybri) variation = gp::variation_for(gp::param);
if(ginf[target].default_variation == eVariation::pure && geometry != gArchimedean)
variation = eVariation::pure;
if(was_default) pmodel = default_model();
if(WDIM == 2 && (cgflags & qIDEAL) && vid.always3 && vid.texture_step < 32) vid.texture_step = 32;
if(sl2) nisot::geodesic_movement = true;
geometry_settings(was_default);
if(geometry == gArbitrary) {
arb::convert::base_geometry = geometry;