1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2026-02-02 07:50:16 +00:00

better mode handling

This commit is contained in:
Zeno Rogue
2017-07-12 19:50:39 +02:00
parent 94efef5d65
commit a6f176510e
17 changed files with 706 additions and 156 deletions

View File

@@ -172,7 +172,7 @@ namespace dialog {
int dcenter, dwidth;
bool sidedialog;
int dialogflags;
int displayLong(string str, int siz, int y, bool measure) {
@@ -251,13 +251,14 @@ namespace dialog {
dcenter = vid.xres/2;
dwidth = vid.xres;
measure();
if(sidescreen) {
dwidth = vid.xres - vid.yres;
dcenter = vid.xres - dwidth / 2;
}
measure();
while(tothei > vid.yres - 5 * vid.fsize) {
int adfsize = int(dfsize * sqrt((vid.yres - 5. * vid.fsize) / tothei));
if(adfsize < dfsize-1) dfsize = adfsize + 1;
@@ -600,15 +601,17 @@ namespace dialog {
if(ne.editwhat == &geom3::middetail && geom3::highdetail > geom3::middetail)
geom3::highdetail = geom3::middetail;
buildpolys();
#ifdef GL
resetGL();
#endif
if(cmode & sm::A3) {
buildpolys();
#ifdef GL
resetGL();
#endif
}
}
void drawNumberDialog() {
gamescreen(sidedialog ? 0 : 2);
cmode2 = smNumber;
cmode = sm::NUMBER | dialogflags;
gamescreen((cmode & sm::SIDE) ? 0 : 2);
init(ne.title);
addInfo(ne.s);
addSlider(ne.scale(ne.vmin), ne.scale(*ne.editwhat), ne.scale(ne.vmax), 500);
@@ -623,7 +626,7 @@ namespace dialog {
addBreak(100);
ne.help = explain3D(ne.editwhat);
if(cmode && sm::A3) ne.help = explain3D(ne.editwhat);
if(ne.help != "") {
addHelp(ne.help);
@@ -774,14 +777,14 @@ namespace dialog {
ne.scale = ne.inverse_scale = identity;
ne.intval = NULL;
ne.positive = false;
sidedialog = false;
dialogflags = (cmode & (sm::SIDE | sm::A3));
cmode |= sm::NUMBER;
pushScreen(drawNumberDialog);
}
void editNumber(int& x, int vmin, int vmax, int step, int dft, string title, string help) {
editNumber(ne.intbuf, vmin, vmax, step, dft, title, help);
ne.intbuf = x; ne.intval = &x; ne.s = its(x);
sidedialog = true;
}
};