1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-11-27 14:37:16 +00:00

fixed the descriptions in the stereo vision config; added some previously untranslated texts

This commit is contained in:
Zeno Rogue 2018-02-13 13:37:20 +01:00
parent f436a2bc53
commit e77a126c81
4 changed files with 113 additions and 42 deletions

View File

@ -851,7 +851,7 @@ void showBasicConfig() {
dialog::addBoolItem(XLAT("quick mouse"), vid.quickmouse, 'M'); dialog::addBoolItem(XLAT("quick mouse"), vid.quickmouse, 'M');
#endif #endif
dialog::addBoolItem(XLAT("remove faraway cells from memory"), memory_saving_mode, 'y'); dialog::addBoolItem(XLAT("forget faraway cells"), memory_saving_mode, 'y');
if(CAP_SHMUP && !ISMOBILE) if(CAP_SHMUP && !ISMOBILE)
dialog::addSelItem(XLAT("configure keys/joysticks"), "", 'p'); dialog::addSelItem(XLAT("configure keys/joysticks"), "", 'p');
@ -1058,15 +1058,15 @@ string explain3D(ld *param) {
} }
void showStereo() { void showStereo() {
cmode = sm::SIDE | sm::A3 | sm::MAYDARK; cmode = sm::SIDE | sm::MAYDARK;
gamescreen(0); gamescreen(0);
using namespace geom3; using namespace geom3;
dialog::init(XLAT("stereo vision config")); dialog::init(XLAT("stereo vision config"));
string modenames[4] = { "OFF", "anaglyph", "stereo", "ODS" }; string modenames[4] = { "OFF", "anaglyph", "side-by-side", "ODS" };
dialog::addSelItem(XLAT("stereo mode"), XLAT(modenames[stereo::mode]), 'm'); dialog::addSelItem(XLAT("stereo mode"), XLAT(modenames[stereo::mode]), 'm');
dialog::addSelItem(XLAT("interpupilar distance"), fts3(stereo::ipd), 'e'); dialog::addSelItem(XLAT("pupillary distance"), fts3(stereo::ipd), 'e');
switch(stereo::mode) { switch(stereo::mode) {
case stereo::sAnaglyph: case stereo::sAnaglyph:
@ -1082,36 +1082,49 @@ void showStereo() {
dialog::addSelItem(XLAT("field of view"), fts(stereo::fov) + "°", 'f'); dialog::addSelItem(XLAT("field of view"), fts(stereo::fov) + "°", 'f');
dialog::addItem(XLAT("exit stereo configuration"), 'v'); dialog::addItem(XLAT("back"), 'v');
dialog::display(); dialog::display();
keyhandler = [] (int sym, int uni) { keyhandler = [] (int sym, int uni) {
using namespace geom3; using namespace geom3;
dialog::handleNavigation(sym, uni); dialog::handleNavigation(sym, uni);
string help3 = XLAT(
"This allows you to view the world of HyperRogue in three dimensions. "
"Best used with the Hypersian Rug mode. When used in the disk model, "
"this lets you look at the Minkowski hyperboloid (which means the "
"depth of terrain features is actually reversed). It also works with non-disk models, "
"from the conformal menu."
) + " " + XLAT(
"Currently, red-cyan anaglyph glasses and mobile VR googles are supported."
) + "\n\n";
if(uni == 'm') if(uni == 'm')
{ stereo::mode = stereo::eStereo((1 + stereo::mode) % 3); return; } { stereo::mode = stereo::eStereo((1 + stereo::mode) % 3); return; }
else if(uni == 'e') else if(uni == 'e')
dialog::editNumber(stereo::ipd, -10, 10, 0.01, 0, XLAT("interpupilar distance"), dialog::editNumber(stereo::ipd, -10, 10, 0.01, 0, XLAT("pupillary distance"),
XLAT("Watch the Minkowski hyperboloid or the hypersian rug mode with the " help3 +
"red/cyan 3D glasses.")); XLAT("The distance between your eyes in the represented 3D object. This is given in absolute units.")
);
else if(uni == 'd' && stereo::mode == stereo::sAnaglyph) else if(uni == 'd' && stereo::mode == stereo::sAnaglyph)
dialog::editNumber(stereo::anaglyph_eyewidth, -1, 1, 0.01, 0, XLAT("distance between images"), dialog::editNumber(stereo::anaglyph_eyewidth, -1, 1, 0.01, 0, XLAT("distance between images"),
XLAT("Watch the Minkowski hyperboloid or the hypersian rug mode with the " help3 +
"red/cyan 3D glasses.")); XLAT("The distance between your eyes. 1 is the width of the screen."));
else if(uni == 'd' && stereo::mode == stereo::sLR) else if(uni == 'd' && stereo::mode == stereo::sLR)
dialog::editNumber(stereo::lr_eyewidth, -1, 1, 0.01, 0, XLAT("distance between images"), dialog::editNumber(stereo::lr_eyewidth, -1, 1, 0.01, 0, XLAT("distance between images"),
XLAT("Watch the Minkowski hyperboloid or the hypersian rug mode with the " help3 +
"red/cyan 3D glasses.")); XLAT("The distance between your eyes. 1 is the width of the screen."));
else if(uni == 'f') else if(uni == 'f')
dialog::editNumber(stereo::fov, 1, 170, 1, 45, "field of view", dialog::editNumber(stereo::fov, 1, 170, 1, 45, "field of view",
"Horizontal field of view, in the perspective projection. " help3 + XLAT(
"In the orthogonal projection this just controls the scale." "Horizontal field of view, in angles. "
); "This affects the Hypersian Rug mode (even when stereo is OFF) "
"and non-disk models.")
);
else if(doexiton(sym, uni)) popScreen(); else if(doexiton(sym, uni)) popScreen();
}; };

View File

@ -673,12 +673,12 @@ namespace dialog {
addSlider(ne.scale(ne.vmin), ne.scale(*ne.editwhat), ne.scale(ne.vmax), 500); addSlider(ne.scale(ne.vmin), ne.scale(*ne.editwhat), ne.scale(ne.vmax), 500);
addBreak(100); addBreak(100);
#if ISMOBILE==0 #if ISMOBILE==0
addHelp("You can scroll with arrow keys -- Ctrl to fine-tune"); addHelp(XLAT("You can scroll with arrow keys -- Ctrl to fine-tune"));
addBreak(100); addBreak(100);
#endif #endif
addItem("return", ' '); addItem(XLAT("return"), ' ');
addSelItem("default value", disp(ne.dft), SDLK_HOME); addSelItem(XLAT("default value"), disp(ne.dft), SDLK_HOME);
addBreak(100); addBreak(100);

View File

@ -6649,14 +6649,78 @@ S("level to save:", "mapa do zapisu:")
S("pics to load:", "obrazki do wczytania:") S("pics to load:", "obrazki do wczytania:")
S("level to load:", "mapa do wczytania:") S("level to load:", "mapa do wczytania:")
S("remove faraway cells from memory", "usuwaj odległe pola z pamięci") // new option
S("forget faraway cells", "zapominaj odległe pola")
N("Lost Memory", GEN_F, "Utracona Pamięć", "Utracone Pamięci", "Utraconą Pamięć", "w Utraconej Pamięci") N("Lost Memory", GEN_F, "Utracona Pamięć", "Utracone Pamięci", "Utraconą Pamięć", "w Utraconej Pamięci")
S( "Because of the properties of hyperbolic geometry, it is extremely unlikely to randomly " S( "Because of the properties of hyperbolic geometry, it is extremely unlikely to randomly "
"get back to a faraway place you have been to. However, you have managed to get there " "get back to a faraway place you have been to. However, you have managed to get there "
"somehow. In the meantime, its memory has been cleared, since the 'remove faraway cells from the memory'" "somehow. In the meantime, its memory has been cleared, since the 'forget faraway cells'"
" option was on.", " option was on.",
"Ze względu na właściwości geometrii hiperbolicznej praktycznie niemożliwe jest, by " "Ze względu na właściwości geometrii hiperbolicznej praktycznie niemożliwe jest, by "
"przypadkowo wrócić do odległego miejsca, w którym się było wcześniej. Ale jakoś Ci się to udało... " "przypadkowo wrócić do odległego miejsca, w którym się było wcześniej. Ale jakoś Ci się to udało... "
"W międzyczasie pamięć została wyczyczona, ze względu na włączoną opcję 'usuwaj odległe pola z pamięci'.'" "W międzyczasie pamięć została wyczyczona, ze względu na włączoną opcję 'zapominaj odległe pola'.'"
) )
// shmup
N("Blueball", GEN_F, "Niebieska kula", "Niebieske kule", "Niebieską kulę", "Niebieską kulą")
S("A powerful missile from a Blue Raider.", "Potężny pocisk Niebieskiego Jeźdźca.")
// missing
S(" fps: ", " fps: ")
S("default value", "domyślna wartość")
S("You can scroll with arrow keys -- Ctrl to fine-tune", "Przewijaj strzałkami -- Ctrl by dostroić")
S("font scale", "rozmiar czcionki")
S("background particle effects", "cząsteczki w tle")
// not yet translated for Hypersian Rug mode
S("orthogonal", "ortogonalny")
S("perspective", "perspektywa")
S("model scale factor", "współczynnik skali modelu")
// stereo vision config
S("stereo vision config", "konfiguracja trybu stereo")
S("This allows you to view the world of HyperRogue in three dimensions. "
"Best used with the Hypersian Rug mode. When used in the disk model, "
"this lets you look at the Minkowski hyperboloid (which means the "
"depth of terrain features is actually reversed). It also works with non-disk models, "
"from the conformal menu.",
"Ten tryb pozwala oglądać świat HyperRogue w trzech wymiarach. "
"Najlepiej używać w trybie Hiperskiego Dywanu. Używane w modelu dysku "
"pozwala patrzeć na hiperboloidę Minkowskiego (co oznacza, że głębokość "
"terenu jest odwrócona). Działa też w innych modelach niż dysk, z trybu "
"konforemnego."
)
S("Currently, red-cyan anaglyph glasses and mobile VR googles are supported.",
"Obecnie działa z czerwono-turkusowymi okularami i goglami VR do telefonów.")
S("stereo mode", "tryb stereo")
S("anaglyph", "anaglif")
S("side-by-side", "stereopara")
S("pupillary distance", "odległość źrenic")
S("The distance between your eyes in the represented 3D object. This is given in absolute units.",
"Odległość między oczami w reprezentowanym obiekcie 3D. Podana w jednostkach absolutnych.")
S("distance between images", "odległość między obrazami")
S("The distance between your eyes. 1 is the width of the screen.",
"Odległość między oczami. 1 to szerokość ekranu.")
// field of view
S("Horizontal field of view, in angles. "
"This affects the Hypersian Rug mode (even when stereo is OFF) "
"and non-disk models.",
"Szerokość pola widzenia, w stopniach. "
"Ma wpływ na tryb Hiperskiego Dywanu (nawet gdy stereo jest wyłączone) "
"i modele inne niż dysk.")
// more magic configuration
S("affect model central point", "punkt centralny")
S("affect texture position X", "położenie tekstury X")
S("affect texture position Y", "położenie tekstury Y")
S("select master cells", "wybierz główne pola")
S("select master triangles", "wybierz główne trójkąty")
S("fine tune vertices", "dostrajanie wierzchołków")

36
rug.cpp
View File

@ -1576,36 +1576,30 @@ void show() {
if(rug::rugged) rug::close(); if(rug::rugged) rug::close();
else rug::init(); else rug::init();
} }
#if CAP_ODS
else if(uni == 'I')
dialog::editNumber(ipd, 0, 1, .002, .05, "interpupilar distance",
"Used in the ODS projection."
);
#endif
else if(uni == 'R') else if(uni == 'R')
dialog::editNumber(finger_range, 0, 1, .01, .1, "finger range", dialog::editNumber(finger_range, 0, 1, .01, .1, XLAT("finger range"),
"Press 1 to enable the finger mode." XLAT("Press 1 to enable the finger mode.")
); );
else if(uni == 'F') else if(uni == 'F')
dialog::editNumber(finger_force, 0, 1, .01, .1, "finger force", dialog::editNumber(finger_force, 0, 1, .01, .1, XLAT("finger force"),
"Press 1 to enable the finger force." XLAT("Press 1 to enable the finger force.")
); );
else if(uni == 'o' && !rug::rugged) else if(uni == 'o' && !rug::rugged)
renderonce = !renderonce; renderonce = !renderonce;
else if(uni == 'v') { else if(uni == 'v') {
dialog::editNumber(vertex_limit, 0, 50000, 500, 3000, "vertex limit", dialog::editNumber(vertex_limit, 0, 50000, 500, 3000, ("vertex limit"),
"The more vertices, the more accurate the Hypersian Rug model is. " XLAT("The more vertices, the more accurate the Hypersian Rug model is. "
"However, a number too high might make the model slow to compute and render." "However, a number too high might make the model slow to compute and render.")
); );
dialog::reaction = [] () { err_zero_current = err_zero; }; dialog::reaction = [] () { err_zero_current = err_zero; };
} }
else if(uni == 'r') else if(uni == 'r')
addMessage(XLAT("This just shows the 'z' coordinate of the selected point.")); addMessage(XLAT("This just shows the 'z' coordinate of the selected point."));
else if(uni == 'm') { else if(uni == 'm') {
dialog::editNumber(modelscale, 0.1, 10, rugged ? .001 : .1, 1, "model scale factor", dialog::editNumber(modelscale, 0.1, 10, rugged ? .001 : .1, 1, XLAT("model scale factor"),
"This is relevant when the native geometry is not Euclidean. " XLAT("This is relevant when the native geometry is not Euclidean. "
"For example, if the native geometry is spherical, and scale < 1, a 2d sphere will be rendered as a subsphere; " "For example, if the native geometry is spherical, and scale < 1, a 2d sphere will be rendered as a subsphere; "
"if the native geometry is hyperbolic, and scale > 1, a hyperbolic plane will be rendered as an equidistant surface. " "if the native geometry is hyperbolic, and scale > 1, a hyperbolic plane will be rendered as an equidistant surface. ")
); );
dialog::scaleLog(); dialog::scaleLog();
if(rug::rugged) { if(rug::rugged) {
@ -1631,13 +1625,13 @@ void show() {
} }
} }
else if(uni == 'd') else if(uni == 'd')
dialog::editNumber(model_distance, -10, 10, .1, 1, "model distance", dialog::editNumber(model_distance, -10, 10, .1, 1, XLAT("model distance"),
"In the perspective projection, this sets the distance from the camera to the center of the model. " XLAT("In the perspective projection, this sets the distance from the camera to the center of the model. "
"In the orthogonal projection this just controls the scale." "In the orthogonal projection this just controls the scale.")
); );
else if(uni == 'e') { else if(uni == 'e') {
dialog::editNumber(err_zero, 1e-9, 1, .1, 1e-3, "maximum error", dialog::editNumber(err_zero, 1e-9, 1, .1, 1e-3, XLAT("maximum error"),
"New points are added when the current error in the model is smaller than this value." XLAT("New points are added when the current error in the model is smaller than this value.")
); );
dialog::scaleLog(); dialog::scaleLog();
dialog::reaction = [] () { err_zero_current = err_zero; }; dialog::reaction = [] () { err_zero_current = err_zero; };