[Scummvm-git-logs] scummvm master -> 98fdc3f1071dc9b8d7d5b5fb72741fb6158fc54a
sev-
noreply at scummvm.org
Fri Dec 22 00:48:19 UTC 2023
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
e7f1afd669 TSAGE: RINGWORLD: Fix subtitle color
98fdc3f107 TSAGE: RINGWORLD: Added support for Russian CD fan-translation
Commit: e7f1afd669c13b484973cfd4a12bdf58b1602f5d
https://github.com/scummvm/scummvm/commit/e7f1afd669c13b484973cfd4a12bdf58b1602f5d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-12-22T00:54:52+01:00
Commit Message:
TSAGE: RINGWORLD: Fix subtitle color
Discovered by Russian translators who translated the game
Changed paths:
engines/tsage/ringworld/ringworld_scenes1.cpp
diff --git a/engines/tsage/ringworld/ringworld_scenes1.cpp b/engines/tsage/ringworld/ringworld_scenes1.cpp
index 431bd34cf8b..c5998b2db16 100644
--- a/engines/tsage/ringworld/ringworld_scenes1.cpp
+++ b/engines/tsage/ringworld/ringworld_scenes1.cpp
@@ -2826,7 +2826,7 @@ void Scene95::Action1::signal() {
break;
case 5:
SceneItem::display(95, 4, SET_Y, 45, SET_FONT, 2,
- SET_BG_COLOR, -1, SET_EXT_BGCOLOR, 35, SET_WIDTH, 200,
+ SET_BG_COLOR, -1, SET_EXT_BGCOLOR, 13, SET_WIDTH, 200,
SET_KEEP_ONSCREEN, 1, LIST_END);
setDelay(240);
break;
Commit: 98fdc3f1071dc9b8d7d5b5fb72741fb6158fc54a
https://github.com/scummvm/scummvm/commit/98fdc3f1071dc9b8d7d5b5fb72741fb6158fc54a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-12-22T01:44:33+01:00
Commit Message:
TSAGE: RINGWORLD: Added support for Russian CD fan-translation
Changed paths:
NEWS.md
engines/tsage/core.cpp
engines/tsage/detection_tables.h
engines/tsage/ringworld/ringworld_dialogs.cpp
engines/tsage/ringworld/ringworld_logic.cpp
engines/tsage/ringworld/ringworld_logic.h
engines/tsage/ringworld/ringworld_scenes1.cpp
engines/tsage/ringworld/ringworld_scenes10.cpp
engines/tsage/ringworld/ringworld_scenes2.cpp
engines/tsage/ringworld/ringworld_scenes5.cpp
engines/tsage/ringworld/ringworld_scenes8.cpp
engines/tsage/scenes.cpp
engines/tsage/staticres.cpp
engines/tsage/staticres.h
diff --git a/NEWS.md b/NEWS.md
index baad4f6ea6a..815af3d2688 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,7 +1,13 @@
For a more comprehensive changelog of the latest experimental code, see:
https://github.com/scummvm/scummvm/commits/
-#### 2.8.0 (XXXX-XX-XX)
+#### 2.9.0 (XXXX-XX-XX)
+
+ TsAGE:
+ - Added support for Russian CD fan-translation.
+
+
+#### 2.8.0 (2023-12-30)
New games:
- Added support for macOS versions of Syberia and Syberia II.
diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp
index a01a8dc9783..3456faa76e8 100644
--- a/engines/tsage/core.cpp
+++ b/engines/tsage/core.cpp
@@ -1621,6 +1621,24 @@ void SceneItem::doAction(int action) {
msg = ESP_DEFAULT_SCENE_HOTSPOT;
break;
}
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ switch ((int)action) {
+ case CURSOR_LOOK:
+ msg = RUS_LOOK_SCENE_HOTSPOT;
+ break;
+ case CURSOR_USE:
+ msg = RUS_USE_SCENE_HOTSPOT;
+ break;
+ case CURSOR_TALK:
+ msg = RUS_TALK_SCENE_HOTSPOT;
+ break;
+ case 0x1000:
+ msg = RUS_SPECIAL_SCENE_HOTSPOT;
+ break;
+ default:
+ msg = RUS_DEFAULT_SCENE_HOTSPOT;
+ break;
+ }
} else {
switch ((int)action) {
case CURSOR_LOOK:
@@ -4515,6 +4533,8 @@ void SceneHandler::dispatch() {
if (err.getCode() != Common::kNoError) {
if (g_vm->getLanguage() == Common::ES_ESP) {
GUIErrorMessage(ESP_SAVE_ERROR_MSG);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ GUIErrorMessage(ESP_SAVE_ERROR_MSG);
} else {
GUIErrorMessage(SAVE_ERROR_MSG);
}
diff --git a/engines/tsage/detection_tables.h b/engines/tsage/detection_tables.h
index 6e998111432..6fb99544f07 100644
--- a/engines/tsage/detection_tables.h
+++ b/engines/tsage/detection_tables.h
@@ -53,6 +53,20 @@ static const tSageGameDescription gameDescriptions[] = {
GType_Ringworld,
GF_FLOPPY | GF_ALT_REGIONS
},
+ // Ringworld Russian CD fan translation V1.0
+ {
+ {
+ "ringworld",
+ "CD",
+ AD_ENTRY1s("ring.rlb", "f36a3ecd7ec297d00c739e3004100c1b", 38761907),
+ Common::RU_RUS,
+ Common::kPlatformDOS,
+ ADGF_CD,
+ GUIO2(GUIO_NOSPEECH, GUIO_NOSFX)
+ },
+ GType_Ringworld,
+ GF_CD | GF_ALT_REGIONS
+ },
// Ringworld English Floppy version
{
{
diff --git a/engines/tsage/ringworld/ringworld_dialogs.cpp b/engines/tsage/ringworld/ringworld_dialogs.cpp
index 36bb43588a1..1ca7f0222b4 100644
--- a/engines/tsage/ringworld/ringworld_dialogs.cpp
+++ b/engines/tsage/ringworld/ringworld_dialogs.cpp
@@ -226,6 +226,8 @@ void OptionsDialog::show() {
int rc;
if (g_vm->getLanguage() == Common::ES_ESP) {
rc = MessageDialog::show(ESP_QUIT_CONFIRM_1_MSG, ESP_CANCEL_BTN_STRING, ESP_QUIT_BTN_STRING);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ rc = MessageDialog::show(RUS_QUIT_CONFIRM_MSG, RUS_CANCEL_BTN_STRING, RUS_QUIT_BTN_STRING);
} else {
rc = MessageDialog::show(QUIT_CONFIRM_MSG, CANCEL_BTN_STRING, QUIT_BTN_STRING);
}
@@ -260,6 +262,14 @@ OptionsDialog::OptionsDialog() {
_btnQuit.setText(ESP_QUIT_BTN_STRING);
_btnSound.setText(ESP_SOUND_BTN_STRING);
_btnResume.setText(ESP_RESUME_BTN_STRING);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ _gfxMessage.set(RUS_OPTIONS_MSG, 140, ALIGN_LEFT);
+ _btnRestore.setText(RUS_RESTORE_BTN_STRING);
+ _btnSave.setText(RUS_SAVE_BTN_STRING);
+ _btnRestart.setText(RUS_RESTART_BTN_STRING);
+ _btnQuit.setText(RUS_QUIT_BTN_STRING);
+ _btnSound.setText(RUS_SOUND_BTN_STRING);
+ _btnResume.setText(RUS_RESUME_BTN_STRING);
} else {
_gfxMessage.set(OPTIONS_MSG, 140, ALIGN_LEFT);
_btnRestore.setText(RESTORE_BTN_STRING);
@@ -320,6 +330,8 @@ void InventoryDialog::show() {
if (itemCount == 0) {
if (g_vm->getLanguage() == Common::ES_ESP) {
MessageDialog::show(ESP_INV_EMPTY_MSG, ESP_OK_BTN_STRING);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ MessageDialog::show(RUS_INV_EMPTY_MSG, RUS_OK_BTN_STRING);
} else {
MessageDialog::show(INV_EMPTY_MSG, OK_BTN_STRING);
}
@@ -385,6 +397,9 @@ InventoryDialog::InventoryDialog() {
if (g_vm->getLanguage() == Common::ES_ESP) {
_btnOk.setText(ESP_OK_BTN_STRING);
_btnLook.setText(ESP_LOOK_BTN_STRING);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ _btnOk.setText(RUS_OK_BTN_STRING);
+ _btnLook.setText(RUS_LOOK_BTN_STRING);
} else {
_btnOk.setText(OK_BTN_STRING);
_btnLook.setText(LOOK_BTN_STRING);
@@ -457,6 +472,16 @@ void InventoryDialog::execute() {
lookFlag = 0;
g_globals->_events.setCursor(CURSOR_WALK);
}
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ if (_btnLook._message == RUS_LOOK_BTN_STRING) {
+ _btnLook._message = RUS_PICK_BTN_STRING;
+ lookFlag = 1;
+ g_globals->_events.setCursor(CURSOR_LOOK);
+ } else {
+ _btnLook._message = RUS_LOOK_BTN_STRING;
+ lookFlag = 0;
+ g_globals->_events.setCursor(CURSOR_WALK);
+ }
} else {
if (_btnLook._message == LOOK_BTN_STRING) {
_btnLook._message = PICK_BTN_STRING;
diff --git a/engines/tsage/ringworld/ringworld_logic.cpp b/engines/tsage/ringworld/ringworld_logic.cpp
index 328c18981ab..8e54361896a 100644
--- a/engines/tsage/ringworld/ringworld_logic.cpp
+++ b/engines/tsage/ringworld/ringworld_logic.cpp
@@ -351,39 +351,40 @@ void SceneArea::synchronize(Serializer &s) {
RingworldInvObjectList::RingworldInvObjectList() :
_ESP(g_vm->getLanguage() == Common::ES_ESP),
- _stunner(2280, 1, 2, OBJECT_STUNNER, _ESP ? "Tu paralizador." : "This is your stunner."),
- _scanner(1, 1, 3, OBJECT_SCANNER, _ESP ? "Una unidad combinada de esc\240ner y comunicaciones." : "A combination scanner comm unit."),
- _stasisBox(5200, 1, 4, OBJECT_STASIS_BOX, _ESP ? "Una caja est\240sica." : "A stasis box."),
- _infoDisk(40, 1, 1, OBJECT_INFODISK, _ESP ? "El infodisk que le cogiste al asesino." : "The infodisk you took from the assassin."),
- _stasisNegator(0, 2, 2, OBJECT_STASIS_NEGATOR, _ESP ? "El negador de campos est\240sicos." : "The stasis field negator."),
- _keyDevice(4250, 1, 6, OBJECT_KEY_DEVICE, _ESP ? "Una llave magn\202tica." : "A magnetic key device."),
- _medkit(2280, 1, 7, OBJECT_MEDKIT, _ESP ? "Tu botiqu\241n." : "Your medkit."),
- _ladder(4100, 1, 8, OBJECT_LADDER, _ESP ? "La escalera del jefe." : "The chief's ladder."),
- _rope(4150, 1, 9, OBJECT_ROPE, _ESP ? "La cuerda del jefe." : "The chief's rope."),
- _key(7700, 1, 11, OBJECT_KEY, _ESP ? "Una llave." : "A key."),
- _translator(7700, 1, 13, OBJECT_TRANSLATOR, _ESP ? "La caja traductora delfiniana." : "The dolphin translator box."),
- _ale(2150, 1, 10, OBJECT_ALE, _ESP ? "Una botella de cerveza." : "A bottle of ale."),
- _paper(7700, 1, 12, OBJECT_PAPER, _ESP ? "Un trozo de papel con los n\243meros 2,4, y 3 escritos en \202l." : "A slip of paper with the numbers 2,4, and 3 written on it."),
- _waldos(0, 1, 14, OBJECT_WALDOS, _ESP ? "Un par de brazos de la sonda averiada." : "A pair of waldos from the ruined probe."),
- _stasisBox2(8100, 1, 4, OBJECT_STASIS_BOX2, _ESP ? "Una caja est\240sica." : "A stasis box."),
- _ring(8100, 2, 5, OBJECT_RING, _ESP ? "El anillo que te envi\242 Louis Wu." : "This is a signet ring sent to you by Louis Wu."),
- _cloak(9850, 2, 6, OBJECT_CLOAK, _ESP ? "Una t\243nica de seda fina." : "A fine silk cloak."),
- _tunic(9450, 2, 7, OBJECT_TUNIC, _ESP ? "La t\243nica manchada del patriarca." : "The patriarch's soiled tunic."),
- _candle(9500, 2, 8, OBJECT_CANDLE, _ESP ? "Una vela de sebo." : "A tallow candle."),
- _straw(9400, 2, 9, OBJECT_STRAW, _ESP ? "Paja limpia y seca." : "Clean, dry straw."),
- _scimitar(9850, 1, 18, OBJECT_SCIMITAR, _ESP ? "La cimitarra del armario del Patriarca." : "A scimitar from the Patriarch's closet."),
- _sword(9850, 1, 17, OBJECT_SWORD, _ESP ? "La espada corta del armario del Patriarca." : "A short sword from the Patriarch's closet."),
- _helmet(9500, 2, 4, OBJECT_HELMET, _ESP ? "Un extra\244o yelmo." : "Some type of helmet."),
- _items(4300, 2, 10, OBJECT_ITEMS, _ESP ? "Dos interesantes objetos de la nave Tnuctipun." : "Two interesting items from the Tnuctipun vessel."),
- _concentrator(4300, 2, 11, OBJECT_CONCENTRATOR, _ESP ? "El concentrador antimateria Tnuctipun contenido en un campo est\240sico." : "The Tnuctipun anti-matter concentrator contained in a stasis field."),
- _nullifier(5200, 2, 12, OBJECT_NULLIFIER, _ESP ? "Un anulador de ondas neuronales." : "A purported neural wave nullifier."),
- _peg(4045, 2, 16, OBJECT_PEG, _ESP ? "Una clavija con un s\241mbolo." : "A peg with a symbol."),
- _vial(5100, 2, 17, OBJECT_VIAL, _ESP ? "Un frasco con la droga antiferomonas de los murci\202lagos." : "A vial of the bat creatures anti-pheromone drug."),
- _jacket(9850, 3, 1, OBJECT_JACKET, _ESP ? "Una elegante chaqueta." : "A natty padded jacket."),
- _tunic2(9850, 3, 2, OBJECT_TUNIC2, _ESP ? "Una t\243nica muy ligera." : "A very hairy tunic."),
- _bone(5300, 3, 5, OBJECT_BONE, _ESP ? "Un hueso muy afilado." : "A very sharp bone."),
- _jar(7700, 3, 4, OBJECT_JAR, _ESP ? "Un frasco lleno de una sustancia verde." : "An jar filled with a green substance."),
- _emptyJar(7700, 3, 3, OBJECT_EMPTY_JAR, _ESP ? "Un frasco vac\241o." : "An empty jar.") {
+ _RUS(g_vm->getLanguage() == Common::RU_RUS),
+ _stunner(2280, 1, 2, OBJECT_STUNNER, _ESP ? "Tu paralizador." : _RUS ? "\x82\xA0\xE8 \xE1\xE2\xA0\xAD\xAD\xA5\xE0." : "This is your stunner."), // ÐÐ°Ñ ÑÑаннеÑ.
+ _scanner(1, 1, 3, OBJECT_SCANNER, _ESP ? "Una unidad combinada de esc\240ner y comunicaciones." : _RUS ? "\x91\xAA\xA0\xAD\xA5\xE0\x2D\xAA\xAE\xAC\xAC\xE3\xAD\xA8\xAA\xA0\xE2\xAE\xE0." : "A combination scanner comm unit."), // СканеÑ-коммÑникаÑоÑ.
+ _stasisBox(5200, 1, 4, OBJECT_STASIS_BOX, _ESP ? "Una caja est\240sica." : _RUS ? "\x8A\xAE\xAD\xE2\xA5\xA9\xAD\xA5\xE0." : "A stasis box."), // ÐонÑейнеÑ.
+ _infoDisk(40, 1, 1, OBJECT_INFODISK, _ESP ? "El infodisk que le cogiste al asesino." : _RUS ? "\x88\xA7\xEA\xEF\xE2\xEB\xA9 \xE3 \xAA\xA8\xAB\xAB\xA5\xE0\xA0 \xA8\xAD\xE4\xAE\xA4\xA8\xE1\xAA." : "The infodisk you took from the assassin."), // ÐзÑÑÑÑй Ñ ÐºÐ¸Ð»Ð»ÐµÑа инÑодиÑк.
+ _stasisNegator(0, 2, 2, OBJECT_STASIS_NEGATOR, _ESP ? "El negador de campos est\240sicos." : _RUS ? "\x88\xAD\xA2\xA5\xE0\xE2\xAE\xE0 \xE1\xE2\xA0\xA7\xA8\xE1\x2D\xAF\xAE\xAB\xEF." : "The stasis field negator."), // ÐнвеÑÑÐ¾Ñ ÑÑазиÑ-полÑ.
+ _keyDevice(4250, 1, 6, OBJECT_KEY_DEVICE, _ESP ? "Una llave magn\202tica." : _RUS ? "\x8C\xA0\xA3\xAD\xA8\xE2\xAD\xEB\xA9 \xAA\xAB\xEE\xE7." : "A magnetic key device."), // ÐагниÑнÑй клÑÑ.
+ _medkit(2280, 1, 7, OBJECT_MEDKIT, _ESP ? "Tu botiqu\241n." : _RUS ? "\x80\xAF\xE2\xA5\xE7\xAA\xA0." : "Your medkit."), // ÐпÑеÑка.
+ _ladder(4100, 1, 8, OBJECT_LADDER, _ESP ? "La escalera del jefe." : _RUS ? "\x8B\xA5\xE1\xE2\xAD\xA8\xE6\xA0 \xA2\xAE\xA6\xA4\xEF." : "The chief's ladder."), // ÐеÑÑниÑа вождÑ.
+ _rope(4150, 1, 9, OBJECT_ROPE, _ESP ? "La cuerda del jefe." : _RUS ? "\x82\xA5\xE0\xF1\xA2\xAA\xA0 \xA2\xAE\xA6\xA4\xEF." : "The chief's rope."), // ÐеÑÑвка вождÑ.
+ _key(7700, 1, 11, OBJECT_KEY, _ESP ? "Una llave." : _RUS ? "\x8A\xAB\xEE\xE7." : "A key."), // ÐлÑÑ.
+ _translator(7700, 1, 13, OBJECT_TRANSLATOR, _ESP ? "La caja traductora delfiniana." : _RUS ? "\x8F\xA5\xE0\xA5\xA2\xAE\xA4\xE7\xA8\xAA \xE1 \xA4\xA5\xAB\xEC\xE4\xA8\xAD\xEC\xA5\xA3\xAE." : "The dolphin translator box."), // ÐеÑеводÑик Ñ Ð´ÐµÐ»ÑÑинÑего.
+ _ale(2150, 1, 10, OBJECT_ALE, _ESP ? "Una botella de cerveza." : _RUS ? "\x81\xE3\xE2\xEB\xAB\xAA\xA0 \xED\xAB\xEF." : "A bottle of ale."), // ÐÑÑÑлка ÑлÑ.
+ _paper(7700, 1, 12, OBJECT_PAPER, _ESP ? "Un trozo de papel con los n\243meros 2,4, y 3 escritos en \202l." : _RUS ? "\x8D\xA0 \xAA\xAB\xAE\xE7\xAA\xA5 \xA1\xE3\xAC\xA0\xA3\xA8 \xAD\xA0\xE7\xA5\xE0\xE2\xA0\xAD\xEB \xE6\xA8\xE4\xE0\xEB 2, 4, 3." : "A slip of paper with the numbers 2,4, and 3 written on it."), // Ðа клоÑке бÑмаги наÑеÑÑÐ°Ð½Ñ ÑиÑÑÑ 2, 4, 3.
+ _waldos(0, 1, 14, OBJECT_WALDOS, _ESP ? "Un par de brazos de la sonda averiada." : _RUS ? "\x8C\xA0\xAD\xA8\xAF\xE3\xAB\xEF\xE2\xAE\xE0\xEB \xE1\xAE \xE1\xAB\xAE\xAC\xA0\xAD\xAD\xAE\xA3\xAE \xA7\xAE\xAD\xA4\xA0." : "A pair of waldos from the ruined probe."), // ÐанипÑлÑÑоÑÑ Ñо Ñломанного зонда.
+ _stasisBox2(8100, 1, 4, OBJECT_STASIS_BOX2, _ESP ? "Una caja est\240sica." : _RUS ? "\x8A\xAE\xAD\xE2\xA5\xA9\xAD\xA5\xE0." : "A stasis box."), // ÐонÑейнеÑ.
+ _ring(8100, 2, 5, OBJECT_RING, _ESP ? "El anillo que te envi\242 Louis Wu." : _RUS ? "\x9D\xE2\xAE\xE2 \xAF\xA5\xE0\xE1\xE2\xA5\xAD\xEC \xA2\xEB \xAF\xAE\xAB\xE3\xE7\xA8\xAB\xA8 \xAE\xE2 \x8B\xE3\xA8\xE1\xA0 \x82\xE3." : "This is a signet ring sent to you by Louis Wu."), // ÐÑÐ¾Ñ Ð¿ÐµÑÑÑÐµÐ½Ñ Ð²Ñ Ð¿Ð¾Ð»ÑÑили Ð¾Ñ ÐÑиÑа ÐÑ.
+ _cloak(9850, 2, 6, OBJECT_CLOAK, _ESP ? "Una t\243nica de seda fina." : _RUS ? "\x98\xF1\xAB\xAA\xAE\xA2\xA0\xEF \xE2\xE3\xAD\xA8\xAA\xA0." : "A fine silk cloak."), // ШÑÐ»ÐºÐ¾Ð²Ð°Ñ ÑÑника.
+ _tunic(9450, 2, 7, OBJECT_TUNIC, _ESP ? "La t\243nica manchada del patriarca." : _RUS ? "\x83\xE0\xEF\xA7\xAD\xA0\xEF \xE2\xE3\xAD\xA8\xAA\xA0 \x8F\xA0\xE2\xE0\xA8\xA0\xE0\xE5\xA0." : "The patriarch's soiled tunic."), // ÐÑÑÐ·Ð½Ð°Ñ ÑÑника ÐаÑÑиаÑÑ
а.
+ _candle(9500, 2, 8, OBJECT_CANDLE, _ESP ? "Una vela de sebo." : _RUS ? "\x91\xA0\xAB\xEC\xAD\xA0\xEF \xE1\xA2\xA5\xE7\xA0." : "A tallow candle."), // СалÑÐ½Ð°Ñ ÑвеÑа.
+ _straw(9400, 2, 9, OBJECT_STRAW, _ESP ? "Paja limpia y seca." : _RUS ? "\x91\xE3\xE5\xA0\xEF \xA8 \xE7\xA8\xE1\xE2\xA0\xEF." : "Clean, dry straw."), // СÑÑ
Ð°Ñ Ð¸ ÑиÑÑаÑ.
+ _scimitar(9850, 1, 18, OBJECT_SCIMITAR, _ESP ? "La cimitarra del armario del Patriarca." : _RUS ? "\x91\xAA\xA8\xAC\xA8\xE2\xA0\xE0 \xA8\xA7 \xE8\xAA\xA0\xE4\xA0 \x8F\xA0\xE2\xE0\xA8\xA0\xE0\xE5\xA0." : "A scimitar from the Patriarch's closet."), // СкимиÑÐ°Ñ Ð¸Ð· ÑкаÑа ÐаÑÑиаÑÑ
а.
+ _sword(9850, 1, 17, OBJECT_SWORD, _ESP ? "La espada corta del armario del Patriarca." : _RUS ? "\x8A\xAE\xE0\xAE\xE2\xAA\xA8\xA9 \xAC\xA5\xE7 \xA8\xA7 \xE8\xAA\xA0\xE4\xA0 \x8F\xA0\xE2\xE0\xA8\xA0\xE0\xE5\xA0." : "A short sword from the Patriarch's closet."), // ÐоÑоÑкий Ð¼ÐµÑ Ð¸Ð· ÑкаÑа ÐаÑÑиаÑÑ
а.
+ _helmet(9500, 2, 4, OBJECT_HELMET, _ESP ? "Un extra\244o yelmo." : _RUS ? "\x91\xE2\xE0\xA0\xAD\xAD\xEB\xA9 \xE8\xAB\xA5\xAC." : "Some type of helmet."), // СÑÑаннÑй Ñлем.
+ _items(4300, 2, 10, OBJECT_ITEMS, _ESP ? "Dos interesantes objetos de la nave Tnuctipun." : _RUS ? "\x8B\xEE\xA1\xAE\xAF\xEB\xE2\xAD\xEB\xA5 \xA2\xA5\xE9\xA8\xE6\xEB \xE1 \xAA\xAE\xE0\xA0\xA1\xAB\xEF \xE2\xAD\xE3\xAA\xE2\xA8\xAF\xE3\xAD\xAE\xA2." : "Two interesting items from the Tnuctipun vessel."), // ÐÑбопÑÑнÑе веÑиÑÑ Ñ ÐºÐ¾ÑÐ°Ð±Ð»Ñ ÑнÑкÑипÑнов.
+ _concentrator(4300, 2, 11, OBJECT_CONCENTRATOR, _ESP ? "El concentrador antimateria Tnuctipun contenido en un campo est\240sico." : _RUS ? "\x8A\xAE\xAD\xE6\xA5\xAD\xE2\xE0\xA0\xE2\xAE\xE0 \xA0\xAD\xE2\xA8\xA2\xA5\xE9\xA5\xE1\xE2\xA2\xA0 \xA2 \xE1\xE2\xA0\xA7\xA8\xE1\xAD\xAE\xAC \xAF\xAE\xAB\xA5." : "The Tnuctipun anti-matter concentrator contained in a stasis field."), // ÐонÑенÑÑаÑÐ¾Ñ Ð°Ð½ÑивеÑеÑÑва в ÑÑазиÑном поле.
+ _nullifier(5200, 2, 12, OBJECT_NULLIFIER, _ESP ? "Un anulador de ondas neuronales." : _RUS ? "\x82\xE0\xAE\xA4\xA5 \xA1\xEB \xAD\xA5\xA2\xE0\xA0\xAB\xEC\xAD\xEB\xA9 \xAD\xA5\xA9\xE2\xE0\xA0\xAB\xA8\xA7\xA0\xE2\xAE\xE0." : "A purported neural wave nullifier."), // ÐÑоде Ð±Ñ Ð½ÐµÐ²ÑалÑнÑй нейÑÑализаÑоÑ.
+ _peg(4045, 2, 16, OBJECT_PEG, _ESP ? "Una clavija con un s\241mbolo." : _RUS ? "\x8A\xAE\xAB\xEB\xE8\xA5\xAA \xE1 \xE1\xA8\xAC\xA2\xAE\xAB\xAE\xAC." : "A peg with a symbol."), // ÐолÑÑек Ñ Ñимволом.
+ _vial(5100, 2, 17, OBJECT_VIAL, _ESP ? "Un frasco con la droga antiferomonas de los murci\202lagos." : _RUS ? "\x8F\xE3\xA7\xEB\xE0\xF1\xAA \xE1 \xA0\xAD\xE2\xA8\xE4\xA5\xE0\xAE\xAC\xAE\xAD\xAE\xAC." : "A vial of the bat creatures anti-pheromone drug."), // ÐÑзÑÑÑк Ñ Ð°Ð½ÑиÑеÑомоном.
+ _jacket(9850, 3, 1, OBJECT_JACKET, _ESP ? "Una elegante chaqueta." : _RUS ? "\x93\xE2\xA5\xAF\xAB\xF1\xAD\xAD\xA0\xEF \xE2\xE3\xAD\xA8\xAA\xA0." : "A natty padded jacket."), // УÑеплÑÐ½Ð½Ð°Ñ ÑÑника.
+ _tunic2(9850, 3, 2, OBJECT_TUNIC2, _ESP ? "Una t\243nica muy ligera." : _RUS ? "\x8F\xE3\xE8\xA8\xE1\xE2\xA0\xEF \xE2\xE3\xAD\xA8\xAA\xA0." : "A very hairy tunic."), // ÐÑÑиÑÑÐ°Ñ ÑÑника.
+ _bone(5300, 3, 5, OBJECT_BONE, _ESP ? "Un hueso muy afilado." : _RUS ? "\x82\xAE\xE1\xE2\xE0\xA0\xEF \xAA\xAE\xE1\xE2\xEC." : "A very sharp bone."), // ÐоÑÑÑÐ°Ñ ÐºÐ¾ÑÑÑ.
+ _jar(7700, 3, 4, OBJECT_JAR, _ESP ? "Un frasco lleno de una sustancia verde." : _RUS ? "\x91\xAE\xE1\xE3\xA4 \xE1 \xA7\xA5\xAB\xF1\xAD\xAE\xA9 \xE1\xE3\xA1\xE1\xE2\xA0\xAD\xE6\xA8\xA5\xA9." : "An jar filled with a green substance."), // СоÑÑд Ñ Ð·ÐµÐ»Ñной ÑÑбÑÑанÑией.
+ _emptyJar(7700, 3, 3, OBJECT_EMPTY_JAR, _ESP ? "Un frasco vac\241o." : _RUS ? "\x8F\xE3\xE1\xE2\xAE\xA9 \xE1\xAE\xE1\xE3\xA4." : "An empty jar.") { // ÐÑÑÑой ÑоÑÑд.
// Add the items to the list
_itemList.push_back(&_stunner);
@@ -523,6 +524,8 @@ void RingworldGame::endGame(int resNum, int lineNum) {
int rc;
if (g_vm->getLanguage() == Common::ES_ESP) {
rc = MessageDialog::show(msg, ESP_QUIT_BTN_STRING, ESP_RESTART_BTN_2_STRING);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ rc = MessageDialog::show(msg, RUS_QUIT_BTN_STRING, RUS_RESTART_BTN_STRING);
} else {
rc = MessageDialog::show(msg, QUIT_BTN_STRING, RESTART_BTN_STRING);
}
@@ -540,6 +543,8 @@ void RingworldGame::endGame(int resNum, int lineNum) {
int rc;
if (g_vm->getLanguage() == Common::ES_ESP) {
rc = MessageDialog::show(msg, ESP_RESTART_BTN_2_STRING, ESP_RESTORE_BTN_STRING);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ rc = MessageDialog::show(msg, RUS_RESTART_BTN_STRING, RUS_RESTORE_BTN_STRING);
} else {
rc = MessageDialog::show(msg, RESTART_BTN_STRING, RESTORE_BTN_STRING);
}
@@ -564,6 +569,8 @@ void RingworldGame::processEvent(Event &event) {
// F1 - Help
if (g_vm->getLanguage() == Common::ES_ESP) {
MessageDialog::show(ESP_HELP_MSG, ESP_OK_BTN_STRING);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ MessageDialog::show(RUS_HELP_MSG, RUS_OK_BTN_STRING);
} else {
MessageDialog::show(HELP_MSG, OK_BTN_STRING);
}
@@ -597,6 +604,8 @@ void RingworldGame::processEvent(Event &event) {
GfxDialog::setPalette();
if (g_vm->getLanguage() == Common::ES_ESP) {
MessageDialog::show(ESP_GAME_PAUSED_MSG, ESP_CONTINUE_BTN_STRING);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ MessageDialog::show(RUS_GAME_PAUSED_MSG, RUS_CONTINUE_BTN_STRING);
} else {
MessageDialog::show(GAME_PAUSED_MSG, CONTINUE_BTN_STRING);
}
diff --git a/engines/tsage/ringworld/ringworld_logic.h b/engines/tsage/ringworld/ringworld_logic.h
index 8c068b7973e..6117fa425ec 100644
--- a/engines/tsage/ringworld/ringworld_logic.h
+++ b/engines/tsage/ringworld/ringworld_logic.h
@@ -105,6 +105,7 @@ public:
class RingworldInvObjectList : public InvObjectList {
private:
bool _ESP;
+ bool _RUS;
public:
InvObject _stunner;
InvObject _scanner;
diff --git a/engines/tsage/ringworld/ringworld_scenes1.cpp b/engines/tsage/ringworld/ringworld_scenes1.cpp
index c5998b2db16..882e4694ea3 100644
--- a/engines/tsage/ringworld/ringworld_scenes1.cpp
+++ b/engines/tsage/ringworld/ringworld_scenes1.cpp
@@ -2479,6 +2479,8 @@ void Scene60::signal() {
if (g_vm->getLanguage() == Common::ES_ESP) {
_gfxButton.setText(ESP_EXIT_MSG);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ _gfxButton.setText(RUS_EXIT_MSG);
} else {
_gfxButton.setText(EXIT_MSG);
}
@@ -2916,6 +2918,8 @@ void Scene6100::Action1::signal() {
case 0:
if (g_vm->getLanguage() == Common::ES_ESP) {
scene->showMessage(ESP_SCENE6100_CAREFUL, 13, this);
+ } if (g_vm->getLanguage() == Common::RU_RUS) {
+ scene->showMessage(RUS_SCENE6100_CAREFUL, 13, this);
} else {
scene->showMessage(SCENE6100_CAREFUL, 13, this);
}
@@ -2923,6 +2927,8 @@ void Scene6100::Action1::signal() {
case 1:
if (g_vm->getLanguage() == Common::ES_ESP) {
scene->showMessage(ESP_SCENE6100_TOUGHER, 35, this);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ scene->showMessage(RUS_SCENE6100_TOUGHER, 35, this);
} else {
scene->showMessage(SCENE6100_TOUGHER, 35, this);
}
@@ -2943,6 +2949,8 @@ void Scene6100::Action2::signal() {
case 0:
if (g_vm->getLanguage() == Common::ES_ESP) {
scene->showMessage(ESP_SCENE6100_ONE_MORE_HIT, 13, this);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ scene->showMessage(RUS_SCENE6100_ONE_MORE_HIT, 13, this);
} else {
scene->showMessage(SCENE6100_ONE_MORE_HIT, 13, this);
}
@@ -2950,6 +2958,8 @@ void Scene6100::Action2::signal() {
case 1:
if (g_vm->getLanguage() == Common::ES_ESP) {
scene->showMessage(ESP_SCENE6100_DOING_BEST, 35, this);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ scene->showMessage(RUS_SCENE6100_DOING_BEST, 35, this);
} else {
scene->showMessage(SCENE6100_DOING_BEST, 35, this);
}
@@ -2991,6 +3001,8 @@ void Scene6100::Action3::signal() {
case 2:
if (g_vm->getLanguage() == Common::ES_ESP) {
scene->showMessage(ESP_SCENE6100_REPAIR, 7, this);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ scene->showMessage(RUS_SCENE6100_REPAIR, 7, this);
} else {
scene->showMessage(SCENE6100_REPAIR, 7, this);
}
@@ -3018,6 +3030,8 @@ void Scene6100::Action4::signal() {
case 0:
if (g_vm->getLanguage() == Common::ES_ESP) {
scene->showMessage(ESP_SCENE6100_ROCKY_AREA, 13, this);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ scene->showMessage(RUS_SCENE6100_ROCKY_AREA, 13, this);
} else {
scene->showMessage(SCENE6100_ROCKY_AREA, 13, this);
}
@@ -3025,6 +3039,8 @@ void Scene6100::Action4::signal() {
case 1:
if (g_vm->getLanguage() == Common::ES_ESP) {
scene->showMessage(ESP_SCENE6100_REPLY, 35, this);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ scene->showMessage(RUS_SCENE6100_REPLY, 35, this);
} else {
scene->showMessage(SCENE6100_REPLY, 35, this);
}
@@ -3156,6 +3172,8 @@ void Scene6100::GetBoxAction::signal() {
case 1: {
if (g_vm->getLanguage() == Common::ES_ESP) {
scene->showMessage(ESP_SCENE6100_TAKE_CONTROLS, 35, this);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ scene->showMessage(RUS_SCENE6100_TAKE_CONTROLS, 35, this);
} else {
scene->showMessage(SCENE6100_TAKE_CONTROLS, 35, this);
}
@@ -3170,6 +3188,8 @@ void Scene6100::GetBoxAction::signal() {
scene->_probe._percent = 4;
if (g_vm->getLanguage() == Common::ES_ESP) {
scene->showMessage(ESP_SCENE6100_SURPRISE, 13, this);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ scene->showMessage(RUS_SCENE6100_SURPRISE, 13, this);
} else {
scene->showMessage(SCENE6100_SURPRISE, 13, this);
}
@@ -3177,6 +3197,8 @@ void Scene6100::GetBoxAction::signal() {
case 3:
if (g_vm->getLanguage() == Common::ES_ESP) {
scene->showMessage(ESP_SCENE6100_SWEAT, 35, this);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ scene->showMessage(RUS_SCENE6100_SWEAT, 35, this);
} else {
scene->showMessage(SCENE6100_SWEAT, 35, this);
}
@@ -3184,6 +3206,8 @@ void Scene6100::GetBoxAction::signal() {
case 4:
if (g_vm->getLanguage() == Common::ES_ESP) {
scene->showMessage(ESP_SCENE6100_VERY_WELL, 13, this);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ scene->showMessage(RUS_SCENE6100_VERY_WELL, 13, this);
} else {
scene->showMessage(SCENE6100_VERY_WELL, 13, this);
}
diff --git a/engines/tsage/ringworld/ringworld_scenes10.cpp b/engines/tsage/ringworld/ringworld_scenes10.cpp
index f8a5bc31b34..f33667a810b 100644
--- a/engines/tsage/ringworld/ringworld_scenes10.cpp
+++ b/engines/tsage/ringworld/ringworld_scenes10.cpp
@@ -1244,6 +1244,8 @@ void Scene9700::signal() {
case 9702:
if (g_vm->getLanguage() == Common::ES_ESP) {
_gfxButton1.setText(ESP_EXIT_MSG);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ _gfxButton1.setText(RUS_EXIT_MSG);
} else {
_gfxButton1.setText(EXIT_MSG);
}
diff --git a/engines/tsage/ringworld/ringworld_scenes2.cpp b/engines/tsage/ringworld/ringworld_scenes2.cpp
index cac054eb476..9799250d1d9 100644
--- a/engines/tsage/ringworld/ringworld_scenes2.cpp
+++ b/engines/tsage/ringworld/ringworld_scenes2.cpp
@@ -130,6 +130,8 @@ void Scene1000::Action3::signal() {
int rc;
if (g_vm->getLanguage() == Common::ES_ESP) {
rc = MessageDialog::show2(ESP_WATCH_INTRO_MSG, ESP_START_PLAY_BTN_STRING, ESP_INTRODUCTION_BTN_STRING);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ rc = MessageDialog::show2(RUS_WATCH_INTRO_MSG, RUS_START_PLAY_BTN_STRING, RUS_INTRODUCTION_BTN_STRING);
} else {
rc = MessageDialog::show2(WATCH_INTRO_MSG, START_PLAY_BTN_STRING, INTRODUCTION_BTN_STRING);
}
diff --git a/engines/tsage/ringworld/ringworld_scenes5.cpp b/engines/tsage/ringworld/ringworld_scenes5.cpp
index 933f8e2d5e3..4c692f3e55a 100644
--- a/engines/tsage/ringworld/ringworld_scenes5.cpp
+++ b/engines/tsage/ringworld/ringworld_scenes5.cpp
@@ -4297,6 +4297,8 @@ void Scene4300::signal() {
if (g_vm->getLanguage() == Common::ES_ESP) {
_gfxButton.setText(ESP_EXIT_MSG);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ _gfxButton.setText(RUS_EXIT_MSG);
} else {
_gfxButton.setText(EXIT_MSG);
}
diff --git a/engines/tsage/ringworld/ringworld_scenes8.cpp b/engines/tsage/ringworld/ringworld_scenes8.cpp
index 1721b35d3b2..405b4949eb6 100644
--- a/engines/tsage/ringworld/ringworld_scenes8.cpp
+++ b/engines/tsage/ringworld/ringworld_scenes8.cpp
@@ -2139,6 +2139,8 @@ void Scene7700::Object8::doAction(int action) {
if (g_vm->getLanguage() == Common::ES_ESP) {
scene->_gfxButton.setText(ESP_EXIT_MSG);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ scene->_gfxButton.setText(RUS_EXIT_MSG);
} else {
scene->_gfxButton.setText(EXIT_MSG);
}
@@ -2156,6 +2158,8 @@ void Scene7700::Object8::doAction(int action) {
if (g_vm->getLanguage() == Common::ES_ESP) {
scene->_gfxButton.setText(ESP_EXIT_MSG);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ scene->_gfxButton.setText(RUS_EXIT_MSG);
} else {
scene->_gfxButton.setText(EXIT_MSG);
}
diff --git a/engines/tsage/scenes.cpp b/engines/tsage/scenes.cpp
index 17181c5edaa..b3f9d8bfd03 100644
--- a/engines/tsage/scenes.cpp
+++ b/engines/tsage/scenes.cpp
@@ -573,6 +573,8 @@ void Game::restartGame() {
else {
rc = MessageDialog::show(BlueForce::ESP_RESTART_MSG, ESP_CANCEL_BTN_STRING, BlueForce::ESP_RESTART_BTN_2_STRING);
}
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ rc = MessageDialog::show(TsAGE::Ringworld::RUS_RESTART_MSG, RUS_CANCEL_BTN_STRING, TsAGE::Ringworld::RUS_RESTART_BTN_STRING);
} else {
rc = MessageDialog::show(RESTART_MSG, CANCEL_BTN_STRING, RESTART_BTN_STRING);
}
@@ -584,6 +586,8 @@ void Game::saveGame() {
if (!g_vm->canSaveGameStateCurrently())
if (g_vm->getLanguage() == Common::ES_ESP) {
MessageDialog::show(ESP_SAVING_NOT_ALLOWED_MSG, ESP_OK_BTN_STRING);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ MessageDialog::show(RUS_SAVING_NOT_ALLOWED_MSG, RUS_OK_BTN_STRING);
} else {
MessageDialog::show(SAVING_NOT_ALLOWED_MSG, OK_BTN_STRING);
}
@@ -597,6 +601,8 @@ void Game::restoreGame() {
if (!g_vm->canLoadGameStateCurrently())
if (g_vm->getLanguage() == Common::ES_ESP) {
MessageDialog::show(ESP_RESTORING_NOT_ALLOWED_MSG, ESP_OK_BTN_STRING);
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ MessageDialog::show(RUS_RESTORING_NOT_ALLOWED_MSG, RUS_OK_BTN_STRING);
} else {
MessageDialog::show(RESTORING_NOT_ALLOWED_MSG, OK_BTN_STRING);
}
@@ -615,6 +621,8 @@ void Game::quitGame() {
else {
rc = MessageDialog::show(BlueForce::ESP_QUIT_CONFIRM_MSG, ESP_CANCEL_BTN_STRING, BlueForce::ESP_QUIT_BTN_STRING);
}
+ } else if (g_vm->getLanguage() == Common::RU_RUS) {
+ rc = MessageDialog::show(TsAGE::Ringworld::RUS_QUIT_CONFIRM_MSG, RUS_CANCEL_BTN_STRING, TsAGE::Ringworld::RUS_QUIT_BTN_STRING);
} else {
rc = MessageDialog::show(QUIT_CONFIRM_MSG, CANCEL_BTN_STRING, QUIT_BTN_STRING);
}
diff --git a/engines/tsage/staticres.cpp b/engines/tsage/staticres.cpp
index 7b10c9952f9..b9feeb8fc7f 100644
--- a/engines/tsage/staticres.cpp
+++ b/engines/tsage/staticres.cpp
@@ -108,6 +108,25 @@ char const *const ESP_SOUND_BTN_STRING = "Sonido";
char const *const ESP_LOOK_BTN_STRING = "Mirar";
char const *const ESP_PICK_BTN_STRING = "Escoger";
+// Russian version
+char const *const RUS_LOOK_SCENE_HOTSPOT = "\x8D\xA8\xE7\xA5\xA3\xAE \xAD\xA5\xAE\xA1\xEB\xE7\xAD\xAE\xA3\xAE."; // "ÐиÑего необÑÑного."
+char const *const RUS_USE_SCENE_HOTSPOT = "\x22\x81\xA5\xE1\xAF\xAE\xAB\xA5\xA7\xAD\xAE."; // "ÐеÑполезно."
+char const *const RUS_TALK_SCENE_HOTSPOT = "\x81\xAB\xA0-\xA1\xAB\xA0."; // "Ðла-бла."
+char const *const RUS_SPECIAL_SCENE_HOTSPOT = "\x22\x8D\xA0\xA4\xAE \xA6\xA5 \xA4\xAE\xA4\xE3\xAC\xA0\xE2\xEC\xE1\xEF \xA4\xAE \xE2\xA0\xAA\xAE\xA3\xAE."; // "Ðадо же додÑмаÑÑÑÑ Ð´Ð¾ Ñакого."
+char const *const RUS_DEFAULT_SCENE_HOTSPOT = "\x81\xA5\xE1\xAF\xAE\xAB\xA5\xA7\xAD\xAE."; // "ÐеÑполезно."
+char const *const RUS_SAVE_ERROR_MSG = "\x8E\xE8\xA8\xA1\xAA\xA0 \xA7\xA0\xA3\xE0\xE3\xA7\xAA\xA8 \xE1\xAE\xE5\xE0\xA0\xAD\xF1\xAD\xAD\xAE\xA9 \xA8\xA3\xE0\xEB!"; // "ÐÑибка загÑÑзки ÑоÑ
ÑанÑнной игÑÑ!"
+char const *const RUS_SAVING_NOT_ALLOWED_MSG = "\x91\xA5\xA9\xE7\xA0\xE1 \xA7\xA0\xAF\xA8\xE1\xEC \xAD\xA5\xA2\xAE\xA7\xAC\xAE\xA6\xAD."; // "СейÑÐ°Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð°."
+char const *const RUS_RESTORING_NOT_ALLOWED_MSG = "\x87\xA0\xA3\xE0\xE3\xA7\xAA\xA0 \xAD\xA5\xA2\xAE\xA7\xAC\xAE\xA6\xAD\xA0."; // "ÐагÑÑзка невозможна."
+char const *const RUS_INV_EMPTY_MSG = "\x22\x88\xAD\xA2\xA5\xAD\xE2\xA0\xE0\xEC \xAF\xE3\xE1\xE2."; // "ÐнвенÑаÑÑ Ð¿ÑÑÑ."
+
+char const *const RUS_OK_BTN_STRING = " \x4F\x6B "; // " Ok "
+char const *const RUS_CONTINUE_BTN_STRING = "\x84\xA0\xAB\xA5\xA5"; // "Ðалее"
+char const *const RUS_CANCEL_BTN_STRING = "\x8E\xE2\xAC\xA5\xAD\xA0"; // "ÐÑмена"
+char const *const RUS_RESTORE_BTN_STRING = "\x91\xE7\xA8\xE2\xA0\xE2\xEC"; // "СÑиÑаÑÑ"
+char const *const RUS_SOUND_BTN_STRING = " \x87\xA2\xE3\xAA "; // " ÐвÑк "
+char const *const RUS_LOOK_BTN_STRING = "\x83\xAB\xA0\xA7"; // "Ðлаз"
+char const *const RUS_PICK_BTN_STRING = "\x90\xE3\xAA\xA0"; // "Ð Ñка"
+
namespace Ringworld {
// Dialog resources
@@ -182,6 +201,36 @@ char const *const ESP_SCENE6100_SWEAT = "Los humanos sudan, los Kzinti mueven co
char const *const ESP_SCENE6100_VERY_WELL = "Muy bien. Recoger\202 la caja est\240sica y traer\202 la \
sonda. Espera en la bodega de carga.";
+// Russian version
+char const *const RUS_QUIT_CONFIRM_MSG = "\x82\xEB \xE5\xAE\xE2\xA8\xE2\xA5 \xA2\xEB\xA9\xE2\xA8 \xA8\xA7 \xA8\xA3\xE0\xEB?"; // "ÐÑ Ñ
оÑиÑе вÑйÑи из игÑÑ?"
+char const *const RUS_RESTART_MSG = "\x82\xEB \xE5\xAE\xE2\xA8\xE2\xA5 \xAD\xA0\xE7\xA0\xE2\xEC \xA7\xA0\xAD\xAE\xA2\xAE?"; // "ÐÑ Ñ
оÑиÑе наÑаÑÑ Ð·Ð°Ð½Ð¾Ð²Ð¾?"
+char const *const RUS_GAME_PAUSED_MSG = " \x8F\xA0\xE3\xA7\xA0. "; // " ÐаÑза. ";
+char const *const RUS_QUIT_BTN_STRING = " \x82\xEB\xA9\xE2\xA8"; // " ÐÑйÑи";
+char const *const RUS_RESTART_BTN_STRING = "\x87\xA0\xAD\xAE\xA2\xAE"; // "Ðаново";
+char const *const RUS_SAVE_BTN_STRING = " \x87\xA0\xAF\xA8\xE1\xEC "; // " ÐапиÑÑ ";
+char const *const RUS_RESUME_BTN_STRING = " \x8D\xA0\xA7\xA0\xA4 \xA2\r\xA8\xA3\xE0\xE3"; // " Ðазад в\rигÑÑ";
+
+// Dialog resources
+char const *const RUS_HELP_MSG = "\x8C\xA8\xE0\x2D\x8A\xAE\xAB\xEC\xE6\xAE\r\x8C\xA5\xE1\xE2\xEC \x8F\xA0\xE2\xE0\xA8\xA0\xE0\xE5\xA0\x14\r\x82\xA5\xE0\xE1\xA8\xEF ScummVM\r\r\x01 \x83\xAE\xE0\xEF\xE7\xA8\xA5 \xAA\xAB\xA0\xA2\xA8\xE8\xA8\rF2 - \x87\xA2\xE3\xAA\rF3 - \x82\xEB\xA9\xE2\xA8\rF4 - \x87\xA0\xAD\xAE\xA2\xAE\rF5 - \x87\xA0\xAF\xA8\xE1\xEC\rF7 - \x91\xE7\xA8\xE2\xA0\xE2\xEC\rF10 - \x8F\xA0\xE3\xA7\xA0"; // "ÐиÑ-ÐолÑÑо\rÐеÑÑÑ ÐаÑÑиаÑÑ
а\x14\rÐеÑÑÐ¸Ñ ScummVM\r\r\x01 ÐоÑÑÑие клавиÑи\rF2 - ÐвÑк\rF3 - ÐÑйÑи\rF4 - Ðаново\rF5 - ÐапиÑÑ\rF6 - СÑиÑаÑÑ\rF7 - ÐаÑза"
+char const *const RUS_WATCH_INTRO_MSG = " \x8F\xAE\xE1\xAC\xAE\xE2\xE0\xA5\xE2\xEC \xA2\xE1\xE2\xE3\xAF\xAB\xA5\xAD\xA8\xA5? "; // " ÐоÑмоÑÑеÑÑ Ð²ÑÑÑпление? "
+char const *const RUS_START_PLAY_BTN_STRING = " \x8D\xA0\xE7\xA0\xE2\xEC "; // " ÐаÑаÑÑ ";
+char const *const RUS_INTRODUCTION_BTN_STRING = " \x82\xE1\xE2\xE3\xAF\xAB\xA5\xAD\xA8\xA5 "; // " ÐÑÑÑпление ";
+char const *const RUS_OPTIONS_MSG = "\x01\x8D\xA0\xE1\xE2\xE0\xAE\xA9\xAA\xA8"; // "\x01ÐаÑÑÑойки"
+
+// Scene specific resources
+char const *const RUS_EXIT_MSG = " \x82\xEB\xA9\xE2\xA8 "; // " ÐÑйÑи "
+char const *const RUS_SCENE6100_CAREFUL = "\x8E\xE1\xE2\xAE\xE0\xAE\xA6\xAD\xAE\x21 \x87\xAE\xAD\xA4 \xAC\xAE\xA6\xA5\xE2 \xAD\xA5 \xA2\xEB\xA4\xA5\xE0\xA6\xA0\xE2\xEC."; // "ÐÑÑоÑожно! Ðонд Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ вÑдеÑжаÑÑ."
+char const *const RUS_SCENE6100_TOUGHER = "\x9D\xA9\x21 \x9D\xE2\xAE \xE1\xAB\xAE\xA6\xAD\xA5\xA5, \xE7\xA5\xAC \xAA\xA0\xA6\xA5\xE2\xE1\xEF!"; // "Ðй! ÐÑо Ñложнее, Ñем кажеÑÑÑ!"
+char const *const RUS_SCENE6100_ONE_MORE_HIT = "\x8D\xA5 \xA7\xA5\xA2\xA0\xA9 \xAF\xAE \xE1\xE2\xAE\xE0\xAE\xAD\xA0\xAC. \x85\xE9\xF1 \xAE\xA4\xA8\xAD \xE2\xA0\xAA\xAE\xA9 \xE3\xA4\xA0\xE0, \xA8 \xA7\xAE\xAD\xA4 \xAC\xAE\xA6\xA5\xE2 \xE0\xA0\xA7\xA2\xA0\xAB\xA8\xE2\xEC\xE1\xEF."; // "Ðе зевай по ÑÑоÑонам. ÐÑÑ Ð¾Ð´Ð¸Ð½ Ñакой ÑдаÑ, и зонд Ð¼Ð¾Ð¶ÐµÑ ÑазвалиÑÑÑÑ."
+char const *const RUS_SCENE6100_DOING_BEST = "\x91\xE2\xA0\xE0\xA0\xEE\xE1\xEC. \x8D\xA0\xA4\xA5\xEE\xE1\xEC, \xED\xE2\xA0 \xE8\xE3\xE2\xAA\xA0 \xA2\xEB\xA4\xA5\xE0\xA6\xA8\xE2!"; // "СÑаÑаÑÑÑ. ÐадеÑÑÑ, ÑÑа ÑÑÑка вÑдеÑжиÑ!"
+char const *const RUS_SCENE6100_REPAIR = "\r\r\x8A\xE3\xA8\xAD \xA8 \x88\xE9\xE3\xE9\xA8\xA9 \xE7\xA8\xAD\xEF\xE2 \xA7\xAE\xAD\xA4..."; // "\r\rÐÑин и ÐÑÑÑий ÑинÑÑ Ð·Ð¾Ð½Ð´..."
+char const *const RUS_SCENE6100_ROCKY_AREA = "\x8F\xE0\xEF\xAC\xAE \xAF\xAE \xAA\xE3\xE0\xE1\xE3 \xA4\xAE\xAB\xA6\xA5\xAD \xA1\xEB\xE2\xEC \xE1\xAA\xA0\xAB\xA8\xE1\xE2\xEB\xA9 \xE3\xE7\xA0\xE1\xE2\xAE\xAA. \x82\xA8\xA4\xA8\xE8\xEC \xA5\xA3\xAE?"; // "ÐÑÑмо по кÑÑÑÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ ÑкалиÑÑÑй ÑÑаÑÑок. ÐидиÑÑ ÐµÐ³Ð¾?"
+char const *const RUS_SCENE6100_REPLY = "\x84\xA0. \x8E\xE1\xE2\xA0\xAB\xAE\xE1\xEC \xAE\xA1\xEA\xA5\xE5\xA0\xE2\xEC \xAB\xE3\xE7\xA8 \xAF\xAE\xA4\xE1\xAE\xAB\xAD\xA5\xE7\xAD\xA8\xAA\xAE\xA2."; // "Ðа. ÐÑÑалоÑÑ Ð¾Ð±ÑеÑ
аÑÑ Ð»ÑÑи подÑолнеÑников."
+char const *const RUS_SCENE6100_TAKE_CONTROLS = "\x8F\xA5\xE0\xA5\xE5\xA2\xA0\xE2\xA8\x2D\xAA\xA0 \xE3\xAF\xE0\xA0\xA2\xAB\xA5\xAD\xA8\xA5, \x88\xE9\xE3\xE9\xA8\xA9. \x93 \xAC\xA5\xAD\xEF \xE0\xE3\xAA\xA8 \xA2\xE1\xAF\xAE\xE2\xA5\xAB\xA8."; // "ÐеÑеÑ
ваÑи-ка ÑпÑавление, ÐÑÑÑий. У Ð¼ÐµÐ½Ñ ÑÑки вÑпоÑели."
+char const *const RUS_SCENE6100_SURPRISE = "\x92\xEB \xE3\xA4\xA8\xA2\xAB\xEF\xA5\xE8\xEC \xAC\xA5\xAD\xEF. \x8A\xE3\xA8\xAD. \x8C\xAD\xA5 \xAA\xA0\xA7\xA0\xAB\xAE\xE1\xEC, \xE2\xEB \xAD\xA5 \xE2\xA0\xAA\xAE\xA9 \xE0\xA0\xA7\xAC\xA0\xA7\xAD\xEF."; // "Ð¢Ñ ÑдивлÑеÑÑ Ð¼ÐµÐ½Ñ, ÐÑин. Ðне казалоÑÑ, ÑÑ Ð½Ðµ Ñакой ÑазмазнÑ."
+char const *const RUS_SCENE6100_SWEAT = "\x8B\xEE\xA4\xA8 \xAF\xAE\xE2\xA5\xEE\xE2, \xAA\xA7\xA8\xAD\xEB \xAF\xAE\xA4\xF1\xE0\xA3\xA8\xA2\xA0\xEE\xE2 \xE5\xA2\xAE\xE1\xE2\xAE\xAC. \x82 \xE7\xF1\xAC \xE0\xA0\xA7\xAD\xA8\xE6\xA0?"; // "ÐÑди поÑеÑÑ, ÐºÐ·Ð¸Ð½Ñ Ð¿Ð¾Ð´ÑÑгиваÑÑ Ñ
воÑÑом. Ð ÑÑм ÑазниÑа?"
+char const *const RUS_SCENE6100_VERY_WELL = "\x8B\xA0\xA4\xAD\xAE. \x9F \xA7\xA0\xA1\xA5\xE0\xE3 \xE1\xE2\xA0\xA7\xA8\xE1\x2D\xAA\xAE\xAD\xE2\xA5\xA9\xAD\xA5\xE0 \xA8 \xA2\xA5\xE0\xAD\xE3 \xA7\xAE\xAD\xA4 \xAD\xA0 \xA1\xA0\xA7\xE3. \x86\xA4\xA8 \xA2 \xA3\xA0\xE0\xA0\xA6\xAD\xAE\xAC \xAE\xE2\xE1\xA5\xAA\xA5."; // "Ðадно. Я забеÑÑ ÑÑазиÑ-конÑÐµÐ¹Ð½ÐµÑ Ð¸ веÑÐ½Ñ Ð·Ð¾Ð½Ð´ на базÑ. Ðди в гаÑажном оÑÑеке."
+
} // End of namespace Ringworld
namespace BlueForce {
diff --git a/engines/tsage/staticres.h b/engines/tsage/staticres.h
index 076a2cfa262..5a4b2dbd521 100644
--- a/engines/tsage/staticres.h
+++ b/engines/tsage/staticres.h
@@ -76,6 +76,27 @@ extern char const *const ESP_SOUND_BTN_STRING;
extern char const *const ESP_LOOK_BTN_STRING;
extern char const *const ESP_PICK_BTN_STRING;
+// Russian version
+extern char const *const RUS_LOOK_SCENE_HOTSPOT;
+extern char const *const RUS_USE_SCENE_HOTSPOT;
+extern char const *const RUS_TALK_SCENE_HOTSPOT;
+extern char const *const RUS_SPECIAL_SCENE_HOTSPOT;
+extern char const *const RUS_DEFAULT_SCENE_HOTSPOT;
+extern char const *const RUS_SAVE_ERROR_MSG;
+extern char const *const RUS_SAVING_NOT_ALLOWED_MSG;
+extern char const *const RUS_RESTORING_NOT_ALLOWED_MSG;
+extern char const *const RUS_INV_EMPTY_MSG;
+
+// Dialogs
+extern char const *const RUS_OK_BTN_STRING;
+extern char const *const RUS_CONTINUE_BTN_STRING;
+extern char const *const RUS_CANCEL_BTN_STRING;
+extern char const *const RUS_RESTORE_BTN_STRING;
+extern char const *const RUS_SOUND_BTN_STRING;
+extern char const *const RUS_LOOK_BTN_STRING;
+extern char const *const RUS_PICK_BTN_STRING;
+
+
namespace Ringworld {
// Dialog resources
@@ -141,6 +162,36 @@ extern char const *const ESP_SCENE6100_SURPRISE;
extern char const *const ESP_SCENE6100_SWEAT;
extern char const *const ESP_SCENE6100_VERY_WELL;
+// Russian version
+extern char const *const RUS_QUIT_CONFIRM_MSG;
+extern char const *const RUS_RESTART_MSG;
+extern char const *const RUS_GAME_PAUSED_MSG;
+extern char const *const RUS_QUIT_BTN_STRING;
+extern char const *const RUS_RESTART_BTN_STRING;
+extern char const *const RUS_SAVE_BTN_STRING;
+extern char const *const RUS_RESUME_BTN_STRING;
+
+// Dialog resources
+extern char const *const RUS_HELP_MSG;
+extern char const *const RUS_WATCH_INTRO_MSG;
+extern char const *const RUS_START_PLAY_BTN_STRING;
+extern char const *const RUS_INTRODUCTION_BTN_STRING;
+extern char const *const RUS_OPTIONS_MSG;
+
+// Scene specific resources
+extern char const *const RUS_EXIT_MSG;
+extern char const *const RUS_SCENE6100_CAREFUL;
+extern char const *const RUS_SCENE6100_TOUGHER;
+extern char const *const RUS_SCENE6100_ONE_MORE_HIT;
+extern char const *const RUS_SCENE6100_DOING_BEST;
+extern char const *const RUS_SCENE6100_REPAIR;
+extern char const *const RUS_SCENE6100_ROCKY_AREA;
+extern char const *const RUS_SCENE6100_REPLY;
+extern char const *const RUS_SCENE6100_TAKE_CONTROLS;
+extern char const *const RUS_SCENE6100_SURPRISE;
+extern char const *const RUS_SCENE6100_SWEAT;
+extern char const *const RUS_SCENE6100_VERY_WELL;
+
} // End of namespace Ringworld
namespace BlueForce {
More information about the Scummvm-git-logs
mailing list