mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2026-09-15 16:51:19 +00:00
added dialog_font_scale and lands_per_page options
This commit is contained in:
+10
@@ -1292,6 +1292,14 @@ EX void initConfig() {
|
|||||||
-> set_sets([] { dialog::bound_low(0); dialog::bound_up(8); dialog::get_di().dialogflags |= sm::DARKEN; });
|
-> set_sets([] { dialog::bound_low(0); dialog::bound_up(8); dialog::get_di().dialogflags |= sm::DARKEN; });
|
||||||
param_b(centered_menus, "centered_menus", false)
|
param_b(centered_menus, "centered_menus", false)
|
||||||
-> editable("centered menus in widescreen", 'c');
|
-> editable("centered menus in widescreen", 'c');
|
||||||
|
param_f(dialog::dialog_font_scale, "dialog_font_scale")
|
||||||
|
-> editable(1, 5, 0.25, "dialog font scale",
|
||||||
|
"allow larger font in dialogs",
|
||||||
|
'D');
|
||||||
|
param_i(lands_per_page, "lands_per_page")
|
||||||
|
-> editable(10, 60, 5, "lands per page",
|
||||||
|
"lands per page shown in the World Overview",
|
||||||
|
'L');
|
||||||
|
|
||||||
param_b(startanims::enabled, "startanim", true)
|
param_b(startanims::enabled, "startanim", true)
|
||||||
-> editable("start animations", 's');
|
-> editable("start animations", 's');
|
||||||
@@ -2619,6 +2627,8 @@ EX void configureInterface() {
|
|||||||
add_edit(menu_format);
|
add_edit(menu_format);
|
||||||
add_edit(menu_darkening);
|
add_edit(menu_darkening);
|
||||||
add_edit(centered_menus);
|
add_edit(centered_menus);
|
||||||
|
add_edit(dialog::dialog_font_scale);
|
||||||
|
add_edit(lands_per_page);
|
||||||
add_edit(startanims::enabled);
|
add_edit(startanims::enabled);
|
||||||
add_edit(use_bool_dialog);
|
add_edit(use_bool_dialog);
|
||||||
|
|
||||||
|
|||||||
+24
-10
@@ -711,12 +711,14 @@ EX namespace dialog {
|
|||||||
|
|
||||||
EX string keyboard_what;
|
EX string keyboard_what;
|
||||||
|
|
||||||
|
EX ld dialog_font_scale = 3;
|
||||||
|
|
||||||
EX void display() {
|
EX void display() {
|
||||||
|
|
||||||
callhooks(hooks_display_dialog);
|
callhooks(hooks_display_dialog);
|
||||||
if(just_refreshing) return;
|
if(just_refreshing) return;
|
||||||
int N = items.size();
|
int N = items.size();
|
||||||
dfsize = vid.fsize;
|
dfsize = vid.fsize * dialog_font_scale;
|
||||||
#if ISMOBILE || ISPANDORA
|
#if ISMOBILE || ISPANDORA
|
||||||
dfsize *= 3;
|
dfsize *= 3;
|
||||||
#endif
|
#endif
|
||||||
@@ -1602,13 +1604,14 @@ EX namespace dialog {
|
|||||||
int nlpage = 1;
|
int nlpage = 1;
|
||||||
int wheelshift = 0;
|
int wheelshift = 0;
|
||||||
|
|
||||||
EX int handlePage(int& nl, int& nlm, int perpage) {
|
EX int handlePage(int& nl, int& nlm, int perpage, int maxpage IS(2)) {
|
||||||
nlm = nl;
|
nlm = nl;
|
||||||
int onl = nl;
|
int onl = nl;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
if(nlpage) {
|
if(nlpage) {
|
||||||
nl = nlm = perpage;
|
nl = nlm = perpage;
|
||||||
if(nlpage == 2) ret = nlm;
|
if(nlpage > maxpage) nlpage = maxpage;
|
||||||
|
if(nlpage > 1) ret = nlm * (nlpage - 1);
|
||||||
int w = wheelshift;
|
int w = wheelshift;
|
||||||
int realw = 0;
|
int realw = 0;
|
||||||
while(w<0 && ret) {
|
while(w<0 && ret) {
|
||||||
@@ -1623,15 +1626,24 @@ EX namespace dialog {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
EX void displayPageButtons(int i, bool pages) {
|
EX void displayPageButtons(int i, bool pages, int numpages) {
|
||||||
int i0 = vid.yres - vid.fsize;
|
int i0 = vid.yres - vid.fsize;
|
||||||
int xr = vid.xres / 80;
|
int xr = vid.xres / 80;
|
||||||
if(pages) if(displayfrZH(xr*8, i0, 1, vid.fsize, IFM("1 - ") + XLAT("page") + " 1", nlpage == 1 ? 0xD8D8C0 : dialogcolor, 8))
|
|
||||||
|
if(numpages == 2) if(displayfrZH(xr*8, i0, 1, vid.fsize, IFM("1 - ") + XLAT("page") + " 1", nlpage == 1 ? 0xD8D8C0 : dialogcolor, 8))
|
||||||
getcstat = '1';
|
getcstat = '1';
|
||||||
if(pages) if(displayfrZH(xr*24, i0, 1, vid.fsize, IFM("2 - ") + XLAT("page") + " 2", nlpage == 1 ? 0xD8D8C0 : dialogcolor, 8))
|
if(numpages == 2) if(displayfrZH(xr*24, i0, 1, vid.fsize, IFM("2 - ") + XLAT("page") + " 2", nlpage == 1 ? 0xD8D8C0 : dialogcolor, 8))
|
||||||
getcstat = '2';
|
getcstat = '2';
|
||||||
if(pages) if(displayfrZH(xr*40, i0, 1, vid.fsize, IFM("3 - ") + XLAT("all"), nlpage == 1 ? 0xD8D8C0 : dialogcolor, 8))
|
if(numpages == 2) if(displayfrZH(xr*40, i0, 1, vid.fsize, IFM("3 - ") + XLAT("all"), nlpage == 0 ? 0xD8D8C0 : dialogcolor, 8))
|
||||||
getcstat = '3';
|
getcstat = '3';
|
||||||
|
|
||||||
|
if(numpages > 2) if(displayfrZH(xr*8, i0, 1, vid.fsize, IFM("1 - ") + XLAT("last page"), nlpage == 1 ? 0xD8D8C0 : dialogcolor, 8))
|
||||||
|
getcstat = '1';
|
||||||
|
if(numpages > 2) if(displayfrZH(xr*24, i0, 1, vid.fsize, IFM("2 - ") + XLAT("next page"), nlpage == numpages ? 0xD8D8C0 : dialogcolor, 8))
|
||||||
|
getcstat = '2';
|
||||||
|
if(numpages > 2) if(displayfrZH(xr*40, i0, 1, vid.fsize, nlpage ? its(nlpage) + "/" + its(numpages) : IFM("3 - ") + XLAT("all"), nlpage == 0 ? 0xD8D8C0 : dialogcolor, 8))
|
||||||
|
getcstat = '3';
|
||||||
|
|
||||||
if(i&1) if(displayfrZH(xr*56, i0, 1, vid.fsize, IFM(keyname(SDLK_ESCAPE) + " - ") + XLAT("go back"), dialogcolor, 8))
|
if(i&1) if(displayfrZH(xr*56, i0, 1, vid.fsize, IFM(keyname(SDLK_ESCAPE) + " - ") + XLAT("go back"), dialogcolor, 8))
|
||||||
getcstat = '0';
|
getcstat = '0';
|
||||||
if(i&2) if(displayfrZH(xr*72, i0, 1, vid.fsize, IFM("F1 - ") + XLAT("help"), dialogcolor, 8))
|
if(i&2) if(displayfrZH(xr*72, i0, 1, vid.fsize, IFM("F1 - ") + XLAT("help"), dialogcolor, 8))
|
||||||
@@ -1640,12 +1652,14 @@ EX namespace dialog {
|
|||||||
getcstat = '1';
|
getcstat = '1';
|
||||||
}
|
}
|
||||||
|
|
||||||
EX bool handlePageButtons(int uni) {
|
EX bool handlePageButtons(int sym, int uni, bool dkeys, int numpages) {
|
||||||
if(uni == '1') nlpage = 1, wheelshift = 0;
|
if(uni == '1') nlpage = max(nlpage-1, 1), wheelshift = 0;
|
||||||
else if(uni == '2') nlpage = 2, wheelshift = 0;
|
else if(uni == '2') nlpage++, wheelshift = 0;
|
||||||
else if(uni == '3') nlpage = 0, wheelshift = 0;
|
else if(uni == '3') nlpage = 0, wheelshift = 0;
|
||||||
else if(uni == PSEUDOKEY_WHEELUP) wheelshift--;
|
else if(uni == PSEUDOKEY_WHEELUP) wheelshift--;
|
||||||
else if(uni == PSEUDOKEY_WHEELDOWN) wheelshift++;
|
else if(uni == PSEUDOKEY_WHEELDOWN) wheelshift++;
|
||||||
|
else if(dkeys && DKEY == SDLK_UP && nlpage > 1) nlpage--;
|
||||||
|
else if(dkeys && DKEY == SDLK_DOWN) nlpage++;
|
||||||
else return false;
|
else return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -632,7 +632,7 @@ EX namespace inv {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dialog::displayPageButtons(7, 0);
|
dialog::displayPageButtons(7, 0, 2);
|
||||||
mouseovers = "";
|
mouseovers = "";
|
||||||
keyhandler = [] (int sym, int uni) {
|
keyhandler = [] (int sym, int uni) {
|
||||||
if(plain) dialog::handleNavigation(sym, uni);
|
if(plain) dialog::handleNavigation(sym, uni);
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ int PREC(ld x) {
|
|||||||
return int(shiftmul * x);
|
return int(shiftmul * x);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EX int lands_per_page = 24;
|
||||||
|
|
||||||
EX void showOverview() {
|
EX void showOverview() {
|
||||||
cmode = sm::ZOOMABLE | sm::OVERVIEW;
|
cmode = sm::ZOOMABLE | sm::OVERVIEW;
|
||||||
indenter_finish dif(debug_graph, "show overview");
|
indenter_finish dif(debug_graph, "show overview");
|
||||||
@@ -75,10 +77,12 @@ EX void showOverview() {
|
|||||||
int nl = isize(displayed_landlist), nlm;
|
int nl = isize(displayed_landlist), nlm;
|
||||||
|
|
||||||
int lstart = 0;
|
int lstart = 0;
|
||||||
|
|
||||||
if(nl > 30) {
|
int numpages = (nl-1) / lands_per_page + 1;
|
||||||
|
|
||||||
|
if(numpages > 1) {
|
||||||
pages = true;
|
pages = true;
|
||||||
lstart += dialog::handlePage(nl, nlm, (nl+1)/2);
|
lstart += dialog::handlePage(nl, nlm, lands_per_page, numpages);
|
||||||
}
|
}
|
||||||
else nlm = nl;
|
else nlm = nl;
|
||||||
|
|
||||||
@@ -151,9 +155,9 @@ EX void showOverview() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dialog::displayPageButtons(3, pages);
|
dialog::displayPageButtons(3, pages, numpages);
|
||||||
|
|
||||||
keyhandler = [] (int sym, int uni) {
|
keyhandler = [numpages] (int sym, int uni) {
|
||||||
int umod = uni % 1000;
|
int umod = uni % 1000;
|
||||||
int udiv = uni / 1000;
|
int udiv = uni / 1000;
|
||||||
if(udiv == 1 && umod < landtypes) {
|
if(udiv == 1 && umod < landtypes) {
|
||||||
@@ -217,7 +221,7 @@ EX void showOverview() {
|
|||||||
"Cheaters can click to move between lands, and use the "
|
"Cheaters can click to move between lands, and use the "
|
||||||
"mousewheel to gain or lose treasures and orbs quickly (Ctrl = precise, Shift = reverse)."
|
"mousewheel to gain or lose treasures and orbs quickly (Ctrl = precise, Shift = reverse)."
|
||||||
);
|
);
|
||||||
else if(dialog::handlePageButtons(uni)) ;
|
else if(dialog::handlePageButtons(sym, uni, true, numpages)) ;
|
||||||
else if(dialog::editInfix(uni)) dialog::list_skip = 0;
|
else if(dialog::editInfix(uni)) dialog::list_skip = 0;
|
||||||
else if(doexiton(sym, uni)) popScreen();
|
else if(doexiton(sym, uni)) popScreen();
|
||||||
};
|
};
|
||||||
|
|||||||
+14
-6
@@ -850,10 +850,18 @@ EX namespace tactic {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int nl = isize(landlist);
|
int nl = isize(landlist);
|
||||||
|
|
||||||
int nlm = nl;
|
int nlm = nl;
|
||||||
int ofs = dialog::infix != "" ? 0 : dialog::handlePage(nl, nlm, (nl+1)/2);
|
|
||||||
|
int ofs = 0;
|
||||||
|
int numpages = 1;
|
||||||
|
|
||||||
|
if(dialog::infix == "") {
|
||||||
|
numpages = (nl-1) / lands_per_page + 1;
|
||||||
|
|
||||||
|
if(numpages > 1)
|
||||||
|
ofs += dialog::handlePage(nl, nlm, lands_per_page, numpages);
|
||||||
|
}
|
||||||
|
|
||||||
int vf = nlm ? min((vid.yres-4*vid.fsize) / (nlm+1), vid.xres/40) : vid.xres/40;
|
int vf = nlm ? min((vid.yres-4*vid.fsize) / (nlm+1), vid.xres/40) : vid.xres/40;
|
||||||
|
|
||||||
int xr = vid.xres / 64;
|
int xr = vid.xres / 64;
|
||||||
@@ -909,7 +917,7 @@ EX namespace tactic {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dialog::displayPageButtons(3, dialog::infix == "");
|
dialog::displayPageButtons(3, dialog::infix == "", numpages);
|
||||||
|
|
||||||
uploadScore();
|
uploadScore();
|
||||||
if(on) unrecord(specialland);
|
if(on) unrecord(specialland);
|
||||||
@@ -926,7 +934,7 @@ EX namespace tactic {
|
|||||||
displayScore(scorehere, xr * 50);
|
displayScore(scorehere, xr * 50);
|
||||||
}
|
}
|
||||||
|
|
||||||
keyhandler = [land_for] (int sym, int uni) {
|
keyhandler = [land_for, numpages] (int sym, int uni) {
|
||||||
if(land_for.count(uni)) {
|
if(land_for.count(uni)) {
|
||||||
eLand ll = landlist[land_for.at(uni)];
|
eLand ll = landlist[land_for.at(uni)];
|
||||||
dialog::do_if_confirmed([ll] {
|
dialog::do_if_confirmed([ll] {
|
||||||
@@ -967,7 +975,7 @@ EX namespace tactic {
|
|||||||
|
|
||||||
"Good luck, and have fun!"
|
"Good luck, and have fun!"
|
||||||
);
|
);
|
||||||
else if(dialog::infix == "" && dialog::handlePageButtons(uni)) ;
|
else if(dialog::infix == "" && dialog::handlePageButtons(sym, uni, true, numpages)) ;
|
||||||
else if(dialog::editInfix(uni)) dialog::list_skip = 0;
|
else if(dialog::editInfix(uni)) dialog::list_skip = 0;
|
||||||
else if(doexiton(sym, uni)) popScreen();
|
else if(doexiton(sym, uni)) popScreen();
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user