From 9752cdede1f84e35d6f8fa7d50741e14a262a58e Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Tue, 28 May 2024 20:20:28 +0200 Subject: [PATCH] fixed symbol changed enable archimedean unexpectedly --- archimedean.cpp | 5 +++-- config.cpp | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/archimedean.cpp b/archimedean.cpp index 4b519650..546da968 100644 --- a/archimedean.cpp +++ b/archimedean.cpp @@ -1078,12 +1078,13 @@ void archimedean_tiling::parse() { prepare(); } -EX bool load_symbol(const string& s) { +EX bool load_symbol(const string& s, bool switch_geom) { archimedean_tiling at; at.parse(s); if(at.errors) { DEBB(DF_ERROR | DF_GEOM, ("error: ", at.errormsg)); return false; } + if(!switch_geom && geometry != gArchimedean) return true; stop_game(); set_geometry(gArchimedean); current = at; @@ -1098,7 +1099,7 @@ int readArgs() { if(0) ; else if(argis("-symbol")) { PHASEFROM(2); - shift(); load_symbol(args()); + shift(); load_symbol(args(), true); showstartmenu = false; } else if(argis("-dual")) { PHASEFROM(2); set_variation(eVariation::dual); } diff --git a/config.cpp b/config.cpp index f21575db..9c23b3e1 100644 --- a/config.cpp +++ b/config.cpp @@ -1495,7 +1495,7 @@ EX void initConfig() { auto arcms = param_str(arcm::current.symbol, "arcm-symbol", "4^5"); arcms->editor = [] { pushScreen(arcm::show); arcm::init_symbol_edit(); }; arcms->pre_reaction = non_editable_pre; - arcms->reaction = [] { if(!arcm::load_symbol(arcm::current.symbol)) throw hr_parse_exception("wrong Archimedean symbol"); non_editable_post(); }; + arcms->reaction = [] { if(!arcm::load_symbol(arcm::current.symbol, false)) throw hr_parse_exception("wrong Archimedean symbol"); non_editable_post(); }; #endif param_enum(hybrid::underlying, "product_underlying", hybrid::underlying)->be_non_editable();