diff --git a/rogueviz/seuphorica.cpp b/rogueviz/seuphorica.cpp index e208fc33..1e3e5b6a 100644 --- a/rogueviz/seuphorica.cpp +++ b/rogueviz/seuphorica.cpp @@ -642,10 +642,132 @@ void seuphorica_dictionary() { dialog::display(); } +language **lang_to_edit; + +void pick_language() { + dialog::init("pick language", 0xFFFF80); + char key = 'a'; + for(auto l: languages) { + dialog::addItem(l->name, key++); + dialog::add_action([l] { *lang_to_edit = l; popScreen(); }); + } + dialog::addBack(); + dialog::display(); + } + +enum class ss { technical, disabled, random, enabled }; + +vector special_setting; + +int pick_qty = 8; + +void init_special_setting() { + int qty = int(sp::first_artifact); + special_setting.resize(qty); + for(int i=0; i int(sp::naughty)) ? ss::disabled : + ss::random; + } + +bool want_spells = true, want_stay = true, want_power = true, want_id = true; +int want_seed; + void seuphorica_newgame() { cmode = sm::DARKEN; gamescreen(); dialog::init("Seuphorica: new game", 0xFFFF80); + dialog::addSelItem("language", next_language->name, 'l'); + lang_to_edit = &next_language; dialog::add_action_push(pick_language); + dialog::addItem("start new standard game", 's'); + dialog::add_action([] { + View = Id; where_is_tile.clear(); current = next_language; + restart("", "", ""); + popScreen(); popScreen(); + }); + if(!is_daily) { + check_daily_time(); + dialog::addSelItem("start new daily game", its(daily), 'd'); + dialog::add_action([] { + View = Id; where_is_tile.clear(); current = next_language; + restart((its(daily) + "9").c_str(), "D", "8"); + popScreen(); popScreen(); + }); + } + dialog::addBreak(100); + dialog::start_list(900, 900, 'A'); + int randoms = 0; + for(int i=0; i