mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-24 17:10:36 +00:00
made ge_land_selection searchable, also fixed the dialog title
This commit is contained in:
parent
554214b33f
commit
ea22207a28
22
geom-exp.cpp
22
geom-exp.cpp
@ -11,7 +11,7 @@
|
||||
namespace hr {
|
||||
|
||||
int eupage = 0;
|
||||
int euperpage = 21;
|
||||
int euperpage = 9;
|
||||
|
||||
string euchelp =
|
||||
"If you want to know how much the gameplay is affected by the "
|
||||
@ -176,17 +176,19 @@ EX void ge_land_selection() {
|
||||
landvisited[laCA] = true;
|
||||
landvisited[laAsteroids] = true;
|
||||
|
||||
dialog::init(XLAT("experiment with geometry"));
|
||||
dialog::init(XLAT("select the starting land"));
|
||||
if(dialog::infix != "") mouseovers = dialog::infix;
|
||||
|
||||
generateLandList([] (eLand l) { return land_validity(l).flags & lv::appears_in_geom_exp; });
|
||||
generateLandList([] (eLand l) {
|
||||
if(dialog::infix != "" && !dialog::hasInfix(linf[l].name)) return false;
|
||||
return !!(land_validity(l).flags & lv::appears_in_geom_exp);
|
||||
});
|
||||
stable_sort(landlist.begin(), landlist.end(), [] (eLand l1, eLand l2) { return land_validity(l1).quality_level > land_validity(l2).quality_level; });
|
||||
|
||||
for(int i=0; i<euperpage; i++) {
|
||||
if(euperpage * eupage + i >= isize(landlist)) { dialog::addBreak(100); break; }
|
||||
eLand l = landlist[euperpage * eupage + i];
|
||||
char ch;
|
||||
if(i < 26) ch = 'a' + i;
|
||||
else ch = 'A' + (i-26);
|
||||
char ch = '1'+i;
|
||||
string s = XLAT1(linf[l].name);
|
||||
|
||||
if(landvisited[l]) {
|
||||
@ -214,6 +216,7 @@ EX void ge_land_selection() {
|
||||
});
|
||||
}
|
||||
dialog::addItem(XLAT("next page"), '-');
|
||||
dialog::addInfo(XLAT("press letters to search"));
|
||||
|
||||
dialog::addBreak(25);
|
||||
validity_info();
|
||||
@ -230,10 +233,17 @@ EX void ge_land_selection() {
|
||||
eupage++;
|
||||
if(eupage * euperpage >= isize(landlist)) eupage = 0;
|
||||
}
|
||||
else if(dialog::editInfix(uni)) eupage = 0;
|
||||
else if(doexiton(sym, uni)) popScreen();
|
||||
};
|
||||
}
|
||||
|
||||
EX void activate_ge_land_selection() {
|
||||
dialog::infix = "";
|
||||
eupage = 0;
|
||||
pushScreen(ge_land_selection);
|
||||
}
|
||||
|
||||
#if HDR
|
||||
struct geometry_filter {
|
||||
string name;
|
||||
|
@ -534,7 +534,7 @@ EX void show_chaos() {
|
||||
|
||||
dialog::addBreak(100);
|
||||
dialog::addSelItem(XLAT("land"), XLAT1(linf[specialland].name), 'l');
|
||||
dialog::add_action_push(ge_land_selection);
|
||||
dialog::add_action(activate_ge_land_selection);
|
||||
|
||||
dialog::addBreak(100);
|
||||
if(ineligible_starting_land)
|
||||
|
Loading…
Reference in New Issue
Block a user