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

XLAT refactor continued

This commit is contained in:
Zeno Rogue 2021-05-23 14:33:25 +02:00
parent c0002da574
commit 0f767e16b6
18 changed files with 69 additions and 70 deletions

View File

@ -1391,9 +1391,9 @@ EX void edit_sightrange() {
EX void menuitem_sightrange_style(char c IS('c')) { EX void menuitem_sightrange_style(char c IS('c')) {
dialog::addSelItem(XLAT("draw range based on"), dialog::addSelItem(XLAT("draw range based on"),
XLAT(vid.use_smart_range == 0 ? "distance" : vid.use_smart_range == 0 ? XLAT("distance") :
vid.use_smart_range == 1 ? "size (no gen)" : vid.use_smart_range == 1 ? XLAT("size (no gen)") :
"size"), XLAT("size"),
c c
); );
dialog::add_action_push([] { dialog::add_action_push([] {
@ -1791,7 +1791,7 @@ EX void showJoyConfig() {
dialog::addSelItem(XLAT("first joystick position (movement)"), its(joyx)+","+its(joyy), 0); dialog::addSelItem(XLAT("first joystick position (movement)"), its(joyx)+","+its(joyy), 0);
dialog::addSelItem(XLAT("second joystick position (panning)"), its(panjoyx)+","+its(panjoyy), 0); dialog::addSelItem(XLAT("second joystick position (panning)"), its(panjoyx)+","+its(panjoyy), 0);
dialog::addSelItem(XLAT("joystick mode"), XLAT(autojoy ? "automatic" : "manual"), 'p'); dialog::addSelItem(XLAT("joystick mode"), autojoy ? XLAT("automatic") : XLAT("manual"), 'p');
if(getcstat == 'p') { if(getcstat == 'p') {
if(autojoy) if(autojoy)
mouseovers = XLAT("joystick mode: automatic (release the joystick to move)"); mouseovers = XLAT("joystick mode: automatic (release the joystick to move)");

View File

@ -346,7 +346,7 @@ struct debugScreen {
gamescreen(0); gamescreen(0);
getcstat = '-'; getcstat = '-';
dialog::init(XLAT(show_debug_data ? "debug values" : "internal details")); dialog::init(show_debug_data ? XLAT("debug values") : XLAT("internal details"));
for(auto& p: drawbugs) for(auto& p: drawbugs)
drawBug(p.first, p.second); drawBug(p.first, p.second);

View File

@ -640,7 +640,7 @@ EX void viewdist_configure_dialog() {
dialog::addItem(XLAT("move the player"), 'm'); dialog::addItem(XLAT("move the player"), 'm');
dialog::add_action([] () { show_distance_lists = false; popScreenAll(); }); dialog::add_action([] () { show_distance_lists = false; popScreenAll(); });
dialog::addItem(XLAT(distance_from ? "show number of descendants by distance" : "show number of cells by distance"), 'l'); dialog::addItem(distance_from ? XLAT("show number of descendants by distance") : XLAT("show number of cells by distance"), 'l');
dialog::add_action([] () { show_distance_lists = true; popScreenAll(); }); dialog::add_action([] () { show_distance_lists = true; popScreenAll(); });
dialog::display(); dialog::display();

View File

@ -302,11 +302,11 @@ void set_or_configure_geometry(eGeometry g) {
else { else {
if(among(g, gProduct, gRotSpace)) { if(among(g, gProduct, gRotSpace)) {
if(WDIM == 3 || (g == gRotSpace && euclid)) { if(WDIM == 3 || (g == gRotSpace && euclid)) {
addMessage(XLAT( addMessage(
g == gRotSpace ? g == gRotSpace ?
"Only works with 2D non-Euclidean geometries" XLAT("Only works with 2D non-Euclidean geometries")
: "Only works with 2D geometries" : XLAT("Only works with 2D geometries")
)); );
return; return;
} }
if(g == gRotSpace) { if(g == gRotSpace) {
@ -980,10 +980,10 @@ EX void showEuclideanMenu() {
auto r = rots::underlying_scale; auto r = rots::underlying_scale;
dialog::addSelItem(XLAT("view the underlying geometry"), r > 0 ? fts(r)+"x" : ONOFF(false), '6'); dialog::addSelItem(XLAT("view the underlying geometry"), r > 0 ? fts(r)+"x" : ONOFF(false), '6');
dialog::add_action([] { dialog::add_action([] {
dialog::editNumber(rots::underlying_scale, 0, 1, 0.05, 0.25, XLAT("view the underlying geometry"), dialog::editNumber(rots::underlying_scale, 0, 1, 0.05, 0.25, XLAT("view the underlying geometry"),
XLAT( geometry == gRotSpace ?
geometry == gRotSpace ? "The space you are currently in is the space of rotations of the underlying hyperbolic or spherical geometry. " XLAT("The space you are currently in is the space of rotations of the underlying hyperbolic or spherical geometry. ")
: "You are currently in a product space.") + : XLAT("You are currently in a product space.") +
XLAT( XLAT(
"This option lets you see the underlying space. Lands and some walls (e.g. in the Graveyard) are based on " "This option lets you see the underlying space. Lands and some walls (e.g. in the Graveyard) are based on "
"the respective features in the underlying world, but details such as monsters or items are ignored." "the respective features in the underlying world, but details such as monsters or items are ignored."
@ -1022,7 +1022,7 @@ EX void showEuclideanMenu() {
} }
if(geometry_has_alt_mine_rule()) { if(geometry_has_alt_mine_rule()) {
dialog::addSelItem(XLAT("adjacency rule"), XLAT(mine_adjacency_rule ? "vertex" : WDIM == 3 ? "face" : "edge"), 'M'); dialog::addSelItem(XLAT("adjacency rule"), mine_adjacency_rule ? XLAT("vertex") : WDIM == 3 ? XLAT("face") : XLAT("edge"), 'M');
dialog::add_action([] { dialog::add_action([] {
stop_game(); stop_game();
mine_adjacency_rule = !mine_adjacency_rule; mine_adjacency_rule = !mine_adjacency_rule;

View File

@ -760,10 +760,10 @@ EX namespace gp {
}); });
} }
dialog::lastItem().value = S3 == 3 ? "GP(1,1)" : XLAT(BITRUNCATED ? "ON" : "OFF"); dialog::lastItem().value = S3 == 3 ? "GP(1,1)" : ONOFF(BITRUNCATED);
if(min_quality == 0 || min_quality_chess) { if(min_quality == 0 || min_quality_chess) {
dialog::addBoolItem(XLAT(S3 == 3 ? "chamfered" : "expanded"), univ_param() == loc(2,0) && GOLDBERG, 'c'); dialog::addBoolItem(S3 == 3 ? XLAT("chamfered") : XLAT("expanded"), univ_param() == loc(2,0) && GOLDBERG, 'c');
dialog::lastItem().value = "GP(2,0)"; dialog::lastItem().value = "GP(2,0)";
dialog::add_action_confirmed([] { dialog::add_action_confirmed([] {
whirl_set(loc(2, 0)); whirl_set(loc(2, 0));

View File

@ -5190,8 +5190,8 @@ EX void gamescreen(int _darken) {
drawCircle(xfire, yb, rad/2, 0xFF0000FF); drawCircle(xfire, yb, rad/2, 0xFF0000FF);
} }
else { else {
if(!haveMobileCompass()) displayabutton(-1, +1, XLAT(andmode == 0 && useRangedOrb ? "FIRE" : andmode == 0 && WDIM == 3 && wclick ? "WAIT" : "MOVE"), andmode == 0 ? BTON : BTOFF); if(!haveMobileCompass()) displayabutton(-1, +1, andmode == 0 && useRangedOrb ? XLAT("FIRE") : andmode == 0 && WDIM == 3 && wclick ? XLAT("WAIT") : XLAT("MOVE"), andmode == 0 ? BTON : BTOFF);
displayabutton(+1, +1, rug::rugged ? "RUG" : XLAT(andmode == 1 ? "BACK" : GDIM == 3 ? "CAM" : "DRAG"), andmode == 1 ? BTON : BTOFF); displayabutton(+1, +1, rug::rugged ? XLAT("RUG") :andmode == 1 ? XLAT("BACK") : GDIM == 3 ? XLAT("CAM") : XLAT("DRAG"), andmode == 1 ? BTON : BTOFF);
} }
displayabutton(-1, -1, XLAT("INFO"), andmode == 12 ? BTON : BTOFF); displayabutton(-1, -1, XLAT("INFO"), andmode == 12 ? BTON : BTOFF);
displayabutton(+1, -1, XLAT("MENU"), andmode == 3 ? BTON : BTOFF); displayabutton(+1, -1, XLAT("MENU"), andmode == 3 ? BTON : BTOFF);
@ -5244,7 +5244,7 @@ EX void normalscreen() {
keyhandler = handleKeyNormal; keyhandler = handleKeyNormal;
if(!playerfound && !anims::any_on() && !sphere && !no_find_player && mapeditor::drawplayer) if(!playerfound && !anims::any_on() && !sphere && !no_find_player && mapeditor::drawplayer)
displayButton(current_display->xcenter, current_display->ycenter, XLAT(mousing ? "find the player" : "press SPACE to find the player"), ' ', 8); displayButton(current_display->xcenter, current_display->ycenter, mousing ? XLAT("find the player") : XLAT("press SPACE to find the player"), ' ', 8);
describeMouseover(); describeMouseover();
} }

View File

@ -408,7 +408,7 @@ EX string generateHelpForItem(eItem it) {
for(int i=0; i<ittypes; i++) { for(int i=0; i<ittypes; i++) {
eItem it2 = eItem(i); eItem it2 = eItem(i);
if(isEmpathyOrb(it2)) { if(isEmpathyOrb(it2)) {
help += XLAT(cnt ? ", %1" : " %1", it2); help += cnt ? XLAT(", %1", it2) : XLAT(" %1", it2);
cnt++; cnt++;
} }
} }
@ -465,7 +465,7 @@ EX string generateHelpForItem(eItem it) {
for(int i=0; i<landtypes; i++) { for(int i=0; i<landtypes; i++) {
eLand land = eLand(i); eLand land = eLand(i);
if(isLuckyLand(land)) { if(isLuckyLand(land)) {
help += XLAT(cnt ? ", %1" : " %1", land); help += cnt ? XLAT(", %1", land) : XLAT(" %1", land);
cnt++; cnt++;
} }
} }

View File

@ -56,7 +56,7 @@ EX string index_pointer(void *v) {
} }
#if HDR #if HDR
inline string ONOFF(bool b) { return XLAT(b ? "ON" : "OFF"); } inline string ONOFF(bool b) { return b ? XLAT("ON") : XLAT("OFF"); }
struct hstream { struct hstream {
virtual void write_char(char c) = 0; virtual void write_char(char c) = 0;

View File

@ -505,7 +505,7 @@ EX namespace inv {
orbmap.clear(); orbmap.clear();
which = itNone; which = itNone;
if(plain) dialog::init(XLAT(mirroring ? "mirror what?" : "inventory"), forecolor, 150, 100); if(plain) dialog::init(mirroring ? XLAT("mirror what?") : XLAT("inventory"), forecolor, 150, 100);
int j = 0, oc = 6; int j = 0, oc = 6;

View File

@ -957,7 +957,7 @@ void show_gridmaker() {
for(int i=0; i<5; i++) for(int i=0; i<5; i++)
dialog::addInfo(status[i]); dialog::addInfo(status[i]);
dialog::addBreak(100); dialog::addBreak(100);
dialog::addSelItem(XLAT("activate"), XLAT(runlevel == 10 ? "ready" : "wait..."), 'f'); dialog::addSelItem(XLAT("activate"), runlevel == 10 ? XLAT("ready") : XLAT("wait..."), 'f');
if(runlevel == 10) dialog::add_action(start_game_on_created_map); if(runlevel == 10) dialog::add_action(start_game_on_created_map);
dialog::addItem(XLAT("cancel"), 'c'); dialog::addItem(XLAT("cancel"), 'c');
dialog::add_action(cancel_map_creation); dialog::add_action(cancel_map_creation);

View File

@ -1845,14 +1845,14 @@ EX namespace mapeditor {
displayButton(8, 8+fs*2, line2 + XLAT(" (r = complex tesselations)"), 'r', 0); displayButton(8, 8+fs*2, line2 + XLAT(" (r = complex tesselations)"), 'r', 0);
else else
displayfr(8, 8+fs*2, 2, vid.fsize, line2, 0xC0C0C0, 0); displayfr(8, 8+fs*2, 2, vid.fsize, line2, 0xC0C0C0, 0);
displayButton(8, 8+fs*3, XLAT(GDIM == 3 ? "l = color group: %1" : "l = layers: %1", its(dslayer)), 'l', 0); displayButton(8, 8+fs*3, GDIM == 3 ? XLAT("l = color group: %1", its(dslayer)) : XLAT("l = layers: %1", its(dslayer)), 'l', 0);
} }
if(us && isize(us->d[dslayer].list)) { if(us && isize(us->d[dslayer].list)) {
usershapelayer& ds(us->d[dslayer]); usershapelayer& ds(us->d[dslayer]);
if(!EDITING_TRIANGLES) { if(!EDITING_TRIANGLES) {
displayButton(8, 8+fs*4, XLAT("1-9 = rotations: %1", its(ds.rots)), '1' + (ds.rots % 9), 0); displayButton(8, 8+fs*4, XLAT("1-9 = rotations: %1", its(ds.rots)), '1' + (ds.rots % 9), 0);
displayButton(8, 8+fs*5, XLAT(ds.sym ? "0 = symmetry" : "0 = asymmetry"), '0', 0); displayButton(8, 8+fs*5, ds.sym ? XLAT("0 = symmetry") : XLAT("0 = asymmetry"), '0', 0);
} }
displayfr(8, 8+fs*7, 2, vid.fsize, XLAT("%1 vertices", its(isize(ds.list))), 0xC0C0C0, 0); displayfr(8, 8+fs*7, 2, vid.fsize, XLAT("%1 vertices", its(isize(ds.list))), 0xC0C0C0, 0);
@ -1866,7 +1866,7 @@ EX namespace mapeditor {
displayButton(8, 8+fs*9, XLAT("m = move v"), 'm', 0); displayButton(8, 8+fs*9, XLAT("m = move v"), 'm', 0);
displayButton(8, 8+fs*10, XLAT("d = delete v"), 'd', 0); displayButton(8, 8+fs*10, XLAT("d = delete v"), 'd', 0);
} }
displaymm('c', 8, 8+fs*11, 2, vid.fsize, XLAT(autochoose ? "autochoose" : "c = choose"), 0); displaymm('c', 8, 8+fs*11, 2, vid.fsize, autochoose ? XLAT("autochoose") : XLAT("c = choose"), 0);
displayButton(8, 8+fs*12, XLAT("b = switch auto"), 'b', 0); displayButton(8, 8+fs*12, XLAT("b = switch auto"), 'b', 0);
} }
else { else {
@ -1888,7 +1888,7 @@ EX namespace mapeditor {
} }
#if CAP_TEXTURE #if CAP_TEXTURE
else if(freedraw) { else if(freedraw) {
displayButton(8, 8+fs*2, XLAT(texture::texturesym ? "0 = symmetry" : "0 = asymmetry"), '0', 0); displayButton(8, 8+fs*2, texture::texturesym ? XLAT("0 = symmetry") : XLAT("0 = asymmetry"), '0', 0);
if(mousekey == 'g') if(mousekey == 'g')
displayButton(8, 8+fs*16, XLAT("p = grid color"), 'p', 0); displayButton(8, 8+fs*16, XLAT("p = grid color"), 'p', 0);
else else
@ -1916,11 +1916,11 @@ EX namespace mapeditor {
} }
if(GDIM == 3) if(GDIM == 3)
displayfr(8, 8+fs*19, 2, vid.fsize, XLAT(front_config == eFront::sphere_camera ? "z = camera" : front_config == eFront::sphere_center ? "z = spheres" : displayfr(8, 8+fs*19, 2, vid.fsize, (front_config == eFront::sphere_camera ? XLAT("z = camera") : front_config == eFront::sphere_center ? XLAT("z = spheres") :
nonisotropic && front_config == eFront::equidistants ? "Z =" : nonisotropic && front_config == eFront::equidistants ? XLAT("Z =") :
nonisotropic && front_config == eFront::const_x ? "X =" : nonisotropic && front_config == eFront::const_x ? XLAT("X =") :
nonisotropic && front_config == eFront::const_y ? "Y =" : nonisotropic && front_config == eFront::const_y ? XLAT("Y =") :
"z = equi") + " " + fts(front_edit), 0xC0C0C0, 0); XLAT("z = equi")) + " " + fts(front_edit), 0xC0C0C0, 0);
displaymm('g', vid.xres-8, 8+fs*4, 2, vid.fsize, XLAT("g = grid"), 16); displaymm('g', vid.xres-8, 8+fs*4, 2, vid.fsize, XLAT("g = grid"), 16);
@ -2399,7 +2399,7 @@ EX namespace mapeditor {
dialog::add_action([] { front_config = eFront::sphere_camera; }); dialog::add_action([] { front_config = eFront::sphere_camera; });
dialog::addBoolItem(XLAT("place points at fixed radius"), front_config == eFront::sphere_center, 'B'); dialog::addBoolItem(XLAT("place points at fixed radius"), front_config == eFront::sphere_center, 'B');
dialog::add_action([] { front_config = eFront::sphere_center; }); dialog::add_action([] { front_config = eFront::sphere_center; });
dialog::addBoolItem(XLAT(nonisotropic ? "place points on surfaces of const Z" : "place points on equidistant surfaces"), front_config == eFront::equidistants, 'C'); dialog::addBoolItem(nonisotropic ? XLAT("place points on surfaces of const Z") : XLAT("place points on equidistant surfaces"), front_config == eFront::equidistants, 'C');
dialog::add_action([] { front_config = eFront::equidistants; }); dialog::add_action([] { front_config = eFront::equidistants; });
if(nonisotropic) { if(nonisotropic) {
dialog::addBoolItem(XLAT("place points on surfaces of const X"), front_config == eFront::const_x, 'D'); dialog::addBoolItem(XLAT("place points on surfaces of const X"), front_config == eFront::const_x, 'D');

View File

@ -693,11 +693,11 @@ EX namespace models {
dialog::init("models & projections"); dialog::init("models & projections");
if(GDIM == 2 && !euclid) { if(GDIM == 2 && !euclid) {
dialog::addItem(XLAT(hyperbolic ? "Gans model" : "orthographic projection"), '1'); dialog::addItem(hyperbolic ? XLAT("Gans model") : XLAT("orthographic projection"), '1');
dialog::add_action([] { if(rug::rugged) rug::close(); pconf.alpha = 999; pconf.scale = 998; pconf.xposition = pconf.yposition = 0; popScreen(); }); dialog::add_action([] { if(rug::rugged) rug::close(); pconf.alpha = 999; pconf.scale = 998; pconf.xposition = pconf.yposition = 0; popScreen(); });
dialog::addItem(XLAT(hyperbolic ? "Poincaré model" : "stereographic projection"), '2'); dialog::addItem(hyperbolic ? XLAT("Poincaré model") : XLAT("stereographic projection"), '2');
dialog::add_action([] { if(rug::rugged) rug::close(); pconf.alpha = 1; pconf.scale = 1; pconf.xposition = pconf.yposition = 0; popScreen(); }); dialog::add_action([] { if(rug::rugged) rug::close(); pconf.alpha = 1; pconf.scale = 1; pconf.xposition = pconf.yposition = 0; popScreen(); });
dialog::addItem(XLAT(hyperbolic ? "Beltrami-Klein model" : "gnomonic projection"), '3'); dialog::addItem(hyperbolic ? XLAT("Beltrami-Klein model") : XLAT("gnomonic projection"), '3');
dialog::add_action([] { if(rug::rugged) rug::close(); pconf.alpha = 0; pconf.scale = 1; pconf.xposition = pconf.yposition = 0; popScreen(); }); dialog::add_action([] { if(rug::rugged) rug::close(); pconf.alpha = 0; pconf.scale = 1; pconf.xposition = pconf.yposition = 0; popScreen(); });
if(sphere) { if(sphere) {
dialog::addItem(XLAT("stereographic projection") + " " + XLAT("(zoomed out)"), '4'); dialog::addItem(XLAT("stereographic projection") + " " + XLAT("(zoomed out)"), '4');

View File

@ -211,14 +211,14 @@ bool configdead;
void handleConfig(int sym, int uni); void handleConfig(int sym, int uni);
EX string player_count_name(int p) { EX string player_count_name(int p) {
return XLAT( return
p == 2 ? "two players" : p == 2 ? XLAT("two players") :
p == 3 ? "three players" : p == 3 ? XLAT("three players") :
p == 4 ? "four players" : p == 4 ? XLAT("four players") :
p == 5 ? "five players" : p == 5 ? XLAT("five players") :
p == 6 ? "six players" : p == 6 ? XLAT("six players") :
p == 7 ? "seven players" : p == 7 ? XLAT("seven players") :
"one player"); XLAT("one player");
} }
struct key_configurer { struct key_configurer {
@ -304,15 +304,15 @@ EX reaction_t get_key_configurer(int sc, vector<string>& sct, string caption) {
} }
EX reaction_t get_key_configurer(int sc, vector<string>& sct) { EX reaction_t get_key_configurer(int sc, vector<string>& sct) {
return key_configurer(sc, sct, XLAT(sc == 1 ? "configure player 1" : return key_configurer(sc, sct, sc == 1 ? XLAT("configure player 1") :
sc == 2 ? "configure player 2" : sc == 2 ? XLAT("configure player 2") :
sc == 3 ? "configure panning" : sc == 3 ? XLAT("configure panning") :
sc == 4 ? "configure player 3" : sc == 4 ? XLAT("configure player 3") :
sc == 5 ? "configure player 4" : sc == 5 ? XLAT("configure player 4") :
sc == 6 ? "configure player 5" : sc == 6 ? XLAT("configure player 5") :
sc == 7 ? "configure player 6" : sc == 7 ? XLAT("configure player 6") :
sc == 8 ? "configure player 7" : "" sc == 8 ? XLAT("configure player 7") : ""
)); );
} }
#if CAP_SDLJOY #if CAP_SDLJOY
@ -395,7 +395,7 @@ struct shmup_configurer {
if(players > 1) if(players > 1)
dialog::addItem(XLAT("configure player 2"), '2'); dialog::addItem(XLAT("configure player 2"), '2');
else if(players == 1 && !shmup::on) else if(players == 1 && !shmup::on)
dialog::addSelItem(XLAT("input"), XLAT(multi::alwaysuse ? "config" : "default"), 'a'); dialog::addSelItem(XLAT("input"), multi::alwaysuse ? XLAT("config") : XLAT("default"), 'a');
else else
dialog::addBreak(100); dialog::addBreak(100);
if(players > 2) if(players > 2)

View File

@ -425,7 +425,7 @@ EX namespace dual {
EX void add_choice() { EX void add_choice() {
if(!state) return; if(!state) return;
dialog::addSelItem(XLAT("subgame affected"), dialog::addSelItem(XLAT("subgame affected"),
XLAT(affect_both ? "both" : main_side == 0 ? "left" : "right"), '`'); affect_both ? XLAT("both") : main_side == 0 ? XLAT("left") : XLAT("right"), '`');
dialog::add_action([] () { dialog::add_action([] () {
affect_both = !affect_both; affect_both = !affect_both;
if(!affect_both) { if(!affect_both) {

View File

@ -1536,9 +1536,9 @@ EX namespace hybrid {
if(rotspace) { if(rotspace) {
int e_steps = cgi.psl_steps / gcd(cgi.single_step, cgi.psl_steps); int e_steps = cgi.psl_steps / gcd(cgi.single_step, cgi.psl_steps);
bool ubounded = PIU(bounded); bool ubounded = PIU(bounded);
dialog::addSelItem( XLAT(sphere ? "elliptic" : "PSL(2,R)"), its(e_steps), 'P'); dialog::addSelItem( sphere ? XLAT("elliptic") : XLAT("PSL(2,R)"), its(e_steps), 'P');
dialog::add_action(set_s(e_steps, true)); dialog::add_action(set_s(e_steps, true));
dialog::addSelItem( XLAT(sphere ? "sphere" : "SL(2,R)"), its(2*e_steps), 'P'); dialog::addSelItem( sphere ? XLAT("sphere") : XLAT("SL(2,R)"), its(2*e_steps), 'P');
dialog::add_action(set_s(2*e_steps, true)); dialog::add_action(set_s(2*e_steps, true));
if(sl2 && !ubounded) { if(sl2 && !ubounded) {
dialog::addSelItem( XLAT("universal cover"), its(0), 'P'); dialog::addSelItem( XLAT("universal cover"), its(0), 'P');

View File

@ -291,7 +291,7 @@ EX hint hints[] = {
EX int hinttoshow; EX int hinttoshow;
string contstr() { string contstr() {
return XLAT(canmove ? "continue" : "see how it ended"); return canmove ? XLAT("continue") : XLAT("see how it ended");
} }
eLand nextHyperstone() { eLand nextHyperstone() {
@ -412,11 +412,10 @@ EX void showMission() {
else if(landUnlocked(laHell) && ls::any_order()) { else if(landUnlocked(laHell) && ls::any_order()) {
eLand l = nextHyperstone(); eLand l = nextHyperstone();
if(l) if(l)
dialog::addInfo( dialog::addInfo(
XLAT( l ? XLAT("Hyperstone Quest: collect at least %3 points in %the2", treasureType(l), l, its(R10))
l ? "Hyperstone Quest: collect at least %3 points in %the2" : : XLAT("Hyperstone Quest: collect at least %3 %1 in %the2", treasureType(l), l, its(R10))
"Hyperstone Quest: collect at least %3 %1 in %the2", );
treasureType(l), l, its(R10)));
else else
dialog::addInfo(XLAT("Hyperstone Quest completed!"), iinf[itHyperstone].color); dialog::addInfo(XLAT("Hyperstone Quest completed!"), iinf[itHyperstone].color);
} }
@ -448,7 +447,7 @@ EX void showMission() {
if(canmove) { if(canmove) {
if(sphere) { if(sphere) {
dialog::addItem(XLAT("return to your game"), '1'); dialog::addItem(XLAT("return to your game"), '1');
dialog::addItem(XLAT(pconf.alpha < 2 ? "orthogonal projection" : "stereographic projection"), '3'); dialog::addItem(pconf.alpha < 2 ? XLAT("orthogonal projection") : XLAT("stereographic projection"), '3');
} }
else if(euclid) { else if(euclid) {
dialog::addItem(XLAT("return to your game"), '2'); dialog::addItem(XLAT("return to your game"), '2');

View File

@ -1024,7 +1024,7 @@ void race_projection() {
}); });
if(true) { if(true) {
dialog::addSelItem(XLAT("point of view"), XLAT(player_relative ? "player" : "track"), 'p'); dialog::addSelItem(XLAT("point of view"), player_relative ? XLAT("player") : XLAT("track"), 'p');
if(racing::use_standard_centering()) if(racing::use_standard_centering())
dialog::lastItem().value = XLAT("N/A"); dialog::lastItem().value = XLAT("N/A");
dialog::add_action([] () { dialog::add_action([] () {

View File

@ -737,9 +737,9 @@ EX namespace yendor {
dialog::addBreak(60); dialog::addBreak(60);
if (yendor::on) if (yendor::on)
dialog::addItem(XLAT("Return to the normal game"), '0'); dialog::addItem(XLAT("Return to the normal game"), '0');
dialog::addSelItem(XLAT( dialog::addSelItem(
easy ? "Challenges do not get harder" : "Each challenge gets harder after each victory"), easy ? XLAT("Challenges do not get harder") : XLAT("Each challenge gets harder after each victory"),
" " + XLAT(easy ? "easy" : "challenge"), '1'); " " + easy ? XLAT("easy") : XLAT("challenge"), '1');
dialog::addBack(); dialog::addBack();
dialog::addHelp(); dialog::addHelp();