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

Texts written/translated for 10.3

This commit is contained in:
Zeno Rogue 2018-01-04 20:05:34 +01:00
parent 495dbba809
commit 6479ddb73d
7 changed files with 351 additions and 35 deletions

View File

@ -399,6 +399,15 @@ const char *thumpdesc = "A device that attracts sandworms and other enemies. You
const char *twdesc = "This structure will disappear after some time.";
const char *jellydesc =
"Some of the Slime Beasts have decided to revolt against the color changing rules in the "
"Alchemist Lab, change their shape and consistency, and create their own Kingdom.\n\n"
"Jellies switch between being a wall and being a monster after every treasure you pick.";
const char *ruindesc =
"Once a beautiful city... but now overrun by the mighty Raiders of unknown origin.\n\n"
"Raiders cannot be harmed with mundane weapons, but each color has its movement restrictions.";
monstertype minf[motypes] = {
{ 0, 0, "no monster" , NULL},
{ 'Y', 0x4040FF, "Yeti" ,
@ -759,13 +768,14 @@ monstertype minf[motypes] = {
"When your plan has clearly failed, it is better to abandon it and go to a safe place, to have a chance of succeeding next time. This dog clearly knows this."},
{ 'B', 0xC00000, "North Pole", NODESCYET},
{ 'B', 0x0000C0, "South Pole", NODESCYET},
{ 'P', 0xC03000, "Red Raider", NODESCYET},
{ 'H', 0xC0C0C0, "Gray Raider", NODESCYET},
{ 'A', 0x80B080, "Green Raider", NODESCYET},
{ 'M', 0x904000, "Brown Raider", NODESCYET},
{ 'C', 0x0060E0, "Blue Raider", NODESCYET},
{ '@', 0xC00000, "Red Jelly", NODESCYET},
{ '@', 0x0000C0, "Blue Jelly", NODESCYET},
{ 'P', 0xC03000, "Red Raider", "Red Raiders travel in pairs. They are able to destroy walls on their way."},
{ 'H', 0xC0C0C0, "Gray Raider", "Gray Raiders never step on gray cells."},
{ 'A', 0x80B080, "Green Raider", "Green Raiders never step from one green cell to another."},
{ 'M', 0x904000, "Brown Raider", "Brown Raiders never move adjacent to an item."},
{ 'C', 0x0060E0, "Blue Raider", "Blue Raiders have a powerful attack which takes two turns to complete, and also makes the Blue Raider stunned "
"for a long time. This attack can destroy other Raiders if it hits them."},
{ '@', 0xC00000, "Red Jelly", jellydesc},
{ '@', 0x0000C0, "Blue Jelly", jellydesc},
// shmup specials
{ '@', 0xC0C0C0, "Rogue", "In the Shoot'em Up mode, you are armed with thrown Knives."},
@ -1211,15 +1221,18 @@ itemtype iinf[ittypes] = {
"This ranged Orb will transform the target monster into one without any special powers. It also stuns them for one turn. "
"Does not affect multi-tile monsters."},
{ '!', 0x80FF00, "Glowing Crystal", crystaldesc},
{ '!', 0x80FF80, "Snake Oil", NODESCYET},
{ '!', 0x80FF80, "Snake Oil", "Made of actual snakes!"},
{ '!', 0x80FF80, "Sea Glass", NODESCYET},
{ '*', 0xBBCC99, "Chrysoberyl", NODESCYET},
{ '*', 0xBBCC99, "Chrysoberyl", "Fragment of the past glory."},
// { '*', 0xD0D8ED, "Chalcedony", NODESCYET},
{ '*', 0x80FF80, "Monopole", NODESCYET},
{ '!', 0xFF00FF, "Tasty Jelly", NODESCYET},
{ 'o', 0x80FF80, "Orb of Phasing", NODESCYET},
{ '!', 0xFF00FF, "Tasty Jelly", "A tasty byproduct of the Jelly Revolution."},
{ 'o', 0x80FF80, "Orb of Phasing",
"This orb lets you pass through walls (one cell wide), and also through as long as they will not attack you in transit."},
{ 'o', 0xFFFF80, "Orb of Magnetism", NODESCYET},
{ 'o', 0x202020, "Orb of Slaying", NODESCYET},
{ 'o', 0x202020, "Orb of Slaying",
"This Orb lets you defeat Raiders and other tough single-cell monsters in melee."
},
// { '*', 0x26619C, "Lapis Lazuli", NODESCYET},
};
@ -1400,7 +1413,7 @@ walltype winf[walltypes] = {
{ '&', 0xD00000, "lava", lavadesc},
{ '=', 0x804000, "dock", "A dock."},
{ '^', 0xFF8000, "burning dock", "A burning dock."},
{ '#', 0xE04030, "ruin wall", "A ruin wall."},
{ '#', 0xE04030, "ruin wall", ruindesc},
};
// --- land types ---
@ -1588,9 +1601,9 @@ const landtype linf[landtypes] = {
{ 0x80FF00, "Crystal World", crystaldesc},
{ 0x306030, "Snake Nest", NODESCYET},
{ 0x80FF00, "Docks", NODESCYET},
{ 0x306030, "Ruined City", NODESCYET},
{ 0x306030, "Ruined City", ruindesc},
{ 0x306030, "Magnetosphere", NODESCYET},
{ 0x306030, "Jelly Kingdom", NODESCYET},
{ 0x306030, "Jelly Kingdom", jellydesc},
};
struct landtacinfo { eLand l; int tries, multiplier; };
@ -1601,11 +1614,11 @@ vector<landtacinfo> land_tac = {
{laMotion, 10, 1}, {laCaves, 10, 1}, {laAlchemist, 10, 1},
{laJungle, 10, 1}, {laMirror, 10, 1}, {laZebra, 10, 1}, {laPalace, 10, 1},
{laOcean, 10, 1}, {laLivefjord, 10, 1}, {laWarpCoast, 10, 1}, {laRlyeh, 10, 1}, {laHell, 10, 1},
{laDryForest, 10, 1}, {laWineyard, 10, 1}, {laReptile, 10, 1},
{laDryForest, 10, 1}, {laWineyard, 10, 1}, {laSwitch, 10, 1}, {laReptile, 10, 1},
{laDeadCaves, 10, 1}, {laGraveyard, 10, 1},
{laHaunted, 10, 1},
{laIvoryTower, 10, 1}, {laEndorian, 10, 1}, {laMountain, 5, 2}, {laDungeon, 5, 2},
{laEmerald, 10, 1},
{laRuins, 10, 1}, {laEmerald, 10, 1},
{laCocytus, 10, 1},
{laCaribbean, 5, 2}, {laWhirlpool, 5, 2}, {laKraken, 5, 2},
@ -1631,7 +1644,7 @@ vector<landtacinfo> land_tac = {
vector<eLand> randlands = {
laIce, laDesert, laCaves, laAlchemist, laGraveyard, laPower, laLivefjord, laZebra,
laRlyeh, laDryForest, laEmerald, laWineyard, laDeadCaves, laRedRock,
laOvergrown, laWildWest, laWarpCoast
laOvergrown, laWildWest, laWarpCoast, laRuins
};
geometryinfo ginf[gGUARD] = {

View File

@ -448,7 +448,7 @@ string generateHelpForLand(eLand l) {
if(l == laMirror || l == laMinefield || l == laPalace ||
l == laOcean || l == laLivefjord || l == laZebra || l == laWarpCoast || l == laWarpSea ||
l == laReptile || l == laIvoryTower)
l == laReptile || l == laIvoryTower || l == laSwitch)
TREQ(R30)
if(l == laPower && inv::on)
@ -481,6 +481,8 @@ string generateHelpForLand(eLand l) {
if(l == laReptile) TREQ2(U10, itElixir)
if(l == laVolcano) TREQ2(U10, itElixir)
if(l == laSwitch) TREQ2(U10, itElixir)
if(l == laEndorian) TREQ2(U10, itIvory)
if(l == laKraken) TREQ2(U10, itFjord)
if(l == laBurial) TREQ2(U10, itKraken)

View File

@ -549,7 +549,7 @@ bool landUnlocked(eLand l) {
return gold() >= R90;
case laSwitch:
return gold() >= R90;
return gold() >= R30 && items[itElixir] >= U10;
case laRuins:
return kills[moSkeleton];
@ -958,7 +958,7 @@ eLand getNewLand(eLand old) {
vector<eLand> land_over = {
laIce, laCaves, laDesert, laHunting, laMotion, laJungle, laAlchemist,
laCrossroads,
laMirror, laMinefield, laPalace, laPrincessQuest, laZebra, laReptile,
laMirror, laMinefield, laPalace, laPrincessQuest, laZebra, laSwitch, laReptile,
laOcean, laWarpCoast, laLivefjord, laKraken, laCaribbean, laWhirlpool, laRlyeh, laTemple,
laIvoryTower, laEndorian, laDungeon, laMountain,
laCrossroads2,
@ -967,13 +967,13 @@ vector<eLand> land_over = {
laDragon, laTortoise,
laOvergrown, laClearing, laStorms, laBurial, laWhirlwind,
laBlizzard,
laEmerald, laCamelot,
laRuins, laEmerald, laCamelot,
laPrairie, laBull, laTerracotta, laRose,
laElementalWall, laTrollheim,
laHell, laCrossroads3, laCocytus, laPower, laCrossroads4,
laCrossroads5,
// EXTRA
laWildWest, laHalloween, laDual, laSnakeNest, laDocks, laRuins, laSwitch, laMagnetic, laCA
laWildWest, laHalloween, laDual, laSnakeNest, laDocks, laMagnetic, laCA
};
vector<eLand> landlist;

View File

@ -6282,14 +6282,304 @@ S("Useless in Euclidean geometry.", "Bezużyteczne w geometrii euklidesowej.");
S("Not implemented for spherical geometry. Please tell me if you really want this.",
"Nie zaimplementowane dla geometrii sferycznej. Jeśli bardzo tego chcesz, powiedz.")
#undef Orb
// Hypersian Rug
// Hypersian Rug (NOT USED ANYMORE)
// S("This makes sense only in hyperbolic or Torus geometry.", "To ma sens tylko w geometrii hiperbolicznej i na torusie.")
// === 10.3 ===
// ============
// Missing/minor updated texts
//-----------------------------
// file selection dialog
S("Enter = choose", "Enter = wybierz")
S("Esc = cancel", "Esc = anuluj")
S("hyperbolic", "hiperboliczna")
// for the map editor
N("Dragon Head", GEN_F, "Głowa Smoka", "Głowy Smoka", "Głowę Smoka", "Głową Smoka")
S("score: %1", "wynik: %1")
S("kills: %1", "zabicia: %1")
// advanced config of quotient geometry
//--------------------------------------
S(
"This geometry is obtained by applying the same 'generators' which "
"lead to creating the given basic hyperbolic geometry, "
"but using a fixed finite field instead of the field of reals. "
"It can be also interpreted as a quotient of the given basic geometry. "
"Warning: field patterns based on large primes might generate for a long time.",
"Ta geometria powstaje przez użycie tych samych 'generatorów', "
"których używamy do uzyskania zadanej podstawowej geometrii hiperbolicznej, "
"ale w pewnym ciele skończonym zamiast ciała liczb rzczywistych. "
"Można ją zrozumieć jako przestrzeń ilorazową zadanej geometrii. "
"Uwaga: generowanie tego typu geometrii opartej na dużej liczbie pierwszej może "
"zająć dużo czasu!")
S("find the next prime", "znajdź następną liczbę pierwszą")
S("activate", "uruchom")
S("order %1%2 (non-chamfered cells: %3)", "rząd %1%2 (nieprzyciętych pól: %3)")
// Torus/Klein bottle, Euclidean Squares, and their advanced configuration
//-------------------------------------------------------------------------
S("square grid", "siatka kwadratowa")
S("torus/Klein bottle", "torus/butelka Kleina")
S("mode", "tryb")
S("single row (hex)", "jeden rząd (heksy)")
S("single row (squares)", "jeden rząd (kwadraty)")
S("parallelogram (hex)", "równoległobok (heksy)")
S("rectangle (squares)", "prostokąt (kwadraty)")
S("rectangle (hex)", "prostokąt (heksy)")
S("Klein bottle (squares)", "butelka Kleina (kwadraty)")
S("Klein bottle (hex)", "butelka Kleina (heksy)")
S("this mode has bad patterns", "nieprawidłowe wzorki dla tego trybu")
S("incompatible with chamfering", "niekompatybilne z przycinaniem")
S("best if %1 is divisible by %2", "najlepiej gdy %1 jest podzielne przez %2")
S("number of cells (n)", "liczba pól (n)")
S("cell bottom-right from 0 (d)", "pole w dół i na prawo od 0 (d)")
S("cell below 0 (d)", "pole pod 0 (d)")
S("width (x)", "szerokość (x)")
S("height (y)", "wysokość (y)")
// upgraded Hypersian Rug mode
//-----------------------------
S("In the perspective projection, you can use arrows to rotate the camera, Page Up/Down to go forward/backward, Shift+arrows to strafe, and Ctrl+arrows to rotate the model.",
"W trybie perspektywy możesz używać strzałek by obracać kamerą, Page Up/Down by iść do przodu/w tył, Shift+strzałek by chodzić na boki, Ctrl+strzałek by obracać model.")
S("Note: this mode is based on what you see on the screen -- but re-rendered in another way. "
"If not everything is shown on the screen (e.g., too zoomed in), the results will be incorrect "
"(though possibly interesting). "
"Use a different projection to fix this.",
"Uwaga: ten tryb jest oparty na tym, co widzisz na ekranie -- tylko inaczej przedstawionym. "
"Jeśli nie wszystko jest na ekranie (np. za mocno zbliżenie), wyniki będą nieprawidłowe, "
"choć być może interesujące. Użyj innego rzutu, by to naprawić.")
S("vertex limit", "ograniczenie na liczbę wierzchołków")
S("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.",
"Im więcej wierzchołków, tym dokładniejszy model, "
"ale za duża liczba może spowodować, że model się będzie wolno liczył i rysował.")
S("model distance", "odległość od modelu")
S("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.",
"W perspektywie ten parametr ustawia odległość od kamery do centrum modelu. "
"W rzucie ortogonalnym zmienia skalę.")
S("maximum error", "maksymalny błąd")
S("New points are added when the current error in the model is smaller than this value.",
"Nowe punkty są dodawane, gdy obecny błąd jest mniejszy niż ta wartość.")
S("field of view", "pole widzenia")
S("Horizontal field of view, in the perspective projection. "
"In the orthogonal projection this just controls the scale.",
"Poziome pole widzenia, w rzucie perspektywicznym. "
"W rzucie ortogonalnym zmienia skalę.")
S("native geometry", "rodzima geometria")
S("scale model", "skala modelu")
S("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; "
"if the native geometry is hyperbolic, and scale > 1, a hyperbolic plane will be rendered as an equidistant surface. ",
"To ma znaczenie gdy rodzima geometria nie jest euklidesowa. "
"Przykładowo, dla rodzimej geometrii sferycznej i skali < 1 2-sfera będzie modelowana jako podsfera; "
"w rodzimej geometrii hiperbolicznej dla skali > 1 płaszczyzna hiperboliczna będzie modelowana jako powietrzchnia ekwidystantna.")
S("This just shows the 'z' coordinate of the selected point.",
"To jedynie pokazuje współrzędną 'z' wybranego punktu.")
S("radar", "radar")
S("model iterations", "iteracje modelu")
S("keep shape", "trzymaj kształt")
// texture mode
//--------------
S("texture mode", "tryb tekstury")
S(
"This mode lets you to change the floor tesselation easily -- "
"select 'paint a new texture' and draw like in a Paint program. "
"The obtained pattern can then be easily changed to another geometry, "
"or saved.\n\n"
"Instead of drawing, it is also possible to use an arbitrary image "
"as a texture. "
"Works best with spherical/Euclidean/hyperbolic tesselations "
"(e.g., a photo of a soccerball, or one of the tesselations by M. C. "
"Escher), but it can be also used on arbitrary photos to make them periodic "
"(these probably work best with the 'large picture' setting in geometry selection). "
"Again, tesselations can have their geometry changed.\n\n",
"Ten tryb pozwala Ci łatwo zmienić teselację powierzchni -- "
"wybierz 'namaluj nową teksturę' i rysuj jak w programie typu Paint. "
"Otrzymany wzorek może być następnie przekształcony do innej geometrii "
"lub zapisany.\n\n"
"Zamiast rysowania jest też możliwe użycie dowolnego obrazka. "
"Działa najlepiej z parkietażami (np. zdjęcie piłki nożnej, albo "
"parkietaże M. C. Eschera), ale można też tego użyć na dowolnych zdjęciach, "
"by uzyskać ich okresową wersję (zazwyczaj najlepiej działają 'duże obrazki' "
"w wyborze geometrii). Tu również możemy przekształcić parkietaż do "
"innej geometrii.\n\n")
S("texture mode (off)", "tryb tekstury (wyłączony)")
S("select geometry/pattern", "wybierz geometrię/wzór")
S("reactivate the texture", "reaktywuj teksturę")
S("open PNG as texture", "otwórz PNG jako teksturę")
S("load texture config", "ładuj konfigurację tekstury")
S("warning: unable to find the center", "ostrzeżenie: nie udało się znaleźć centrum")
S("texture size", "rozmiar tekstury")
S("paint a new texture", "namaluj nową teksturę")
S("precision", "precyzja")
S("texture mode (overlay)", "tryb tekstury (nałożenie)")
S("select the texture's pattern", "wybierz wzorek tekstury")
S("enable the texture", "uruchom teksturę")
S("cancel the texture", "anuluj teksturę")
S("move the model", "przesuń model")
S("move the texture", "przesuń teksturę")
S("zoom/scale the texture", "obróć/zmień rozmiar tekstury")
S("zoom/scale the model", "obróć/zmień rozmiar modelu")
S("projection", "rzut")
S("affine transformations", "przekszt. afiniczne")
S("magic", "magia")
S("grid color (master)", "kolor siatki (główny)")
S("grid color (copy)", "kolor siatki (kopia)")
S("save the raw texture", "zapisz surową teksturę")
S("Saved the raw texture to %1", "Zapisano surową teksturę do %1")
S("texture auto-adjustment", "auto-ustawianie tekstury")
S("drag from the model to the texture", "przeciągaj z modelu na teksturę")
S("affect model scale", "skala modelu")
S("affect model projection", "projekcja")
S("affect model rotation", "obrót modelu")
S("affect model position", "pozycja modelu")
S("affect texture slanting", "przechylenie tekstury")
S("affect texture stretching", "rozciągnięcie tekstury")
S("delete markers", "usuń markery")
S("perform auto-adjustment", "wykonaj auto-ustawianie")
S("texture mode (active)", "tryb tekstury (aktywny)")
S("deactivate the texture", "wyłącz teksturę")
S("back to overlay mode", "wróć do trybu nałożenia")
S("change the geometry", "zmień geometrię")
S("grid color", "kolor siatki")
S("mesh color", "kolor siateczki")
S("color alpha", "współczynnik koloru")
S("The higher the value, the less important the color of underlying terrain is.",
"Im wyższa wartość, tym mniej istotny kolor podłoża.")
S("edit the texture", "edytuj teksturę")
S("save the full texture image", "zapisz pełną teksturę")
S("Saving full texture to %1...", "Zapis pełnej tekstury do %1...")
S("save texture config", "zapisz konfigurację tekstury")
S("football", "piłka nożna")
S("three colors", "trzy kolory")
S("chessboard", "szachownica")
S("single type", "pojedynczy typ")
S("large picture", "duży obrazek")
S("periodic patterns", "okresowe wzorki")
S("more tuning", "dostrajanie")
S("Docks pattern", "wzorek Doków")
// Docks
//-------
N("Docks", GEN_O, "Dok", "Doki", "Dok", "w Doku")
N("dock", GEN_O, "dok", "doki", "dok", "dokiem")
S("A dock.", "Dok.")
N("burning dock", GEN_O, "płonący dok", "płonące doki", "płonący dok", "płonącym dokiem")
S("A burning dock.", "Płonący dok.")
N("Sea Glass", GEN_N, "Morskie Szkło", "Morskie Szkła", "Morskie Szkło", "Morskim Szkłem")
// Snake Nest
N("Snake Nest", GEN_N, "Gniazdo Węży", "Gniazda Węży", "Gniazdo Węży", "w Gnieździe Węży")
N("Snake Oil", GEN_O, "Wężowy Olej", "Wężowe Oleje", "Wężowy Olej", "Wężowym Olejem")
S("Made of actual snakes!", "Zrobiony z prawdziwych węży!")
// Ruined City
N("Ruined City", GEN_N, "Zrujnowane Miasto", "Zrujnowane Miasta", "Zrujnowane Miasto", "w Zrujnowanym Mieście")
S("Once a beautiful city... but now overrun by the mighty Raiders of unknown origin.\n\n"
"Raiders cannot be harmed with mundane weapons, but each color has its movement restrictions.",
"Niegdyś piękne miasto... ale obecnie zrujnowane przez potężnych Najeźdźców nieznanego pochodzenia.\n\n"
"Najeźdźców nie można zranić zwykłą bronią, ale każdy kolor ma pewne ograniczenie ruchu.")
N("Chrysoberyl", GEN_O, "Chryzoberyl", "Chryzoberyle", "Chryzoberyl", "Chryzoberylem")
S("Fragment of the past glory.", "Fragment dawnej chwały.")
N("Red Raider", GEN_M, "Czerwony Najeźdźca", "Czerwoni Najeźdźcy", "Czerwonego Najeźdźcę", "Czerwonym Najeźdźcą")
S("Red Raiders travel in pairs. They are able to destroy walls on their way.",
"Czerwoni Najeźdźcy podróżują parami. Mogą niszczyć ściany na swojej drodze.")
N("Gray Raider", GEN_M, "Szary Najeźdźca", "Szarzy Najeźdźcy", "Szarego Najeźdźcę", "Szarym Najeźdźcą")
S("Gray Raiders never step on gray cells.",
"Szarzy Najeźdźcy nie stają na szarych polach.")
N("Green Raider", GEN_M, "Zielony Najeźdźca", "Zieloni Najeźdźcy", "Zielonego Najeźdźcę", "Zielonym Najeźdźcą")
S("Green Raiders never step from one green cell to another.",
"Zieloni Najeźdźcy nie przechodzą z jednego zielonego pola na drugie.")
N("Brown Raider", GEN_M, "Brązowy Najeźdźca", "Brązowi Najeźdźcy", "Brązowego Najeźdźcę", "Brązowym Najeźdźcą")
S("Brown Raiders never move adjacent to an item.",
"Brązowi Najeźdźcy nie przechodzą koło przedmiotów.")
N("Blue Raider", GEN_M, "Niebieski Najeźdźca", "Niebiescy Najeźdźcy", "Niebieskiego Najeźdźcę", "Niebieskim Najeźdźcą")
S("Blue Raiders have a powerful attack which takes two turns to complete, and also makes the Blue Raider stunned "
"for a long time. This attack can destroy other Raiders if it hits them.",
"Niebiescy Najeźdźcy mają potężny atak, który trwa dwie kolejki, i powoduje, że Niebieski Najeźdźca jest "
"ogłoszony przez dłuższy czas. Ten atak jest w stanie zniszczyć innych Najeźdźców, gdy ich trafi."
)
Orb("Slaying", "Pogromu")
S("This Orb lets you defeat Raiders and other tough single-cell monsters in melee.",
"Ta Sfera pozwala Ci pokonywać Najeźdźców i inne potężne jednopolowe potwory w walce wręcz.")
// Jelly Kingdom
N("Jelly Kingdom", GEN_N, "Królestwo Galarety", "Królestwa Galarety", "Królestwo Galarety", "w Królestwie Galarety")
S("Some of the Slime Beasts have decided to revolt against the color changing rules in the "
"Alchemist Lab, change their shape and consistency, and create their own Kingdom.\n\n"
"Jellies switch between being a wall and being a monster after every treasure you pick.",
"Część Mazistych Stworów z Laboratorium postanowiło zbuntować się przeciwko regułom zmiany koloru w "
"Laboratorium, zmienić kształt i konsystencję, i stworzyć własne Królestwo.\n\n"
"Galareta zmienia swój stan z potwora na ścianę i odwrotnie z każdym zebranym skarbem."
)
N("Red Jelly", GEN_F, "Czerwona Galareta", "Czerwone Galarety", "Czerwoną Galaretę", "Czerwoną Galaretą")
N("Blue Jelly", GEN_F, "Niebieska Galareta", "Niebieskie Galarety", "Niebieską Galaretę", "Niebieską Galaretą")
N("Tasty Jelly", GEN_F, "Pyszna Galaretka", "Pyszne Galaretki", "Pyszną Galaretkę", "Pyszną Galaretą")
S("A tasty byproduct of the Jelly Revolution.",
"Pyszny produkt uboczny Galaretowej Rewolucji.")
Orb("Phasing", "Fazy")
S("This orb lets you pass through walls (one cell wide), and also through as long as they will not attack you in transit.",
"Ta Sfera pozwala Ci przechodzić przez ściany (o szerokości jednego pola), a także przez potwory, o ile "
"nie zaatakują one w trakcie ruchu.")
#undef Orb

View File

@ -1274,6 +1274,9 @@ namespace patterns {
dialog::addBoolItem(XLAT("football pattern"), subpattern_flags & SPF_FOOTBALL, '*');
}
if(a38 && whichPattern == PAT_COLORING)
dialog::addBoolItem(XLAT("Docks pattern"), subpattern_flags & SPF_DOCKS, '@');
dialog::addBoolItem(XLAT("display pattern codes (full)"), displaycodes, 'd');
dialog::addBoolItem(XLAT("display only hexagons"), (whichShape == '6'), '6');
@ -1417,6 +1420,7 @@ namespace patterns {
{g46, true, PAT_COLORING, SPF_SYM0123 | SPF_CHANGEROT},
{g45, true, PAT_ZEBRA, SPF_SYM0123 | SPF_ROT},
{g47, true, PAT_ZEBRA, SPF_SYM0123 | SPF_ROT},
{gOctagon, true, PAT_COLORING, SPF_DOCKS},
}}
};
@ -1443,6 +1447,7 @@ namespace patterns {
string s = XLAT(ginf[g.geo].name);
s += chamfernames[g.nonchamf];
if(g.subpattern_flags & SPF_ALTERNATE) s += " (alt)";
if(g.subpattern_flags & SPF_DOCKS) s += " (Docks)";
if(cgroup == cpZebra) {
if(g.whichPattern == PAT_PALACE) s += " (Palace)";
else if(g.whichPattern == PAT_EMERALD) s += " (Emerald)";

View File

@ -1410,7 +1410,7 @@ void show() {
else
dialog::addSelItem(XLAT("radar"), radar_distance == RADAR_INF ? "" : fts4(radar_distance), 'r');
if(!rug::rugged)
dialog::addSelItem(XLAT("scale model"), fts(modelscale), 'm');
dialog::addSelItem(XLAT("model scale factor"), fts(modelscale), 'm');
else
dialog::addSelItem(XLAT("model iterations"), its(queueiter), 0);
dialog::addSelItem(XLAT("field of view"), fts(fov) + "°", 'f');
@ -1451,7 +1451,7 @@ void show() {
else if(uni == 'v') {
dialog::editNumber(vertex_limit, 0, 50000, 500, 3000, "vertex limit",
"The more vertices, the more accurate the Hypersian Rug model is. "
"However, 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; };
}
@ -1459,7 +1459,7 @@ void show() {
addMessage(XLAT("This just shows the 'z' coordinate of the selected point."));
else if(uni == 'm') {
dialog::editNumber(modelscale, 0.1, 10, .1, 1, "model scale factor",
"This is relevant when the native geometry is not hyperbolic. "
"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; "
"if the native geometry is hyperbolic, and scale > 1, a hyperbolic plane will be rendered as an equidistant surface. "
);

View File

@ -904,7 +904,7 @@ void showMenu() {
dialog::addSelItem(XLAT("color alpha"), its(color_alpha), 'c');
dialog::addItem(XLAT("edit the texture"), 'e');
dialog::addItem(XLAT("save the full texture image"), 'S');
dialog::addItem(XLAT("save the texture config"), 's');
dialog::addItem(XLAT("save texture config"), 's');
}
dialog::addItem(XLAT("help"), SDLK_F1);
@ -937,13 +937,13 @@ void showMenu() {
pushScreen(showMagicMenu);
else if(uni == 's' && tstate == tsActive)
dialog::openFileDialog(configname, XLAT("texture config to save:"), ".txc",
dialog::openFileDialog(configname, XLAT("save texture config"), ".txc",
[] () {
return save_textureconfig();
});
else if(uni == 'l' && tstate == tsOff)
dialog::openFileDialog(configname, XLAT("texture config to load:"), ".txc",
dialog::openFileDialog(configname, XLAT("load texture config"), ".txc",
[] () {
return load_textureconfig();
});
@ -952,7 +952,7 @@ void showMenu() {
patterns::pushChangeablePatterns();
else if(uni == 'o' && tstate == tsOff)
dialog::openFileDialog(texturename, XLAT("texture to load:"), ".png",
dialog::openFileDialog(texturename, XLAT("open PNG as texture"), ".png",
[] () {
if(readtexture() && loadTextureGL()) {
if(tstate_max == tsOff) tstate_max = tsAdjusting;
@ -1023,9 +1023,15 @@ void showMenu() {
dialog::reaction = perform_mapping;
}
else if(uni == 'S' && tstate == tsAdjusting)
saveRawTexture();
dialog::openFileDialog(texturename, XLAT("save the raw texture"), ".png",
[] () {
saveRawTexture(); return true;
});
else if(uni == 'S' && tstate == tsActive)
saveFullTexture();
dialog::openFileDialog(texturename, XLAT("save the full texture image"), ".png",
[] () {
saveFullTexture(); return true;
});
else if(uni == SDLK_F1)
gotoHelp(texturehelp);
else if(doexiton(sym, uni))