mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-11-16 02:04:48 +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 {
|
namespace hr {
|
||||||
|
|
||||||
int eupage = 0;
|
int eupage = 0;
|
||||||
int euperpage = 21;
|
int euperpage = 9;
|
||||||
|
|
||||||
string euchelp =
|
string euchelp =
|
||||||
"If you want to know how much the gameplay is affected by the "
|
"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[laCA] = true;
|
||||||
landvisited[laAsteroids] = 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; });
|
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++) {
|
for(int i=0; i<euperpage; i++) {
|
||||||
if(euperpage * eupage + i >= isize(landlist)) { dialog::addBreak(100); break; }
|
if(euperpage * eupage + i >= isize(landlist)) { dialog::addBreak(100); break; }
|
||||||
eLand l = landlist[euperpage * eupage + i];
|
eLand l = landlist[euperpage * eupage + i];
|
||||||
char ch;
|
char ch = '1'+i;
|
||||||
if(i < 26) ch = 'a' + i;
|
|
||||||
else ch = 'A' + (i-26);
|
|
||||||
string s = XLAT1(linf[l].name);
|
string s = XLAT1(linf[l].name);
|
||||||
|
|
||||||
if(landvisited[l]) {
|
if(landvisited[l]) {
|
||||||
@ -214,6 +216,7 @@ EX void ge_land_selection() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
dialog::addItem(XLAT("next page"), '-');
|
dialog::addItem(XLAT("next page"), '-');
|
||||||
|
dialog::addInfo(XLAT("press letters to search"));
|
||||||
|
|
||||||
dialog::addBreak(25);
|
dialog::addBreak(25);
|
||||||
validity_info();
|
validity_info();
|
||||||
@ -230,10 +233,17 @@ EX void ge_land_selection() {
|
|||||||
eupage++;
|
eupage++;
|
||||||
if(eupage * euperpage >= isize(landlist)) eupage = 0;
|
if(eupage * euperpage >= isize(landlist)) eupage = 0;
|
||||||
}
|
}
|
||||||
|
else if(dialog::editInfix(uni)) eupage = 0;
|
||||||
else if(doexiton(sym, uni)) popScreen();
|
else if(doexiton(sym, uni)) popScreen();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EX void activate_ge_land_selection() {
|
||||||
|
dialog::infix = "";
|
||||||
|
eupage = 0;
|
||||||
|
pushScreen(ge_land_selection);
|
||||||
|
}
|
||||||
|
|
||||||
#if HDR
|
#if HDR
|
||||||
struct geometry_filter {
|
struct geometry_filter {
|
||||||
string name;
|
string name;
|
||||||
|
@ -534,7 +534,7 @@ EX void show_chaos() {
|
|||||||
|
|
||||||
dialog::addBreak(100);
|
dialog::addBreak(100);
|
||||||
dialog::addSelItem(XLAT("land"), XLAT1(linf[specialland].name), 'l');
|
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);
|
dialog::addBreak(100);
|
||||||
if(ineligible_starting_land)
|
if(ineligible_starting_land)
|
||||||
|
Loading…
Reference in New Issue
Block a user