aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS18
-rw-r--r--README4
-rw-r--r--audio/softsynth/mt32.cpp3
-rw-r--r--backends/cloud/storage.cpp11
-rw-r--r--backends/events/androidsdl/androidsdl-events.cpp5
-rw-r--r--backends/events/sdl/sdl-events.cpp38
-rw-r--r--backends/graphics/opengl/opengl-graphics.cpp6
-rw-r--r--backends/graphics/opengl/opengl-graphics.h8
-rw-r--r--backends/platform/androidsdl/androidsdl-sdl.cpp4
-rw-r--r--base/commandLine.cpp38
-rw-r--r--base/main.cpp4
-rw-r--r--common/json.cpp2
-rw-r--r--common/module.mk1
-rw-r--r--common/osd_message_queue.cpp62
-rw-r--r--common/osd_message_queue.h72
-rw-r--r--common/stream.cpp13
-rw-r--r--common/stream.h9
-rwxr-xr-xconfigure5
-rw-r--r--devtools/create_titanic/create_titanic_dat.cpp140
-rw-r--r--devtools/create_translations/po_parser.cpp16
-rw-r--r--devtools/create_translations/po_parser.h1
-rw-r--r--dists/androidsdl/scummvm/AndroidAppSettings.cfg10
-rw-r--r--dists/androidsdl/scummvm/AndroidAppSettings.cfg.in10
-rwxr-xr-x[-rw-r--r--]dists/androidsdl/scummvm/AndroidBuild.sh9
-rwxr-xr-xdists/androidsdl/scummvm/DataBuild.sh2
-rw-r--r--doc/de/LIESMICH4
-rw-r--r--doc/de/NEUES21
-rw-r--r--engines/adl/adl.cpp11
-rw-r--r--engines/adl/adl.h2
-rw-r--r--engines/adl/adl_v2.cpp4
-rw-r--r--engines/bladerunner/actor_clues.cpp6
-rw-r--r--engines/bladerunner/bladerunner.cpp9
-rw-r--r--engines/bladerunner/light.cpp11
-rw-r--r--engines/bladerunner/scene.cpp116
-rw-r--r--engines/bladerunner/scene.h12
-rw-r--r--engines/bladerunner/scene_objects.cpp3
-rw-r--r--engines/bladerunner/script/script.cpp31
-rw-r--r--engines/bladerunner/set_effects.cpp4
-rw-r--r--engines/bladerunner/vqa_decoder.cpp8
-rw-r--r--engines/bladerunner/vqa_player.cpp8
-rw-r--r--engines/bladerunner/vqa_player.h10
-rw-r--r--engines/chewy/detection.cpp4
-rw-r--r--engines/composer/composer.cpp14
-rw-r--r--engines/composer/composer.h19
-rw-r--r--engines/composer/detection.cpp50
-rw-r--r--engines/composer/graphics.cpp65
-rw-r--r--engines/composer/graphics.h1
-rw-r--r--engines/composer/module.mk1
-rw-r--r--engines/composer/resource.cpp21
-rw-r--r--engines/composer/resource.h12
-rw-r--r--engines/composer/saveload.cpp428
-rw-r--r--engines/director/archive.cpp552
-rw-r--r--engines/director/archive.h (renamed from engines/director/resource.h)5
-rw-r--r--engines/director/cast.cpp136
-rw-r--r--engines/director/cast.h162
-rw-r--r--engines/director/director.cpp11
-rw-r--r--engines/director/frame.cpp118
-rw-r--r--engines/director/frame.h10
-rw-r--r--engines/director/images.cpp1
-rw-r--r--engines/director/lingo/lingo-code.cpp4
-rw-r--r--engines/director/lingo/lingo-the.cpp1
-rw-r--r--engines/director/module.mk1
-rw-r--r--engines/director/movie.cpp2
-rw-r--r--engines/director/movie.h2
-rw-r--r--engines/director/resource.cpp527
-rw-r--r--engines/director/score.cpp289
-rw-r--r--engines/director/score.h131
-rw-r--r--engines/director/sound.cpp2
-rw-r--r--engines/director/sprite.cpp3
-rw-r--r--engines/director/sprite.h28
-rw-r--r--engines/dm/group.cpp5
-rw-r--r--engines/fullpipe/statics.cpp2
-rw-r--r--engines/kyra/lol.h3
-rw-r--r--engines/kyra/scene_lol.cpp14
-rw-r--r--engines/kyra/timer.cpp2
-rw-r--r--engines/lab/console.cpp2
-rw-r--r--engines/mads/palette.cpp6
-rw-r--r--engines/mads/staticres.cpp2
-rw-r--r--engines/mohawk/POTFILES1
-rw-r--r--engines/mohawk/riven.cpp6
-rw-r--r--engines/mohawk/riven_external.cpp9
-rw-r--r--engines/sci/console.cpp125
-rw-r--r--engines/sci/console.h1
-rw-r--r--engines/sci/detection.cpp2
-rw-r--r--engines/sci/detection_tables.h2
-rw-r--r--engines/sci/engine/features.h11
-rw-r--r--engines/sci/engine/kernel.h1
-rw-r--r--engines/sci/engine/kernel_tables.h1
-rw-r--r--engines/sci/engine/kstring.cpp12
-rw-r--r--engines/sci/engine/kvideo.cpp5
-rw-r--r--engines/sci/engine/message.cpp12
-rw-r--r--engines/sci/engine/message.h2
-rw-r--r--engines/sci/engine/savegame.cpp25
-rw-r--r--engines/sci/engine/script_patches.cpp19
-rw-r--r--engines/sci/engine/segment.h13
-rw-r--r--engines/sci/engine/workarounds.cpp16
-rw-r--r--engines/sci/engine/workarounds.h1
-rw-r--r--engines/sci/graphics/celobj32.cpp28
-rw-r--r--engines/sci/graphics/lists32.h7
-rw-r--r--engines/sci/graphics/palette32.h1
-rw-r--r--engines/sci/graphics/screen.cpp5
-rw-r--r--engines/sci/graphics/text32.cpp2
-rw-r--r--engines/sci/graphics/transitions32.cpp2
-rw-r--r--engines/sci/graphics/video32.cpp161
-rw-r--r--engines/sci/graphics/video32.h18
-rw-r--r--engines/sci/parser/vocabulary.cpp2
-rw-r--r--engines/sci/resource.cpp32
-rw-r--r--engines/sci/resource.h1
-rw-r--r--engines/sci/sci.cpp4
-rw-r--r--engines/scumm/sound.cpp2
-rw-r--r--engines/titanic/carry/arm.cpp5
-rw-r--r--engines/titanic/carry/carry.cpp23
-rw-r--r--engines/titanic/carry/carry_parrot.cpp5
-rw-r--r--engines/titanic/carry/central_core.cpp2
-rw-r--r--engines/titanic/carry/chicken.cpp8
-rw-r--r--engines/titanic/carry/hose.cpp3
-rw-r--r--engines/titanic/carry/perch.cpp2
-rw-r--r--engines/titanic/carry/plug_in.cpp2
-rw-r--r--engines/titanic/continue_save_dialog.cpp7
-rw-r--r--engines/titanic/core/background.cpp2
-rw-r--r--engines/titanic/core/game_object.cpp56
-rw-r--r--engines/titanic/core/game_object.h28
-rw-r--r--engines/titanic/core/project_item.cpp17
-rw-r--r--engines/titanic/core/project_item.h2
-rw-r--r--engines/titanic/core/saveable_object.cpp14
-rw-r--r--engines/titanic/core/saveable_object.h6
-rw-r--r--engines/titanic/core/view_item.cpp2
-rw-r--r--engines/titanic/events.cpp60
-rw-r--r--engines/titanic/events.h44
-rw-r--r--engines/titanic/game/cdrom.cpp3
-rw-r--r--engines/titanic/game/cdrom_tray.cpp1
-rw-r--r--engines/titanic/game/computer.cpp2
-rw-r--r--engines/titanic/game/maitred/maitred_prod_receptor.cpp4
-rw-r--r--engines/titanic/game/pet/pet.cpp2
-rw-r--r--engines/titanic/game/pet/pet_lift.cpp4
-rw-r--r--engines/titanic/game/pet/pet_position.cpp4
-rw-r--r--engines/titanic/game/pet/pet_transport.cpp6
-rw-r--r--engines/titanic/game/pet/pet_transport.h1
-rw-r--r--engines/titanic/game/service_elevator_window.cpp41
-rw-r--r--engines/titanic/game/service_elevator_window.h8
-rw-r--r--engines/titanic/game/television.cpp4
-rw-r--r--engines/titanic/game/transport/gondolier.cpp2
-rw-r--r--engines/titanic/game/transport/lift_indicator.cpp34
-rw-r--r--engines/titanic/game/transport/lift_indicator.h6
-rw-r--r--engines/titanic/game/transport/service_elevator.cpp15
-rw-r--r--engines/titanic/game_location.h5
-rw-r--r--engines/titanic/game_manager.cpp5
-rw-r--r--engines/titanic/game_state.cpp21
-rw-r--r--engines/titanic/game_state.h4
-rw-r--r--engines/titanic/input_handler.cpp6
-rw-r--r--engines/titanic/input_translator.cpp7
-rw-r--r--engines/titanic/input_translator.h1
-rw-r--r--engines/titanic/main_game_window.cpp82
-rw-r--r--engines/titanic/main_game_window.h22
-rw-r--r--engines/titanic/messages/messages.cpp13
-rw-r--r--engines/titanic/messages/messages.h18
-rw-r--r--engines/titanic/messages/mouse_messages.h14
-rw-r--r--engines/titanic/moves/exit_lift.cpp4
-rw-r--r--engines/titanic/moves/restricted_move.cpp6
-rw-r--r--engines/titanic/npcs/barbot.cpp2
-rw-r--r--engines/titanic/npcs/bellbot.cpp22
-rw-r--r--engines/titanic/npcs/bilge_succubus.cpp2
-rw-r--r--engines/titanic/npcs/deskbot.cpp45
-rw-r--r--engines/titanic/npcs/deskbot.h2
-rw-r--r--engines/titanic/npcs/doorbot.cpp105
-rw-r--r--engines/titanic/npcs/doorbot.h2
-rw-r--r--engines/titanic/npcs/liftbot.cpp23
-rw-r--r--engines/titanic/npcs/maitre_d.cpp2
-rw-r--r--engines/titanic/npcs/parrot.cpp14
-rw-r--r--engines/titanic/npcs/succubus.cpp2
-rw-r--r--engines/titanic/npcs/titania.cpp2
-rw-r--r--engines/titanic/npcs/true_talk_npc.cpp31
-rw-r--r--engines/titanic/npcs/true_talk_npc.h6
-rw-r--r--engines/titanic/pet_control/pet_control.cpp39
-rw-r--r--engines/titanic/pet_control/pet_control.h8
-rw-r--r--engines/titanic/pet_control/pet_conversations.cpp52
-rw-r--r--engines/titanic/pet_control/pet_conversations.h1
-rw-r--r--engines/titanic/pet_control/pet_drag_chev.cpp22
-rw-r--r--engines/titanic/pet_control/pet_gfx_element.cpp6
-rw-r--r--engines/titanic/pet_control/pet_glyphs.cpp6
-rw-r--r--engines/titanic/pet_control/pet_inventory.cpp2
-rw-r--r--engines/titanic/pet_control/pet_inventory_glyphs.cpp6
-rw-r--r--engines/titanic/pet_control/pet_load_save.cpp2
-rw-r--r--engines/titanic/pet_control/pet_real_life.h5
-rw-r--r--engines/titanic/pet_control/pet_remote.cpp12
-rw-r--r--engines/titanic/pet_control/pet_remote_glyphs.cpp113
-rw-r--r--engines/titanic/pet_control/pet_remote_glyphs.h44
-rw-r--r--engines/titanic/pet_control/pet_rooms.cpp22
-rw-r--r--engines/titanic/pet_control/pet_rooms.h5
-rw-r--r--engines/titanic/pet_control/pet_rooms_glyphs.cpp90
-rw-r--r--engines/titanic/pet_control/pet_rooms_glyphs.h29
-rw-r--r--engines/titanic/pet_control/pet_save.cpp13
-rw-r--r--engines/titanic/pet_control/pet_save.h5
-rw-r--r--engines/titanic/pet_control/pet_section.cpp1
-rw-r--r--engines/titanic/pet_control/pet_section.h1
-rw-r--r--engines/titanic/pet_control/pet_text.cpp32
-rw-r--r--engines/titanic/pet_control/pet_text.h17
-rw-r--r--engines/titanic/room_flags.cpp135
-rw-r--r--engines/titanic/room_flags.h11
-rw-r--r--engines/titanic/sound/qmixer.cpp59
-rw-r--r--engines/titanic/sound/qmixer.h14
-rw-r--r--engines/titanic/sound/sound.cpp3
-rw-r--r--engines/titanic/sound/sound.h2
-rw-r--r--engines/titanic/sound/sound_manager.cpp6
-rw-r--r--engines/titanic/sound/sound_manager.h8
-rw-r--r--engines/titanic/sound/wave_file.cpp10
-rw-r--r--engines/titanic/sound/wave_file.h5
-rw-r--r--engines/titanic/star_control/star_control_sub13.cpp2
-rw-r--r--engines/titanic/support/avi_surface.cpp33
-rw-r--r--engines/titanic/support/avi_surface.h7
-rw-r--r--engines/titanic/support/font.cpp35
-rw-r--r--engines/titanic/support/mouse_cursor.cpp76
-rw-r--r--engines/titanic/support/mouse_cursor.h48
-rw-r--r--engines/titanic/support/movie.cpp9
-rw-r--r--engines/titanic/support/screen_manager.cpp5
-rw-r--r--engines/titanic/support/simple_file.cpp9
-rw-r--r--engines/titanic/support/strings.cpp2
-rw-r--r--engines/titanic/support/strings.h53
-rw-r--r--engines/titanic/support/time_event_info.cpp4
-rw-r--r--engines/titanic/support/transparency_surface.cpp15
-rw-r--r--engines/titanic/support/transparency_surface.h14
-rw-r--r--engines/titanic/support/video_surface.cpp4
-rw-r--r--engines/titanic/titanic.cpp15
-rw-r--r--engines/titanic/titanic.h1
-rw-r--r--engines/titanic/true_talk/barbot_script.cpp4
-rw-r--r--engines/titanic/true_talk/bellbot_script.cpp132
-rw-r--r--engines/titanic/true_talk/deskbot_script.cpp89
-rw-r--r--engines/titanic/true_talk/deskbot_script.h8
-rw-r--r--engines/titanic/true_talk/doorbot_script.cpp6
-rw-r--r--engines/titanic/true_talk/liftbot_script.cpp13
-rw-r--r--engines/titanic/true_talk/maitred_script.cpp22
-rw-r--r--engines/titanic/true_talk/parrot_script.cpp2
-rw-r--r--engines/titanic/true_talk/script_support.cpp4
-rw-r--r--engines/titanic/true_talk/script_support.h9
-rw-r--r--engines/titanic/true_talk/succubus_script.cpp2
-rw-r--r--engines/titanic/true_talk/title_engine.cpp3
-rw-r--r--engines/titanic/true_talk/true_talk_manager.cpp11
-rw-r--r--engines/titanic/true_talk/tt_concept.cpp14
-rw-r--r--engines/titanic/true_talk/tt_concept_node.cpp3
-rw-r--r--engines/titanic/true_talk/tt_npc_script.cpp13
-rw-r--r--engines/titanic/true_talk/tt_parser.cpp122
-rw-r--r--engines/titanic/true_talk/tt_quotes_tree.cpp2
-rw-r--r--engines/titanic/true_talk/tt_response.cpp6
-rw-r--r--engines/titanic/true_talk/tt_response.h6
-rw-r--r--engines/titanic/true_talk/tt_script_base.cpp2
-rw-r--r--engines/titanic/true_talk/tt_sentence.cpp12
-rw-r--r--engines/titanic/true_talk/tt_sentence.h4
-rw-r--r--engines/titanic/true_talk/tt_string.cpp6
-rw-r--r--engines/titanic/true_talk/tt_vocab.cpp5
-rw-r--r--graphics/fonts/bdf.cpp4
-rw-r--r--gui/ThemeEngine.h2
-rw-r--r--gui/editgamedialog.cpp74
-rw-r--r--gui/editgamedialog.h2
-rw-r--r--gui/launcher.cpp51
-rw-r--r--gui/launcher.h5
-rw-r--r--gui/options.cpp780
-rw-r--r--gui/options.h16
-rw-r--r--gui/themebrowser.cpp1
-rw-r--r--gui/themebrowser.h2
-rw-r--r--gui/themes/default.inc6
-rw-r--r--gui/themes/scummclassic.zipbin126628 -> 126739 bytes
-rw-r--r--gui/themes/scummclassic/THEMERC2
-rw-r--r--gui/themes/scummclassic/classic_layout.stx3
-rw-r--r--gui/themes/scummclassic/classic_layout_lowres.stx4
-rw-r--r--gui/themes/scummmodern.zipbin1646168 -> 1646279 bytes
-rw-r--r--gui/themes/scummmodern/THEMERC2
-rw-r--r--gui/themes/scummmodern/scummmodern_layout.stx3
-rw-r--r--gui/themes/scummmodern/scummmodern_layout_lowres.stx4
-rw-r--r--gui/themes/translations.datbin616342 -> 619670 bytes
-rw-r--r--gui/widgets/tab.cpp6
-rw-r--r--image/codecs/msrle.cpp15
-rw-r--r--image/tga.cpp15
-rw-r--r--po/be_BY.po549
-rw-r--r--po/ca_ES.po549
-rw-r--r--po/cs_CZ.po549
-rw-r--r--po/da_DK.po549
-rw-r--r--po/de_DE.po569
-rw-r--r--po/es_ES.po549
-rw-r--r--po/eu.po549
-rw-r--r--po/fi_FI.po549
-rw-r--r--po/fr_FR.po584
-rw-r--r--po/gl_ES.po549
-rwxr-xr-x[-rw-r--r--]po/hu_HU.po563
-rw-r--r--po/it_IT.po549
-rw-r--r--po/nb_NO.po549
-rw-r--r--po/nl_NL.po582
-rw-r--r--po/nn_NO.po549
-rw-r--r--po/pl_PL.po549
-rw-r--r--po/pt_BR.po549
-rw-r--r--po/ru_RU.po579
-rw-r--r--po/scummvm.pot533
-rw-r--r--po/sv_SE.po549
-rw-r--r--po/uk_UA.po579
-rw-r--r--po/zh-Latn_CN.po549
294 files changed, 11542 insertions, 8106 deletions
diff --git a/NEWS b/NEWS
index 30b588e482..f1650f0b7e 100644
--- a/NEWS
+++ b/NEWS
@@ -2,10 +2,28 @@ For a more comprehensive changelog of the latest experimental code, see:
https://github.com/scummvm/scummvm/commits/
1.10.0 (YYYY-MM-DD)
+ General:
+ - Added a command-line option to automatically scan for supported games in
+ the current or a specified directory.
+ - Many options in GUI could be applied without closing the dialog.
+ - On-the-fly language switching was implemented.
+
+ AGOS:
+ - Fixed subtitle speed setting in the Hebrew version of Simon the Sorcerer 1.
+
+ Composer:
+ - Added save/load from General Main Menu.
1.9.1 (YYYY-MM-DD)
General:
- Added bilinear filtering option for SDL2 fullscreen mode.
+ - Fixed a bug that caused a crash in the options dialog of the GUI.
+
+ Kyra:
+ - Fixed a buffer overflow in Lands of Lore.
+
+ MADS:
+ - Fixed a bug that caused a crash after starting Rex Nebular and the Cosmic Gender Bender.
1.9.0 (2016-10-17)
New Games:
diff --git a/README b/README
index 327060ed18..3c9474f64d 100644
--- a/README
+++ b/README
@@ -1309,6 +1309,10 @@ arguments -- see the next section.
-z, --list-games Display list of supported games and exit
-t, --list-targets Display list of configured targets and exit
--list-saves=TARGET Display a list of saved games for the game (TARGET) specified
+ --auto-detect Display a list of games from current or specified
+ directory and start the first one found. Use
+ --path=PATH before--auto-detect to specify a
+ directory.
--console Enable the console window (default: enabled) (Windows only)
-c, --config=CONFIG Use alternate configuration file
diff --git a/audio/softsynth/mt32.cpp b/audio/softsynth/mt32.cpp
index d514e64fe9..aaf95b65da 100644
--- a/audio/softsynth/mt32.cpp
+++ b/audio/softsynth/mt32.cpp
@@ -42,6 +42,7 @@
#include "common/archive.h"
#include "common/textconsole.h"
#include "common/translation.h"
+#include "common/osd_message_queue.h"
#include "graphics/fontman.h"
#include "graphics/surface.h"
@@ -79,7 +80,7 @@ protected:
error("MT32emu: Init Error - Missing PCM ROM image");
}
void showLCDMessage(const char *message) {
- g_system->displayMessageOnOSD(message);
+ Common::OSDMessageQueue::instance().addMessage(message);
}
};
diff --git a/backends/cloud/storage.cpp b/backends/cloud/storage.cpp
index 4cccacf6d6..3a9ae53a43 100644
--- a/backends/cloud/storage.cpp
+++ b/backends/cloud/storage.cpp
@@ -28,6 +28,7 @@
#include "common/debug.h"
#include "common/file.h"
#include <common/translation.h>
+#include "common/osd_message_queue.h"
namespace Cloud {
@@ -207,7 +208,7 @@ void Storage::savesSyncDefaultCallback(BoolResponse response) {
if (!response.value)
warning("SavesSyncRequest called success callback with `false` argument");
- g_system->displayMessageOnOSD(_("Saved games sync complete."));
+ Common::OSDMessageQueue::instance().addMessage(_("Saved games sync complete."));
}
void Storage::savesSyncDefaultErrorCallback(Networking::ErrorResponse error) {
@@ -218,9 +219,9 @@ void Storage::savesSyncDefaultErrorCallback(Networking::ErrorResponse error) {
printErrorResponse(error);
if (error.interrupted)
- g_system->displayMessageOnOSD(_("Saved games sync was cancelled."));
+ Common::OSDMessageQueue::instance().addMessage(_("Saved games sync was cancelled."));
else
- g_system->displayMessageOnOSD(_("Saved games sync failed.\nCheck your Internet connection."));
+ Common::OSDMessageQueue::instance().addMessage(_("Saved games sync failed.\nCheck your Internet connection."));
}
///// DownloadFolderRequest-related /////
@@ -328,7 +329,7 @@ void Storage::directoryDownloadedCallback(FileArrayResponse response) {
} else {
message = _("Download complete.");
}
- g_system->displayMessageOnOSD(message.c_str());
+ Common::OSDMessageQueue::instance().addMessage(message.c_str());
}
void Storage::directoryDownloadedErrorCallback(Networking::ErrorResponse error) {
@@ -336,7 +337,7 @@ void Storage::directoryDownloadedErrorCallback(Networking::ErrorResponse error)
_downloadFolderRequest = nullptr;
_runningRequestsMutex.unlock();
- g_system->displayMessageOnOSD(_("Download failed."));
+ Common::OSDMessageQueue::instance().addMessage(_("Download failed."));
}
} // End of namespace Cloud
diff --git a/backends/events/androidsdl/androidsdl-events.cpp b/backends/events/androidsdl/androidsdl-events.cpp
index c8a730aa8e..0adcff817e 100644
--- a/backends/events/androidsdl/androidsdl-events.cpp
+++ b/backends/events/androidsdl/androidsdl-events.cpp
@@ -66,9 +66,8 @@ bool AndroidSdlEventSource::handleMouseButtonDown(SDL_Event &ev, Common::Event &
bool AndroidSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
if (false) {}
- if (ev.key.keysym.sym == SDLK_LCTRL) {
- event.type = Common::EVENT_KEYDOWN;
- event.kbd.keycode = Common::KEYCODE_F5;
+ if (ev.key.keysym.sym == SDLK_F13) {
+ event.type = Common::EVENT_MAINMENU;
return true;
} else {
// Let the events fall through if we didn't change them, this may not be the best way to
diff --git a/backends/events/sdl/sdl-events.cpp b/backends/events/sdl/sdl-events.cpp
index 7caa177819..5fb66a7ec4 100644
--- a/backends/events/sdl/sdl-events.cpp
+++ b/backends/events/sdl/sdl-events.cpp
@@ -110,13 +110,51 @@ SdlEventSource::~SdlEventSource() {
int SdlEventSource::mapKey(SDLKey sdlKey, SDLMod mod, Uint16 unicode) {
Common::KeyCode key = SDLToOSystemKeycode(sdlKey);
+ // Keep unicode in case it's regular ASCII text or in case we didn't get a valid keycode
+ //
+ // We need to use unicode in those cases, simply because SDL1.x passes us non-layout-adjusted keycodes.
+ // So unicode is the only way to get layout-adjusted keys.
+ if (unicode < 0x20) {
+ // don't use unicode, in case it's control characters
+ unicode = 0;
+ } else {
+ // Use unicode, in case keycode is invalid.
+ // Umlauts and others will set KEYCODE_INVALID on SDL2, so in such a case always keep unicode.
+ if (key != Common::KEYCODE_INVALID) {
+ // keycode is valid, check further also depending on modifiers
+ if (mod & (KMOD_CTRL | KMOD_ALT)) {
+ // Ctrl and/or Alt is active
+ //
+ // We need to restrict unicode to only up to 0x7E, because on macOS the option/alt key will switch to
+ // an alternate keyboard, which will cause us to receive Unicode characters for some keys, which are outside
+ // of the ASCII range (e.g. alt-x will get us U+2248). We need to return 'x' for alt-x, so using unicode
+ // in that case would break alt-shortcuts.
+ if (unicode > 0x7E)
+ unicode = 0; // do not allow any characters above 0x7E
+ } else {
+ // We must not restrict as much as when Ctrl/Alt-modifiers are active, otherwise
+ // we wouldn't let umlauts through for SDL1. For SDL1 umlauts may set for example KEYCODE_QUOTE, KEYCODE_MINUS, etc.
+ if (unicode > 0xFF)
+ unicode = 0; // do not allow any characters above 0xFF
+ }
+ }
+ }
+
+ // Attention:
+ // When using SDL1.x, we will get scancodes via sdlKey, that are raw scancodes, so NOT adjusted to keyboard layout/
+ // mapping. So for example for certain locales, we will get KEYCODE_y, when 'z' is pressed and so on.
+ // When using SDL2.x however, we will get scancodes based on the keyboard layout.
+
if (key >= Common::KEYCODE_F1 && key <= Common::KEYCODE_F9) {
return key - Common::KEYCODE_F1 + Common::ASCII_F1;
} else if (key >= Common::KEYCODE_KP0 && key <= Common::KEYCODE_KP9) {
+ if ((mod & KMOD_NUM) == 0)
+ return 0; // In case Num-Lock is NOT enabled, return 0 for ascii, so that directional keys on numpad work
return key - Common::KEYCODE_KP0 + '0';
} else if (key >= Common::KEYCODE_UP && key <= Common::KEYCODE_PAGEDOWN) {
return key;
} else if (unicode) {
+ // Return unicode in case it's stil set and wasn't filtered.
return unicode;
} else if (key >= 'a' && key <= 'z' && (mod & KMOD_SHIFT)) {
return key & ~0x20;
diff --git a/backends/graphics/opengl/opengl-graphics.cpp b/backends/graphics/opengl/opengl-graphics.cpp
index a0882347b5..7b41699e80 100644
--- a/backends/graphics/opengl/opengl-graphics.cpp
+++ b/backends/graphics/opengl/opengl-graphics.cpp
@@ -377,7 +377,6 @@ void OpenGLGraphicsManager::updateScreen() {
#ifdef USE_OSD
{
- Common::StackLock lock(_osdMutex);
if (_osdMessageChangeRequest) {
osdMessageUpdateSurface();
}
@@ -741,11 +740,6 @@ void OpenGLGraphicsManager::setCursorPalette(const byte *colors, uint start, uin
void OpenGLGraphicsManager::displayMessageOnOSD(const char *msg) {
#ifdef USE_OSD
- // HACK: Actually no client code should use graphics functions from
- // another thread. But the MT-32 emulator and network synchronization still do,
- // thus we need to make sure this doesn't happen while a updateScreen call is done.
- Common::StackLock lock(_osdMutex);
-
_osdMessageChangeRequest = true;
_osdMessageNextData = msg;
diff --git a/backends/graphics/opengl/opengl-graphics.h b/backends/graphics/opengl/opengl-graphics.h
index 01672f4f5c..d3f8d792ba 100644
--- a/backends/graphics/opengl/opengl-graphics.h
+++ b/backends/graphics/opengl/opengl-graphics.h
@@ -596,14 +596,6 @@ private:
kOSDIconTopMargin = 10,
kOSDIconRightMargin = 10
};
-
- /**
- * Mutex for the OSD draw calls.
- *
- * Mutex to allow displayMessageOnOSD and displayActivityIconOnOSD
- * to be used from the audio and network threads.
- */
- Common::Mutex _osdMutex;
#endif
};
diff --git a/backends/platform/androidsdl/androidsdl-sdl.cpp b/backends/platform/androidsdl/androidsdl-sdl.cpp
index 3d0429e098..d04512475a 100644
--- a/backends/platform/androidsdl/androidsdl-sdl.cpp
+++ b/backends/platform/androidsdl/androidsdl-sdl.cpp
@@ -20,6 +20,8 @@
*
*/
+#define FORBIDDEN_SYMBOL_EXCEPTION_getenv(a)
+
#include "common/config-manager.h"
#include "backends/platform/androidsdl/androidsdl-sdl.h"
@@ -36,7 +38,7 @@ void OSystem_ANDROIDSDL::initBackend() {
_graphicsManager = new AndroidSdlGraphicsManager(_eventSource, _window);
if (!ConfMan.hasKey("browser_lastpath"))
- ConfMan.set("browser_lastpath", "/storage");
+ ConfMan.set("browser_lastpath", getenv("SDCARD"));
if (!ConfMan.hasKey("gfx_mode"))
ConfMan.set("gfx_mode", "2x");
diff --git a/base/commandLine.cpp b/base/commandLine.cpp
index 558c147b96..2d7b9f2d9f 100644
--- a/base/commandLine.cpp
+++ b/base/commandLine.cpp
@@ -68,6 +68,9 @@ static const char HELP_STRING[] =
" -z, --list-games Display list of supported games and exit\n"
" -t, --list-targets Display list of configured targets and exit\n"
" --list-saves=TARGET Display a list of saved games for the game (TARGET) specified\n"
+ " --auto-detect Display a list of games from current or specified directory\n"
+ " and start the first one. Use --path=PATH before --auto-detect\n"
+ " to specify a directory.\n"
#if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__SYMBIAN32__)
" --console Enable the console window (default:enabled)\n"
#endif
@@ -402,6 +405,9 @@ Common::String parseCommandLine(Common::StringMap &settings, int argc, const cha
DO_COMMAND('z', "list-games")
END_COMMAND
+ DO_LONG_COMMAND("auto-detect")
+ END_COMMAND
+
#ifdef DETECTOR_TESTING_HACK
// HACK FIXME TODO: This command is intentionally *not* documented!
DO_LONG_COMMAND("test-detector")
@@ -771,6 +777,34 @@ static void listAudioDevices() {
}
}
+/** Display all games in the given directory, or current directory if empty */
+static bool autoDetect(Common::String path) {
+ if (path.empty())
+ path = ".";
+ //Current directory
+ Common::FSNode dir(path);
+
+ Common::FSList files;
+
+ //Collect all files from directory
+ dir.getChildren(files, Common::FSNode::kListAll);
+
+ GameList candidates(EngineMan.detectGames(files));
+ if (candidates.empty()) {
+ printf("ScummVM could not find any game in %s\n", path.c_str());
+ return false;
+ }
+
+ // Print all the candidate found
+ printf("ID Description\n");
+ printf("-------------------- ---------------------------------------------------------\n");
+ for (GameList::iterator v = candidates.begin(); v != candidates.end(); ++v) {
+ printf("%-20s %s\n", v->gameid().c_str(), v->description().c_str());
+ }
+ // Set the active domain to the first one to start it.
+ ConfMan.setActiveDomain(candidates.begin()->gameid());
+ return true;
+}
#ifdef DETECTOR_TESTING_HACK
static void runDetectorTest() {
@@ -997,6 +1031,10 @@ bool processSettings(Common::String &command, Common::StringMap &settings, Commo
} else if (command == "help") {
printf(HELP_STRING, s_appName);
return true;
+ } else if (command == "auto-detect") {
+ // If auto-detects succeed, we want to return false so that the game is started
+ return !autoDetect(settings["path"]);
+ //return true;
}
#ifdef DETECTOR_TESTING_HACK
else if (command == "test-detector") {
diff --git a/base/main.cpp b/base/main.cpp
index 42f5910b3b..c52888a827 100644
--- a/base/main.cpp
+++ b/base/main.cpp
@@ -51,6 +51,7 @@
#include "common/textconsole.h"
#include "common/tokenizer.h"
#include "common/translation.h"
+#include "common/osd_message_queue.h"
#include "gui/gui-manager.h"
#include "gui/error.h"
@@ -477,6 +478,8 @@ extern "C" int scummvm_main(int argc, const char * const argv[]) {
g_eventRec.RegisterEventSource();
#endif
+ Common::OSDMessageQueue::instance().registerEventSource();
+
// Now as the event manager is created, setup the keymapper
setupKeymapper(system);
@@ -615,6 +618,7 @@ extern "C" int scummvm_main(int argc, const char * const argv[]) {
GUI::GuiManager::destroy();
Common::ConfigManager::destroy();
Common::DebugManager::destroy();
+ Common::OSDMessageQueue::destroy();
#ifdef ENABLE_EVENTRECORDER
GUI::EventRecorder::destroy();
#endif
diff --git a/common/json.cpp b/common/json.cpp
index f7a54d23b2..792d1967e9 100644
--- a/common/json.cpp
+++ b/common/json.cpp
@@ -980,7 +980,7 @@ String JSONValue::stringifyImpl(size_t const indentDepth) const {
ret_string = "null";
else {
char str[80];
- sprintf(str, "%lg", _numberValue);
+ sprintf(str, "%g", _numberValue);
ret_string = str;
}
break;
diff --git a/common/module.mk b/common/module.mk
index 54aa16f557..6742fef3e8 100644
--- a/common/module.mk
+++ b/common/module.mk
@@ -23,6 +23,7 @@ MODULE_OBJS := \
memorypool.o \
md5.o \
mutex.o \
+ osd_message_queue.o \
platform.o \
quicktime.o \
random.o \
diff --git a/common/osd_message_queue.cpp b/common/osd_message_queue.cpp
new file mode 100644
index 0000000000..b8abf18bb5
--- /dev/null
+++ b/common/osd_message_queue.cpp
@@ -0,0 +1,62 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/osd_message_queue.h"
+#include "common/system.h"
+
+namespace Common {
+
+DECLARE_SINGLETON(OSDMessageQueue);
+
+OSDMessageQueue::OSDMessageQueue() : _lastUpdate(0) {
+}
+
+OSDMessageQueue::~OSDMessageQueue() {
+ g_system->getEventManager()->getEventDispatcher()->unregisterSource(this);
+}
+
+void OSDMessageQueue::registerEventSource() {
+ g_system->getEventManager()->getEventDispatcher()->registerSource(this, false);
+}
+
+void OSDMessageQueue::addMessage(const char *msg) {
+ _mutex.lock();
+ _messages.push(msg);
+ _mutex.unlock();
+}
+
+bool OSDMessageQueue::pollEvent(Common::Event &event) {
+ _mutex.lock();
+ if (!_messages.empty()) {
+ uint t = g_system->getMillis();
+ if (t - _lastUpdate >= kMinimumDelay) {
+ _lastUpdate = t;
+ String msg = _messages.pop();
+ g_system->displayMessageOnOSD(msg.c_str());
+ }
+ }
+ _mutex.unlock();
+
+ return false;
+}
+
+} // End of namespace Common
diff --git a/common/osd_message_queue.h b/common/osd_message_queue.h
new file mode 100644
index 0000000000..7aa7cf4792
--- /dev/null
+++ b/common/osd_message_queue.h
@@ -0,0 +1,72 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef COMMON_OSD_MESSAGE_QUEUE_H
+#define COMMON_OSD_MESSAGE_QUEUE_H
+
+#include "common/events.h"
+#include "common/singleton.h"
+#include "common/str.h"
+#include "common/queue.h"
+#include "common/mutex.h"
+
+namespace Common {
+
+/**
+ * Queue OSD messages from any thread to be displayed by the graphic thread.
+ */
+class OSDMessageQueue : public Singleton<OSDMessageQueue>, public EventSource {
+public:
+ OSDMessageQueue();
+ ~OSDMessageQueue();
+
+ void registerEventSource();
+
+ enum {
+ kMinimumDelay = 1000 /** < Minimum delay between two OSD messages (in milliseconds) */
+ };
+
+ /**
+ * Add a message to the OSD message queue.
+ */
+ void addMessage(const char *msg);
+
+ /**
+ * Common::EventSource interface
+ *
+ * The OSDMessageQueue registers itself as an event source even if it does not
+ * actually produce events as a mean to be polled periodically by the GUI or
+ * engine code.
+ *
+ * The periodical polling is used to update the OSD messages.
+ */
+ virtual bool pollEvent(Common::Event &event) override;
+
+private:
+ Mutex _mutex;
+ Queue<String> _messages;
+ uint32 _lastUpdate;
+};
+
+} // End of namespace Common
+
+#endif
diff --git a/common/stream.cpp b/common/stream.cpp
index a8446a9086..08774312fd 100644
--- a/common/stream.cpp
+++ b/common/stream.cpp
@@ -247,6 +247,19 @@ uint32 SafeSeekableSubReadStream::read(void *dataPtr, uint32 dataSize) {
return SeekableSubReadStream::read(dataPtr, dataSize);
}
+void SeekableReadStream::hexdump(int len, int bytesPerLine, int startOffset) {
+ uint pos_ = pos();
+ uint size_ = size();
+ uint toRead = MIN<uint>(len + startOffset, size_ - pos_);
+ byte *data = (byte *)calloc(toRead, 1);
+
+ read(data, toRead);
+ Common::hexdump(data, toRead, bytesPerLine, startOffset);
+
+ free(data);
+
+ seek(pos_);
+}
#pragma mark -
diff --git a/common/stream.h b/common/stream.h
index e0ffc47d7f..30107720dc 100644
--- a/common/stream.h
+++ b/common/stream.h
@@ -514,6 +514,15 @@ public:
* err() or eos() to determine whether an exception occurred.
*/
virtual String readLine();
+
+ /**
+ * Print a hexdump of the stream while maintaing position. The number
+ * of bytes per line is customizable.
+ * @param len the length of that data
+ * @param bytesPerLine number of bytes to print per line (default: 16)
+ * @param startOffset shift the shown offsets by the starting offset (default: 0)
+ */
+ void hexdump(int len, int bytesPerLine = 16, int startOffset = 0);
};
/**
diff --git a/configure b/configure
index e5d5129117..25dd8ca7d5 100755
--- a/configure
+++ b/configure
@@ -1420,6 +1420,11 @@ androidsdl-x86)
_host_cpu=i686
_host_alias=i686-linux-android
;;
+androidsdl-x86_64)
+ _host_os=androidsdl
+ _host_cpu=x86_64
+ _host_alias=x86_64-linux-android
+ ;;
arm-riscos)
_host_os=riscos
_host_cpu=arm
diff --git a/devtools/create_titanic/create_titanic_dat.cpp b/devtools/create_titanic/create_titanic_dat.cpp
index fc9222467f..b788733002 100644
--- a/devtools/create_titanic/create_titanic_dat.cpp
+++ b/devtools/create_titanic/create_titanic_dat.cpp
@@ -416,7 +416,7 @@ static const BedheadEntry OFF_RESTING_D_WRONG[1] = {
{ "Any", "Any", "Any", "ClosedWrong", 59, 70 }
};
-static const char *const STRINGS_EN[] = {
+static const char *const STRINGS_EN[108] = {
"",
"You are standing outside the Pellerator.",
"I'm sorry, you cannot enter this pellerator at present as a bot is in the way.",
@@ -478,11 +478,62 @@ static const char *const STRINGS_EN[] = {
"Go where?",
"It would be nice if you could take that but you can't.",
"A bowl of pistachio nuts.",
- "Not a bowl of pistachio nuts."
+ "Not a bowl of pistachio nuts.",
+
+ "Sadly, it is not possible to summon the DoorBot from this location.",
+ "Sadly, it is not possible to summon the BellBot from this location.",
+ "There is no one here to talk to",
+ "Talking to ",
+ "the DoorBot",
+ "the DeskBot",
+ "a LiftBot",
+ "the Parrot",
+ "the BarBot",
+ "a ChatterBot",
+ "the BellBot",
+ "the Maitre d'Bot",
+ "a Succ-U-Bus",
+ "Unknown",
+ "The arm is already holding something.",
+ "You can't get this.",
+ "That doesn't seem to do anything.",
+ "It doesn't seem to want this.",
+ "This does not reach.",
+ "The chicken is already clean.",
+ "Succ-U-Bus auxiliary hose attachment incompatible with sliding glass cover.",
+ "This item is incorrectly calibrated.",
+ "Only First Class passengers are allowed to use the Gondoliers.",
+ "There is currently nothing available for your viewing pleasure on this channel.",
+ "Television control",
+ "Operate visual entertainment device",
+ "Operate the lights",
+ "Deploy floral enhancement",
+ "Deploy fully recumbent relaxation device",
+ "Deploy comfort workstation",
+ "Deploy minor horizontally mobile storage compartment",
+ "Deploy major semi-recumbent relaxation device",
+ "Inflate fully recumbent relaxation device ",
+ "Deploy personal maintenance hub",
+ "Deploy executive horizontal worksurface",
+ "Deploy minor semi-recumbent relaxation device",
+ "Deploy aqueous cleansing receptacle",
+ "Deploy major horizontally mobile storage compartment",
+ "Succ-U-Bus delivery system control",
+ "Navigation controller",
+ "Summon Elevator",
+ "Summon Pellerator",
+ "Go to the Bottom of the Well",
+ "Go to the Top of the Well",
+ "Go to your stateroom",
+ "Go to the Bar",
+ "Go to the Promenade Deck",
+ "Go to the Arboretum",
+ "Go to the Music Room",
+ "Go to the First Class Restaurant"
};
-static const char *const STRINGS_DE[] = {
- // TODO: Translate these to their German versions
+static const char *const STRINGS_DE[152] = {
+ // TODO: Still many strings to translate to German
"",
"Sie befinden sich vor dem Pellerator.",
"Wir bedauern, Zutritt zu diesem Pellerator ist nicht m\0xF6"
@@ -561,6 +612,57 @@ static const char *const STRINGS_DE[] = {
"Eine Schale Pistazien.",
"Keine Schale Pistazien.",
+ "Sadly, it is not possible to summon the DoorBot from this location.",
+ "Sadly, it is not possible to summon the BellBot from this location.",
+ "There is no one here to talk to",
+ "Talking to ",
+ "the DoorBot",
+ "the DeskBot",
+ "a LiftBot",
+ "the Parrot",
+ "the BarBot",
+ "a ChatterBot",
+ "the BellBot",
+ "the Maitre d'Bot",
+ "a Succ-U-Bus",
+ "Unknown"
+ "The arm is already holding something.",
+ "You can't get this.",
+ "That doesn't seem to do anything.",
+ "It doesn't seem to want this.",
+ "This does not reach.",
+ "The chicken is already clean.",
+ "Succ-U-Bus auxiliary hose attachment incompatible with sliding glass cover.",
+ "This item is incorrectly calibrated.",
+ "Only First Class passengers are allowed to use the Gondoliers.",
+ "There is currently nothing available for your viewing pleasure on this channel.",
+ "Television control",
+ "Operate visual entertainment device",
+ "Operate the lights",
+ "Deploy floral enhancement",
+ "Deploy fully recumbent relaxation device",
+ "Deploy comfort workstation",
+ "Deploy minor horizontally mobile storage compartment",
+ "Deploy major semi-recumbent relaxation device",
+ "Inflate fully recumbent relaxation device ",
+ "Deploy personal maintenance hub",
+ "Deploy executive horizontal worksurface",
+ "Deploy minor semi-recumbent relaxation device",
+ "Deploy aqueous cleansing receptacle",
+ "Deploy major horizontally mobile storage compartment",
+ "Succ-U-Bus delivery system control",
+ "Navigation controller",
+ "Summon Elevator",
+ "Summon Pellerator",
+ "Go to the Bottom of the Well",
+ "Go to the Top of the Well",
+ "Go to your stateroom",
+ "Go to the Bar",
+ "Go to the Promenade Deck",
+ "Go to the Arboretum",
+ "Go to the Music Room",
+ "Go to the First Class Restaurant"
+
"Sommer",
"Herbst",
"Winter",
@@ -779,12 +881,16 @@ void writeNumbers() {
}
void writeString(uint offset) {
- inputFile.seek(offset - FILE_DIFF[_version]);
- char c;
- do {
- c = inputFile.readByte();
- outputFile.writeByte(c);
- } while (c);
+ if (offset == 0) {
+ outputFile.writeByte(0);
+ } else {
+ inputFile.seek(offset - FILE_DIFF[_version]);
+ char c;
+ do {
+ c = inputFile.readByte();
+ outputFile.writeByte(c);
+ } while (c);
+ }
}
void writeResponseTree() {
@@ -818,7 +924,7 @@ void writeResponseTree() {
void writeSentenceEntries(const char *name, uint tableOffset) {
outputFile.seek(dataOffset);
- uint v1, v2, v9, v11, v12, v13;
+ uint v1, category, v4, v9, v11, v12, v13;
uint offset3, offset5, offset6, offset7, offset8, offset10;
for (uint idx = 0; ; ++idx) {
@@ -829,9 +935,9 @@ void writeSentenceEntries(const char *name, uint tableOffset) {
break;
// Read data fields
- v2 = inputFile.readLong();
+ category = inputFile.readLong();
offset3 = inputFile.readLong();
- /* v4 = */inputFile.readLong();
+ v4 = inputFile.readLong();
offset5 = inputFile.readLong();
offset6 = inputFile.readLong();
offset7 = inputFile.readLong();
@@ -843,9 +949,9 @@ void writeSentenceEntries(const char *name, uint tableOffset) {
v13 = inputFile.readLong();
outputFile.writeLong(v1);
- outputFile.writeLong(v2);
+ outputFile.writeLong(category);
writeString(offset3);
- outputFile.writeLong(v1);
+ outputFile.writeLong(v4);
writeString(offset5);
writeString(offset6);
writeString(offset7);
@@ -1085,8 +1191,8 @@ void writeData() {
writeStringArray("TEXT/ITEM_NAMES", ITEM_NAMES, 46);
writeStringArray("TEXT/ITEM_IDS", ITEM_IDS, 40);
writeStringArray("TEXT/ROOM_NAMES", ROOM_NAMES, 34);
- writeStringArray("TEXT/STRINGS", STRINGS_EN, 58);
- writeStringArray("TEXT/STRINGS/DE", STRINGS_DE, 104);
+ writeStringArray("TEXT/STRINGS", STRINGS_EN, 108);
+ writeStringArray("TEXT/STRINGS/DE", STRINGS_DE, 152);
const int TEXT_PHRASES[3] = { 0x61D3C8, 0x618340, 0x61B1E0 };
const int TEXT_REPLACEMENTS1[3] = { 0x61D9B0, 0x61C788, 0x61B7C8 };
const int TEXT_REPLACEMENTS2[3] = { 0x61DD20, 0x61CAF8, 0x61BB38 };
diff --git a/devtools/create_translations/po_parser.cpp b/devtools/create_translations/po_parser.cpp
index ecc3ba540c..f1ad833932 100644
--- a/devtools/create_translations/po_parser.cpp
+++ b/devtools/create_translations/po_parser.cpp
@@ -108,7 +108,7 @@ const char *PoMessageList::operator[](int index) const {
}
PoMessageEntryList::PoMessageEntryList(const char *lang) :
- _lang(NULL), _charset(NULL), _langName(NULL),
+ _lang(NULL), _charset(NULL), _langName(NULL), _langNameAlt(NULL),
_list(NULL), _size(0), _allocated(0)
{
_lang = new char[1 + strlen(lang)];
@@ -117,14 +117,15 @@ PoMessageEntryList::PoMessageEntryList(const char *lang) :
_charset = new char[1];
_charset[0] = '\0';
// Set default langName to lang
- _langName = new char[1 + strlen(lang)];
- strcpy(_langName, lang);
+ _langNameAlt = new char[1 + strlen(lang)];
+ strcpy(_langNameAlt, lang);
}
PoMessageEntryList::~PoMessageEntryList() {
delete[] _lang;
delete[] _charset;
delete[] _langName;
+ delete[] _langNameAlt;
for (int i = 0; i < _size; ++i)
delete _list[i];
delete[] _list;
@@ -134,11 +135,16 @@ void PoMessageEntryList::addMessageEntry(const char *translation, const char *me
if (*message == '\0') {
// This is the header.
// We get the charset and the language name from the translation string
- char *str = parseLine(translation, "Language:");
+ char *str = parseLine(translation, "X-Language-name:");
if (str != NULL) {
delete[] _langName;
_langName = str;
}
+ str = parseLine(translation, "Language:");
+ if (str != NULL) {
+ delete[] _langNameAlt;
+ _langNameAlt = str;
+ }
str = parseLine(translation, "charset=");
if (str != NULL) {
delete[] _charset;
@@ -236,7 +242,7 @@ const char *PoMessageEntryList::language() const {
}
const char *PoMessageEntryList::languageName() const {
- return _langName;
+ return _langName ? _langName : _langNameAlt;
}
const char *PoMessageEntryList::charset() const {
diff --git a/devtools/create_translations/po_parser.h b/devtools/create_translations/po_parser.h
index a3b1c9a9d7..0c30517017 100644
--- a/devtools/create_translations/po_parser.h
+++ b/devtools/create_translations/po_parser.h
@@ -96,6 +96,7 @@ private:
char *_lang;
char *_charset;
char *_langName;
+ char *_langNameAlt;
PoMessageEntry **_list;
int _size;
diff --git a/dists/androidsdl/scummvm/AndroidAppSettings.cfg b/dists/androidsdl/scummvm/AndroidAppSettings.cfg
index a4db29093f..1c044fef3e 100644
--- a/dists/androidsdl/scummvm/AndroidAppSettings.cfg
+++ b/dists/androidsdl/scummvm/AndroidAppSettings.cfg
@@ -125,7 +125,7 @@ NonBlockingSwapBuffers=n
# SEARCH and CALL by default return same keycode as DPAD_CENTER - one of those keys is available on most devices
# Use word NO_REMAP if you want to preserve native functionality for certain key (volume keys are 3-rd and 4-th)
# Keys: TOUCHSCREEN (works only when AppUsesMouse=n), DPAD_CENTER/SEARCH, VOLUMEUP, VOLUMEDOWN, MENU, BACK, CAMERA
-RedefinedKeys="SPACE RETURN NO_REMAP NO_REMAP ESCAPE LCTRL F7 F4 F2 MOUSE_LEFT"
+RedefinedKeys="SPACE RETURN NO_REMAP NO_REMAP ESCAPE F13 F7 F4 F2 MOUSE_LEFT"
# Number of virtual keyboard keys (currently 6 is maximum)
AppTouchscreenKeyboardKeysAmount=0
@@ -134,10 +134,10 @@ AppTouchscreenKeyboardKeysAmount=0
AppTouchscreenKeyboardKeysAmountAutoFire=0
# Redefine on-screen keyboard keys to SDL keysyms - 6 keyboard keys + 4 multitouch gestures (zoom in/out and rotate left/right)
-RedefinedKeysScreenKb="MOUSE_RIGHT F7 LCTRL"
+RedefinedKeysScreenKb="MOUSE_RIGHT F7 F13"
# Names for on-screen keyboard keys, such as Fire, Jump, Run etc, separated by spaces, they are used in SDL config menu
-RedefinedKeysScreenKbNames="MOUSE_RIGHT F7 LCTRL"
+RedefinedKeysScreenKbNames="MOUSE_RIGHT F7 F13"
# On-screen keys theme
# 0 = Ultimate Droid by Sean Stieber (green, with gamepad joystick)
@@ -148,7 +148,7 @@ TouchscreenKeysTheme=1
# Redefine gamepad keys to SDL keysyms, button order is:
# A B X Y L1 R1 L2 R2 LThumb RThumb
-RedefinedKeysGamepad="MOUSE_RIGHT F7 LCTRL ESCAPE F5 SPACE RETURN MOUSE_LEFT"
+RedefinedKeysGamepad="MOUSE_RIGHT F7 F13 ESCAPE F5 SPACE RETURN MOUSE_LEFT"
# How long to show startup menu button, in msec, 0 to disable startup menu
StartupMenuButtonTimeout=3000
@@ -165,7 +165,7 @@ FirstStartMenuOptions=''
# Enable multi-ABI binary, with hardware FPU support - it will also work on old devices,
# but .apk size is 2x bigger (y) / (n) / (x86) / (all)
-MultiABI="armeabi"
+MultiABI="armeabi armeabi-v7a arm64-v8a x86 x86_64 mips"
# Minimum amount of RAM application requires, in Mb, SDL will print warning to user if it's lower
AppMinimumRAM=256
diff --git a/dists/androidsdl/scummvm/AndroidAppSettings.cfg.in b/dists/androidsdl/scummvm/AndroidAppSettings.cfg.in
index dea60277df..78756b0da6 100644
--- a/dists/androidsdl/scummvm/AndroidAppSettings.cfg.in
+++ b/dists/androidsdl/scummvm/AndroidAppSettings.cfg.in
@@ -125,7 +125,7 @@ NonBlockingSwapBuffers=n
# SEARCH and CALL by default return same keycode as DPAD_CENTER - one of those keys is available on most devices
# Use word NO_REMAP if you want to preserve native functionality for certain key (volume keys are 3-rd and 4-th)
# Keys: TOUCHSCREEN (works only when AppUsesMouse=n), DPAD_CENTER/SEARCH, VOLUMEUP, VOLUMEDOWN, MENU, BACK, CAMERA
-RedefinedKeys="SPACE RETURN NO_REMAP NO_REMAP ESCAPE LCTRL F7 F4 F2 MOUSE_LEFT"
+RedefinedKeys="SPACE RETURN NO_REMAP NO_REMAP ESCAPE F13 F7 F4 F2 MOUSE_LEFT"
# Number of virtual keyboard keys (currently 6 is maximum)
AppTouchscreenKeyboardKeysAmount=0
@@ -134,10 +134,10 @@ AppTouchscreenKeyboardKeysAmount=0
AppTouchscreenKeyboardKeysAmountAutoFire=0
# Redefine on-screen keyboard keys to SDL keysyms - 6 keyboard keys + 4 multitouch gestures (zoom in/out and rotate left/right)
-RedefinedKeysScreenKb="MOUSE_RIGHT F7 LCTRL"
+RedefinedKeysScreenKb="MOUSE_RIGHT F7 F13"
# Names for on-screen keyboard keys, such as Fire, Jump, Run etc, separated by spaces, they are used in SDL config menu
-RedefinedKeysScreenKbNames="MOUSE_RIGHT F7 LCTRL"
+RedefinedKeysScreenKbNames="MOUSE_RIGHT F7 F13"
# On-screen keys theme
# 0 = Ultimate Droid by Sean Stieber (green, with gamepad joystick)
@@ -148,7 +148,7 @@ TouchscreenKeysTheme=1
# Redefine gamepad keys to SDL keysyms, button order is:
# A B X Y L1 R1 L2 R2 LThumb RThumb
-RedefinedKeysGamepad="MOUSE_RIGHT F7 LCTRL ESCAPE F5 SPACE RETURN MOUSE_LEFT"
+RedefinedKeysGamepad="MOUSE_RIGHT F7 F13 ESCAPE F5 SPACE RETURN MOUSE_LEFT"
# How long to show startup menu button, in msec, 0 to disable startup menu
StartupMenuButtonTimeout=3000
@@ -165,7 +165,7 @@ FirstStartMenuOptions=''
# Enable multi-ABI binary, with hardware FPU support - it will also work on old devices,
# but .apk size is 2x bigger (y) / (n) / (x86) / (all)
-MultiABI="armeabi"
+MultiABI="armeabi armeabi-v7a arm64-v8a x86 x86_64 mips"
# Minimum amount of RAM application requires, in Mb, SDL will print warning to user if it's lower
AppMinimumRAM=256
diff --git a/dists/androidsdl/scummvm/AndroidBuild.sh b/dists/androidsdl/scummvm/AndroidBuild.sh
index b5dc538b9e..beeb7a3845 100644..100755
--- a/dists/androidsdl/scummvm/AndroidBuild.sh
+++ b/dists/androidsdl/scummvm/AndroidBuild.sh
@@ -7,9 +7,12 @@ LOCAL_PATH=`cd $LOCAL_PATH && pwd`
ln -sf libflac.a $LOCAL_PATH/../../../obj/local/$1/libFLAC.a
ln -sf libvorbis.a $LOCAL_PATH/../../../obj/local/$1/libvorbisfile.a
ln -sf libtheora.so $LOCAL_PATH/../../../obj/local/$1/libtheoradec.so
+ln -sf libsdl_net.so $LOCAL_PATH/../../../obj/local/$1/libSDL_net.so
ln -sf libglshim.a $LOCAL_PATH/../../../obj/local/$1/libGL.a
-if [ \! -f scummvm/config.mk ] ; then
- ../setEnvironment-$1.sh sh -c "cd scummvm && env LIBS='-lflac -lvorbis -logg -lmad -lz -lgcc -ltheora -lpng -lfreetype -lfaad -lgnustl_static' ./configure --host=androidsdl-$1 --enable-zlib --enable-vorbis --enable-mad --enable-flac --enable-png --enable-theoradec --enable-vkeybd --enable-release --enable-mt32emu --disable-readline --disable-nasm --disable-timidity --disable-fluidsynth --datadir=. "
+mkdir -p scummvm/bin-$1
+
+if [ \! -f scummvm/bin-$1/config.mk ] ; then
+ ../setEnvironment-$1.sh sh -c "cd scummvm/bin-$1 && env LIBS='-lflac -lvorbis -logg -lmad -lz -lgcc -ltheora -lpng -lfreetype -lfaad -lgnustl_static' ../configure --host=androidsdl-$1 --enable-zlib --enable-vorbis --enable-mad --enable-flac --enable-png --enable-theoradec --disable-sdlnet --disable-libcurl --enable-vkeybd --enable-release --enable-mt32emu --disable-readline --disable-nasm --disable-timidity --disable-fluidsynth --datadir=. "
fi
-../setEnvironment-$1.sh make -C scummvm -j2 && cp -f scummvm/scummvm libapplication-$1.so
+../setEnvironment-$1.sh make -C scummvm/bin-$1 && cp -f scummvm/bin-$1/scummvm libapplication-$1.so
diff --git a/dists/androidsdl/scummvm/DataBuild.sh b/dists/androidsdl/scummvm/DataBuild.sh
index f38c82f8b1..c8e8c84788 100755
--- a/dists/androidsdl/scummvm/DataBuild.sh
+++ b/dists/androidsdl/scummvm/DataBuild.sh
@@ -3,7 +3,7 @@
LOCAL_PATH=`dirname $0`
LOCAL_PATH=`cd $LOCAL_PATH && pwd`
-rm AndroidData/*
+rm AndroidData/scummvm*
make -C scummvm androidsdl
cp -f scummvm/scummvm*.z* AndroidData
rm scummvm/scummvm*.z* \ No newline at end of file
diff --git a/doc/de/LIESMICH b/doc/de/LIESMICH
index 92c7e4d625..df36208d7b 100644
--- a/doc/de/LIESMICH
+++ b/doc/de/LIESMICH
@@ -1394,6 +1394,10 @@ gestartet werden -- siehe nƤchster Abschnitt.
-t, --list-targets Zeigt Liste konfigurierter Ziele und beendet.
--list-saves=ZIEL Zeigt Liste von Spielständen für das festgelegte
Spiel (ZIEL)
+ --auto-detect Zeigt eine Liste unterstützter Spiele im aktuellen
+ oder in einem anderen gewƤhlten Verzeichnis an.
+ Verwenden Sie --path=PFAD vor --auto-detect, um
+ ein Verzeichnis zu wƤhlen.
--console Aktiviert das Konsolenfenster
(standardmäßig aktiviert) (nur Windows)
diff --git a/doc/de/NEUES b/doc/de/NEUES
index 3ba46be524..5260bdfaa6 100644
--- a/doc/de/NEUES
+++ b/doc/de/NEUES
@@ -3,10 +3,31 @@ Programmcodes finden Sie auf Englisch unter:
https://github.com/scummvm/scummvm/commits/
1.10.0 (DD.MM.YYYY)
+ Allgemein:
+ - Kommandozeilen-Option hinzugefügt, mit der das aktuelle oder ein gewähltes
+ Verzeichnis nach unterstützten Spielen durchsucht werden kann.
+ - Viele Optionen der Benutzeroberfläche können nun übernommen werden, ohne
+ den Optionen-Dialog zu schließen.
+ - Sprache der BenutzeroberflƤche kann ohne Programmneustart geƤndert werden.
+
+ AGOS:
+ - Einstellung für die Untertitel-Geschwindigkeit in der hebräischen Version von
+ "Simon the Sorcerer 1" korrigiert.
+
+ Composer:
+ - Unterstützung für das Speichern und Laden von Spielständen aus dem Hauptmenü heraus hinzugefügt.
1.9.1 (DD.MM.YYYY)
Allgemein:
- Option für bilineare Filterung im SDL2-Vollbildmodus hinzugefügt.
+ - Fehler behoben, der einen Absturz im Optionen-Dialog der BenutzeroberflƤche verursacht.
+
+ Kyra:
+ - Pufferüberlauf in "Lands of Lore" behoben.
+
+ MADS:
+ - Fehler behoben, der einen Absturz verursacht, wenn "Rex Nebular and the Cosmic Gender Bender"
+ gestartet wird.
1.9.0 (17.10.2016)
Neue Spiele:
diff --git a/engines/adl/adl.cpp b/engines/adl/adl.cpp
index 62f07ad639..63b0937354 100644
--- a/engines/adl/adl.cpp
+++ b/engines/adl/adl.cpp
@@ -58,6 +58,7 @@ AdlEngine::AdlEngine(OSystem *syst, const AdlGameDescription *gd) :
_graphics(nullptr),
_isRestarting(false),
_isRestoring(false),
+ _isQuitting(false),
_skipOneCommand(false),
_gameDescription(gd),
_saveVerb(0),
@@ -553,7 +554,7 @@ Common::Error AdlEngine::run() {
_display->setMode(DISPLAY_MODE_MIXED);
- while (1) {
+ while (!_isQuitting) {
uint verb = 0, noun = 0;
_isRestarting = false;
@@ -1101,7 +1102,13 @@ int AdlEngine::o1_quit(ScriptEnv &e) {
OP_DEBUG_0("\tQUIT_GAME()");
printMessage(_messageIds.thanksForPlaying);
- quitGame();
+ // Wait for a key here to ensure that the user gets a chance
+ // to read the thank-you message
+ _display->printAsciiString("PRESS ANY KEY TO QUIT");
+ inputKey();
+
+ // We use _isRestarting to abort the current game loop iteration
+ _isQuitting = _isRestarting = true;
return -1;
}
diff --git a/engines/adl/adl.h b/engines/adl/adl.h
index 971336ef50..fc696f074f 100644
--- a/engines/adl/adl.h
+++ b/engines/adl/adl.h
@@ -359,7 +359,7 @@ protected:
// Game state
State _state;
- bool _isRestarting, _isRestoring;
+ bool _isRestarting, _isRestoring, _isQuitting;
bool _skipOneCommand;
private:
diff --git a/engines/adl/adl_v2.cpp b/engines/adl/adl_v2.cpp
index 979d794146..45810d64ca 100644
--- a/engines/adl/adl_v2.cpp
+++ b/engines/adl/adl_v2.cpp
@@ -182,8 +182,8 @@ Common::String AdlEngine_v2::loadMessage(uint idx) const {
void AdlEngine_v2::printString(const Common::String &str) {
Common::String s(str);
- byte endPos = TEXT_WIDTH - 1;
- byte pos = 0;
+ uint endPos = TEXT_WIDTH - 1;
+ uint pos = 0;
while (true) {
while (pos <= endPos && pos != s.size()) {
diff --git a/engines/bladerunner/actor_clues.cpp b/engines/bladerunner/actor_clues.cpp
index a84d54906b..f9a4389b71 100644
--- a/engines/bladerunner/actor_clues.cpp
+++ b/engines/bladerunner/actor_clues.cpp
@@ -67,9 +67,7 @@ ActorClues::ActorClues(BladeRunnerEngine *vm, int cluesType) {
}
ActorClues::~ActorClues() {
- if (_clues) {
- delete[] _clues;
- }
+ delete[] _clues;
_maxCount = 0;
_count = 0;
@@ -78,7 +76,7 @@ ActorClues::~ActorClues() {
void ActorClues::acquire(int clueId, char flag2, int fromActorId) {
int clueIndex = findClueIndex(clueId);
_clues[clueIndex]._flags |= 0x01;
- _clues[_count]._flags = (_clues[_count]._flags & ~0x02) | ((flag2 << 1) & 0x02);
+ _clues[clueIndex]._flags = (_clues[clueIndex]._flags & ~0x02) | ((flag2 << 1) & 0x02);
_clues[clueIndex]._fromActorId = fromActorId;
debug("Actor acquired clue: \"%s\" from %d", _vm->_crimesDatabase->getClueText(clueId), fromActorId);
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index 33110c07de..e60fe77d26 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -457,6 +457,8 @@ void BladeRunnerEngine::shutdown() {
// TODO: Delete sine and cosine lookup tables
// TODO: Unload AI dll
+ delete _aiScripts;
+ _aiScripts = nullptr;
delete[] _gameVars;
_gameVars = nullptr;
@@ -481,7 +483,12 @@ void BladeRunnerEngine::shutdown() {
// TODO: Delete datetime - not used
- // TODO: Delete actors
+ int actorCount = (int)_gameInfo->getActorCount();
+ for (int i = 0; i != actorCount; ++i) {
+ delete _actors[i];
+ _actors[i] = nullptr;
+ }
+ _playerActor = nullptr;
// TODO: Delete proper ZBuf class
delete[] _zBuffer1;
diff --git a/engines/bladerunner/light.cpp b/engines/bladerunner/light.cpp
index 08eb8ab5be..8be8d0112b 100644
--- a/engines/bladerunner/light.cpp
+++ b/engines/bladerunner/light.cpp
@@ -27,9 +27,13 @@
namespace BladeRunner {
Light::Light() {
+ _animationData = nullptr;
}
Light::~Light() {
+ if (_animationData != nullptr) {
+ delete[] _animationData;
+ }
}
void Light::read(Common::ReadStream *stream, int framesCount, int frame, int animated) {
@@ -43,6 +47,9 @@ void Light::read(Common::ReadStream *stream, int framesCount, int frame, int ani
_animatedParameters = stream->readUint32LE();
+ if (_animationData != nullptr) {
+ delete[] _animationData;
+ }
int floatsCount = size / 4;
_animationData = new float[floatsCount];
for (int i = 0; i < floatsCount; i++) {
@@ -80,6 +87,10 @@ void Light::readVqa(Common::ReadStream *stream, int framesCount, int frame, int
int size = stream->readUint32LE();
+ if(_animationData != nullptr) {
+ delete[] _animationData;
+ }
+
int floatsCount = size / 4;
_animationData = new float[floatsCount];
for (int i = 0; i < floatsCount; i++) {
diff --git a/engines/bladerunner/scene.cpp b/engines/bladerunner/scene.cpp
index a629b4263b..c29a6345cc 100644
--- a/engines/bladerunner/scene.cpp
+++ b/engines/bladerunner/scene.cpp
@@ -29,6 +29,7 @@
#include "bladerunner/chapters.h"
#include "bladerunner/gameinfo.h"
#include "bladerunner/items.h"
+#include "bladerunner/settings.h"
#include "bladerunner/scene_objects.h"
#include "bladerunner/script/script.h"
#include "bladerunner/slice_renderer.h"
@@ -56,8 +57,8 @@ bool Scene::open(int setId, int sceneId, bool isLoadingGame) {
// TODO: Clear regions
// TODO: Destroy all overlays
_defaultLoop = 0;
- _defaultLoopSet = 0;
- _field_20_loop_stuff = 0;
+ _defaultLoopSet = false;
+ _specialLoopAtEnd = false;
_specialLoopMode = -1;
_specialLoop = -1;
_frame = -1;
@@ -76,9 +77,6 @@ bool Scene::open(int setId, int sceneId, bool isLoadingGame) {
_vqaPlayer = new VQAPlayer(_vm);
- if (!_vqaPlayer->open(vqaName))
- return false;
-
Common::String sceneName = _vm->_gameInfo->getSceneName(sceneId);
if (!_vm->_script->open(sceneName))
return false;
@@ -99,8 +97,15 @@ bool Scene::open(int setId, int sceneId, bool isLoadingGame) {
return true;
}
- // TODO: set VQADecoder parameters
- //_vm->_scene->advanceFrame(0, 0);
+ if (!_vqaPlayer->open(vqaName))
+ return false;
+
+ if (_specialLoop == -1) {
+ _vqaPlayer->setLoop(_defaultLoop, -1, 2, nullptr, nullptr);
+ _defaultLoopSet = true;
+ _specialLoopAtEnd = false;
+ }
+ _vm->_scene->advanceFrame(_vm->_surface1, _vm->_zBuffer1);
_vm->_playerActor->setAtXYZ(_actorStartPosition, _actorStartFacing);
//_vm->_playerActor->setSetId(setId);
@@ -148,6 +153,7 @@ bool Scene::close(bool isLoadingGame) {
if (isLoadingGame) {
_vm->_script->PlayerWalkedOut();
}
+
// if (SceneScript_isLoaded() && !SceneScript_unload()) {
// result = false;
// }
@@ -171,18 +177,26 @@ int Scene::advanceFrame(Graphics::Surface &surface, uint16 *&zBuffer) {
_vqaPlayer->updateLights(_vm->_lights);
}
- if (frame < 0) {
- return frame;
+ if (_specialLoopMode && _specialLoopMode != 2 && _specialLoopMode != 3) {
+ if (_specialLoopMode == 1) {
+ if (frame == -3) { // TODO: when will this happen? bad data in/eof of vqa
+ _vm->_settings->setNewSetAndScene(_nextSetId, _nextSceneId);
+ _vm->playerGainsControl();
+ }
+ } else if (!_specialLoopAtEnd) {
+ _vqaPlayer->setLoop(_defaultLoop + 1, -1, 0, &Scene::loopEndedStatic, this);
+ _specialLoopAtEnd = true;
+ }
+ } else if (!this->_defaultLoopSet) {
+ _vqaPlayer->setLoop(_defaultLoop, -1, 1, &Scene::loopEndedStatic, this);
+ _defaultLoopSet = true;
+ if (_specialLoopMode == 0) {
+ _vm->playerLosesControl();
+ }
}
- _frame = frame;
- if (_specialLoopMode == 0 && frame == _vqaPlayer->getLoopEndFrame(_specialLoop)) {
- _playerWalkedIn = true;
- _specialLoopMode = -1;
- }
- if (_specialLoopMode == 0 && !_defaultLoopSet) {
- _vqaPlayer->setLoop(_defaultLoop + 1);
- _defaultLoopSet = true;
+ if (frame >= 0) {
+ _frame = frame;
}
return frame;
@@ -193,25 +207,32 @@ void Scene::setActorStart(Vector3 position, int facing) {
_actorStartFacing = facing;
}
-void Scene::loopSetDefault(int a) {
- // warning("\t\t\tScene::loopSetDefault(%d)", a);
- _defaultLoop = a;
+void Scene::loopSetDefault(int loopId) {
+ _defaultLoop = loopId;
}
-void Scene::loopStartSpecial(int a, int b, int c) {
- // warning("\t\t\tScene::loopStartSpecial(%d, %d, %d)", a, b, c);
- _specialLoopMode = a;
- _specialLoop = b;
+void Scene::loopStartSpecial(int specialLoopMode, int loopId, int flags) {
+ _specialLoopMode = specialLoopMode;
+ _specialLoop = loopId;
- if (_specialLoop == 1) {
- // a1->on_loop_end_switch_to_set_id = sub_42BE08_options_get_set_enter_arg_1(&unk_48E910_options);
- // a1->on_loop_end_switch_to_scene_id = sub_42BE00_options_get_set_enter_arg_2(&unk_48E910_options);
+ int unknown = -1;
+ if (_specialLoopMode == 1) {
+ unknown = 0;
}
- if (c) {
- // _field_20_loop_stuff = 1;
- // v6 = a1->_field_28_loop_special_loop_number;
- // sub_453434_scene_method_loop(a1);
+ int loopMode = 1;
+ if (flags) {
+ loopMode = 2;
+ }
+
+ _vqaPlayer->setLoop(_specialLoop, unknown, loopMode, &Scene::loopEndedStatic, this);
+ if (_specialLoopMode == 1) {
+ this->_nextSetId = _vm->_settings->getNewSet();
+ this->_nextSceneId = _vm->_settings->getNewScene();
+ }
+ if (flags) {
+ this->_specialLoopAtEnd = true;
+ loopEnded(0, _specialLoop);
}
}
@@ -265,4 +286,37 @@ const char *Scene::objectGetName(int objectId) {
return _set->objectGetName(objectId);
}
+void Scene::loopEnded(int frame, int loopId) {
+ if (_specialLoopMode && _specialLoopMode != 2 && _specialLoopMode != 3) {
+ if (_specialLoopMode == 1) {
+ _defaultLoopSet = true;
+ _specialLoopAtEnd = false;
+ _vm->playerLosesControl();
+ }
+ } else if (_specialLoopAtEnd) {
+ _vqaPlayer->setLoop(_defaultLoop, -1, 1, &Scene::loopEndedStatic, this);
+ _defaultLoopSet = true;
+ _specialLoopAtEnd = false;
+ if (_specialLoopMode == 0) {
+ _vm->playerLosesControl();
+ }
+ } else {
+ if (_specialLoopMode == 0) {
+ _vm->playerGainsControl();
+ _playerWalkedIn = true;
+ }
+ if (_specialLoopMode == 3) {
+ //TODO:
+ //spinner::open(Spinner);
+ }
+ _specialLoopMode = -1;
+ _specialLoop = -1;
+ _vqaPlayer->setLoop(_defaultLoop + 1, -1, 0, nullptr, nullptr);
+ _specialLoopAtEnd = true;
+ }
+}
+
+void Scene::loopEndedStatic(void *data, int frame, int loopId) {
+ ((Scene*)data)->loopEnded(frame, loopId);
+}
} // End of namespace BladeRunner
diff --git a/engines/bladerunner/scene.h b/engines/bladerunner/scene.h
index 6a34fcd249..5bc25fc6fc 100644
--- a/engines/bladerunner/scene.h
+++ b/engines/bladerunner/scene.h
@@ -44,10 +44,10 @@ public:
VQAPlayer *_vqaPlayer;
int _defaultLoop;
- int _defaultLoopSet;
- int _field_20_loop_stuff;
+ bool _defaultLoopSet;
int _specialLoopMode;
int _specialLoop;
+ bool _specialLoopAtEnd;
int _introFinished;
int _nextSetId;
int _nextSceneId;
@@ -83,9 +83,7 @@ public:
delete _set;
delete _regions;
delete _exits;
- if (_vqaPlayer != nullptr) {
- delete _vqaPlayer;
- }
+ delete _vqaPlayer;
}
bool open(int setId, int sceneId, bool isLoadingGame);
@@ -109,6 +107,10 @@ public:
void objectSetIsObstacleAll(bool isObstacle, bool sceneLoaded);
void objectSetIsTarget(int objectId, bool isTarget, bool sceneLoaded);
const char *objectGetName(int objectId);
+
+private:
+ void loopEnded(int frame, int loopId);
+ static void loopEndedStatic(void* data, int frame, int loopId);
};
} // End of namespace BladeRunner
diff --git a/engines/bladerunner/scene_objects.cpp b/engines/bladerunner/scene_objects.cpp
index 6d10edd83f..c55097358d 100644
--- a/engines/bladerunner/scene_objects.cpp
+++ b/engines/bladerunner/scene_objects.cpp
@@ -65,6 +65,7 @@ void SceneObjects::clear() {
_sceneObjects[i]._isMoving = 0;
_sceneObjects[i]._isRetired = 0;
}
+ _count = 0;
}
bool SceneObjects::addActor(int sceneObjectId, BoundingBox *boundingBox, Common::Rect *screenRectangle, uint8 isClickable, uint8 isMoving, uint8 isTarget, uint8 isRetired) {
@@ -207,7 +208,7 @@ bool SceneObjects::addSceneObject(int sceneObjectId, SceneObjectType sceneObject
break;
}
}
- for (int j = _count - 1; j >= i; --j) {
+ for (int j = _count - 2; j >= i; --j) {
_sceneObjectsSortedByDistance[j + 1] = _sceneObjectsSortedByDistance[j];
}
diff --git a/engines/bladerunner/script/script.cpp b/engines/bladerunner/script/script.cpp
index b0bb638440..45b23120d5 100644
--- a/engines/bladerunner/script/script.cpp
+++ b/engines/bladerunner/script/script.cpp
@@ -55,14 +55,12 @@ namespace BladeRunner {
bool Script::open(const Common::String &name) {
delete _currentScript;
-
if (name == "RC01") { _currentScript = new ScriptRC01(_vm); return true; }
if (name == "RC02") { _currentScript = new ScriptRC02(_vm); return true; }
if (name == "RC03") { _currentScript = new ScriptRC03(_vm); return true; }
if (name == "RC04") { _currentScript = new ScriptRC04(_vm); return true; }
if (name == "RC51") { _currentScript = new ScriptRC51(_vm); return true; }
-
return false;
}
@@ -916,18 +914,18 @@ void ScriptBase::Overlay_Remove(const char *overlay) {
warning("Overlay_Remove(%s)", overlay);
}
-void ScriptBase::Scene_Loop_Set_Default(int a) {
- // debug("Scene_Loop_Set_Default(%d)", a);
-
- _vm->_scene->loopSetDefault(a);
- // _vm->_scene->_defaultLoop = a;
+void ScriptBase::Scene_Loop_Set_Default(int loopId) {
+ _vm->_scene->loopSetDefault(loopId);
}
-void ScriptBase::Scene_Loop_Start_Special(int a, int b, int c) {
- // debug("Scene_Loop_Start_Special(%d, %d, %d)", a, b, c);
-
- _vm->_scene->loopStartSpecial(a, b, c);
- // _vm->_scene->_field_24_loop_start_special_param_1 = a;
+void ScriptBase::Scene_Loop_Start_Special(int sceneLoopMode, int loopId, int c) {
+ if (sceneLoopMode == 1) {
+ c = 1;
+ }
+ _vm->_scene->loopStartSpecial(sceneLoopMode, loopId, c);
+ if (sceneLoopMode == 1) {
+ _vm->_settings->clearNewSetAndScene();
+ }
}
void ScriptBase::Outtake_Play(int id, int noLocalization, int container) {
@@ -1427,12 +1425,19 @@ void ScriptBase::VK_Play_Speech_Line(int actorIndex, int a2, float a3) {
AIScripts::AIScripts(BladeRunnerEngine *vm) : _vm(vm), _inScriptCounter(0) {
for (int i = 0; i != 100; ++i)
- _AIScripts[i] = 0;
+ _AIScripts[i] = nullptr;
_AIScripts[0] = new AIScript_McCoy(_vm);
_AIScripts[23] = new AIScript_Officer_Leroy(_vm);
}
+AIScripts::~AIScripts() {
+ for (int i = 0; i != 100; ++i) {
+ delete _AIScripts[i];
+ _AIScripts[i] = nullptr;
+ }
+}
+
void AIScripts::Initialize(int actor) {
if (_AIScripts[actor])
_AIScripts[actor]->Initialize();
diff --git a/engines/bladerunner/set_effects.cpp b/engines/bladerunner/set_effects.cpp
index 54894e2a1c..c4038f6726 100644
--- a/engines/bladerunner/set_effects.cpp
+++ b/engines/bladerunner/set_effects.cpp
@@ -38,7 +38,7 @@ SetEffects::SetEffects(BladeRunnerEngine *vm) {
_fadeDensity = 0.0f;
_fogsCount = 0;
- _fogs = NULL;
+ _fogs = nullptr;
}
SetEffects::~SetEffects() {
@@ -55,7 +55,7 @@ void SetEffects::read(Common::ReadStream *stream, int framesCount) {
int i;
for (i = 0; i < _fogsCount; i++) {
int type = stream->readUint32LE();
- Fog *fog = NULL;
+ Fog *fog = nullptr;
switch (type) {
case 0:
fog = new FogCone();
diff --git a/engines/bladerunner/vqa_decoder.cpp b/engines/bladerunner/vqa_decoder.cpp
index 940f53ee25..fe94012c51 100644
--- a/engines/bladerunner/vqa_decoder.cpp
+++ b/engines/bladerunner/vqa_decoder.cpp
@@ -34,8 +34,6 @@
#include "common/util.h"
#include "common/memstream.h"
-
-
namespace BladeRunner {
#define kAESC 0x41455343
@@ -488,7 +486,7 @@ bool VQADecoder::readLNIN(Common::SeekableReadStream *s, uint32 size) {
if (chd.id != kLNIO || chd.size != 4u * loopNamesCount)
return false;
- uint32 *loopNameOffsets = (uint32*)alloca(loopNamesCount * sizeof(uint32));
+ uint32 *loopNameOffsets = (uint32*)malloc(loopNamesCount * sizeof(uint32));
for (int i = 0; i != loopNamesCount; ++i) {
loopNameOffsets[i] = s->readUint32LE();
}
@@ -497,7 +495,7 @@ bool VQADecoder::readLNIN(Common::SeekableReadStream *s, uint32 size) {
if (chd.id != kLNID)
return false;
- char *names = (char*)alloca(roundup(chd.size));
+ char *names = (char*)malloc(roundup(chd.size));
s->read(names, roundup(chd.size));
for (int i = 0; i != loopNamesCount; ++i) {
@@ -509,6 +507,8 @@ bool VQADecoder::readLNIN(Common::SeekableReadStream *s, uint32 size) {
// debug("%2d: %s", i, _loopInfo.loops[i].name.c_str());
}
+ free(loopNameOffsets);
+ free(names);
return true;
}
diff --git a/engines/bladerunner/vqa_player.cpp b/engines/bladerunner/vqa_player.cpp
index f875b84cce..4fb19cf561 100644
--- a/engines/bladerunner/vqa_player.cpp
+++ b/engines/bladerunner/vqa_player.cpp
@@ -121,7 +121,7 @@ void VQAPlayer::updateLights(Lights *lights) {
_decoder.decodeLights(lights);
}
-bool VQAPlayer::setLoop(int loop) {
+bool VQAPlayer::setLoop(int loop, int unknown, int loopMode, void(*callback)(void*, int, int), void *callbackData) {
int begin, end;
if (!_decoder.getLoopBeginAndEndFrame(loop, &begin, &end)) {
return false;
@@ -131,6 +131,9 @@ bool VQAPlayer::setLoop(int loop) {
_loopBegin = begin;
_loopEnd = end;
+ _callbackLoopEnded = callback;
+ _callbackData = callbackData;
+
// warning("\t\t\tActive Loop: %d - %d\n", begin, end);
return true;
@@ -158,6 +161,9 @@ int VQAPlayer::calcNextFrame(int frame) const {
if (_curLoop != -1 && frame >= _loopEnd) {
frame = _loopBegin;
+ if (_callbackLoopEnded != nullptr) {
+ _callbackLoopEnded(_callbackData, 0, _curLoop);
+ }
} else {
frame++;
}
diff --git a/engines/bladerunner/vqa_player.h b/engines/bladerunner/vqa_player.h
index f5769944cf..3a821a8323 100644
--- a/engines/bladerunner/vqa_player.h
+++ b/engines/bladerunner/vqa_player.h
@@ -55,6 +55,9 @@ class VQAPlayer {
bool _audioStarted;
Audio::SoundHandle _soundHandle;
+ void (*_callbackLoopEnded)(void*, int frame, int loopId);
+ void *_callbackData;
+
public:
VQAPlayer(BladeRunnerEngine *vm)
@@ -69,7 +72,8 @@ public:
_loopEnd(-1),
_nextFrameTime(0),
_hasAudio(false),
- _audioStarted(false) {
+ _audioStarted(false),
+ _callbackLoopEnded(nullptr) {
}
~VQAPlayer() {
@@ -85,9 +89,7 @@ public:
void updateView(View *view);
void updateLights(Lights *lights);
- bool setLoop(int loop);
- // void setLoopSpecial(int loop, bool wait);
- // void setLoopDefault(int loop);
+ bool setLoop(int loop, int unknown, int loopMode, void(*callback)(void*, int, int), void* callbackData);
int getLoopBeginFrame(int loop);
int getLoopEndFrame(int loop);
diff --git a/engines/chewy/detection.cpp b/engines/chewy/detection.cpp
index a59355f166..f6f66efba0 100644
--- a/engines/chewy/detection.cpp
+++ b/engines/chewy/detection.cpp
@@ -73,8 +73,9 @@ static const ChewyGameDescription gameDescriptions[] = {
{
// Chewy - ESC von F5 - German
+ // Master version 1.1 (CHEWY.EXE - offset 0x8AB28)
// The source CD-ROM has the Matrix code SONOPRESS R-7885 B
- // Most likely a newer re-release, it contains several demos and files from 1996
+ // The disc contains several demos and files from 1996
// Provided by rootfather
{
"chewy",
@@ -89,6 +90,7 @@ static const ChewyGameDescription gameDescriptions[] = {
{
// Chewy - ESC von F5 - German
+ // Master version 1.0 (CHEWY.EXE - offset 0x8AB10)
// The source CD-ROM has the Matrix code SONOPRESS M-2742 A
// CD-ROM has the label "CHEWY_V1_0"
// Provided by rootfather
diff --git a/engines/composer/composer.cpp b/engines/composer/composer.cpp
index 73d97e100d..13ba76191b 100644
--- a/engines/composer/composer.cpp
+++ b/engines/composer/composer.cpp
@@ -21,6 +21,7 @@
*/
#include "common/scummsys.h"
+#include "common/config-manager.h"
#include "common/events.h"
#include "common/random.h"
#include "common/keyboard.h"
@@ -120,6 +121,9 @@ Common::Error ComposerEngine::run() {
else
warning("FPS in book.ini is zero. Defaulting to 8...");
uint32 lastDrawTime = 0;
+ _lastSaveTime = _system->getMillis();
+
+ bool loadFromLauncher = ConfMan.hasKey("save_slot");
while (!shouldQuit()) {
for (uint i = 0; i < _pendingPageChanges.size(); i++) {
@@ -169,7 +173,12 @@ Common::Error ComposerEngine::run() {
} else if (_needsUpdate) {
redraw();
}
-
+ if (loadFromLauncher) {
+ loadGameState(ConfMan.getInt("save_slot"));
+ loadFromLauncher = false;
+ }
+ if (shouldPerformAutoSave(_lastSaveTime))
+ saveGameState(0, "Autosave");
while (_eventMan->pollEvent(event)) {
switch (event.type) {
case Common::EVENT_LBUTTONDOWN:
@@ -378,7 +387,7 @@ void ComposerEngine::loadLibrary(uint id) {
}
Common::String filename;
-
+ Common::String oldGroup = _bookGroup;
if (getGameType() == GType_ComposerV1) {
if (!id || _bookGroup.empty())
filename = getStringFromConfig("Common", "StartPage");
@@ -412,6 +421,7 @@ void ComposerEngine::loadLibrary(uint id) {
Library library;
library._id = id;
+ library._group = oldGroup;
library._archive = new ComposerArchive();
if (!library._archive->openFile(filename))
error("failed to open '%s'", filename.c_str());
diff --git a/engines/composer/composer.h b/engines/composer/composer.h
index d1a85e975a..a4b421bfa0 100644
--- a/engines/composer/composer.h
+++ b/engines/composer/composer.h
@@ -29,6 +29,7 @@
#include "common/debug.h"
#include "common/debug-channels.h"
#include "common/error.h"
+#include "common/serializer.h"
#include "common/textconsole.h"
#include "common/rect.h"
@@ -114,6 +115,7 @@ struct Library {
uint _id;
Archive *_archive;
+ Common::String _group;
Common::List<Button> _buttons;
Common::List<KeyboardHandler> _keyboardHandlers;
};
@@ -150,6 +152,19 @@ class ComposerEngine : public Engine {
protected:
Common::Error run();
+ template <typename T>
+ void syncArray(Common::Serializer &ser, Common::Array<T> &data, Common::Serializer::Version minVersion = 0, Common::Serializer::Version maxVersion = Common::Serializer::kLastVersion);
+ template <typename T>
+ void syncList(Common::Serializer &ser, Common::List<T> &data, Common::Serializer::Version minVersion = 0, Common::Serializer::Version maxVersion = Common::Serializer::kLastVersion);
+ template <typename T>
+ void syncListReverse(Common::Serializer &ser, Common::List<T> &data, Common::Serializer::Version minVersion = 0, Common::Serializer::Version maxVersion = Common::Serializer::kLastVersion);
+ template <typename T>
+ void sync(Common::Serializer &ser, T &data, Common::Serializer::Version minVersion, Common::Serializer::Version maxVersion);
+ bool canLoadGameStateCurrently() { return true; }
+ Common::Error loadGameState(int slot);
+ bool canSaveGameStateCurrently() { return true; }
+ Common::Error saveGameState(int slot, const Common::String &desc);
+
public:
ComposerEngine(OSystem *syst, const ComposerGameDescription *gameDesc);
virtual ~ComposerEngine();
@@ -173,7 +188,7 @@ private:
Audio::QueuingAudioStream *_audioStream;
uint16 _currSoundPriority;
- uint32 _currentTime, _lastTime;
+ uint32 _currentTime, _lastTime, _timeDelta, _lastSaveTime;
bool _needsUpdate;
Common::Array<Common::Rect> _dirtyRects;
@@ -210,6 +225,7 @@ private:
uint16 _mouseSpriteId;
Common::Point _mouseOffset;
+ Common::String makeSaveGameName(int slot);
Common::String getStringFromConfig(const Common::String &section, const Common::String &key);
Common::String getFilename(const Common::String &section, uint id);
Common::String mangleFilename(Common::String filename);
@@ -231,6 +247,7 @@ private:
void tickOldScripts();
bool tickOldScript(OldScript *script);
+ void loadAnimation(Animation *&anim, uint16 animId, int16 x, int16 y, int16 eventParam, int32 size = 0);
void playAnimation(uint16 animId, int16 param1, int16 param2, int16 param3);
void stopAnimation(Animation *anim, bool localOnly = false, bool pipesOnly = false);
void playWaveForAnim(uint16 id, uint16 priority, bool bufferingOnly);
diff --git a/engines/composer/detection.cpp b/engines/composer/detection.cpp
index 689a72a743..8de3b33134 100644
--- a/engines/composer/detection.cpp
+++ b/engines/composer/detection.cpp
@@ -21,6 +21,9 @@
*/
#include "base/plugins.h"
+#include "common/savefile.h"
+#include "common/serializer.h"
+#include "common/str-array.h"
#include "engines/advancedDetector.h"
#include "composer/composer.h"
@@ -448,6 +451,8 @@ public:
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
virtual bool hasFeature(MetaEngineFeature f) const;
+ virtual int getMaximumSaveSlot() const;
+ virtual SaveStateList listSaves(const char* target) const;
};
bool ComposerMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
@@ -459,11 +464,52 @@ bool ComposerMetaEngine::createInstance(OSystem *syst, Engine **engine, const AD
}
bool ComposerMetaEngine::hasFeature(MetaEngineFeature f) const {
- return false;
+ return ((f == kSupportsListSaves) || (f == kSupportsLoadingDuringStartup));
+}
+
+Common::String getSaveName(Common::InSaveFile *in) {
+ Common::Serializer ser(in, NULL);
+ Common::String name;
+ uint32 tmp;
+ ser.syncAsUint32LE(tmp);
+ ser.syncAsUint32LE(tmp);
+ ser.syncString(name);
+ return name;
+}
+int ComposerMetaEngine::getMaximumSaveSlot() const {
+ return 99;
+}
+SaveStateList ComposerMetaEngine::listSaves(const char *target) const {
+ Common::SaveFileManager *saveFileMan = g_system->getSavefileManager();
+ Common::StringArray filenames;
+ Common::String saveDesc;
+ Common::String pattern = Common::String::format("%s.??", target);
+
+ filenames = saveFileMan->listSavefiles(pattern);
+ sort(filenames.begin(), filenames.end()); // Sort (hopefully ensuring we are sorted numerically..)
+
+ SaveStateList saveList;
+ for (Common::StringArray::const_iterator file = filenames.begin(); file != filenames.end(); ++file) {
+ // Obtain the last 3 digits of the filename, since they correspond to the save slot
+ int slotNum = atoi(file->c_str() + file->size() - 2);
+
+ if (slotNum >= 0 && slotNum <= 99) {
+ Common::InSaveFile *in = saveFileMan->openForLoading(*file);
+ if (in) {
+ saveDesc = getSaveName(in);
+ saveList.push_back(SaveStateDescriptor(slotNum, saveDesc));
+ delete in;
+ }
+ }
+ }
+
+ return saveList;
}
bool Composer::ComposerEngine::hasFeature(EngineFeature f) const {
- return (f == kSupportsRTL);
+ return (f == kSupportsRTL
+ || f == kSupportsSavingDuringRuntime
+ || f == kSupportsLoadingDuringRuntime);
}
#if PLUGIN_ENABLED_DYNAMIC(COMPOSER)
diff --git a/engines/composer/graphics.cpp b/engines/composer/graphics.cpp
index 87694636d8..32b9812f32 100644
--- a/engines/composer/graphics.cpp
+++ b/engines/composer/graphics.cpp
@@ -44,9 +44,9 @@ bool Sprite::contains(const Common::Point &pos) const {
}
enum {
- kAnimOpEvent = 1,
- kAnimOpPlayWave = 2,
- kAnimOpPlayAnim = 3,
+ kAnimOpEvent = 1,
+ kAnimOpPlayWave = 2,
+ kAnimOpPlayAnim = 3,
kAnimOpDrawSprite = 4
};
@@ -57,6 +57,7 @@ Animation::Animation(Common::SeekableReadStream *stream, uint16 id, Common::Poin
// probably total size?
uint32 unknown = _stream->readUint32LE();
+ _size = unknown;
debug(8, "anim: size %d, state %08x, unknown %08x", size, _state, unknown);
@@ -82,17 +83,7 @@ void Animation::seekToCurrPos() {
_stream->seek(_offset, SEEK_SET);
}
-void ComposerEngine::playAnimation(uint16 animId, int16 x, int16 y, int16 eventParam) {
- // First, we check if this animation is already playing,
- // and if it is, we sabotage that running one first.
- for (Common::List<Animation *>::iterator i = _anims.begin(); i != _anims.end(); i++) {
- Animation *anim = *i;
- if (anim->_id != animId)
- continue;
-
- stopAnimation(*i);
- }
-
+void ComposerEngine::loadAnimation(Animation *&anim, uint16 animId, int16 x, int16 y, int16 eventParam, int32 size) {
Common::SeekableReadStream *stream = NULL;
Pipe *newPipe = NULL;
@@ -102,7 +93,10 @@ void ComposerEngine::playAnimation(uint16 animId, int16 x, int16 y, int16 eventP
if (!pipe->hasResource(ID_ANIM, animId))
continue;
stream = pipe->getResource(ID_ANIM, animId, false);
- break;
+
+ // When loading from savegame, make sure we have the correct stream
+ if ((!size) || (stream->size() >= size)) break;
+ stream = NULL;
}
// If we didn't find it, try the libraries.
@@ -111,33 +105,50 @@ void ComposerEngine::playAnimation(uint16 animId, int16 x, int16 y, int16 eventP
warning("ignoring attempt to play invalid anim %d", animId);
return;
}
- stream = getResource(ID_ANIM, animId);
+ Common::List<Library>::iterator j;
+ for (j = _libraries.begin(); j != _libraries.end(); j++) {
+ stream = j->_archive->getResource(ID_ANIM, animId);
- uint32 type = 0;
- for (Common::List<Library>::iterator i = _libraries.begin(); i != _libraries.end(); i++)
- if (i->_archive->hasResource(ID_ANIM, animId)) {
- type = i->_archive->getResourceFlags(ID_ANIM, animId);
- break;
- }
+ // When loading from savegame, make sure we have the correct stream
+ if ((!size) || (stream->size() >= size)) break;
+ stream = NULL;
+ }
+
+ uint32 type = j->_archive->getResourceFlags(ID_ANIM, animId);
// If the resource is a pipe itself, then load the pipe
// and then fish the requested animation out of it.
if (type != 1) {
_pipeStreams.push_back(stream);
- newPipe = new Pipe(stream);
+ newPipe = new Pipe(stream, animId);
_pipes.push_front(newPipe);
newPipe->nextFrame();
stream = newPipe->getResource(ID_ANIM, animId, false);
}
}
- Animation *anim = new Animation(stream, animId, Common::Point(x, y), eventParam);
- _anims.push_back(anim);
- runEvent(kEventAnimStarted, animId, eventParam, 0);
+ anim = new Animation(stream, animId, Common::Point(x, y), eventParam);
if (newPipe)
newPipe->_anim = anim;
}
+void ComposerEngine::playAnimation(uint16 animId, int16 x, int16 y, int16 eventParam) {
+ // First, we check if this animation is already playing,
+ // and if it is, we sabotage that running one first.
+ for (Common::List<Animation *>::iterator i = _anims.begin(); i != _anims.end(); i++) {
+ Animation *anim = *i;
+ if (anim->_id != animId)
+ continue;
+
+ stopAnimation(*i);
+ }
+
+ Animation *anim = NULL;
+ loadAnimation(anim, animId, x, y, eventParam);
+ _anims.push_back(anim);
+ runEvent(kEventAnimStarted, animId, eventParam, 0);
+}
+
void ComposerEngine::stopAnimation(Animation *anim, bool localOnly, bool pipesOnly) {
// disable the animation
anim->_state = 0;
@@ -376,7 +387,7 @@ void ComposerEngine::playPipe(uint16 id) {
}
Common::SeekableReadStream *stream = getResource(ID_PIPE, id);
- OldPipe *pipe = new OldPipe(stream);
+ OldPipe *pipe = new OldPipe(stream, id);
_pipes.push_front(pipe);
//pipe->nextFrame();
diff --git a/engines/composer/graphics.h b/engines/composer/graphics.h
index a8f37ddf60..4805e5017d 100644
--- a/engines/composer/graphics.h
+++ b/engines/composer/graphics.h
@@ -59,6 +59,7 @@ struct Animation {
uint32 _eventParam;
uint32 _state;
+ uint32 _size;
Common::Array<AnimationEntry> _entries;
diff --git a/engines/composer/module.mk b/engines/composer/module.mk
index c879d53630..74465cf156 100644
--- a/engines/composer/module.mk
+++ b/engines/composer/module.mk
@@ -6,6 +6,7 @@ MODULE_OBJS = \
detection.o \
graphics.o \
resource.o \
+ saveload.o \
scripting.o
# This module can be built as a plugin
diff --git a/engines/composer/resource.cpp b/engines/composer/resource.cpp
index d867f734a9..fa1811c05a 100644
--- a/engines/composer/resource.cpp
+++ b/engines/composer/resource.cpp
@@ -248,10 +248,11 @@ bool ComposerArchive::openStream(Common::SeekableReadStream *stream) {
return true;
}
-Pipe::Pipe(Common::SeekableReadStream *stream) {
+Pipe::Pipe(Common::SeekableReadStream *stream, uint16 id) {
_offset = 0;
_stream = stream;
_anim = NULL;
+ _pipeId = id;
}
Pipe::~Pipe() {
@@ -312,8 +313,14 @@ Common::SeekableReadStream *Pipe::getResource(uint32 tag, uint16 id, bool buffer
if (res.entries.size() == 1) {
Common::SeekableReadStream *stream = new Common::SeekableSubReadStream(_stream,
res.entries[0].offset, res.entries[0].offset + res.entries[0].size);
- if (buffering)
+ if (buffering) {
_types[tag].erase(id);
+ bool found = false;
+ for (Common::List<uint16>::const_iterator i = _bufferedResources[tag].begin(); !found && (i != _bufferedResources[tag].end()); i++)
+ if ((*i) == id) found = true;
+ if (!found)
+ _bufferedResources[tag].push_back(id);
+ }
return stream;
}
@@ -330,12 +337,18 @@ Common::SeekableReadStream *Pipe::getResource(uint32 tag, uint16 id, bool buffer
_stream->read(buffer + offset, res.entries[i].size);
offset += res.entries[i].size;
}
- if (buffering)
+ if (buffering) {
_types[tag].erase(id);
+ bool found = false;
+ for (Common::List<uint16>::const_iterator i = _bufferedResources[tag].begin(); !found && (i != _bufferedResources[tag].end()); i++)
+ if ((*i) == id) found = true;
+ if (!found)
+ _bufferedResources[tag].push_back(id);
+ }
return new Common::MemoryReadStream(buffer, size, DisposeAfterUse::YES);
}
-OldPipe::OldPipe(Common::SeekableReadStream *stream) : Pipe(stream), _currFrame(0) {
+OldPipe::OldPipe(Common::SeekableReadStream *stream, uint16 pipeId) : Pipe(stream, pipeId), _currFrame(0) {
uint32 tag = _stream->readUint32BE();
if (tag != ID_PIPE)
error("invalid tag for pipe (%08x)", tag);
diff --git a/engines/composer/resource.h b/engines/composer/resource.h
index b624da1776..fc4e20a2cd 100644
--- a/engines/composer/resource.h
+++ b/engines/composer/resource.h
@@ -106,7 +106,7 @@ struct PipeResource {
class Pipe {
public:
- Pipe(Common::SeekableReadStream *stream);
+ Pipe(Common::SeekableReadStream *stream, uint16 id);
virtual ~Pipe();
virtual void nextFrame();
@@ -116,6 +116,11 @@ public:
Common::SeekableReadStream *getResource(uint32 tag, uint16 id, bool buffering);
virtual const Common::Array<uint16> *getScripts() { return NULL; }
+ uint16 getPipeId() const { return _pipeId; }
+ virtual uint32 getOffset() const { return _offset; }
+ virtual void setOffset(uint32 offset) { while (_offset < offset) nextFrame(); }
+ typedef Common::HashMap<uint32, Common::List<uint16> > DelMap;
+ DelMap _bufferedResources;
protected:
Common::SeekableReadStream *_stream;
@@ -123,16 +128,19 @@ protected:
typedef Common::HashMap<uint16, PipeResource> ResourceMap;
typedef Common::HashMap<uint32, ResourceMap> TypeMap;
TypeMap _types;
+ uint16 _pipeId;
uint32 _offset;
};
class OldPipe : public Pipe {
public:
- OldPipe(Common::SeekableReadStream *stream);
+ OldPipe(Common::SeekableReadStream *stream, uint16 pipeId);
void nextFrame();
const Common::Array<uint16> *getScripts() { return &_scripts; }
+ uint32 getOffset() const { return _currFrame; }
+ void setOffset(uint32 offset) { while (_currFrame < offset) nextFrame(); }
protected:
uint32 _currFrame, _numFrames;
diff --git a/engines/composer/saveload.cpp b/engines/composer/saveload.cpp
new file mode 100644
index 0000000000..ea657a9dd4
--- /dev/null
+++ b/engines/composer/saveload.cpp
@@ -0,0 +1,428 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "audio/audiostream.h"
+#include "audio/decoders/raw.h"
+#include "common/config-manager.h"
+#include "common/memstream.h"
+#include "common/savefile.h"
+#include "common/serializer.h"
+#include "common/system.h"
+#include "common/zlib.h"
+#include "graphics/palette.h"
+
+#include "composer/composer.h"
+#include "composer/graphics.h"
+
+namespace Composer {
+
+template<class T>
+void ComposerEngine::syncArray(Common::Serializer &ser, Common::Array<T> &data, Common::Serializer::Version minVersion, Common::Serializer::Version maxVersion) {
+ if (ser.isSaving()) {
+ uint32 size = data.size();
+ ser.syncAsUint32LE(size, minVersion, maxVersion);
+ for (typename Common::Array<T>::iterator i = data.begin(); i != data.end(); i++) {
+ sync<T>(ser, *i, minVersion, maxVersion);
+ }
+ } else {
+ uint32 size;
+ data.clear();
+ ser.syncAsUint32LE(size, minVersion, maxVersion);
+ for (uint32 i = 0; i < size; i++) {
+ T item;
+ sync<T>(ser, item, minVersion, maxVersion);
+ data.push_back(item);
+ }
+ }
+}
+template<class T>
+void ComposerEngine::syncList(Common::Serializer &ser, Common::List<T> &data, Common::Serializer::Version minVersion, Common::Serializer::Version maxVersion) {
+ if (ser.isSaving()) {
+ uint32 size = data.size();
+ ser.syncAsUint32LE(size, minVersion, maxVersion);
+ for (typename Common::List<T>::iterator i = data.begin(); i != data.end(); i++) {
+ sync<T>(ser, *i, minVersion, maxVersion);
+ }
+ } else {
+ uint32 size;
+ data.clear();
+ ser.syncAsUint32LE(size, minVersion, maxVersion);
+ for (uint32 i = 0; i < size; i++) {
+ T item;
+ sync<T>(ser, item, minVersion, maxVersion);
+ data.push_back(item);
+ }
+ }
+}
+template<class T>
+void ComposerEngine::syncListReverse(Common::Serializer &ser, Common::List<T> &data, Common::Serializer::Version minVersion, Common::Serializer::Version maxVersion) {
+ if (ser.isSaving()) {
+ uint32 size = data.size();
+ ser.syncAsUint32LE(size, minVersion, maxVersion);
+ for (typename Common::List<T>::iterator i = data.reverse_begin(); i != data.end(); i--) {
+ sync<T>(ser, *i, minVersion, maxVersion);
+ }
+ } else {
+ uint32 size;
+ data.clear();
+ ser.syncAsUint32LE(size, minVersion, maxVersion);
+ for (uint32 i = 0; i < size; i++) {
+ T item;
+ sync<T>(ser, item, minVersion, maxVersion);
+ data.push_front(item);
+ }
+ }
+}
+template<>
+void ComposerEngine::sync<uint16>(Common::Serializer &ser, uint16 &data, Common::Serializer::Version minVersion, Common::Serializer::Version maxVersion) {
+ ser.syncAsUint16LE(data, minVersion, maxVersion);
+}
+template<>
+void ComposerEngine::sync<uint32>(Common::Serializer &ser, uint32 &data, Common::Serializer::Version minVersion, Common::Serializer::Version maxVersion) {
+ ser.syncAsUint32LE(data, minVersion, maxVersion);
+}
+template<>
+void ComposerEngine::sync<Library>(Common::Serializer &ser, Library &data, Common::Serializer::Version minVersion, Common::Serializer::Version maxVersion) {
+ if (ser.isSaving()) {
+ ser.syncAsUint16LE(data._id, minVersion, maxVersion);
+ ser.syncString(data._group, minVersion, maxVersion);
+ } else {
+ uint16 id;
+ ser.syncAsUint16LE(id, minVersion, maxVersion);
+ ser.syncString(_bookGroup, minVersion, maxVersion);
+ loadLibrary(id);
+ }
+}
+template<>
+void ComposerEngine::syncListReverse<Library>(Common::Serializer &ser, Common::List<Library> &data, Common::Serializer::Version minVersion, Common::Serializer::Version maxVersion) {
+ if (ser.isSaving()) {
+ uint32 size = data.size();
+ ser.syncAsUint32LE(size, minVersion, maxVersion);
+ for (Common::List<Library>::iterator i = data.reverse_begin(); i != data.end(); i--) {
+ sync<Library>(ser, *i, minVersion, maxVersion);
+ }
+ } else {
+ uint32 size;
+ ser.syncAsUint32LE(size, minVersion, maxVersion);
+ for (uint32 i = 0; i < size; i++) {
+ Library item;
+ sync<Library>(ser, item, minVersion, maxVersion);
+ }
+ }
+}
+template<>
+void ComposerEngine::sync<PendingPageChange>(Common::Serializer &ser, PendingPageChange &data, Common::Serializer::Version minVersion, Common::Serializer::Version maxVersion) {
+ ser.syncAsUint16LE(data._pageId, minVersion, maxVersion);
+ ser.syncAsByte(data._remove, minVersion, maxVersion);
+}
+template<>
+void ComposerEngine::sync<OldScript *>(Common::Serializer &ser, OldScript *&data, Common::Serializer::Version minVersion, Common::Serializer::Version maxVersion) {
+ uint16 id;
+ uint32 pos, delay;
+ if (ser.isSaving()) {
+ pos = data->_stream->pos();
+ id = data->_id;
+ delay = data->_currDelay;
+ }
+ ser.syncAsUint32LE(pos);
+ ser.syncAsUint16LE(id);
+ ser.syncAsUint32LE(delay);
+ if (ser.isLoading()) {
+ data = new OldScript(id, getResource(ID_SCRP, id));
+ data->_currDelay = delay;
+ data->_stream->seek(pos, SEEK_SET);
+ }
+}
+template<>
+void ComposerEngine::sync<QueuedScript>(Common::Serializer &ser, QueuedScript &data, Common::Serializer::Version minVersion, Common::Serializer::Version maxVersion) {
+ ser.syncAsUint32LE(data._baseTime);
+ ser.syncAsUint32LE(data._duration);
+ ser.syncAsUint32LE(data._count);
+ ser.syncAsUint16LE(data._scriptId);
+ if (ser.isLoading()) data._baseTime += _timeDelta;
+}
+template<>
+void ComposerEngine::sync<Pipe *>(Common::Serializer &ser, Pipe *&data, Common::Serializer::Version minVersion, Common::Serializer::Version maxVersion) {
+ uint16 id;
+ uint32 offset, tmp;
+ if (ser.isSaving()) {
+ id = data->getPipeId();
+ offset = data->getOffset();
+ tmp = data->_bufferedResources.size();
+ }
+ ser.syncAsUint16LE(id);
+ ser.syncAsUint32LE(offset);
+
+ if (ser.isLoading()) {
+ // On load, get and initialize streams
+ Common::SeekableReadStream *stream;
+ if (getGameType() == GType_ComposerV1) {
+ stream = getResource(ID_PIPE, id);
+ data = new OldPipe(stream, id);
+ } else {
+ stream = getResource(ID_ANIM, id);
+ data = new Pipe(stream, id);
+ }
+ _pipeStreams.push_back(stream);
+ data->setOffset(offset);
+ ser.syncAsUint32LE(tmp);
+ for (uint32 j = tmp; j > 0; j--) {
+ uint32 tag;
+ ser.syncAsUint32LE(tag);
+ ser.syncAsUint32LE(tmp);
+ for (uint32 k = tmp; k > 0; k--) {
+ ser.syncAsUint16LE(id);
+ if (data->hasResource(tag, id))
+ data->getResource(tag, id, true);
+ }
+ }
+ } else {
+ ser.syncAsUint32LE(tmp);
+ for (Pipe::DelMap::iterator i = data->_bufferedResources.begin(); i != data->_bufferedResources.end(); i++) {
+ uint32 key = (*i)._key;
+ ser.syncAsUint32LE(key);
+ syncList<uint16>(ser, (*i)._value, minVersion, maxVersion);
+ }
+ }
+}
+template<>
+void ComposerEngine::sync<AnimationEntry>(Common::Serializer &ser, AnimationEntry &data, Common::Serializer::Version minVersion, Common::Serializer::Version maxVersion) {
+ ser.syncAsUint32LE(data.state);
+ ser.syncAsUint16LE(data.counter);
+ ser.syncAsUint16LE(data.prevValue);
+}
+template<>
+void ComposerEngine::sync<Animation *>(Common::Serializer &ser, Animation *&data, Common::Serializer::Version minVersion, Common::Serializer::Version maxVersion) {
+ uint16 animId, x, y;
+ uint32 offset, state, param;
+ int32 size;
+ if (ser.isSaving()) {
+ animId = data->_id;
+ offset = data->_offset;
+ x = data->_basePos.x;
+ y = data->_basePos.x;
+ state = data->_state;
+ param = data->_eventParam;
+ size = data->_size;
+ }
+ ser.syncAsUint16LE(animId);
+ ser.syncAsUint32LE(offset);
+ ser.syncAsUint16LE(x);
+ ser.syncAsUint16LE(y);
+ ser.syncAsUint32LE(state);
+ ser.syncAsUint32LE(param);
+ ser.syncAsUint32LE(size);
+ if (ser.isLoading()) {
+ // On load, get and initialize streams
+ loadAnimation(data, animId, x, y, param, size);
+ data->_offset = offset;
+ data->_state = state;
+ uint32 tmp;
+ ser.syncAsUint32LE(tmp);
+ for (uint32 i = 0; i < tmp; i++) {
+ sync<AnimationEntry>(ser, data->_entries[i], minVersion, maxVersion);
+ }
+ } else {
+ syncArray<AnimationEntry>(ser, data->_entries, minVersion, maxVersion);
+ }
+}
+template<>
+void ComposerEngine::sync<Sprite>(Common::Serializer &ser, Sprite &data, Common::Serializer::Version minVersion, Common::Serializer::Version maxVersion) {
+ ser.syncAsUint16LE(data._id);
+ ser.syncAsUint16LE(data._animId);
+ ser.syncAsSint16LE(data._pos.x);
+ ser.syncAsSint16LE(data._pos.y);
+ ser.syncAsUint16LE(data._surface.w);
+ ser.syncAsUint16LE(data._surface.h);
+ ser.syncAsUint16LE(data._surface.pitch);
+ ser.syncAsUint16LE(data._zorder);
+ if (ser.isLoading())
+ data._surface.setPixels(malloc(data._surface.h * data._surface.pitch));
+ byte *pix = static_cast<byte *>(data._surface.getPixels());
+ for (uint16 y = 0; y < data._surface.h; y++) {
+ for (uint16 x = 0; x < data._surface.w; x++) {
+ ser.syncAsByte(pix[x]);
+ }
+ pix += data._surface.pitch;
+ }
+
+}
+Common::String ComposerEngine::makeSaveGameName(int slot) {
+ return (_targetName + Common::String::format(".%02d", slot));
+}
+
+Common::Error ComposerEngine::loadGameState(int slot) {
+ Common::String filename = makeSaveGameName(slot);
+ Common::InSaveFile *in;
+ if (!(in = _saveFileMan->openForLoading(filename)))
+ return Common::kPathNotFile;
+
+ Common::Serializer ser(in, NULL);
+ byte magic[4];
+ ser.syncBytes(magic, 4);
+ if (magic[0] != 'C' || magic[1] != 'M' || magic[2] != 'P' || magic[3] != 'S')
+ return Common::kUnknownError;
+
+ ser.syncVersion(0);
+ Common::String desc;
+ ser.syncString(desc);
+ uint32 tmp;
+ ser.syncAsUint32LE(tmp);
+ _rnd->setSeed(tmp);
+ ser.syncAsUint32LE(_currentTime);
+ _timeDelta = _system->getMillis() - _currentTime;
+ _currentTime += _timeDelta;
+ ser.syncAsUint32LE(_lastTime);
+ _lastTime += _timeDelta;
+
+ // Unload all Libraries
+ Common::Array<uint16> libIds;
+ for (Common::List<Library>::iterator i = _libraries.begin(); i != _libraries.end(); i++)
+ libIds.push_back((*i)._id);
+ for (uint32 i = 0; i < libIds.size(); i++)
+ unloadLibrary(libIds[i]);
+
+ syncListReverse<Library>(ser, _libraries);
+ ser.syncString(_bookGroup);
+
+ syncArray<PendingPageChange>(ser, _pendingPageChanges);
+ syncArray<uint16>(ser, _stack);
+ syncArray<uint16>(ser, _vars);
+
+ // Free outdated pointers
+ for (Common::List<OldScript *>::iterator i = _oldScripts.begin(); i != _oldScripts.end(); i++) {
+ delete *i;
+ }
+
+ syncList<OldScript *>(ser, _oldScripts);
+ syncArray<QueuedScript>(ser, _queuedScripts);
+
+ ser.syncAsSint16LE(_lastMousePos.x);
+ ser.syncAsSint16LE(_lastMousePos.y);
+ g_system->warpMouse(_lastMousePos.x, _lastMousePos.y);
+ ser.syncAsByte(_mouseEnabled);
+ ser.syncAsByte(_mouseVisible);
+ ser.syncAsUint16LE(_mouseSpriteId);
+
+ // Free outdated pointers
+ for (Common::List<Pipe *>::iterator i = _pipes.begin(); i != _pipes.end(); i++) {
+ delete *i;
+ }
+ for (Common::Array<Common::SeekableReadStream *>::iterator i = _pipeStreams.begin(); i != _pipeStreams.end(); i++) {
+ delete *i;
+ }
+
+ _pipeStreams.clear();
+ syncListReverse<Pipe *>(ser, _pipes);
+
+ // Free outdated pointers
+ for (Common::List<Animation *>::iterator i = _anims.begin(); i != _anims.end(); i++) {
+ delete *i;
+ }
+
+ syncList<Animation *>(ser, _anims);
+ syncList<Sprite>(ser, _sprites);
+
+ _dirtyRects.clear();
+
+ // Redraw the whole screen
+ _dirtyRects.push_back(Common::Rect(0, 0, 640, 480));
+ byte palbuf[256 * 3];
+ ser.syncBytes(palbuf, 256 * 3);
+ _system->getPaletteManager()->setPalette(palbuf, 0, 256);
+ _needsUpdate = true;
+
+ _mixer->stopAll();
+ _audioStream = NULL;
+
+ // Restore the buffered audio
+ ser.syncAsSint16LE(_currSoundPriority);
+ int32 numSamples;
+ ser.syncAsSint32LE(numSamples);
+ int16 *audioBuffer = (int16 *)malloc(numSamples * 2);
+ for (int32 i = 0; i < numSamples; i++)
+ ser.syncAsSint16LE(audioBuffer[i]);
+ _audioStream = Audio::makeQueuingAudioStream(22050, false);
+ _audioStream->queueBuffer((byte *)audioBuffer, numSamples * 2, DisposeAfterUse::YES, Audio::FLAG_16BITS);
+ if (!_mixer->isSoundHandleActive(_soundHandle))
+ _mixer->playStream(Audio::Mixer::kSFXSoundType, &_soundHandle, _audioStream);
+
+
+ // Reset autosave duration on load
+ _lastSaveTime = _system->getMillis();
+
+ return Common::kNoError;
+}
+
+Common::Error ComposerEngine::saveGameState(int slot, const Common::String &desc) {
+ Common::String filename = makeSaveGameName(slot);
+ Common::OutSaveFile *out;
+ _lastSaveTime = _system->getMillis();
+ if (!(out = _saveFileMan->openForSaving(filename)))
+ return Common::kWritingFailed;
+
+ Common::Serializer ser(NULL, out);
+ byte magic[4] = {'C', 'M', 'P', 'S'};
+ ser.syncBytes(magic, 4);
+ ser.syncVersion(0);
+ Common::String desctmp = desc;
+ ser.syncString(desctmp);
+ uint32 tmp = _rnd->getSeed();
+ ser.syncAsUint32LE(tmp);
+ ser.syncAsUint32LE(_currentTime);
+ ser.syncAsUint32LE(_lastTime);
+
+ syncListReverse<Library>(ser, _libraries);
+ ser.syncString(_bookGroup);
+
+ syncArray<PendingPageChange>(ser, _pendingPageChanges);
+ syncArray<uint16>(ser, _stack);
+ syncArray<uint16>(ser, _vars);
+ syncList<OldScript *>(ser, _oldScripts);
+ syncArray<QueuedScript>(ser, _queuedScripts);
+
+ ser.syncAsSint16LE(_lastMousePos.x);
+ ser.syncAsSint16LE(_lastMousePos.y);
+ ser.syncAsByte(_mouseEnabled);
+ ser.syncAsByte(_mouseVisible);
+ ser.syncAsUint16LE(_mouseSpriteId);
+
+ syncListReverse<Pipe *>(ser, _pipes);
+ syncList<Animation *>(ser, _anims);
+ syncList<Sprite>(ser, _sprites);
+
+ byte paletteBuffer[256 * 3];
+ _system->getPaletteManager()->grabPalette(paletteBuffer, 0, 256);
+ ser.syncBytes(paletteBuffer, 256 * 3);
+
+ ser.syncAsSint16LE(_currSoundPriority);
+ int16 audioBuffer[22050];
+ int32 numSamples = _audioStream->readBuffer(audioBuffer, 22050);
+ if (numSamples == -1) numSamples = 0;
+ ser.syncAsSint32LE(numSamples);
+ for (int32 i = 0; i < numSamples; i++)
+ ser.syncAsSint16LE(audioBuffer[i]);
+
+ out->finalize();
+ return Common::kNoError;
+}
+} // End of namespace Composer
diff --git a/engines/director/archive.cpp b/engines/director/archive.cpp
index 1af63a81b7..ff97d3fce1 100644
--- a/engines/director/archive.cpp
+++ b/engines/director/archive.cpp
@@ -20,229 +20,455 @@
*
*/
-#include "common/macresman.h"
-
+#include "director/archive.h"
#include "director/director.h"
-#include "director/resource.h"
-#include "director/lingo/lingo.h"
+
+#include "common/debug.h"
+#include "common/macresman.h"
namespace Director {
-Archive *DirectorEngine::createArchive() {
- if (getPlatform() == Common::kPlatformMacintosh) {
- if (getVersion() < 4)
- return new MacArchive();
- else
- return new RIFXArchive();
- } else {
- return new RIFFArchive();
- }
+// Base Archive code
+
+Archive::Archive() {
+ _stream = 0;
+ _isBigEndian = true;
}
-void DirectorEngine::loadMainArchive() {
- if (getPlatform() == Common::kPlatformWindows)
- loadEXE();
- else
- loadMac();
-}
-
-void DirectorEngine::cleanupMainArchive() {
- delete _mainArchive;
- delete _macBinary;
-}
-
-void DirectorEngine::loadEXE() {
- Common::SeekableReadStream *exeStream = SearchMan.createReadStreamForMember(getEXEName());
- if (!exeStream)
- error("Failed to open EXE '%s'", getEXEName().c_str());
-
- _lingo->processEvent(kEventStart, 0);
-
- exeStream->seek(-4, SEEK_END);
- exeStream->seek(exeStream->readUint32LE());
-
- switch (getVersion()) {
- case 3:
- loadEXEv3(exeStream);
- break;
- case 4:
- loadEXEv4(exeStream);
- break;
- case 5:
- loadEXEv5(exeStream);
- break;
- case 7:
- loadEXEv7(exeStream);
- break;
- default:
- error("Unhandled Windows EXE version %d", getVersion());
+Archive::~Archive() {
+ close();
+}
+
+bool Archive::openFile(const Common::String &fileName) {
+ Common::File *file = new Common::File();
+
+ if (!file->open(fileName)) {
+ delete file;
+ return false;
+ }
+
+ if (!openStream(file)) {
+ close();
+ return false;
}
+
+ _fileName = fileName;
+
+ return true;
}
-void DirectorEngine::loadEXEv3(Common::SeekableReadStream *stream) {
- uint16 entryCount = stream->readUint16LE();
- if (entryCount != 1)
- error("Unhandled multiple entry v3 EXE");
+void Archive::close() {
+ _types.clear();
+
+ if (_stream)
+ delete _stream;
- stream->skip(5); // unknown
+ _stream = 0;
+}
+
+bool Archive::hasResource(uint32 tag, uint16 id) const {
+ if (!_types.contains(tag))
+ return false;
- stream->readUint32LE(); // Main MMM size
- Common::String mmmFileName = readPascalString(*stream);
- Common::String directoryName = readPascalString(*stream);
+ return _types[tag].contains(id);
+}
- debugC(1, kDebugLoading, "Main MMM: '%s'", mmmFileName.c_str());
- debugC(1, kDebugLoading, "Directory Name: '%s'", directoryName.c_str());
+bool Archive::hasResource(uint32 tag, const Common::String &resName) const {
+ if (!_types.contains(tag) || resName.empty())
+ return false;
- _mainArchive = new RIFFArchive();
+ const ResourceMap &resMap = _types[tag];
- if (!_mainArchive->openFile(mmmFileName))
- error("Could not open '%s'", mmmFileName.c_str());
+ for (ResourceMap::const_iterator it = resMap.begin(); it != resMap.end(); it++)
+ if (it->_value.name.matchString(resName))
+ return true;
- delete stream;
+ return false;
}
-void DirectorEngine::loadEXEv4(Common::SeekableReadStream *stream) {
- if (stream->readUint32BE() != MKTAG('P', 'J', '9', '3'))
- error("Invalid projector tag found in v4 EXE");
+Common::SeekableSubReadStreamEndian *Archive::getResource(uint32 tag, uint16 id) {
+ if (!_types.contains(tag))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ const ResourceMap &resMap = _types[tag];
- uint32 rifxOffset = stream->readUint32LE();
- /* uint32 fontMapOffset = */ stream->readUint32LE();
- /* uint32 resourceForkOffset1 = */ stream->readUint32LE();
- /* uint32 resourceForkOffset2 = */ stream->readUint32LE();
- stream->readUint32LE(); // graphics DLL offset
- stream->readUint32LE(); // sound DLL offset
- /* uint32 rifxOffsetAlt = */ stream->readUint32LE(); // equivalent to rifxOffset
+ if (!resMap.contains(id))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
- loadEXERIFX(stream, rifxOffset);
+ const Resource &res = resMap[id];
+
+ return new Common::SeekableSubReadStreamEndian(_stream, res.offset, res.offset + res.size, _isBigEndian, DisposeAfterUse::NO);
}
-void DirectorEngine::loadEXEv5(Common::SeekableReadStream *stream) {
- if (stream->readUint32LE() != MKTAG('P', 'J', '9', '5'))
- error("Invalid projector tag found in v5 EXE");
+uint32 Archive::getOffset(uint32 tag, uint16 id) const {
+ if (!_types.contains(tag))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ const ResourceMap &resMap = _types[tag];
- uint32 rifxOffset = stream->readUint32LE();
- stream->readUint32LE(); // unknown
- stream->readUint32LE(); // unknown
- stream->readUint32LE(); // unknown
- /* uint16 screenWidth = */ stream->readUint16LE();
- /* uint16 screenHeight = */ stream->readUint16LE();
- stream->readUint32LE(); // unknown
- stream->readUint32LE(); // unknown
- /* uint32 fontMapOffset = */ stream->readUint32LE();
+ if (!resMap.contains(id))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
- loadEXERIFX(stream, rifxOffset);
+ return resMap[id].offset;
}
-void DirectorEngine::loadEXEv7(Common::SeekableReadStream *stream) {
- if (stream->readUint32LE() != MKTAG('P', 'J', '0', '0'))
- error("Invalid projector tag found in v7 EXE");
+uint16 Archive::findResourceID(uint32 tag, const Common::String &resName) const {
+ if (!_types.contains(tag) || resName.empty())
+ return 0xFFFF;
- uint32 rifxOffset = stream->readUint32LE();
- stream->readUint32LE(); // unknown
- stream->readUint32LE(); // unknown
- stream->readUint32LE(); // unknown
- stream->readUint32LE(); // unknown
- stream->readUint32LE(); // some DLL offset
+ const ResourceMap &resMap = _types[tag];
- loadEXERIFX(stream, rifxOffset);
+ for (ResourceMap::const_iterator it = resMap.begin(); it != resMap.end(); it++)
+ if (it->_value.name.matchString(resName))
+ return it->_key;
+
+ return 0xFFFF;
}
-void DirectorEngine::loadEXERIFX(Common::SeekableReadStream *stream, uint32 offset) {
- _mainArchive = new RIFXArchive();
+Common::String Archive::getName(uint32 tag, uint16 id) const {
+ if (!_types.contains(tag))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ const ResourceMap &resMap = _types[tag];
- if (!_mainArchive->openStream(stream, offset))
- error("Failed to load RIFX from EXE");
+ if (!resMap.contains(id))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ return resMap[id].name;
}
-void DirectorEngine::loadMac() {
- if (getVersion() < 4) {
- // The data is part of the resource fork of the executable
- _mainArchive = new MacArchive();
+Common::Array<uint32> Archive::getResourceTypeList() const {
+ Common::Array<uint32> typeList;
- if (!_mainArchive->openFile(getEXEName()))
- error("Failed to open Mac binary '%s'", getEXEName().c_str());
- } else {
- // The RIFX is located in the data fork of the executable
- _macBinary = new Common::MacResManager();
+ for (TypeMap::const_iterator it = _types.begin(); it != _types.end(); it++)
+ typeList.push_back(it->_key);
- if (!_macBinary->open(getEXEName()) || !_macBinary->hasDataFork())
- error("Failed to open Mac binary '%s'", getEXEName().c_str());
+ return typeList;
+}
- Common::SeekableReadStream *dataFork = _macBinary->getDataFork();
- _mainArchive = new RIFXArchive();
+Common::Array<uint16> Archive::getResourceIDList(uint32 type) const {
+ Common::Array<uint16> idList;
- // First we need to detect PPC vs. 68k
+ if (!_types.contains(type))
+ return idList;
- uint32 tag = dataFork->readUint32BE();
- uint32 startOffset;
+ const ResourceMap &resMap = _types[type];
- if (SWAP_BYTES_32(tag) == MKTAG('P', 'J', '9', '3') || tag == MKTAG('P', 'J', '9', '5') || tag == MKTAG('P', 'J', '0', '0')) {
- // PPC: The RIFX shares the data fork with the binary
- startOffset = dataFork->readUint32BE();
- } else {
- // 68k: The RIFX is the only thing in the data fork
- startOffset = 0;
- }
+ for (ResourceMap::const_iterator it = resMap.begin(); it != resMap.end(); it++)
+ idList.push_back(it->_key);
- if (!_mainArchive->openStream(dataFork, startOffset))
- error("Failed to load RIFX from Mac binary");
- }
+ return idList;
}
-void DirectorEngine::loadSharedCastsFrom(Common::String filename) {
- Archive *shardcst = createArchive();
+uint32 Archive::convertTagToUppercase(uint32 tag) {
+ uint32 newTag = toupper(tag >> 24) << 24;
+ newTag |= toupper((tag >> 16) & 0xFF) << 16;
+ newTag |= toupper((tag >> 8) & 0xFF) << 8;
- debugC(1, kDebugLoading, "Loading Shared cast '%s'", filename.c_str());
+ return newTag | toupper(tag & 0xFF);
+}
- shardcst->openFile(filename);
+// Mac Archive code
- _sharedDIB = new Common::HashMap<int, Common::SeekableSubReadStreamEndian *>;
- _sharedSTXT = new Common::HashMap<int, Common::SeekableSubReadStreamEndian *>;
- _sharedSound = new Common::HashMap<int, Common::SeekableSubReadStreamEndian *>;
- _sharedBMP = new Common::HashMap<int, Common::SeekableSubReadStreamEndian *>;
+MacArchive::MacArchive() : Archive(), _resFork(0) {
+}
- Score *castScore = new Score(this, shardcst);
+MacArchive::~MacArchive() {
+ delete _resFork;
+}
- castScore->loadConfig(*shardcst->getResource(MKTAG('V','W','C','F'), 1024));
- castScore->loadCastData(*shardcst->getResource(MKTAG('V','W','C','R'), 1024));
+void MacArchive::close() {
+ Archive::close();
+ delete _resFork;
+ _resFork = 0;
+}
- _sharedCasts = &castScore->_casts;
+bool MacArchive::openFile(const Common::String &fileName) {
+ close();
- Common::Array<uint16> dib = shardcst->getResourceIDList(MKTAG('D','I','B',' '));
- if (dib.size() != 0) {
- debugC(3, kDebugLoading, "Loading %d DIBs", dib.size());
+ _resFork = new Common::MacResManager();
- for (Common::Array<uint16>::iterator iterator = dib.begin(); iterator != dib.end(); ++iterator) {
- debugC(3, kDebugLoading, "Shared DIB %d", *iterator);
- _sharedDIB->setVal(*iterator, shardcst->getResource(MKTAG('D','I','B',' '), *iterator));
- }
+ if (!_resFork->open(fileName) || !_resFork->hasResFork()) {
+ close();
+ return false;
+ }
+
+ _fileName = _resFork->getBaseFileName();
+ if (_fileName.hasSuffix(".bin")) {
+ for (int i = 0; i < 4; i++)
+ _fileName.deleteLastChar();
}
- Common::Array<uint16> stxt = shardcst->getResourceIDList(MKTAG('S','T','X','T'));
- if (stxt.size() != 0) {
- debugC(3, kDebugLoading, "Loading %d STXTs", stxt.size());
+ Common::MacResTagArray tagArray = _resFork->getResTagArray();
- for (Common::Array<uint16>::iterator iterator = stxt.begin(); iterator != stxt.end(); ++iterator) {
- debugC(3, kDebugLoading, "Shared STXT %d", *iterator);
- _sharedSTXT->setVal(*iterator, shardcst->getResource(MKTAG('S','T','X','T'), *iterator));
+ for (uint32 i = 0; i < tagArray.size(); i++) {
+ ResourceMap &resMap = _types[tagArray[i]];
+ Common::MacResIDArray idArray = _resFork->getResIDArray(tagArray[i]);
+
+ for (uint32 j = 0; j < idArray.size(); j++) {
+ Resource &res = resMap[idArray[j]];
+
+ res.offset = res.size = 0; // unused
+ res.name = _resFork->getResName(tagArray[i], idArray[j]);
+ debug(3, "Found MacArchive resource '%s' %d: %s", tag2str(tagArray[i]), idArray[j], res.name.c_str());
}
}
- Common::Array<uint16> bmp = shardcst->getResourceIDList(MKTAG('B','I','T','D'));
- if (bmp.size() != 0) {
- debugC(3, kDebugLoading, "Loading %d BITDs", bmp.size());
- for (Common::Array<uint16>::iterator iterator = bmp.begin(); iterator != bmp.end(); ++iterator) {
- _sharedBMP->setVal(*iterator, shardcst->getResource(MKTAG('B','I','T','D'), *iterator));
+ return true;
+}
+
+bool MacArchive::openStream(Common::SeekableReadStream *stream, uint32 startOffset) {
+ // TODO: Add support for this (v4 Windows games)
+ return false;
+}
+
+Common::SeekableSubReadStreamEndian *MacArchive::getResource(uint32 tag, uint16 id) {
+ assert(_resFork);
+ Common::SeekableReadStream *stream = _resFork->getResource(tag, id);
+ return new Common::SeekableSubReadStreamEndian(stream, 0, stream->size(), true, DisposeAfterUse::NO);
+}
+
+// RIFF Archive code
+
+bool RIFFArchive::openStream(Common::SeekableReadStream *stream, uint32 startOffset) {
+ close();
+
+ stream->seek(startOffset);
+
+ if (convertTagToUppercase(stream->readUint32BE()) != MKTAG('R', 'I', 'F', 'F'))
+ return false;
+
+ stream->readUint32LE(); // size
+
+ if (convertTagToUppercase(stream->readUint32BE()) != MKTAG('R', 'M', 'M', 'P'))
+ return false;
+
+ if (convertTagToUppercase(stream->readUint32BE()) != MKTAG('C', 'F', 'T', 'C'))
+ return false;
+
+ uint32 cftcSize = stream->readUint32LE();
+ uint32 startPos = stream->pos();
+ stream->readUint32LE(); // unknown (always 0?)
+
+ while ((uint32)stream->pos() < startPos + cftcSize) {
+ uint32 tag = convertTagToUppercase(stream->readUint32BE());
+
+ uint32 size = stream->readUint32LE();
+ uint32 id = stream->readUint32LE();
+ uint32 offset = stream->readUint32LE();
+
+ if (tag == 0)
+ break;
+
+ uint16 startResPos = stream->pos();
+ stream->seek(offset + 12);
+
+ Common::String name = "";
+ byte nameSize = stream->readByte();
+
+ if (nameSize) {
+ for (uint8 i = 0; i < nameSize; i++) {
+ name += stream->readByte();
+ }
}
+
+ stream->seek(startResPos);
+
+ debug(3, "Found RIFF resource '%s' %d: %d @ 0x%08x", tag2str(tag), id, size, offset);
+
+ ResourceMap &resMap = _types[tag];
+ Resource &res = resMap[id];
+ res.offset = offset;
+ res.size = size;
+ res.name = name;
}
- Common::Array<uint16> sound = shardcst->getResourceIDList(MKTAG('S','N','D',' '));
- if (stxt.size() != 0) {
- debugC(3, kDebugLoading, "Loading %d SNDs", sound.size());
- for (Common::Array<uint16>::iterator iterator = sound.begin(); iterator != sound.end(); ++iterator) {
- _sharedSound->setVal(*iterator, shardcst->getResource(MKTAG('S','N','D',' '), *iterator));
+ _stream = stream;
+ return true;
+}
+
+Common::SeekableSubReadStreamEndian *RIFFArchive::getResource(uint32 tag, uint16 id) {
+ if (!_types.contains(tag))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ const ResourceMap &resMap = _types[tag];
+
+ if (!resMap.contains(id))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ const Resource &res = resMap[id];
+
+ // Adjust to skip the resource header
+ uint32 offset = res.offset + 12;
+ uint32 size = res.size - 4;
+ // Skip the Pascal string
+ _stream->seek(offset);
+ byte stringSize = _stream->readByte(); // 1 for this byte
+
+ offset += stringSize + 1;
+ size -= stringSize + 1;
+
+ // Align to nearest word boundary
+ if (offset & 1) {
+ offset++;
+ size--;
+ }
+
+ return new Common::SeekableSubReadStreamEndian(_stream, offset, offset + size, true, DisposeAfterUse::NO);
+}
+
+// RIFX Archive code
+
+bool RIFXArchive::openStream(Common::SeekableReadStream *stream, uint32 startOffset) {
+ close();
+
+ stream->seek(startOffset);
+
+ uint32 headerTag = stream->readUint32BE();
+
+ if (headerTag == MKTAG('R', 'I', 'F', 'X'))
+ _isBigEndian = true;
+ else if (SWAP_BYTES_32(headerTag) == MKTAG('R', 'I', 'F', 'X'))
+ _isBigEndian = false;
+ else
+ return false;
+
+ Common::SeekableSubReadStreamEndian subStream(stream, startOffset + 4, stream->size(), _isBigEndian, DisposeAfterUse::NO);
+
+ subStream.readUint32(); // size
+
+ uint32 rifxType = subStream.readUint32();
+
+ if (rifxType != MKTAG('M', 'V', '9', '3') && rifxType != MKTAG('A', 'P', 'P', 'L'))
+ return false;
+
+ if (subStream.readUint32() != MKTAG('i', 'm', 'a', 'p'))
+ return false;
+
+ subStream.readUint32(); // imap length
+ subStream.readUint32(); // unknown
+ uint32 mmapOffset = subStream.readUint32() - startOffset - 4;
+ uint32 version = subStream.readUint32(); // 0 for 4.0, 0x4c1 for 5.0, 0x4c7 for 6.0, 0x708 for 8.5, 0x742 for 10.0
+ warning("RIFX: version: %x", version);
+
+ subStream.seek(mmapOffset);
+
+ if (subStream.readUint32() != MKTAG('m', 'm', 'a', 'p'))
+ return false;
+
+ subStream.readUint32(); // mmap length
+ subStream.readUint16(); // unknown
+ subStream.readUint16(); // unknown
+ subStream.readUint32(); // resCount + empty entries
+ uint32 resCount = subStream.readUint32();
+ subStream.skip(8); // all 0xFF
+ subStream.readUint32(); // unknown
+
+ Common::Array<Resource> resources;
+
+ // Need to look for these two resources
+ const Resource *keyRes = 0;
+ const Resource *casRes = 0;
+
+ for (uint32 i = 0; i < resCount; i++) {
+ uint32 tag = subStream.readUint32();
+ uint32 size = subStream.readUint32();
+ uint32 offset = subStream.readUint32();
+ uint16 flags = subStream.readUint16();
+ uint16 unk1 = subStream.readUint16();
+ uint32 unk2 = subStream.readUint32();
+
+ debug(3, "Found RIFX resource index %d: '%s', %d @ 0x%08x (%d), flags: %x unk1: %x unk2: %x",
+ i, tag2str(tag), size, offset, offset, flags, unk1, unk2);
+
+ Resource res;
+ res.offset = offset;
+ res.size = size;
+ resources.push_back(res);
+
+ // APPL is a special case; it has an embedded "normal" archive
+ if (rifxType == MKTAG('A', 'P', 'P', 'L') && tag == MKTAG('F', 'i', 'l', 'e'))
+ return openStream(stream, offset);
+
+ // Looking for two types here
+ if (tag == MKTAG('K', 'E', 'Y', '*'))
+ keyRes = &resources[resources.size() - 1];
+ else if (tag == MKTAG('C', 'A', 'S', '*'))
+ casRes = &resources[resources.size() - 1];
+ }
+
+ // We need to have found the 'File' resource already
+ if (rifxType == MKTAG('A', 'P', 'P', 'L')) {
+ warning("No 'File' resource present in APPL archive");
+ return false;
+ }
+
+ // A KEY* must be present
+ if (!keyRes) {
+ warning("No 'KEY*' resource present");
+ return false;
+ }
+
+ // Parse the CAS*, if present
+ if (casRes) {
+ Common::SeekableSubReadStreamEndian casStream(stream, casRes->offset + 8, casRes->offset + 8 + casRes->size, _isBigEndian, DisposeAfterUse::NO);
+
+ uint casSize = casRes->size / 4;
+
+ debugCN(2, kDebugLoading, "CAS*: %d [", casSize);
+
+ for (uint i = 0; i < casSize; i++) {
+ uint32 index = casStream.readUint32();
+
+ const Resource &res = resources[index];
+ _types[MKTAG('C', 'A', 'S', 't')][i + 1] = res;
+
+ debugCN(2, kDebugLoading, "%d ", index);
}
+ debugC(2, kDebugLoading, "]");
}
+
+ // Parse the KEY*
+ Common::SeekableSubReadStreamEndian keyStream(stream, keyRes->offset + 8, keyRes->offset + 8 + keyRes->size, _isBigEndian, DisposeAfterUse::NO);
+ uint16 unk1 = keyStream.readUint16();
+ uint16 unk2 = keyStream.readUint16();
+ uint32 unk3 = keyStream.readUint32();
+ uint32 keyCount = keyStream.readUint32();
+
+ debugC(2, kDebugLoading, "KEY*: unk1: %d unk2: %d unk3: %d keyCount: %d", unk1, unk2, unk3, keyCount);
+
+ for (uint32 i = 0; i < keyCount; i++) {
+ uint32 index = keyStream.readUint32();
+ uint32 id = keyStream.readUint32();
+ uint32 resTag = keyStream.readUint32();
+
+ debugC(2, kDebugLoading, "KEY*: index: %d id: %d resTag: %s", index, id, tag2str(resTag));
+
+ const Resource &res = resources[index];
+ debug(3, "Found RIFX resource: '%s' id: 0x%04x, %d @ 0x%08x (%d)", tag2str(resTag), id, res.size, res.offset, res.offset);
+ _types[resTag][id] = res;
+ }
+
+ _stream = stream;
+ return true;
+}
+
+Common::SeekableSubReadStreamEndian *RIFXArchive::getResource(uint32 tag, uint16 id) {
+ if (!_types.contains(tag))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ const ResourceMap &resMap = _types[tag];
+
+ if (!resMap.contains(id))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ const Resource &res = resMap[id];
+
+ uint32 offset = res.offset + 8;
+ uint32 size = res.size;
+
+ return new Common::SeekableSubReadStreamEndian(_stream, offset, offset + size, true, DisposeAfterUse::NO);
}
+
} // End of namespace Director
diff --git a/engines/director/resource.h b/engines/director/archive.h
index 1265908cba..93f4ce7ee9 100644
--- a/engines/director/resource.h
+++ b/engines/director/archive.h
@@ -20,8 +20,8 @@
*
*/
-#ifndef DIRECTOR_RESOURCE_H
-#define DIRECTOR_RESOURCE_H
+#ifndef DIRECTOR_ARCHIVE_H
+#define DIRECTOR_ARCHIVE_H
#include "common/file.h"
#include "common/substream.h"
@@ -102,6 +102,7 @@ public:
~RIFXArchive() {}
bool openStream(Common::SeekableReadStream *stream, uint32 startOffset = 0);
+ Common::SeekableSubReadStreamEndian *getResource(uint32 tag, uint16 id);
};
} // End of namespace Director
diff --git a/engines/director/cast.cpp b/engines/director/cast.cpp
new file mode 100644
index 0000000000..667fc248ea
--- /dev/null
+++ b/engines/director/cast.cpp
@@ -0,0 +1,136 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "director/director.h"
+#include "director/cast.h"
+#include "director/score.h"
+
+namespace Director {
+
+BitmapCast::BitmapCast(Common::ReadStreamEndian &stream, uint16 version) {
+ if (version < 4) {
+ flags = stream.readByte();
+ someFlaggyThing = stream.readUint16();
+ initialRect = Score::readRect(stream);
+ boundingRect = Score::readRect(stream);
+ regY = stream.readUint16();
+ regX = stream.readUint16();
+ unk1 = unk2 = 0;
+
+ if (someFlaggyThing & 0x8000) {
+ unk1 = stream.readUint16();
+ unk2 = stream.readUint16();
+ }
+ } else {
+ initialRect = Score::readRect(stream);
+ boundingRect = Score::readRect(stream);
+ regX = stream.readUint16();
+ regY = stream.readUint16();
+ }
+ modified = 0;
+}
+
+TextCast::TextCast(Common::ReadStreamEndian &stream, uint16 version) {
+ if (version < 4) {
+ flags1 = stream.readByte();
+ borderSize = static_cast<SizeType>(stream.readByte());
+ gutterSize = static_cast<SizeType>(stream.readByte());
+ boxShadow = static_cast<SizeType>(stream.readByte());
+ textType = static_cast<TextType>(stream.readByte());
+ textAlign = static_cast<TextAlignType>(stream.readUint16());
+ palinfo1 = stream.readUint16();
+ palinfo2 = stream.readUint16();
+ palinfo3 = stream.readUint16();
+
+ int t = stream.readUint32();
+ assert(t == 0); // So far we saw only 0 here
+
+ initialRect = Score::readRect(stream);
+ textShadow = static_cast<SizeType>(stream.readByte());
+ byte flags = stream.readByte();
+ if (flags & 0x1)
+ textFlags.push_back(kTextFlagEditable);
+ if (flags & 0x2)
+ textFlags.push_back(kTextFlagAutoTab);
+ if (flags & 0x4)
+ textFlags.push_back(kTextFlagDoNotWrap);
+ if (flags & 0xf8)
+ warning("Unproxessed text cast flags: %x", flags & 0xf8);
+
+ // TODO: FIXME: guesswork
+ fontId = stream.readByte();
+ fontSize = stream.readByte();
+ } else {
+ initialRect = Score::readRect(stream);
+ boundingRect = Score::readRect(stream);
+ }
+
+ modified = 0;
+}
+
+ShapeCast::ShapeCast(Common::ReadStreamEndian &stream, uint16 version) {
+ if (version < 4) {
+ /*byte flags = */ stream.readByte();
+ /*unk1 = */ stream.readByte();
+ shapeType = static_cast<ShapeType>(stream.readByte());
+ initialRect = Score::readRect(stream);
+ pattern = stream.readUint16BE();
+ fgCol = stream.readByte();
+ bgCol = stream.readByte();
+ fillType = stream.readByte();
+ lineThickness = stream.readByte();
+ lineDirection = stream.readByte();
+ } else {
+ initialRect = Score::readRect(stream);
+ boundingRect = Score::readRect(stream);
+ }
+ modified = 0;
+}
+
+ButtonCast::ButtonCast(Common::ReadStreamEndian &stream, uint16 version) : TextCast(stream, version) {
+ if (version < 4) {
+ buttonType = static_cast<ButtonType>(stream.readUint16BE());
+ } else {
+ initialRect = Score::readRect(stream);
+ boundingRect = Score::readRect(stream);
+ }
+ modified = 0;
+}
+
+ScriptCast::ScriptCast(Common::ReadStreamEndian &stream, uint16 version) {
+ if (version < 4) {
+ error("Unhandled Script cast");
+ } else {
+ initialRect = Score::readRect(stream);
+ boundingRect = Score::readRect(stream);
+
+ id = stream.readUint32();
+
+ debugC(4, kDebugLoading, "CASt: Script id: %d", id);
+
+ stream.readByte(); // There should be no more data
+ assert(stream.eos());
+ }
+ modified = 0;
+}
+
+} // End of namespace Director
diff --git a/engines/director/cast.h b/engines/director/cast.h
new file mode 100644
index 0000000000..69edf8ce89
--- /dev/null
+++ b/engines/director/cast.h
@@ -0,0 +1,162 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef DIRECTOR_CAST_H
+#define DIRECTOR_CAST_H
+
+#include "common/rect.h"
+#include "common/substream.h"
+
+namespace Director {
+
+enum CastType {
+ kCastBitmap = 1,
+ kCastFilmLoop = 2,
+ kCastText = 3,
+ kCastPalette = 4,
+ kCastPicture = 5,
+ kCastSound = 6,
+ kCastButton = 7,
+ kCastShape = 8,
+ kCastMovie = 9,
+ kCastDigitalVideo = 10,
+ kCastScript = 11
+};
+
+struct Cast {
+ CastType type;
+ Common::Rect initialRect;
+ Common::Rect boundingRect;
+
+ byte modified;
+};
+
+struct BitmapCast : Cast {
+ BitmapCast(Common::ReadStreamEndian &stream, uint16 version = 2);
+
+ uint16 regX;
+ uint16 regY;
+ uint8 flags;
+ uint16 someFlaggyThing;
+ uint16 unk1, unk2;
+};
+
+enum ShapeType {
+ kShapeRectangle,
+ kShapeRoundRect,
+ kShapeOval,
+ kShapeLine
+};
+
+struct ShapeCast : Cast {
+ ShapeCast(Common::ReadStreamEndian &stream, uint16 version = 2);
+
+ ShapeType shapeType;
+ uint16 pattern;
+ byte fgCol;
+ byte bgCol;
+ byte fillType;
+ byte lineThickness;
+ byte lineDirection;
+};
+
+enum TextType {
+ kTextTypeAdjustToFit,
+ kTextTypeScrolling,
+ kTextTypeFixed
+};
+
+enum TextAlignType {
+ kTextAlignRight = -1,
+ kTextAlignLeft,
+ kTextAlignCenter
+};
+
+enum TextFlag {
+ kTextFlagEditable,
+ kTextFlagAutoTab,
+ kTextFlagDoNotWrap
+};
+
+enum SizeType {
+ kSizeNone,
+ kSizeSmallest,
+ kSizeSmall,
+ kSizeMedium,
+ kSizeLarge,
+ kSizeLargest
+};
+
+struct TextCast : Cast {
+ TextCast(Common::ReadStreamEndian &stream, uint16 version = 2);
+
+ SizeType borderSize;
+ SizeType gutterSize;
+ SizeType boxShadow;
+
+ byte flags1;
+ uint32 fontId;
+ uint16 fontSize;
+ TextType textType;
+ TextAlignType textAlign;
+ SizeType textShadow;
+ Common::Array<TextFlag> textFlags;
+ int16 palinfo1, palinfo2, palinfo3;
+};
+
+enum ButtonType {
+ kTypeButton,
+ kTypeCheckBox,
+ kTypeRadio
+};
+
+struct ButtonCast : TextCast {
+ ButtonCast(Common::ReadStreamEndian &stream, uint16 version = 2);
+
+ ButtonType buttonType;
+};
+
+struct ScriptCast : Cast {
+ ScriptCast(Common::ReadStreamEndian &stream, uint16 version = 2);
+
+ uint32 id;
+};
+
+
+
+struct CastInfo {
+ Common::String script;
+ Common::String name;
+ Common::String directory;
+ Common::String fileName;
+ Common::String type;
+};
+
+struct Label {
+ Common::String name;
+ uint16 number;
+ Label(Common::String name1, uint16 number1) { name = name1; number = number1; }
+};
+
+} // End of namespace Director
+
+#endif
diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index 8c5e456781..32358e4b6e 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -27,7 +27,7 @@
#include "graphics/macgui/macwindowmanager.h"
#include "director/director.h"
-#include "director/resource.h"
+#include "director/archive.h"
#include "director/sound.h"
#include "director/lingo/lingo.h"
@@ -120,10 +120,13 @@ Common::Error DirectorEngine::run() {
//testFont();
- _movies = scanMovies(ConfMan.get("path"));
+ if (getPlatform() == Common::kPlatformWindows)
+ _sharedCastFile = "SHARDCST.MMM";
+ else
+ _sharedCastFile = "Shared Cast*";
+
+ loadSharedCastsFrom(_sharedCastFile);
- if (!_sharedCastFile.empty())
- loadSharedCastsFrom(_sharedCastFile);
loadMainArchive();
_currentScore = new Score(this, _mainArchive);
diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp
index 0ce7f2be9b..6464943d99 100644
--- a/engines/director/frame.cpp
+++ b/engines/director/frame.cpp
@@ -27,9 +27,10 @@
#include "image/bmp.h"
#include "director/director.h"
+#include "director/cast.h"
#include "director/frame.h"
#include "director/images.h"
-#include "director/resource.h"
+#include "director/archive.h"
#include "director/score.h"
#include "director/sprite.h"
@@ -54,7 +55,7 @@ Frame::Frame(DirectorEngine *vm) {
_palette = NULL;
- _sprites.resize(CHANNEL_COUNT);
+ _sprites.resize(CHANNEL_COUNT + 1);
for (uint16 i = 0; i < _sprites.size(); i++) {
Sprite *sp = new Sprite();
@@ -80,9 +81,9 @@ Frame::Frame(const Frame &frame) {
debugC(1, kDebugLoading, "Frame. action: %d transType: %d transDuration: %d", _actionId, _transType, _transDuration);
- _sprites.resize(CHANNEL_COUNT);
+ _sprites.resize(CHANNEL_COUNT + 1);
- for (uint16 i = 0; i < CHANNEL_COUNT; i++) {
+ for (uint16 i = 0; i < CHANNEL_COUNT + 1; i++) {
_sprites[i] = new Sprite(*frame._sprites[i]);
}
}
@@ -112,6 +113,105 @@ void Frame::readChannel(Common::SeekableSubReadStreamEndian &stream, uint16 offs
}
}
+void Frame::readChannels(Common::ReadStreamEndian *stream) {
+ _actionId = stream->readByte();
+ _soundType1 = stream->readByte(); // type: 0x17 for sounds (sound is cast id), 0x16 for MIDI (sound is cmd id)
+ uint8 transFlags = stream->readByte(); // 0x80 is whole stage (vs changed area), rest is duration in 1/4ths of a second
+
+ if (transFlags & 0x80)
+ _transArea = 1;
+ else
+ _transArea = 0;
+ _transDuration = transFlags & 0x7f;
+
+ _transChunkSize = stream->readByte();
+ _tempo = stream->readByte();
+ _transType = static_cast<TransitionType>(stream->readByte());
+ _sound1 = stream->readUint16();
+ if (_vm->getPlatform() == Common::kPlatformMacintosh) {
+ _sound2 = stream->readUint16();
+ _soundType2 = stream->readByte();
+ } else {
+ byte unk[3];
+ stream->read(unk, 3);
+ warning("unk1: %x unk2: %x unk3: %x", unk[0], unk[1], unk[2]);
+ }
+ _skipFrameFlag = stream->readByte();
+ _blend = stream->readByte();
+
+ if (_vm->getPlatform() != Common::kPlatformMacintosh) {
+ _sound2 = stream->readUint16();
+ _soundType2 = stream->readByte();
+ }
+
+ uint16 palette = stream->readUint16();
+
+ if (palette) {
+ warning("STUB: Palette info");
+ }
+
+ debugC(kDebugLoading, 8, "%d %d %d %d %d %d %d %d %d %d %d", _actionId, _soundType1, _transDuration, _transChunkSize, _tempo, _transType, _sound1, _skipFrameFlag, _blend, _sound2, _soundType2);
+
+ _palette = new PaletteInfo();
+ _palette->firstColor = stream->readByte(); // for cycles. note: these start at 0x80 (for pal entry 0)!
+ _palette->lastColor = stream->readByte();
+ _palette->flags = stream->readByte();
+ _palette->speed = stream->readByte();
+ _palette->frameCount = stream->readUint16();
+
+ _palette->cycleCount = stream->readUint16();
+
+ byte unk[11];
+ stream->read(unk, 6);
+
+ if (_vm->getPlatform() == Common::kPlatformMacintosh) {
+ if (_vm->getVersion() < 4) {
+ stream->read(unk, 3);
+ } else {
+ stream->read(unk, 11);
+ //Common::hexdump(unk, 11);
+
+ if (_vm->getVersion() >= 5) {
+ stream->read(unk, 7);
+ //Common::hexdump(unk, 7);
+ }
+ }
+ }
+
+ for (int i = 0; i < CHANNEL_COUNT; i++) {
+ Sprite &sprite = *_sprites[i + 1];
+
+ sprite._x1 = stream->readByte();
+ sprite._enabled = (stream->readByte() != 0);
+ sprite._x2 = stream->readUint16();
+
+ sprite._flags = stream->readUint16();
+ sprite._ink = static_cast<InkType>(sprite._flags & 0x3f);
+
+ if (sprite._flags & 0x40)
+ sprite._trails = 1;
+ else
+ sprite._trails = 0;
+
+ sprite._castId = stream->readUint16();
+ sprite._startPoint.y = stream->readUint16();
+ sprite._startPoint.x = stream->readUint16();
+ sprite._height = stream->readUint16();
+ sprite._width = stream->readUint16();
+
+ debugC(kDebugLoading, 8, "%03d(%d)[%x,%x,%04x,%d/%d/%d/%d]", sprite._castId, sprite._enabled, sprite._x1, sprite._x2, sprite._flags, sprite._startPoint.x, sprite._startPoint.y, sprite._width, sprite._height);
+
+ if (_vm->getPlatform() == Common::kPlatformMacintosh && _vm->getVersion() >= 4) {
+ sprite._scriptId = stream->readUint16();
+ sprite._flags2 = stream->readByte(); // 0x40 editable, 0x80 moveable
+ sprite._unk2 = stream->readByte();
+
+ if (_vm->getVersion() >= 5)
+ sprite._unk3 = stream->readUint32();
+ }
+ }
+}
+
void Frame::readMainChannels(Common::SeekableSubReadStreamEndian &stream, uint16 offset, uint16 size) {
uint16 finishPosition = offset + size;
@@ -179,6 +279,8 @@ void Frame::readMainChannels(Common::SeekableSubReadStreamEndian &stream, uint16
break;
}
}
+
+ warning("%d %d %d %d %d %d %d %d %d %d %d", _actionId, _soundType1, _transDuration, _transChunkSize, _tempo, _transType, _sound1, _skipFrameFlag, _blend, _sound2, _soundType2);
}
void Frame::readPaletteInfo(Common::SeekableSubReadStreamEndian &stream) {
@@ -198,11 +300,13 @@ void Frame::readSprite(Common::SeekableSubReadStreamEndian &stream, uint16 offse
uint16 finishPosition = fieldPosition + size;
Sprite &sprite = *_sprites[spritePosition];
+ int x1 = 0;
+ int x2 = 0;
while (fieldPosition < finishPosition) {
switch (fieldPosition) {
case kSpritePositionUnk1:
- /*byte x1 = */ stream.readByte();
+ x1 = stream.readByte();
fieldPosition++;
break;
case kSpritePositionEnabled:
@@ -210,7 +314,7 @@ void Frame::readSprite(Common::SeekableSubReadStreamEndian &stream, uint16 offse
fieldPosition++;
break;
case kSpritePositionUnk2:
- /*byte x2 = */ stream.readUint16();
+ x2 = stream.readUint16();
fieldPosition += 2;
break;
case kSpritePositionFlags:
@@ -251,6 +355,8 @@ void Frame::readSprite(Common::SeekableSubReadStreamEndian &stream, uint16 offse
break;
}
}
+ warning("%03d(%d)[%x,%x,%04x,%d/%d/%d/%d]", sprite._castId, sprite._enabled, x1, x2, sprite._flags, sprite._startPoint.x, sprite._startPoint.y, sprite._width, sprite._height);
+
}
void Frame::prepareFrame(Score *score) {
diff --git a/engines/director/frame.h b/engines/director/frame.h
index 68eb1e33bb..ce82fa527c 100644
--- a/engines/director/frame.h
+++ b/engines/director/frame.h
@@ -35,6 +35,10 @@ class Sprite;
#define CHANNEL_COUNT 24
+enum {
+ kChannelDataSize = (25 * 50)
+};
+
enum TransitionType {
kTransNone,
kTransWipeRight,
@@ -97,6 +101,7 @@ struct PaletteInfo {
uint8 flags;
uint8 speed;
uint16 frameCount;
+ uint16 cycleCount;
};
@@ -105,6 +110,7 @@ public:
Frame(DirectorEngine *vm);
Frame(const Frame &frame);
~Frame();
+ void readChannels(Common::ReadStreamEndian *stream);
void readChannel(Common::SeekableSubReadStreamEndian &stream, uint16 offset, uint16 size);
void prepareFrame(Score *score);
uint16 getSpriteIDFromPos(Common::Point pos);
@@ -123,7 +129,9 @@ private:
void drawMatteSprite(Graphics::ManagedSurface &target, const Graphics::Surface &sprite, Common::Rect &drawRect);
void drawGhostSprite(Graphics::ManagedSurface &target, const Graphics::Surface &sprite, Common::Rect &drawRect);
void drawReverseSprite(Graphics::ManagedSurface &target, const Graphics::Surface &sprite, Common::Rect &drawRect);
+
public:
+ byte _channelData[kChannelDataSize];
uint8 _actionId;
uint8 _transDuration;
uint8 _transArea; //1 - Whole Stage, 0 - Changing Area
@@ -144,6 +152,6 @@ public:
DirectorEngine *_vm;
};
-} //End of namespace Director
+} // End of namespace Director
#endif
diff --git a/engines/director/images.cpp b/engines/director/images.cpp
index cd8223ae8e..0ec84af0d3 100644
--- a/engines/director/images.cpp
+++ b/engines/director/images.cpp
@@ -41,6 +41,7 @@ DIBDecoder::~DIBDecoder() {
}
void DIBDecoder::destroy() {
+ delete _surface;
_surface = 0;
delete[] _palette;
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 37a333ba10..dd5977673e 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -729,6 +729,8 @@ void Lingo::c_repeatwithcode(void) {
if (!g_lingo->_returning)
g_lingo->_pc = end; /* next stmt */
+
+ delete counter;
}
void Lingo::c_exitRepeat(void) {
@@ -972,6 +974,8 @@ void Lingo::c_global() {
s->global = true;
g_lingo->_pc += g_lingo->calcStringAlignment(name.c_str());
+
+ delete s;
}
void Lingo::c_instance() {
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index a8633f1765..270746678b 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -21,6 +21,7 @@
*/
#include "director/lingo/lingo.h"
+#include "director/cast.h"
#include "director/sprite.h"
namespace Director {
diff --git a/engines/director/module.mk b/engines/director/module.mk
index 1ea361590a..38e3cfea4a 100644
--- a/engines/director/module.mk
+++ b/engines/director/module.mk
@@ -2,6 +2,7 @@ MODULE := engines/director
MODULE_OBJS = \
archive.o \
+ cast.o \
detection.o \
director.o \
frame.o \
diff --git a/engines/director/movie.cpp b/engines/director/movie.cpp
index f952346d16..9799510c6b 100644
--- a/engines/director/movie.cpp
+++ b/engines/director/movie.cpp
@@ -79,4 +79,4 @@ Movie::~Movie() {
delete _currentVideo;
}
-} //End of namespace Director
+} // End of namespace Director
diff --git a/engines/director/movie.h b/engines/director/movie.h
index 888262a2d1..e4729a62c3 100644
--- a/engines/director/movie.h
+++ b/engines/director/movie.h
@@ -60,6 +60,6 @@ private:
Video::VideoDecoder *_currentVideo;
DirectorEngine *_vm;
};
-} //End of namespace Director
+} // End of namespace Director
#endif
diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index 8efec141d1..54ab2198e1 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -20,430 +20,243 @@
*
*/
-#include "director/resource.h"
-
-#include "common/debug.h"
#include "common/macresman.h"
-namespace Director {
-
-// Base Archive code
-
-Archive::Archive() {
- _stream = 0;
- _isBigEndian = true;
-}
-
-Archive::~Archive() {
- close();
-}
-
-bool Archive::openFile(const Common::String &fileName) {
- Common::File *file = new Common::File();
+#include "director/director.h"
+#include "director/archive.h"
+#include "director/lingo/lingo.h"
- if (!file->open(fileName)) {
- delete file;
- return false;
- }
+namespace Director {
- if (!openStream(file)) {
- close();
- return false;
+Archive *DirectorEngine::createArchive() {
+ if (getPlatform() == Common::kPlatformMacintosh) {
+ if (getVersion() < 4)
+ return new MacArchive();
+ else
+ return new RIFXArchive();
+ } else {
+ return new RIFFArchive();
}
-
- _fileName = fileName;
-
- return true;
-}
-
-void Archive::close() {
- _types.clear();
-
- if (_stream)
- delete _stream;
-
- _stream = 0;
-}
-
-bool Archive::hasResource(uint32 tag, uint16 id) const {
- if (!_types.contains(tag))
- return false;
-
- return _types[tag].contains(id);
-}
-
-bool Archive::hasResource(uint32 tag, const Common::String &resName) const {
- if (!_types.contains(tag) || resName.empty())
- return false;
-
- const ResourceMap &resMap = _types[tag];
-
- for (ResourceMap::const_iterator it = resMap.begin(); it != resMap.end(); it++)
- if (it->_value.name.matchString(resName))
- return true;
-
- return false;
}
-Common::SeekableSubReadStreamEndian *Archive::getResource(uint32 tag, uint16 id) {
- if (!_types.contains(tag))
- error("Archive does not contain '%s' %04x", tag2str(tag), id);
-
- const ResourceMap &resMap = _types[tag];
-
- if (!resMap.contains(id))
- error("Archive does not contain '%s' %04x", tag2str(tag), id);
-
- const Resource &res = resMap[id];
-
- return new Common::SeekableSubReadStreamEndian(_stream, res.offset, res.offset + res.size, _isBigEndian, DisposeAfterUse::NO);
-}
-
-uint32 Archive::getOffset(uint32 tag, uint16 id) const {
- if (!_types.contains(tag))
- error("Archive does not contain '%s' %04x", tag2str(tag), id);
-
- const ResourceMap &resMap = _types[tag];
-
- if (!resMap.contains(id))
- error("Archive does not contain '%s' %04x", tag2str(tag), id);
-
- return resMap[id].offset;
-}
-
-uint16 Archive::findResourceID(uint32 tag, const Common::String &resName) const {
- if (!_types.contains(tag) || resName.empty())
- return 0xFFFF;
-
- const ResourceMap &resMap = _types[tag];
-
- for (ResourceMap::const_iterator it = resMap.begin(); it != resMap.end(); it++)
- if (it->_value.name.matchString(resName))
- return it->_key;
-
- return 0xFFFF;
+void DirectorEngine::loadMainArchive() {
+ if (getPlatform() == Common::kPlatformWindows)
+ loadEXE();
+ else
+ loadMac();
}
-Common::String Archive::getName(uint32 tag, uint16 id) const {
- if (!_types.contains(tag))
- error("Archive does not contain '%s' %04x", tag2str(tag), id);
-
- const ResourceMap &resMap = _types[tag];
-
- if (!resMap.contains(id))
- error("Archive does not contain '%s' %04x", tag2str(tag), id);
-
- return resMap[id].name;
+void DirectorEngine::cleanupMainArchive() {
+ delete _mainArchive;
+ delete _macBinary;
}
-Common::Array<uint32> Archive::getResourceTypeList() const {
- Common::Array<uint32> typeList;
-
- for (TypeMap::const_iterator it = _types.begin(); it != _types.end(); it++)
- typeList.push_back(it->_key);
-
- return typeList;
+void DirectorEngine::loadEXE() {
+ Common::SeekableReadStream *exeStream = SearchMan.createReadStreamForMember(getEXEName());
+ if (!exeStream)
+ error("Failed to open EXE '%s'", getEXEName().c_str());
+
+ _lingo->processEvent(kEventStart, 0);
+
+ exeStream->seek(-4, SEEK_END);
+ exeStream->seek(exeStream->readUint32LE());
+
+ switch (getVersion()) {
+ case 3:
+ loadEXEv3(exeStream);
+ break;
+ case 4:
+ loadEXEv4(exeStream);
+ break;
+ case 5:
+ loadEXEv5(exeStream);
+ break;
+ case 7:
+ loadEXEv7(exeStream);
+ break;
+ default:
+ error("Unhandled Windows EXE version %d", getVersion());
+ }
}
-Common::Array<uint16> Archive::getResourceIDList(uint32 type) const {
- Common::Array<uint16> idList;
+void DirectorEngine::loadEXEv3(Common::SeekableReadStream *stream) {
+ uint16 entryCount = stream->readUint16LE();
+ if (entryCount != 1)
+ error("Unhandled multiple entry v3 EXE");
- if (!_types.contains(type))
- return idList;
+ stream->skip(5); // unknown
- const ResourceMap &resMap = _types[type];
+ stream->readUint32LE(); // Main MMM size
+ Common::String mmmFileName = readPascalString(*stream);
+ Common::String directoryName = readPascalString(*stream);
- for (ResourceMap::const_iterator it = resMap.begin(); it != resMap.end(); it++)
- idList.push_back(it->_key);
+ debugC(1, kDebugLoading, "Main MMM: '%s'", mmmFileName.c_str());
+ debugC(1, kDebugLoading, "Directory Name: '%s'", directoryName.c_str());
- return idList;
-}
+ _mainArchive = new RIFFArchive();
-uint32 Archive::convertTagToUppercase(uint32 tag) {
- uint32 newTag = toupper(tag >> 24) << 24;
- newTag |= toupper((tag >> 16) & 0xFF) << 16;
- newTag |= toupper((tag >> 8) & 0xFF) << 8;
+ if (!_mainArchive->openFile(mmmFileName))
+ error("Could not open '%s'", mmmFileName.c_str());
- return newTag | toupper(tag & 0xFF);
+ delete stream;
}
-// Mac Archive code
+void DirectorEngine::loadEXEv4(Common::SeekableReadStream *stream) {
+ if (stream->readUint32BE() != MKTAG('P', 'J', '9', '3'))
+ error("Invalid projector tag found in v4 EXE");
-MacArchive::MacArchive() : Archive(), _resFork(0) {
-}
+ uint32 rifxOffset = stream->readUint32LE();
+ /* uint32 fontMapOffset = */ stream->readUint32LE();
+ /* uint32 resourceForkOffset1 = */ stream->readUint32LE();
+ /* uint32 resourceForkOffset2 = */ stream->readUint32LE();
+ stream->readUint32LE(); // graphics DLL offset
+ stream->readUint32LE(); // sound DLL offset
+ /* uint32 rifxOffsetAlt = */ stream->readUint32LE(); // equivalent to rifxOffset
-MacArchive::~MacArchive() {
- delete _resFork;
+ loadEXERIFX(stream, rifxOffset);
}
-void MacArchive::close() {
- Archive::close();
- delete _resFork;
- _resFork = 0;
+void DirectorEngine::loadEXEv5(Common::SeekableReadStream *stream) {
+ if (stream->readUint32LE() != MKTAG('P', 'J', '9', '5'))
+ error("Invalid projector tag found in v5 EXE");
+
+ uint32 rifxOffset = stream->readUint32LE();
+ stream->readUint32LE(); // unknown
+ stream->readUint32LE(); // unknown
+ stream->readUint32LE(); // unknown
+ /* uint16 screenWidth = */ stream->readUint16LE();
+ /* uint16 screenHeight = */ stream->readUint16LE();
+ stream->readUint32LE(); // unknown
+ stream->readUint32LE(); // unknown
+ /* uint32 fontMapOffset = */ stream->readUint32LE();
+
+ loadEXERIFX(stream, rifxOffset);
}
-bool MacArchive::openFile(const Common::String &fileName) {
- close();
+void DirectorEngine::loadEXEv7(Common::SeekableReadStream *stream) {
+ if (stream->readUint32LE() != MKTAG('P', 'J', '0', '0'))
+ error("Invalid projector tag found in v7 EXE");
- _resFork = new Common::MacResManager();
+ uint32 rifxOffset = stream->readUint32LE();
+ stream->readUint32LE(); // unknown
+ stream->readUint32LE(); // unknown
+ stream->readUint32LE(); // unknown
+ stream->readUint32LE(); // unknown
+ stream->readUint32LE(); // some DLL offset
- if (!_resFork->open(fileName) || !_resFork->hasResFork()) {
- close();
- return false;
- }
-
- _fileName = _resFork->getBaseFileName();
- if (_fileName.hasSuffix(".bin")) {
- for (int i = 0; i < 4; i++)
- _fileName.deleteLastChar();
- }
-
- Common::MacResTagArray tagArray = _resFork->getResTagArray();
-
- for (uint32 i = 0; i < tagArray.size(); i++) {
- ResourceMap &resMap = _types[tagArray[i]];
- Common::MacResIDArray idArray = _resFork->getResIDArray(tagArray[i]);
-
- for (uint32 j = 0; j < idArray.size(); j++) {
- Resource &res = resMap[idArray[j]];
-
- res.offset = res.size = 0; // unused
- res.name = _resFork->getResName(tagArray[i], idArray[j]);
- debug(3, "Found MacArchive resource '%s' %d: %s", tag2str(tagArray[i]), idArray[j], res.name.c_str());
- }
- }
-
- return true;
+ loadEXERIFX(stream, rifxOffset);
}
-bool MacArchive::openStream(Common::SeekableReadStream *stream, uint32 startOffset) {
- // TODO: Add support for this (v4 Windows games)
- return false;
-}
+void DirectorEngine::loadEXERIFX(Common::SeekableReadStream *stream, uint32 offset) {
+ _mainArchive = new RIFXArchive();
-Common::SeekableSubReadStreamEndian *MacArchive::getResource(uint32 tag, uint16 id) {
- assert(_resFork);
- Common::SeekableReadStream *stream = _resFork->getResource(tag, id);
- return new Common::SeekableSubReadStreamEndian(stream, 0, stream->size(), true, DisposeAfterUse::NO);
+ if (!_mainArchive->openStream(stream, offset))
+ error("Failed to load RIFX from EXE");
}
-// RIFF Archive code
-
-bool RIFFArchive::openStream(Common::SeekableReadStream *stream, uint32 startOffset) {
- close();
+void DirectorEngine::loadMac() {
+ if (getVersion() < 4) {
+ // The data is part of the resource fork of the executable
+ _mainArchive = new MacArchive();
- stream->seek(startOffset);
+ if (!_mainArchive->openFile(getEXEName()))
+ error("Failed to open Mac binary '%s'", getEXEName().c_str());
+ } else {
+ // The RIFX is located in the data fork of the executable
+ _macBinary = new Common::MacResManager();
- if (convertTagToUppercase(stream->readUint32BE()) != MKTAG('R', 'I', 'F', 'F'))
- return false;
+ if (!_macBinary->open(getEXEName()) || !_macBinary->hasDataFork())
+ error("Failed to open Mac binary '%s'", getEXEName().c_str());
- stream->readUint32LE(); // size
+ Common::SeekableReadStream *dataFork = _macBinary->getDataFork();
+ _mainArchive = new RIFXArchive();
- if (convertTagToUppercase(stream->readUint32BE()) != MKTAG('R', 'M', 'M', 'P'))
- return false;
+ // First we need to detect PPC vs. 68k
- if (convertTagToUppercase(stream->readUint32BE()) != MKTAG('C', 'F', 'T', 'C'))
- return false;
+ uint32 tag = dataFork->readUint32BE();
+ uint32 startOffset;
- uint32 cftcSize = stream->readUint32LE();
- uint32 startPos = stream->pos();
- stream->readUint32LE(); // unknown (always 0?)
-
- while ((uint32)stream->pos() < startPos + cftcSize) {
- uint32 tag = convertTagToUppercase(stream->readUint32BE());
-
- uint32 size = stream->readUint32LE();
- uint32 id = stream->readUint32LE();
- uint32 offset = stream->readUint32LE();
-
- if (tag == 0)
- break;
-
- uint16 startResPos = stream->pos();
- stream->seek(offset + 12);
-
- Common::String name = "";
- byte nameSize = stream->readByte();
-
- if (nameSize) {
- for (uint8 i = 0; i < nameSize; i++) {
- name += stream->readByte();
- }
+ if (SWAP_BYTES_32(tag) == MKTAG('P', 'J', '9', '3') || tag == MKTAG('P', 'J', '9', '5') || tag == MKTAG('P', 'J', '0', '0')) {
+ // PPC: The RIFX shares the data fork with the binary
+ startOffset = dataFork->readUint32BE();
+ } else {
+ // 68k: The RIFX is the only thing in the data fork
+ startOffset = 0;
}
- stream->seek(startResPos);
-
- debug(3, "Found RIFF resource '%s' %d: %d @ 0x%08x", tag2str(tag), id, size, offset);
-
- ResourceMap &resMap = _types[tag];
- Resource &res = resMap[id];
- res.offset = offset;
- res.size = size;
- res.name = name;
+ if (!_mainArchive->openStream(dataFork, startOffset))
+ error("Failed to load RIFX from Mac binary");
}
-
- _stream = stream;
- return true;
}
-Common::SeekableSubReadStreamEndian *RIFFArchive::getResource(uint32 tag, uint16 id) {
- if (!_types.contains(tag))
- error("Archive does not contain '%s' %04x", tag2str(tag), id);
+void DirectorEngine::loadSharedCastsFrom(Common::String filename) {
+ Archive *shardcst = createArchive();
- const ResourceMap &resMap = _types[tag];
+ debugC(1, kDebugLoading, "Loading Shared cast '%s'", filename.c_str());
- if (!resMap.contains(id))
- error("Archive does not contain '%s' %04x", tag2str(tag), id);
+ if (!shardcst->openFile(filename)) {
+ warning("No shared cast %s", filename.c_str());
- const Resource &res = resMap[id];
+ _sharedCasts = new Common::HashMap<int, Cast *>;
- // Adjust to skip the resource header
- uint32 offset = res.offset + 12;
- uint32 size = res.size - 4;
- // Skip the Pascal string
- _stream->seek(offset);
- byte stringSize = _stream->readByte(); // 1 for this byte
-
- offset += stringSize + 1;
- size -= stringSize + 1;
-
- // Align to nearest word boundary
- if (offset & 1) {
- offset++;
- size--;
+ return;
}
- return new Common::SeekableSubReadStreamEndian(_stream, offset, offset + size, true, DisposeAfterUse::NO);
-}
+ _sharedDIB = new Common::HashMap<int, Common::SeekableSubReadStreamEndian *>;
+ _sharedSTXT = new Common::HashMap<int, Common::SeekableSubReadStreamEndian *>;
+ _sharedSound = new Common::HashMap<int, Common::SeekableSubReadStreamEndian *>;
+ _sharedBMP = new Common::HashMap<int, Common::SeekableSubReadStreamEndian *>;
-// RIFX Archive code
+ Score *castScore = new Score(this, shardcst);
-bool RIFXArchive::openStream(Common::SeekableReadStream *stream, uint32 startOffset) {
- close();
+ castScore->loadConfig(*shardcst->getResource(MKTAG('V','W','C','F'), 1024));
- stream->seek(startOffset);
+ if (getVersion() < 4)
+ castScore->loadCastDataVWCR(*shardcst->getResource(MKTAG('V','W','C','R'), 1024));
- uint32 headerTag = stream->readUint32BE();
-
- if (headerTag == MKTAG('R', 'I', 'F', 'X'))
- _isBigEndian = true;
- else if (SWAP_BYTES_32(headerTag) == MKTAG('R', 'I', 'F', 'X'))
- _isBigEndian = false;
- else
- return false;
-
- Common::SeekableSubReadStreamEndian subStream(stream, startOffset + 4, stream->size(), _isBigEndian, DisposeAfterUse::NO);
-
- subStream.readUint32(); // size
-
- uint32 rifxType = subStream.readUint32();
-
- if (rifxType != MKTAG('M', 'V', '9', '3') && rifxType != MKTAG('A', 'P', 'P', 'L'))
- return false;
-
- if (subStream.readUint32() != MKTAG('i', 'm', 'a', 'p'))
- return false;
-
- subStream.readUint32(); // imap length
- subStream.readUint32(); // unknown
- uint32 mmapOffset = subStream.readUint32() - startOffset - 4;
-
- subStream.seek(mmapOffset);
-
- if (subStream.readUint32() != MKTAG('m', 'm', 'a', 'p'))
- return false;
-
- subStream.readUint32(); // mmap length
- subStream.readUint16(); // unknown
- subStream.readUint16(); // unknown
- subStream.readUint32(); // resCount + empty entries
- uint32 resCount = subStream.readUint32();
- subStream.skip(8); // all 0xFF
- subStream.readUint32(); // unknown
-
- Common::Array<Resource> resources;
-
- // Need to look for these two resources
- const Resource *keyRes = 0;
- const Resource *casRes = 0;
-
- for (uint32 i = 0; i < resCount; i++) {
- uint32 tag = subStream.readUint32();
- uint32 size = subStream.readUint32();
- uint32 offset = subStream.readUint32();
- /*uint16 flags = */ subStream.readUint16();
- /*uint16 unk1 = */ subStream.readUint16();
- /*uint32 unk2 = */ subStream.readUint32();
-
- debug(3, "Found RIFX resource index %d: '%s', %d @ 0x%08x", i, tag2str(tag), size, offset);
+ Common::Array<uint16> cast = shardcst->getResourceIDList(MKTAG('C','A','S','t'));
+ if (cast.size() > 0) {
+ for (Common::Array<uint16>::iterator iterator = cast.begin(); iterator != cast.end(); ++iterator)
+ castScore->loadCastData(*shardcst->getResource(MKTAG('C','A','S','t'), *iterator), *iterator);
+ }
- Resource res;
- res.offset = offset;
- res.size = size;
- resources.push_back(res);
+ _sharedCasts = &castScore->_casts;
- // APPL is a special case; it has an embedded "normal" archive
- if (rifxType == MKTAG('A', 'P', 'P', 'L') && tag == MKTAG('F', 'i', 'l', 'e'))
- return openStream(stream, offset);
+ Common::Array<uint16> dib = shardcst->getResourceIDList(MKTAG('D','I','B',' '));
+ if (dib.size() != 0) {
+ debugC(3, kDebugLoading, "Loading %d DIBs", dib.size());
- // Looking for two types here
- if (tag == MKTAG('K', 'E', 'Y', '*'))
- keyRes = &resources[resources.size() - 1];
- else if (tag == MKTAG('C', 'A', 'S', '*'))
- casRes = &resources[resources.size() - 1];
+ for (Common::Array<uint16>::iterator iterator = dib.begin(); iterator != dib.end(); ++iterator) {
+ debugC(3, kDebugLoading, "Shared DIB %d", *iterator);
+ _sharedDIB->setVal(*iterator, shardcst->getResource(MKTAG('D','I','B',' '), *iterator));
+ }
}
- // We need to have found the 'File' resource already
- if (rifxType == MKTAG('A', 'P', 'P', 'L')) {
- warning("No 'File' resource present in APPL archive");
- return false;
- }
+ Common::Array<uint16> stxt = shardcst->getResourceIDList(MKTAG('S','T','X','T'));
+ if (stxt.size() != 0) {
+ debugC(3, kDebugLoading, "Loading %d STXTs", stxt.size());
- // A KEY* must be present
- if (!keyRes) {
- warning("No 'KEY*' resource present");
- return false;
+ for (Common::Array<uint16>::iterator iterator = stxt.begin(); iterator != stxt.end(); ++iterator) {
+ debugC(3, kDebugLoading, "Shared STXT %d", *iterator);
+ _sharedSTXT->setVal(*iterator, shardcst->getResource(MKTAG('S','T','X','T'), *iterator));
+ }
}
- // Parse the CAS*, if present
- Common::Array<uint32> casEntries;
- if (casRes) {
- Common::SeekableSubReadStreamEndian casStream(stream, casRes->offset + 8, casRes->offset + 8 + casRes->size, _isBigEndian, DisposeAfterUse::NO);
- casEntries.resize(casRes->size / 4);
-
- for (uint32 i = 0; i < casEntries.size(); i++)
- casEntries[i] = casStream.readUint32();
+ Common::Array<uint16> bmp = shardcst->getResourceIDList(MKTAG('B','I','T','D'));
+ if (bmp.size() != 0) {
+ debugC(3, kDebugLoading, "Loading %d BITDs", bmp.size());
+ for (Common::Array<uint16>::iterator iterator = bmp.begin(); iterator != bmp.end(); ++iterator) {
+ _sharedBMP->setVal(*iterator, shardcst->getResource(MKTAG('B','I','T','D'), *iterator));
+ }
}
- // Parse the KEY*
- Common::SeekableSubReadStreamEndian keyStream(stream, keyRes->offset + 8, keyRes->offset + 8 + keyRes->size, _isBigEndian, DisposeAfterUse::NO);
- /*uint16 unk1 = */ keyStream.readUint16();
- /*uint16 unk2 = */ keyStream.readUint16();
- /*uint32 unk3 = */ keyStream.readUint32();
- uint32 keyCount = keyStream.readUint32();
-
- for (uint32 i = 0; i < keyCount; i++) {
- uint32 index = keyStream.readUint32();
- uint32 id = keyStream.readUint32();
- uint32 resTag = keyStream.readUint32();
-
- // Handle CAS*/CASt nonsense
- if (resTag == MKTAG('C', 'A', 'S', 't')) {
- for (uint32 j = 0; j < casEntries.size(); j++) {
- if (casEntries[j] == index) {
- id += j + 1;
- break;
- }
- }
+ Common::Array<uint16> sound = shardcst->getResourceIDList(MKTAG('S','N','D',' '));
+ if (stxt.size() != 0) {
+ debugC(3, kDebugLoading, "Loading %d SNDs", sound.size());
+ for (Common::Array<uint16>::iterator iterator = sound.begin(); iterator != sound.end(); ++iterator) {
+ _sharedSound->setVal(*iterator, shardcst->getResource(MKTAG('S','N','D',' '), *iterator));
}
-
- const Resource &res = resources[index];
- debug(3, "Found RIFX resource: '%s' 0x%04x, %d @ 0x%08x", tag2str(resTag), id, res.size, res.offset);
- _types[resTag][id] = res;
}
-
- _stream = stream;
- return true;
}
} // End of namespace Director
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 5c594c20fc..1c78745330 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -23,6 +23,7 @@
#include "common/system.h"
#include "common/config-manager.h"
#include "common/events.h"
+#include "common/memstream.h"
#include "engines/util.h"
#include "graphics/font.h"
@@ -30,9 +31,10 @@
#include "graphics/macgui/macfontmanager.h"
#include "graphics/macgui/macwindowmanager.h"
+#include "director/cast.h"
#include "director/score.h"
#include "director/frame.h"
-#include "director/resource.h"
+#include "director/archive.h"
#include "director/sound.h"
#include "director/sprite.h"
#include "director/lingo/lingo.h"
@@ -191,7 +193,7 @@ void Score::loadArchive() {
if (_vm->getVersion() < 4) {
assert(_movieArchive->hasResource(MKTAG('V','W','C','R'), 1024));
- loadCastData(*_movieArchive->getResource(MKTAG('V','W','C','R'), 1024));
+ loadCastDataVWCR(*_movieArchive->getResource(MKTAG('V','W','C','R'), 1024));
}
if (_movieArchive->hasResource(MKTAG('V','W','A','C'), 1024)) {
@@ -208,12 +210,16 @@ void Score::loadArchive() {
Common::Array<uint16> vwci = _movieArchive->getResourceIDList(MKTAG('V','W','C','I'));
if (vwci.size() > 0) {
- Common::Array<uint16>::iterator iterator;
-
- for (iterator = vwci.begin(); iterator != vwci.end(); ++iterator)
+ for (Common::Array<uint16>::iterator iterator = vwci.begin(); iterator != vwci.end(); ++iterator)
loadCastInfo(*_movieArchive->getResource(MKTAG('V','W','C','I'), *iterator), *iterator);
}
+ Common::Array<uint16> cast = _movieArchive->getResourceIDList(MKTAG('C','A','S','t'));
+ if (cast.size() > 0) {
+ for (Common::Array<uint16>::iterator iterator = cast.begin(); iterator != cast.end(); ++iterator)
+ loadCastData(*_movieArchive->getResource(MKTAG('C','A','S','t'), *iterator), *iterator);
+ }
+
Common::Array<uint16> stxt = _movieArchive->getResourceIDList(MKTAG('S','T','X','T'));
if (stxt.size() > 0) {
loadScriptText(*_movieArchive->getResource(MKTAG('S','T','X','T'), *stxt.begin()));
@@ -262,10 +268,16 @@ void Score::loadFrames(Common::SeekableSubReadStreamEndian &stream) {
size -= 4;
if (_vm->getVersion() > 3) {
- stream.skip(16);
+ uint32 unk1 = stream.readUint32();
+ uint32 unk2 = stream.readUint32();
+ uint16 unk3 = stream.readUint16();
+ uint16 unk4 = stream.readUint16();
+ uint16 unk5 = stream.readUint16();
+ uint16 unk6 = stream.readUint16();
+ size -= 16;
- warning("STUB: Score::loadFrames. Skipping initial bytes");
- //Unknown, some bytes - constant (refer to contuinity).
+ warning("STUB: Score::loadFrames. unk1: %x unk2: %x unk3: %x unk4: %x unk5: %x unk6: %x", unk1, unk2, unk3, unk4, unk5, unk6);
+ // Unknown, some bytes - constant (refer to contuinity).
}
uint16 channelSize;
@@ -274,11 +286,20 @@ void Score::loadFrames(Common::SeekableSubReadStreamEndian &stream) {
Frame *initial = new Frame(_vm);
_frames.push_back(initial);
+ // This is a representation of the channelData. It gets overridden
+ // partically by channels, hence we keep it and read the score from left to right
+ //
+ // TODO Merge it with shared cast
+ byte channelData[kChannelDataSize];
+ memset(channelData, 0, kChannelDataSize);
+
while (size != 0) {
uint16 frameSize = stream.readUint16();
+ debugC(kDebugLoading, 8, "++++ score frame %d (frameSize %d) size %d", _frames.size(), frameSize, size);
size -= frameSize;
frameSize -= 2;
- Frame *frame = new Frame(*_frames.back());
+
+ Frame *frame = new Frame(_vm);
while (frameSize != 0) {
if (_vm->getVersion() < 4) {
@@ -286,17 +307,25 @@ void Score::loadFrames(Common::SeekableSubReadStreamEndian &stream) {
channelOffset = stream.readByte() * 2;
frameSize -= channelSize + 2;
} else {
- channelSize = stream.readByte();
- channelOffset = stream.readByte();
+ channelSize = stream.readUint16();
+ channelOffset = stream.readUint16();
frameSize -= channelSize + 4;
}
- frame->readChannel(stream, channelOffset, channelSize);
+
+ assert(channelOffset + channelSize < kChannelDataSize);
+
+ stream.read(&channelData[channelOffset], channelSize);
}
+ Common::MemoryReadStreamEndian *str = new Common::MemoryReadStreamEndian(channelData, ARRAYSIZE(channelData), stream.isBE());
+ frame->readChannels(str);
+
+ delete str;
+
_frames.push_back(frame);
}
- //remove initial frame
+ // Remove initial frame
_frames.remove_at(0);
}
@@ -319,8 +348,8 @@ void Score::readVersion(uint32 rid) {
debug("Version: %d.%d", _versionMajor, _versionMinor);
}
-void Score::loadCastData(Common::SeekableSubReadStreamEndian &stream) {
- debugC(1, kDebugLoading, "Score::loadCastData(). start: %d, end: %d", _castArrayStart, _castArrayEnd);
+void Score::loadCastDataVWCR(Common::SeekableSubReadStreamEndian &stream) {
+ debugC(1, kDebugLoading, "Score::loadCastDataVWCR(). start: %d, end: %d", _castArrayStart, _castArrayEnd);
for (uint16 id = _castArrayStart; id <= _castArrayEnd; id++) {
byte size = stream.readByte();
@@ -347,13 +376,13 @@ void Score::loadCastData(Common::SeekableSubReadStreamEndian &stream) {
_casts[id]->type = kCastButton;
break;
default:
- warning("Unhandled cast type: %d", castType);
+ warning("Score::loadCastDataVWCR(): Unhandled cast type: %d", castType);
stream.skip(size - 1);
break;
}
}
- //Set cast pointers to sprites
+ // Set cast pointers to sprites
for (uint16 i = 0; i < _frames.size(); i++) {
for (uint16 j = 0; j < _frames[i]->_sprites.size(); j++) {
byte castId = _frames[i]->_sprites[j]->_castId;
@@ -364,6 +393,116 @@ void Score::loadCastData(Common::SeekableSubReadStreamEndian &stream) {
}
}
+void Score::loadCastData(Common::SeekableSubReadStreamEndian &stream, uint16 id) {
+ // d4+ variant
+ if (stream.size() == 0)
+ return;
+
+ if (stream.size() < 26) {
+ warning("CAST data id %d is too small", id);
+ return;
+ }
+
+ debugC(3, kDebugLoading, "CASt: id: %d", id);
+
+ if (debugChannelSet(5, kDebugLoading))
+ stream.hexdump(stream.size());
+
+ uint32 size1, size2, size3, castType;
+ byte unk1 = 0, unk2 = 0, unk3 = 0;
+
+ if (_vm->getVersion() < 5) {
+ size1 = stream.readUint16();
+ size2 = stream.readUint32();
+ size3 = 0;
+ castType = stream.readByte();
+ unk1 = stream.readByte();
+ unk2 = stream.readByte();
+ unk3 = stream.readByte();
+ } else {
+ // FIXME: only the cast type and the strings are good
+ castType = stream.readUint32();
+ size2 = stream.readUint32();
+ size3 = stream.readUint32();
+ size1 = stream.readUint32();
+ assert(size1 == 0x14);
+ size1 = 0;
+ }
+
+ debugC(3, kDebugLoading, "CASt: id: %d type: %x size1: %d size2: %d (%x) size3: %d unk1: %d unk2: %d unk3: %d",
+ id, castType, size1, size2, size2, size3, unk1, unk2, unk3);
+
+ byte *data = (byte *)calloc(size1 + 16, 1);
+ stream.read(data, size1 + 16);
+
+ Common::MemoryReadStreamEndian castStream(data, size1 + 16, stream.isBE());
+
+ switch (castType) {
+ case kCastBitmap:
+ warning("CASt: Bitmap");
+ Common::hexdump(data, size1 + 16);
+ _casts[id] = new BitmapCast(castStream, _vm->getVersion());
+ _casts[id]->type = kCastBitmap;
+ break;
+ case kCastText:
+ warning("CASt: Text");
+ Common::hexdump(data, size1 + 16);
+ _casts[id] = new TextCast(castStream, _vm->getVersion());
+ _casts[id]->type = kCastText;
+ break;
+ case kCastShape:
+ warning("CASt: Shape");
+ Common::hexdump(data, size1 + 16);
+
+ _casts[id] = new ShapeCast(castStream, _vm->getVersion());
+ _casts[id]->type = kCastShape;
+ break;
+ case kCastButton:
+ warning("CASt: Button");
+ Common::hexdump(data, size1 + 16);
+
+ _casts[id] = new ButtonCast(castStream, _vm->getVersion());
+ _casts[id]->type = kCastButton;
+ break;
+ case kCastScript:
+ _casts[id] = new ScriptCast(castStream, _vm->getVersion());
+ _casts[id]->type = kCastScript;
+ break;
+ default:
+ warning("Score::loadCastData(): Unhandled cast type: %d", castType);
+ break;
+ }
+
+ free(data);
+
+ if (size2) {
+ uint32 entryType = 0;
+ Common::Array<Common::String> castStrings = loadStrings(stream, entryType, false);
+
+ debugCN(4, kDebugLoading, "str(%d): '", castStrings.size());
+
+ for (uint i = 0; i < castStrings.size(); i++) {
+ debugCN(4, kDebugLoading, "%s'", castStrings[i].c_str());
+ if (i != castStrings.size() - 1)
+ debugCN(4, kDebugLoading, ", '");
+ }
+ debugC(4, kDebugLoading, "'");
+
+ CastInfo *ci = new CastInfo();
+
+ ci->script = castStrings[0];
+ ci->name = castStrings[1];
+ ci->directory = castStrings[2];
+ ci->fileName = castStrings[3];
+ ci->type = castStrings[4];
+
+ _castsInfo[id] = ci;
+ }
+
+ if (size3)
+ warning("size3: %x", size3);
+}
+
void Score::loadLabels(Common::SeekableSubReadStreamEndian &stream) {
_labels = new Common::SortedArray<Label *>(compareLabels);
uint16 count = stream.readUint16() + 1;
@@ -379,9 +518,11 @@ void Score::loadLabels(Common::SeekableSubReadStreamEndian &stream) {
stream.seek(stringPos);
Common::String label;
+
for (uint16 j = stringPos; j < nextStringPos; j++) {
label += stream.readByte();
}
+
_labels->insert(new Label(label, frame));
stream.seek(streamPos);
@@ -405,7 +546,7 @@ void Score::loadActions(Common::SeekableSubReadStreamEndian &stream) {
uint16 offset = count * 4 + 2;
byte id = stream.readByte();
- /*byte subId = */ stream.readByte(); //I couldn't find how it used in continuity (except print). Frame actionId = 1 byte.
+ /*byte subId = */ stream.readByte(); // I couldn't find how it used in continuity (except print). Frame actionId = 1 byte.
uint16 stringPos = stream.readUint16() + offset;
for (uint16 i = 0; i < count; i++) {
@@ -647,28 +788,31 @@ Common::Array<Common::String> Score::loadStrings(Common::SeekableSubReadStreamEn
stream.seek(offset);
}
- uint16 count = stream.readUint16();
- offset += (count + 1) * 4 + 2; // positions info + uint16 count
- uint32 startPos = stream.readUint32() + offset;
+ uint16 count = stream.readUint16() + 1;
- for (uint16 i = 0; i < count; i++) {
- Common::String entryString;
- uint32 nextPos = stream.readUint32() + offset;
- uint32 streamPos = stream.pos();
+ uint32 *entries = (uint32 *)calloc(count, sizeof(uint32));
- stream.seek(startPos);
+ for (uint i = 0; i < count; i++)
+ entries[i] = stream.readUint32();
- while (startPos != nextPos) {
- entryString += stream.readByte();
- ++startPos;
- }
+ byte *data = (byte *)malloc(entries[count - 1]);
+ stream.read(data, entries[count - 1]);
- strings.push_back(entryString);
+ for (uint i = 0; i < count - 1; i++) {
+ Common::String entryString;
- stream.seek(streamPos);
- startPos = nextPos;
+ for (uint j = entries[i]; j < entries[i + 1]; j++)
+ if (data[j] == '\r')
+ entryString += '\n';
+ else
+ entryString += data[j];
+
+ strings.push_back(entryString);
}
+ free(data);
+ free(entries);
+
return strings;
}
@@ -697,77 +841,14 @@ void Score::loadFontMap(Common::SeekableSubReadStreamEndian &stream) {
}
}
-BitmapCast::BitmapCast(Common::SeekableSubReadStreamEndian &stream) {
- flags = stream.readByte();
- someFlaggyThing = stream.readUint16();
- initialRect = Score::readRect(stream);
- boundingRect = Score::readRect(stream);
- regY = stream.readUint16();
- regX = stream.readUint16();
- unk1 = unk2 = 0;
-
- if (someFlaggyThing & 0x8000) {
- unk1 = stream.readUint16();
- unk2 = stream.readUint16();
- }
- modified = 0;
-}
-
-TextCast::TextCast(Common::SeekableSubReadStreamEndian &stream) {
- flags1 = stream.readByte();
- borderSize = static_cast<SizeType>(stream.readByte());
- gutterSize = static_cast<SizeType>(stream.readByte());
- boxShadow = static_cast<SizeType>(stream.readByte());
- textType = static_cast<TextType>(stream.readByte());
- textAlign = static_cast<TextAlignType>(stream.readUint16());
- palinfo1 = stream.readUint16();
- palinfo2 = stream.readUint16();
- palinfo3 = stream.readUint16();
-
- int t = stream.readUint32();
- assert(t == 0); // So far we saw only 0 here
-
- initialRect = Score::readRect(stream);
- textShadow = static_cast<SizeType>(stream.readByte());
- byte flags = stream.readByte();
- if (flags & 0x1)
- textFlags.push_back(kTextFlagEditable);
- if (flags & 0x2)
- textFlags.push_back(kTextFlagAutoTab);
- if (flags & 0x4)
- textFlags.push_back(kTextFlagDoNotWrap);
- if (flags & 0xf8)
- warning("Unproxessed text cast flags: %x", flags & 0xf8);
-
- // TODO: FIXME: guesswork
- fontId = stream.readByte();
- fontSize = stream.readByte();
-
- modified = 0;
-}
-
-ShapeCast::ShapeCast(Common::SeekableSubReadStreamEndian &stream) {
- /*byte flags = */ stream.readByte();
- /*unk1 = */ stream.readByte();
- shapeType = static_cast<ShapeType>(stream.readByte());
- initialRect = Score::readRect(stream);
- pattern = stream.readUint16BE();
- fgCol = stream.readByte();
- bgCol = stream.readByte();
- fillType = stream.readByte();
- lineThickness = stream.readByte();
- lineDirection = stream.readByte();
- modified = 0;
-}
-
-Common::Rect Score::readRect(Common::SeekableSubReadStreamEndian &stream) {
- Common::Rect *rect = new Common::Rect();
- rect->top = stream.readUint16();
- rect->left = stream.readUint16();
- rect->bottom = stream.readUint16();
- rect->right = stream.readUint16();
+Common::Rect Score::readRect(Common::ReadStreamEndian &stream) {
+ Common::Rect rect;
+ rect.top = stream.readUint16();
+ rect.left = stream.readUint16();
+ rect.bottom = stream.readUint16();
+ rect.right = stream.readUint16();
- return *rect;
+ return rect;
}
void Score::startLoop() {
@@ -930,4 +1011,4 @@ Sprite *Score::getSpriteById(uint16 id) {
}
}
-} //End of namespace Director
+} // End of namespace Director
diff --git a/engines/director/score.h b/engines/director/score.h
index 83f25284b1..9f6088307b 100644
--- a/engines/director/score.h
+++ b/engines/director/score.h
@@ -34,26 +34,14 @@ namespace Graphics {
namespace Director {
class Archive;
+struct CastInfo;
class DirectorEngine;
class DirectorSound;
class Frame;
+struct Label;
class Lingo;
class Sprite;
-enum CastType {
- kCastBitmap = 1,
- kCastFilmLoop,
- kCastText,
- kCastPalette,
- kCastPicture,
- kCastSound,
- kCastButton,
- kCastShape,
- kCastMovie,
- kCastDigitalVideo,
- kCastScript
-};
-
enum ScriptType {
kMovieScript = 0,
kSpriteScript = 1,
@@ -62,120 +50,12 @@ enum ScriptType {
kMaxScriptType = 2
};
-struct Cast {
- CastType type;
- Common::Rect initialRect;
- byte modified;
-};
-
-struct BitmapCast : Cast {
- BitmapCast(Common::SeekableSubReadStreamEndian &stream);
-
- Common::Rect boundingRect;
- uint16 regX;
- uint16 regY;
- uint8 flags;
- uint16 someFlaggyThing;
- uint16 unk1, unk2;
-};
-
-enum ShapeType {
- kShapeRectangle,
- kShapeRoundRect,
- kShapeOval,
- kShapeLine
-};
-
-struct ShapeCast : Cast {
- ShapeCast(Common::SeekableSubReadStreamEndian &stream);
-
- ShapeType shapeType;
- uint16 pattern;
- byte fgCol;
- byte bgCol;
- byte fillType;
- byte lineThickness;
- byte lineDirection;
-};
-
-enum TextType {
- kTextTypeAdjustToFit,
- kTextTypeScrolling,
- kTextTypeFixed
-};
-
-enum TextAlignType {
- kTextAlignRight = -1,
- kTextAlignLeft,
- kTextAlignCenter
-};
-
-enum TextFlag {
- kTextFlagEditable,
- kTextFlagAutoTab,
- kTextFlagDoNotWrap
-};
-
-enum SizeType {
- kSizeNone,
- kSizeSmallest,
- kSizeSmall,
- kSizeMedium,
- kSizeLarge,
- kSizeLargest
-};
-
-struct TextCast : Cast {
- TextCast(Common::SeekableSubReadStreamEndian &stream);
-
- SizeType borderSize;
- SizeType gutterSize;
- SizeType boxShadow;
-
- byte flags1;
- uint32 fontId;
- uint16 fontSize;
- TextType textType;
- TextAlignType textAlign;
- SizeType textShadow;
- Common::Array<TextFlag> textFlags;
- int16 palinfo1, palinfo2, palinfo3;
-};
-
-enum ButtonType {
- kTypeButton,
- kTypeCheckBox,
- kTypeRadio
-};
-
-struct ButtonCast : TextCast {
- ButtonCast(Common::SeekableSubReadStreamEndian &stream) : TextCast(stream) {
- buttonType = static_cast<ButtonType>(stream.readUint16BE());
- }
-
- ButtonType buttonType;
-};
-
-struct CastInfo {
- Common::String script;
- Common::String name;
- Common::String directory;
- Common::String fileName;
- Common::String type;
-};
-
-struct Label {
- Common::String name;
- uint16 number;
- Label(Common::String name1, uint16 number1) { name = name1; number = number1; }
-};
-
class Score {
public:
Score(DirectorEngine *vm, Archive *);
~Score();
- static Common::Rect readRect(Common::SeekableSubReadStreamEndian &stream);
+ static Common::Rect readRect(Common::ReadStreamEndian &stream);
static int compareLabels(const void *a, const void *b);
void loadArchive();
void setStartToLabel(Common::String label);
@@ -186,7 +66,8 @@ public:
void processEvents();
Archive *getArchive() const { return _movieArchive; };
void loadConfig(Common::SeekableSubReadStreamEndian &stream);
- void loadCastData(Common::SeekableSubReadStreamEndian &stream);
+ void loadCastDataVWCR(Common::SeekableSubReadStreamEndian &stream);
+ void loadCastData(Common::SeekableSubReadStreamEndian &stream, uint16 id);
void setCurrentFrame(uint16 frameId) { _currentFrame = frameId; }
int getCurrentFrame() { return _currentFrame; }
Common::String getMacName() const { return _macName; }
@@ -243,6 +124,6 @@ private:
DirectorEngine *_vm;
};
-} //End of namespace Director
+} // End of namespace Director
#endif
diff --git a/engines/director/sound.cpp b/engines/director/sound.cpp
index af08094821..1bd70d257d 100644
--- a/engines/director/sound.cpp
+++ b/engines/director/sound.cpp
@@ -102,4 +102,4 @@ void DirectorSound::stopSound() {
_mixer->stopHandle(*_sound2);
}
-} //End of namespace Director
+} // End of namespace Director
diff --git a/engines/director/sprite.cpp b/engines/director/sprite.cpp
index 24db236563..a59313ad33 100644
--- a/engines/director/sprite.cpp
+++ b/engines/director/sprite.cpp
@@ -21,6 +21,7 @@
*/
#include "director/director.h"
+#include "director/cast.h"
#include "director/score.h"
#include "director/sprite.h"
@@ -93,4 +94,4 @@ Sprite::~Sprite() {
delete _cast;
}
-} //End of namespace Director
+} // End of namespace Director
diff --git a/engines/director/sprite.h b/engines/director/sprite.h
index e879f83599..d248036693 100644
--- a/engines/director/sprite.h
+++ b/engines/director/sprite.h
@@ -51,18 +51,18 @@ enum InkType {
//Director v4
enum SpriteType {
- kInactiveSprite, //turns the sprite off
+ kInactiveSprite, // turns the sprite off
kBitmapSprite,
kRectangleSprite,
kRoundedRectangleSprite,
kOvalSprite,
- kLineTopBottomSprite, //line from top left to bottom right
- kLineBottomTopSprite, //line from bottom left to top right
+ kLineTopBottomSprite, // line from top left to bottom right
+ kLineBottomTopSprite, // line from bottom left to top right
kTextSprite,
kButtonSprite,
kCheckboxSprite,
kRadioButtonSprite,
- kUndeterminedSprite = 16 //use castType property to examine the type of cast member associated with sprite
+ kUndeterminedSprite = 16 // use castType property to examine the type of cast member associated with sprite
};
enum SpritePosition {
@@ -97,6 +97,14 @@ public:
Sprite();
Sprite(const Sprite &sprite);
~Sprite();
+
+ byte _x1;
+ uint16 _x2;
+ uint16 _scriptId;
+ byte _flags2; // x40 editable, 0x80 moveable
+ byte _unk2;
+ uint32 _unk3;
+
bool _enabled;
byte _castId;
InkType _ink;
@@ -106,8 +114,8 @@ public:
Common::Point _startPoint;
uint16 _width;
uint16 _height;
- //TODO: default constraint = 0, if turned on, sprite is constrainted to the bounding rect
- //As i know, constrainted != 0 only if sprite moveable
+ // TODO: default constraint = 0, if turned on, sprite is constrainted to the bounding rect
+ // As i know, constrainted != 0 only if sprite moveable
byte _constraint;
byte _moveable;
byte _backColor;
@@ -119,19 +127,19 @@ public:
byte _blend;
bool _visible;
SpriteType _type;
- //Using in digital movie sprites
+ // Using in digital movie sprites
byte _movieRate;
uint16 _movieTime;
uint16 _startTime;
uint16 _stopTime;
byte _volume;
byte _stretch;
- //Using in shape sprites
+ // Using in shape sprites
byte _lineSize;
- //Using in text sprites
+ // Using in text sprites
Common::String _editableText;
};
-} //End of namespace Director
+} // End of namespace Director
#endif
diff --git a/engines/dm/group.cpp b/engines/dm/group.cpp
index cf748ffa41..a72342da3d 100644
--- a/engines/dm/group.cpp
+++ b/engines/dm/group.cpp
@@ -1672,7 +1672,10 @@ int16 GroupMan::getChampionDamage(Group *group, uint16 champIndex) {
uint16 poisonAttack = creatureInfo._poisonAttack;
if (poisonAttack && _vm->getRandomNumber(2)) {
poisonAttack = championMan.getStatisticAdjustedAttack(curChampion, kDMStatVitality, poisonAttack);
- if (poisonAttack >= 0)
+
+ // Strangerke: In the original, the check was on >= 0, which is pretty useless for a unsigned variable.
+ // I changed the check to > 0 because, considering the code of championPoison, it avoids a potential bug.
+ if (poisonAttack > 0)
championMan.championPoison(champIndex, poisonAttack);
}
return damage;
diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp
index 404a8edecc..bf769e2f61 100644
--- a/engines/fullpipe/statics.cpp
+++ b/engines/fullpipe/statics.cpp
@@ -547,7 +547,7 @@ void Movement::draw(bool flipFlag, int angle) {
if (flipFlag) {
bmp->flipVertical()->drawShaded(1, x, y + 30 + _currDynamicPhase->_rect->bottom, _currDynamicPhase->_paletteData, _currDynamicPhase->_alpha);
- } if (angle) {
+ } else if (angle) {
bmp->drawRotated(x, y, angle, _currDynamicPhase->_paletteData, _currDynamicPhase->_alpha);
} else {
bmp->putDib(x, y, (int32 *)_currDynamicPhase->_paletteData, _currDynamicPhase->_alpha);
diff --git a/engines/kyra/lol.h b/engines/kyra/lol.h
index af58397200..9f952e5df6 100644
--- a/engines/kyra/lol.h
+++ b/engines/kyra/lol.h
@@ -987,8 +987,7 @@ private:
uint16 _specialGuiShapeY;
uint16 _specialGuiShapeMirrorFlag;
- char _lastOverridePalFile[12];
- char *_lastOverridePalFilePtr;
+ Common::String _lastOverridePalFile;
int _lastSpecialColor;
int _lastSpecialColorWeight;
diff --git a/engines/kyra/scene_lol.cpp b/engines/kyra/scene_lol.cpp
index 391de5e49c..a746080190 100644
--- a/engines/kyra/scene_lol.cpp
+++ b/engines/kyra/scene_lol.cpp
@@ -303,12 +303,10 @@ void LoLEngine::loadLevelGraphics(const char *file, int specialColor, int weight
_lastSpecialColor = specialColor;
_lastSpecialColorWeight = weight;
strcpy(_lastBlockDataFile, file);
- if (palFile) {
- strcpy(_lastOverridePalFile, palFile);
- _lastOverridePalFilePtr = _lastOverridePalFile;
- } else {
- _lastOverridePalFilePtr = 0;
- }
+ if (palFile)
+ _lastOverridePalFile = palFile;
+ else
+ _lastOverridePalFile.clear();
}
if (_flags.use16ColorMode) {
@@ -361,8 +359,8 @@ void LoLEngine::loadLevelGraphics(const char *file, int specialColor, int weight
memcpy(_vcnColTable, v, 128);
v += 128;
- if (_lastOverridePalFilePtr) {
- _res->loadFileToBuf(_lastOverridePalFilePtr, _screen->getPalette(0).getData(), 384);
+ if (!_lastOverridePalFile.empty()) {
+ _res->loadFileToBuf(_lastOverridePalFile.c_str(), _screen->getPalette(0).getData(), 384);
} else {
_screen->getPalette(0).copy(v, 0, 128);
}
diff --git a/engines/kyra/timer.cpp b/engines/kyra/timer.cpp
index edca3ef5bf..97e989ea38 100644
--- a/engines/kyra/timer.cpp
+++ b/engines/kyra/timer.cpp
@@ -90,7 +90,7 @@ void TimerManager::reset() {
void TimerManager::addTimer(uint8 id, TimerFunc *func, int countdown, bool enabled) {
Iterator timer = Common::find_if(_timers.begin(), _timers.end(), TimerEqual(id));
if (timer != _timers.end()) {
- warning("Adding allready existing timer %d", id);
+ warning("Adding already existing timer %d", id);
return;
}
diff --git a/engines/lab/console.cpp b/engines/lab/console.cpp
index 20b1f5645b..a90c2605a7 100644
--- a/engines/lab/console.cpp
+++ b/engines/lab/console.cpp
@@ -81,7 +81,7 @@ bool Console::Cmd_DumpSceneResources(int argc, const char **argv) {
"ResetBuffer", "SpecialCmd", "CShowMessage", "PlaySoundNoWait"
};
- debugPrintf("Room mesage: %s\n", roomData->_roomMsg.c_str());
+ debugPrintf("Room message: %s\n", roomData->_roomMsg.c_str());
debugPrintf("Transition: %s (%d)\n", transitions[roomData->_transitionType], roomData->_transitionType);
debugPrintf("Script:\n");
diff --git a/engines/mads/palette.cpp b/engines/mads/palette.cpp
index 7651fe8e65..de870295a5 100644
--- a/engines/mads/palette.cpp
+++ b/engines/mads/palette.cpp
@@ -665,15 +665,15 @@ void Fader::insertionSort(int size, byte *id, byte *value) {
int moveCount = size - arrIndex - 1;
if (moveCount > 0) {
- Common::copy(idP + 1, idP + moveCount + 2, idP);
- Common::copy(valueP + 1, valueP + moveCount + 2, valueP);
+ Common::copy(idP + 1, idP + moveCount + 1, idP);
+ Common::copy(valueP + 1, valueP + moveCount + 1, valueP);
}
// Scan for insert spot
int idx = 0;
if (endIndex > 0) {
bool breakFlag = false;
- for (; idx <= endIndex && !breakFlag; ++idx) {
+ for (; idx <= endIndex - 1 && !breakFlag; ++idx) {
breakFlag = savedId < id[idx];
}
}
diff --git a/engines/mads/staticres.cpp b/engines/mads/staticres.cpp
index b659d9a27c..6cb76a1d89 100644
--- a/engines/mads/staticres.cpp
+++ b/engines/mads/staticres.cpp
@@ -43,7 +43,7 @@ const char *const kFenceStr = "fence";
const char *const kOverStr = "over";
const char *const kGameReleaseInfoStr = "ScummVM rev: 8.43 14-Sept-92";
-const char *const kGameReleaseTitleStr = "GAME RELASE VERSION INFO";
+const char *const kGameReleaseTitleStr = "GAME RELEASE VERSION INFO";
const uint32 DEFAULT_VGA_LOW_PALETTE[16] = {
0x000000, 0x0000a8, 0x00a800, 0x00a8a8, 0xa80000, 0xa800a8, 0xa85400, 0xa8a8a8,
diff --git a/engines/mohawk/POTFILES b/engines/mohawk/POTFILES
index ced02735c7..42d1d084c2 100644
--- a/engines/mohawk/POTFILES
+++ b/engines/mohawk/POTFILES
@@ -2,4 +2,5 @@ engines/mohawk/detection.cpp
engines/mohawk/dialogs.cpp
engines/mohawk/myst.cpp
engines/mohawk/riven.cpp
+engines/mohawk/riven_external.cpp
engines/mohawk/mohawk.cpp
diff --git a/engines/mohawk/riven.cpp b/engines/mohawk/riven.cpp
index a1eef85a69..12b4851a9c 100644
--- a/engines/mohawk/riven.cpp
+++ b/engines/mohawk/riven.cpp
@@ -147,8 +147,8 @@ Common::Error MohawkEngine_Riven::run() {
// We need to have a cursor source, or the game won't work
if (!_cursor->hasSource()) {
- Common::String message = "You're missing a Riven executable. The Windows executable is 'riven.exe' or 'rivendmo.exe'. ";
- message += "Using the 'arcriven.z' installer file also works. In addition, you can use the Mac 'Riven' executable.";
+ Common::String message = _("You're missing a Riven executable. The Windows executable is 'riven.exe' or 'rivendmo.exe'. ");
+ message += _("Using the 'arcriven.z' installer file also works. In addition, you can use the Mac 'Riven' executable.");
GUIErrorMessage(message);
warning("%s", message.c_str());
return Common::kNoGameDataFoundError;
@@ -159,7 +159,7 @@ Common::Error MohawkEngine_Riven::run() {
// We need extras.mhk for inventory images, marble images, and credits images
if (!_extrasFile->openFile("extras.mhk")) {
- Common::String message = "You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also works.";
+ Common::String message = _("You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also works.");
GUIErrorMessage(message);
warning("%s", message.c_str());
return Common::kNoGameDataFoundError;
diff --git a/engines/mohawk/riven_external.cpp b/engines/mohawk/riven_external.cpp
index 125630445e..fb98145b44 100644
--- a/engines/mohawk/riven_external.cpp
+++ b/engines/mohawk/riven_external.cpp
@@ -30,6 +30,7 @@
#include "gui/message.h"
#include "common/events.h"
#include "common/system.h"
+#include "common/translation.h"
namespace Mohawk {
@@ -209,8 +210,8 @@ void RivenExternal::runCommand(uint16 argc, uint16 *argv) {
}
void RivenExternal::runDemoBoundaryDialog() {
- GUI::MessageDialog dialog("Exploration beyond this point available only within the full version of\n"
- "the game.");
+ GUI::MessageDialog dialog(_("Exploration beyond this point available only within the full version of\n"
+ "the game."));
dialog.runModal();
}
@@ -651,11 +652,11 @@ void RivenExternal::xalaunchbrowser(uint16 argc, uint16 *argv) {
//
// [YES] [NO]
- GUI::MessageDialog dialog("At this point, the Riven Demo would\n"
+ GUI::MessageDialog dialog(_("At this point, the Riven Demo would\n"
"ask if you would like to open a web browser\n"
"to bring you to the Red Orb store to buy\n"
"the game. ScummVM cannot do that and\n"
- "the site no longer exists.");
+ "the site no longer exists."));
dialog.runModal();
}
diff --git a/engines/sci/console.cpp b/engines/sci/console.cpp
index 8737c8b954..83f1271252 100644
--- a/engines/sci/console.cpp
+++ b/engines/sci/console.cpp
@@ -53,6 +53,7 @@
#ifdef ENABLE_SCI32
#include "sci/graphics/frameout.h"
#include "sci/graphics/paint32.h"
+#include "sci/graphics/palette32.h"
#include "video/coktel_decoder.h"
#endif
@@ -228,6 +229,8 @@ Console::Console(SciEngine *engine) : GUI::Debugger(),
registerCmd("view_listnode", WRAP_METHOD(Console, cmdViewListNode));
registerCmd("view_reference", WRAP_METHOD(Console, cmdViewReference));
registerCmd("vr", WRAP_METHOD(Console, cmdViewReference)); // alias
+ registerCmd("dump_reference", WRAP_METHOD(Console, cmdDumpReference));
+ registerCmd("dr", WRAP_METHOD(Console, cmdDumpReference)); // alias
registerCmd("view_object", WRAP_METHOD(Console, cmdViewObject));
registerCmd("vo", WRAP_METHOD(Console, cmdViewObject)); // alias
registerCmd("active_object", WRAP_METHOD(Console, cmdViewActiveObject));
@@ -446,6 +449,7 @@ bool Console::cmdHelp(int argc, const char **argv) {
debugPrintf(" value_type - Determines the type of a value\n");
debugPrintf(" view_listnode - Examines the list node at the given address\n");
debugPrintf(" view_reference / vr - Examines an arbitrary reference\n");
+ debugPrintf(" dump_reference / dr - Dumps an arbitrary reference to disk\n");
debugPrintf(" view_object / vo - Examines the object at the given address\n");
debugPrintf(" active_object - Shows information on the currently active object or class\n");
debugPrintf(" acc_object - Shows information on the object or class at the address indexed by the accumulator\n");
@@ -2843,6 +2847,125 @@ bool Console::cmdViewReference(int argc, const char **argv) {
return true;
}
+bool Console::cmdDumpReference(int argc, const char **argv) {
+ if (argc < 2) {
+ debugPrintf("Dumps an arbitrary reference to disk.\n");
+ debugPrintf("Usage: %s <start address> [<end address>]\n", argv[0]);
+ debugPrintf("Where <start address> is the starting address to dump\n");
+ debugPrintf("<end address>, if provided, is the address where the dump ends\n");
+ debugPrintf("Check the \"addresses\" command on how to use addresses\n");
+ return true;
+ }
+
+ reg_t reg = NULL_REG;
+ reg_t reg_end = NULL_REG;
+
+ if (parse_reg_t(_engine->_gamestate, argv[1], &reg, false)) {
+ debugPrintf("Invalid address passed.\n");
+ debugPrintf("Check the \"addresses\" command on how to use addresses\n");
+ return true;
+ }
+
+ if (argc > 2) {
+ if (parse_reg_t(_engine->_gamestate, argv[2], &reg_end, false)) {
+ debugPrintf("Invalid address passed.\n");
+ debugPrintf("Check the \"addresses\" command on how to use addresses\n");
+ return true;
+ }
+ }
+
+ if (reg.getSegment() == 0 && reg.getOffset() == 0) {
+ debugPrintf("Register is null.\n");
+ return true;
+ }
+
+ if (g_sci->getKernel()->findRegType(reg) != SIG_TYPE_REFERENCE) {
+ debugPrintf("%04x:%04x is not a reference\n", PRINT_REG(reg));
+ return true;
+ }
+
+ if (reg_end.getSegment() != reg.getSegment() && reg_end != NULL_REG) {
+ debugPrintf("Ending segment different from starting segment. Assuming no bound on dump.\n");
+ reg_end = NULL_REG;
+ }
+
+ Common::DumpFile out;
+ Common::String outFileName;
+ uint32 bytesWritten;
+
+ switch (_engine->_gamestate->_segMan->getSegmentType(reg.getSegment())) {
+#ifdef ENABLE_SCI32
+ case SEG_TYPE_BITMAP: {
+ outFileName = Common::String::format("%04x_%04x.tga", PRINT_REG(reg));
+ out.open(outFileName);
+ SciBitmap &bitmap = *_engine->_gamestate->_segMan->lookupBitmap(reg);
+ const Color *color = g_sci->_gfxPalette32->getCurrentPalette().colors;
+ const uint16 numColors = ARRAYSIZE(g_sci->_gfxPalette32->getCurrentPalette().colors);
+
+ out.writeByte(0); // image id length
+ out.writeByte(1); // color map type (present)
+ out.writeByte(1); // image type (uncompressed color-mapped)
+ out.writeSint16LE(0); // index of first color map entry
+ out.writeSint16LE(numColors); // number of color map entries
+ out.writeByte(24); // number of bits per color entry (RGB24)
+ out.writeSint16LE(0); // bottom-left x-origin
+ out.writeSint16LE(bitmap.getHeight() - 1); // bottom-left y-origin
+ out.writeSint16LE(bitmap.getWidth()); // width
+ out.writeSint16LE(bitmap.getHeight()); // height
+ out.writeByte(8); // bits per pixel
+ out.writeByte(1 << 5); // origin of pixel data (top-left)
+
+ bytesWritten = 18;
+
+ for (int i = 0; i < numColors; ++i) {
+ out.writeByte(color->b);
+ out.writeByte(color->g);
+ out.writeByte(color->r);
+ ++color;
+ }
+
+ bytesWritten += numColors * 3;
+ bytesWritten += out.write(bitmap.getPixels(), bitmap.getWidth() * bitmap.getHeight());
+ break;
+ }
+#endif
+
+ default: {
+ const SegmentRef block = _engine->_gamestate->_segMan->dereference(reg);
+ uint32 size = block.maxSize;
+
+ if (size == 0) {
+ debugPrintf("Size of reference is zero.\n");
+ return true;
+ }
+
+ if (reg_end.getSegment() != 0 && (size < reg_end.getOffset() - reg.getOffset())) {
+ debugPrintf("Block end out of bounds (size %d). Resetting.\n", size);
+ reg_end = NULL_REG;
+ }
+
+ if (reg_end.getSegment() != 0 && (size >= reg_end.getOffset() - reg.getOffset())) {
+ size = reg_end.getOffset() - reg.getOffset();
+ }
+
+ if (reg_end.getSegment() != 0) {
+ debugPrintf("Block size less than or equal to %d\n", size);
+ }
+
+ outFileName = Common::String::format("%04x_%04x.dmp", PRINT_REG(reg));
+ out.open(outFileName);
+ bytesWritten = out.write(block.raw, size);
+ break;
+ }
+ }
+
+ out.finalize();
+ out.close();
+
+ debugPrintf("Wrote %u bytes to %s\n", bytesWritten, outFileName.c_str());
+ return true;
+}
+
bool Console::cmdViewObject(int argc, const char **argv) {
if (argc != 2) {
debugPrintf("Examines the object at the given address.\n");
@@ -4530,7 +4653,7 @@ int Console::printObject(reg_t pos) {
uint i;
if (!obj) {
- debugPrintf("[%04x:%04x]: Not an object.", PRINT_REG(pos));
+ debugPrintf("[%04x:%04x]: Not an object.\n", PRINT_REG(pos));
return 1;
}
diff --git a/engines/sci/console.h b/engines/sci/console.h
index 0b87a4408b..d4b17ee802 100644
--- a/engines/sci/console.h
+++ b/engines/sci/console.h
@@ -163,6 +163,7 @@ private:
bool cmdValueType(int argc, const char **argv);
bool cmdViewListNode(int argc, const char **argv);
bool cmdViewReference(int argc, const char **argv);
+ bool cmdDumpReference(int argc, const char **argv);
bool cmdViewObject(int argc, const char **argv);
bool cmdViewActiveObject(int argc, const char **argv);
bool cmdViewAccumulatorObject(int argc, const char **argv);
diff --git a/engines/sci/detection.cpp b/engines/sci/detection.cpp
index 83f1d30916..a00da7c5fd 100644
--- a/engines/sci/detection.cpp
+++ b/engines/sci/detection.cpp
@@ -556,7 +556,7 @@ const ADGameDescription *SciMetaEngine::fallbackDetect(const FileMap &allFiles,
s_fallbackDesc.guiOptions = GUIO3(GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI);
if (allFiles.contains("resource.map") || allFiles.contains("Data1")
- || allFiles.contains("resmap.001") || allFiles.contains("resmap.001")) {
+ || allFiles.contains("resmap.000") || allFiles.contains("resmap.001")) {
foundResMap = true;
}
diff --git a/engines/sci/detection_tables.h b/engines/sci/detection_tables.h
index 22d2b6f308..4a3d13cbed 100644
--- a/engines/sci/detection_tables.h
+++ b/engines/sci/detection_tables.h
@@ -3398,7 +3398,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
AD_LISTEND},
Common::EN_ANY, Common::kPlatformDOS, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) },
- // Quest for Glory 1 / Hero's Quest - English DOS 3.5" Floppy (supplied by alonzotg in bug report #3206006)
+ // Quest for Glory 1 / Hero's Quest - English DOS 3.5" Floppy v1.001 Int#0.000.566 (supplied by alonzotg in bug report #3206006)
{"qfg1", "", {
{"resource.map", 0, "85512508ed4e4ef1e3b309adabceeda9", 6486},
{"resource.000", 0, "481b034132106390cb5160fe61dd5f58", 80334},
diff --git a/engines/sci/engine/features.h b/engines/sci/engine/features.h
index 15c80a7277..36b0d06360 100644
--- a/engines/sci/engine/features.h
+++ b/engines/sci/engine/features.h
@@ -117,6 +117,17 @@ public:
inline bool hasNewPaletteCode() const {
return getSciVersion() >= SCI_VERSION_2_1_MIDDLE || g_sci->getGameId() == GID_KQ7;
}
+
+ inline bool VMDOpenStopsAudio() const {
+ // Of the games that use VMDs:
+ // Yes: Phant1, Shivers, Torin
+ // No: SQ6
+ // TODO: Optional extra flag to kPlayVMD which defaults to Yes: PQ:SWAT
+ // TODO: SCI3, GK2 (GK2's VMD code is closer to SCI3 than SCI21)
+ return getSciVersion() == SCI_VERSION_2_1_MIDDLE &&
+ g_sci->getGameId() != GID_SQ6 &&
+ g_sci->getGameId() != GID_GK2;
+ }
#endif
/**
diff --git a/engines/sci/engine/kernel.h b/engines/sci/engine/kernel.h
index cce9a223d3..03c8a673a8 100644
--- a/engines/sci/engine/kernel.h
+++ b/engines/sci/engine/kernel.h
@@ -466,6 +466,7 @@ reg_t kPlayVMD(EngineState *s, int argc, reg_t *argv);
reg_t kPlayVMDOpen(EngineState *s, int argc, reg_t *argv);
reg_t kPlayVMDInit(EngineState *s, int argc, reg_t *argv);
reg_t kPlayVMDClose(EngineState *s, int argc, reg_t *argv);
+reg_t kPlayVMDIgnorePalettes(EngineState *s, int argc, reg_t *argv);
reg_t kPlayVMDGetStatus(EngineState *s, int argc, reg_t *argv);
reg_t kPlayVMDPlayUntilEvent(EngineState *s, int argc, reg_t *argv);
reg_t kPlayVMDShowCursor(EngineState *s, int argc, reg_t *argv);
diff --git a/engines/sci/engine/kernel_tables.h b/engines/sci/engine/kernel_tables.h
index 6e88112992..8093147cb4 100644
--- a/engines/sci/engine/kernel_tables.h
+++ b/engines/sci/engine/kernel_tables.h
@@ -466,6 +466,7 @@ static const SciKernelMapSubEntry kPlayVMD_subops[] = {
{ SIG_SINCE_SCI21, 0, MAP_CALL(PlayVMDOpen), "r(i)(i)", NULL },
{ SIG_SINCE_SCI21, 1, MAP_CALL(PlayVMDInit), "ii(i)(i)(ii)", NULL },
{ SIG_SINCE_SCI21, 6, MAP_CALL(PlayVMDClose), "", NULL },
+ { SIG_SINCE_SCI21, 7, MAP_CALL(PlayVMDIgnorePalettes), "", NULL },
{ SIG_SINCE_SCI21, 10, MAP_CALL(PlayVMDGetStatus), "", NULL },
{ SIG_SINCE_SCI21, 14, MAP_CALL(PlayVMDPlayUntilEvent), "i(i)(i)", NULL },
{ SIG_SINCE_SCI21, 16, MAP_CALL(PlayVMDShowCursor), "i", NULL },
diff --git a/engines/sci/engine/kstring.cpp b/engines/sci/engine/kstring.cpp
index 6ec61343b0..74c1f99778 100644
--- a/engines/sci/engine/kstring.cpp
+++ b/engines/sci/engine/kstring.cpp
@@ -733,11 +733,12 @@ namespace {
}
bool isSignedType(const char type) {
- return type == 'd' || type == 'i';
+ // For whatever reason, %d ends up being treated as unsigned in SSCI
+ return type == 'i';
}
bool isUnsignedType(const char type) {
- return strchr("uxXoc", type);
+ return strchr("duxXoc", type);
}
bool isStringType(const char type) {
@@ -805,8 +806,11 @@ Common::String format(const Common::String &source, int argc, const reg_t *argv)
continue;
}
- assert(argIndex < argc);
- out += readPlaceholder(in, argv[argIndex++]);
+ if (argIndex < argc) {
+ out += readPlaceholder(in, argv[argIndex++]);
+ } else {
+ out += readPlaceholder(in, NULL_REG);
+ }
} else {
out += *in++;
}
diff --git a/engines/sci/engine/kvideo.cpp b/engines/sci/engine/kvideo.cpp
index 83a02883af..11378d7647 100644
--- a/engines/sci/engine/kvideo.cpp
+++ b/engines/sci/engine/kvideo.cpp
@@ -428,6 +428,11 @@ reg_t kPlayVMDClose(EngineState *s, int argc, reg_t *argv) {
return make_reg(0, g_sci->_video32->getVMDPlayer().close());
}
+reg_t kPlayVMDIgnorePalettes(EngineState *s, int argc, reg_t *argv) {
+ g_sci->_video32->getVMDPlayer().ignorePalettes();
+ return s->r_acc;
+}
+
reg_t kPlayVMDGetStatus(EngineState *s, int argc, reg_t *argv) {
return make_reg(0, g_sci->_video32->getVMDPlayer().getStatus());
}
diff --git a/engines/sci/engine/message.cpp b/engines/sci/engine/message.cpp
index b0615b4213..26ab9b47a5 100644
--- a/engines/sci/engine/message.cpp
+++ b/engines/sci/engine/message.cpp
@@ -333,12 +333,14 @@ void MessageState::popCursorStack() {
error("Message: attempt to pop from empty stack");
}
-int MessageState::hexDigitToInt(char h) {
+int MessageState::hexDigitToWrongInt(char h) {
+ // Hex digits above 9 are incorrectly interpreted by SSCI as 11-16 instead
+ // of 10-15 because of a never-fixed typo
if ((h >= 'A') && (h <= 'F'))
- return h - 'A' + 10;
+ return h - 'A' + 11;
if ((h >= 'a') && (h <= 'f'))
- return h - 'a' + 10;
+ return h - 'a' + 11;
if ((h >= '0') && (h <= '9'))
return h - '0';
@@ -355,8 +357,8 @@ bool MessageState::stringHex(Common::String &outStr, const Common::String &inStr
if (index + 2 >= inStr.size())
return false;
- int digit1 = hexDigitToInt(inStr[index + 1]);
- int digit2 = hexDigitToInt(inStr[index + 2]);
+ int digit1 = hexDigitToWrongInt(inStr[index + 1]);
+ int digit2 = hexDigitToWrongInt(inStr[index + 2]);
// Check for hex
if ((digit1 == -1) || (digit2 == -1))
diff --git a/engines/sci/engine/message.h b/engines/sci/engine/message.h
index ff76534d2d..5847e4767e 100644
--- a/engines/sci/engine/message.h
+++ b/engines/sci/engine/message.h
@@ -73,7 +73,7 @@ private:
bool getRecord(CursorStack &stack, bool recurse, MessageRecord &record);
void outputString(reg_t buf, const Common::String &str);
Common::String processString(const char *s);
- int hexDigitToInt(char h);
+ int hexDigitToWrongInt(char h);
bool stringHex(Common::String &outStr, const Common::String &inStr, uint &index);
bool stringLit(Common::String &outStr, const Common::String &inStr, uint &index);
bool stringStage(Common::String &outStr, const Common::String &inStr, uint &index);
diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp
index 2e4da46b70..720f6783ee 100644
--- a/engines/sci/engine/savegame.cpp
+++ b/engines/sci/engine/savegame.cpp
@@ -643,20 +643,33 @@ void SoundCommandParser::reconstructPlayList() {
_music->_mutex.unlock();
for (MusicList::iterator i = songs.begin(); i != songs.end(); ++i) {
- initSoundResource(*i);
+ MusicEntry *entry = *i;
+ initSoundResource(entry);
- if ((*i)->status == kSoundPlaying) {
+#ifdef ENABLE_SCI32
+ if (_soundVersion >= SCI_VERSION_2_1_EARLY && entry->isSample) {
+ const reg_t &soundObj = entry->soundObj;
+
+ if ((int)readSelectorValue(_segMan, soundObj, SELECTOR(loop)) != -1 &&
+ readSelector(_segMan, soundObj, SELECTOR(handle)) != NULL_REG) {
+
+ writeSelector(_segMan, soundObj, SELECTOR(handle), NULL_REG);
+ processPlaySound(soundObj, entry->playBed);
+ }
+ } else
+#endif
+ if (entry->status == kSoundPlaying) {
// WORKAROUND: PQ3 (German?) scripts can set volume negative in the
// sound object directly without going through DoSound.
// Since we re-read this selector when re-playing the sound after loading,
// this will lead to unexpected behaviour. As a workaround we
// sync the sound object's selectors here. (See bug #5501)
- writeSelectorValue(_segMan, (*i)->soundObj, SELECTOR(loop), (*i)->loop);
- writeSelectorValue(_segMan, (*i)->soundObj, SELECTOR(priority), (*i)->priority);
+ writeSelectorValue(_segMan, entry->soundObj, SELECTOR(loop), entry->loop);
+ writeSelectorValue(_segMan, entry->soundObj, SELECTOR(priority), entry->priority);
if (_soundVersion >= SCI_VERSION_1_EARLY)
- writeSelectorValue(_segMan, (*i)->soundObj, SELECTOR(vol), (*i)->volume);
+ writeSelectorValue(_segMan, entry->soundObj, SELECTOR(vol), entry->volume);
- processPlaySound((*i)->soundObj, (*i)->playBed);
+ processPlaySound(entry->soundObj, entry->playBed);
}
}
}
diff --git a/engines/sci/engine/script_patches.cpp b/engines/sci/engine/script_patches.cpp
index 5ac4b758ba..5f3370bad5 100644
--- a/engines/sci/engine/script_patches.cpp
+++ b/engines/sci/engine/script_patches.cpp
@@ -2190,8 +2190,27 @@ static const SciScriptPatcherEntry larry6Signatures[] = {
#pragma mark -
#pragma mark Leisure Suit Larry 6 Hires
+// When entering room 270 (diving board) from room 230, a typo in the game
+// script means that `setScale` is called accidentally instead of `setScaler`.
+// In SSCI this did not do much because the first argument happened to be
+// smaller than the y-position of `ego`, but in ScummVM the first argument is
+// larger and so a debug message "y value less than vanishingY" is displayed.
+static const uint16 larry6HiresSignatureSetScale[] = {
+ SIG_MAGICDWORD,
+ 0x38, SIG_UINT16(0x14b), // pushi 014b (setScale)
+ 0x38, SIG_UINT16(0x05), // pushi 0005
+ 0x51, 0x2c, // class 2c (Scaler)
+ SIG_END
+};
+
+static const uint16 larry6HiresPatchSetScale[] = {
+ 0x38, SIG_UINT16(0x14f), // pushi 014f (setScaler)
+ PATCH_END
+};
+
// script, description, signature patch
static const SciScriptPatcherEntry larry6HiresSignatures[] = {
+ { true, 270, "fix incorrect setScale call", 1, larry6HiresSignatureSetScale, larry6HiresPatchSetScale },
{ true, 64990, "increase number of save games", 1, sci2NumSavesSignature1, sci2NumSavesPatch1 },
{ true, 64990, "increase number of save games", 1, sci2NumSavesSignature2, sci2NumSavesPatch2 },
{ true, 64990, "disable change directory button", 1, sci2ChangeDirSignature, sci2ChangeDirPatch },
diff --git a/engines/sci/engine/segment.h b/engines/sci/engine/segment.h
index 361c1cb895..e8f0be3a79 100644
--- a/engines/sci/engine/segment.h
+++ b/engines/sci/engine/segment.h
@@ -552,8 +552,17 @@ public:
case kArrayTypeID:
return ((reg_t *)_data)[index];
case kArrayTypeByte:
- case kArrayTypeString:
- return make_reg(0, ((byte *)_data)[index]);
+ case kArrayTypeString: {
+ int16 value;
+
+ if (getSciVersion() < SCI_VERSION_2_1_MIDDLE) {
+ value = ((int8 *)_data)[index];
+ } else {
+ value = ((uint8 *)_data)[index];
+ }
+
+ return make_reg(0, value);
+ }
default:
error("Invalid array type %d", _type);
}
diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp
index dabf79a54b..4e9c59b225 100644
--- a/engines/sci/engine/workarounds.cpp
+++ b/engines/sci/engine/workarounds.cpp
@@ -399,6 +399,7 @@ const SciWorkaroundEntry kAbs_workarounds[] = {
// gameID, room,script,lvl, object-name, method-name, local-call-signature, index, workaround
const SciWorkaroundEntry kArraySetElements_workarounds[] = {
+ { GID_GK1, 302, 64918, 0, "Str", "callKernel", NULL, 0, { WORKAROUND_FAKE, 0 } }, // when erasing a letter on the wall in St Louis Cemetery
{ GID_PHANTASMAGORIA,902, 64918, 0, "Str", "callKernel", NULL, 0, { WORKAROUND_FAKE, 0 } }, // tries to set an element of a string array to the ego object when starting a new game and selecting a chapter above 1
SCI_WORKAROUNDENTRY_TERMINATOR
};
@@ -684,21 +685,6 @@ const SciWorkaroundEntry kNewWindow_workarounds[] = {
};
// gameID, room,script,lvl, object-name, method-name, local-call-signature, index, workaround
-const SciWorkaroundEntry kNumCels_workarounds[] = {
- { GID_GK1, 460, 64998, -1, "GKEgo", "lastCel", NULL, -1, { WORKAROUND_FAKE, 5 } }, // when Gabriel clicks "ask" on the bartender from a distance
- { GID_GK1, 808, 64998, -1, "sDJEnters", "changeState", NULL, -1, { WORKAROUND_FAKE, 6 } }, //
- { GID_GK2, 470, 64998, -1, "pLookieLoos", "lastCel", NULL, -1, { WORKAROUND_FAKE, 50 } }, // random background movement in the crime scene in Munich city centre
- { GID_GK2, 470, 64998, -1, "pNewsCrew", "lastCel", NULL, -1, { WORKAROUND_FAKE, 18 } }, // random background movement in the crime scene in Munich city centre
- { GID_GK2, 470, 64998, -1, "pLeberGroup", "lastCel", NULL, -1, { WORKAROUND_FAKE, 22 } }, // random background movement in the crime scene in Munich city centre
- { GID_SQ6, 270, 64998, -1, "offWorld", "lastCel", NULL, -1, { WORKAROUND_FAKE, 3 } }, // when exiting the kidnapping room
- { GID_SQ6, 320, 64998, -1, "wandererB", "lastCel", NULL, -1, { WORKAROUND_FAKE, 8 } }, // random background movement on Polysorbate LX street 3
- { GID_SQ6, 340, 64998, -1, "wandererB", "lastCel", NULL, -1, { WORKAROUND_FAKE, 8 } }, // random background movement on Polysorbate LX street 1
- { GID_SQ6, 530, 64998, -1, "monitors", "lastCel", NULL, -1, { WORKAROUND_FAKE, 5 } }, // random background movement during cutscene
- { GID_SQ6, 680, 64998, -1, "ego", "lastCel", NULL, -1, { WORKAROUND_FAKE, 44 } }, // when double-clicking hand icon on blockage
- SCI_WORKAROUNDENTRY_TERMINATOR
-};
-
-// gameID, room,script,lvl, object-name, method-name, local-call-signature, index, workaround
const SciWorkaroundEntry kPalVarySetPercent_workarounds[] = {
{ GID_GK1, 370, 370, 0, "graceComeOut", "changeState", NULL, 0, { WORKAROUND_STILLCALL, 0 } }, // there's an extra parameter in GK1, when changing chapters. This extra parameter seems to be a bug or just unimplemented functionality, as there's no visible change from the original in the chapter change room
SCI_WORKAROUNDENTRY_TERMINATOR
diff --git a/engines/sci/engine/workarounds.h b/engines/sci/engine/workarounds.h
index c50a7fb04e..2d72ae5811 100644
--- a/engines/sci/engine/workarounds.h
+++ b/engines/sci/engine/workarounds.h
@@ -85,7 +85,6 @@ extern const SciWorkaroundEntry kIsObject_workarounds[];
extern const SciWorkaroundEntry kMemory_workarounds[];
extern const SciWorkaroundEntry kMoveCursor_workarounds[];
extern const SciWorkaroundEntry kNewWindow_workarounds[];
-extern const SciWorkaroundEntry kNumCels_workarounds[];
extern const SciWorkaroundEntry kPalVarySetPercent_workarounds[];
extern const SciWorkaroundEntry kRandom_workarounds[];
extern const SciWorkaroundEntry kReadNumber_workarounds[];
diff --git a/engines/sci/graphics/celobj32.cpp b/engines/sci/graphics/celobj32.cpp
index 430500ce1e..09ea05bd59 100644
--- a/engines/sci/graphics/celobj32.cpp
+++ b/engines/sci/graphics/celobj32.cpp
@@ -800,7 +800,7 @@ int16 CelObjView::getNumLoops(const GuiResourceId viewId) {
return resource->data[2];
}
-int16 CelObjView::getNumCels(const GuiResourceId viewId, const int16 loopNo) {
+int16 CelObjView::getNumCels(const GuiResourceId viewId, int16 loopNo) {
const Resource *const resource = g_sci->getResMan()->findResource(ResourceId(kResourceTypeView, viewId), false);
if (!resource) {
@@ -813,25 +813,15 @@ int16 CelObjView::getNumCels(const GuiResourceId viewId, const int16 loopNo) {
// Every version of SCI32 has a logic error in this function that causes
// random memory to be read if a script requests the cel count for one
- // past the maximum loop index. At least GK1 room 800 does this, and gets
- // stuck in an infinite loop because the game script expects this method
- // to return a non-zero value.
- // The scope of this bug means it is likely to pop up in other games, so we
- // explicitly trap the bad condition here and report it so that any other
- // game scripts relying on this broken behavior can be fixed as well
+ // past the maximum loop index. For example, GK1 room 808 does this, and
+ // gets stuck in an infinite loop because the game script expects this
+ // method to return a non-zero value.
+ // This bug is triggered in basically every SCI32 game and appears to be
+ // universally fixable simply by always using the next lowest loop instead.
if (loopNo == loopCount) {
- SciCallOrigin origin;
- SciWorkaroundSolution solution = trackOriginAndFindWorkaround(0, kNumCels_workarounds, &origin);
- switch (solution.type) {
- case WORKAROUND_NONE:
- error("[CelObjView::getNumCels]: loop number %d is equal to loop count in view %u, %s", loopNo, viewId, origin.toString().c_str());
- case WORKAROUND_FAKE:
- return (int16)solution.value;
- case WORKAROUND_IGNORE:
- return 0;
- case WORKAROUND_STILLCALL:
- break;
- }
+ const SciCallOrigin origin = g_sci->getEngineState()->getCurrentCallOrigin();
+ debugC(kDebugLevelWorkarounds, "Workaround: kNumCels loop %d -> loop %d in view %u, %s", loopNo, loopNo - 1, viewId, origin.toString().c_str());
+ --loopNo;
}
if (loopNo > loopCount || loopNo < 0) {
diff --git a/engines/sci/graphics/lists32.h b/engines/sci/graphics/lists32.h
index 4f74c77325..ff0bc6ceae 100644
--- a/engines/sci/graphics/lists32.h
+++ b/engines/sci/graphics/lists32.h
@@ -170,6 +170,13 @@ public:
}
/**
+ * The maximum number of elements the container is able to hold.
+ */
+ size_type max_size() const {
+ return N;
+ }
+
+ /**
* The number of populated slots in the array. The size
* of the array will only go down once `pack` is called.
*/
diff --git a/engines/sci/graphics/palette32.h b/engines/sci/graphics/palette32.h
index 81e9bbbfd3..c4cfb35096 100644
--- a/engines/sci/graphics/palette32.h
+++ b/engines/sci/graphics/palette32.h
@@ -23,7 +23,6 @@
#ifndef SCI_GRAPHICS_PALETTE32_H
#define SCI_GRAPHICS_PALETTE32_H
-#include "sci/graphics/palette.h"
namespace Sci {
#pragma mark HunkPalette
diff --git a/engines/sci/graphics/screen.cpp b/engines/sci/graphics/screen.cpp
index 23e92ef6a9..de6df39bb9 100644
--- a/engines/sci/graphics/screen.cpp
+++ b/engines/sci/graphics/screen.cpp
@@ -84,11 +84,6 @@ GfxScreen::GfxScreen(ResourceManager *resMan) : _resMan(resMan) {
}
}
- if (_resMan->detectHires()) {
- _scriptWidth = 640;
- _scriptHeight = 480;
- }
-
// if not yet set, set those to script-width/height
if (!_width)
_width = _scriptWidth;
diff --git a/engines/sci/graphics/text32.cpp b/engines/sci/graphics/text32.cpp
index d142ff75c3..7375fdeffd 100644
--- a/engines/sci/graphics/text32.cpp
+++ b/engines/sci/graphics/text32.cpp
@@ -527,7 +527,7 @@ int16 GfxText32::getTextWidth(const uint index, uint length) const {
--length;
}
} else {
- width += font->getCharWidth(currentChar);
+ width += font->getCharWidth((unsigned char)currentChar);
}
if (length > 0) {
diff --git a/engines/sci/graphics/transitions32.cpp b/engines/sci/graphics/transitions32.cpp
index ddcb50b140..bad0185179 100644
--- a/engines/sci/graphics/transitions32.cpp
+++ b/engines/sci/graphics/transitions32.cpp
@@ -778,7 +778,7 @@ bool GfxTransitions32::processPixelDissolve21Mid(const PlaneShowStyle &showStyle
int seq = 1;
uint iteration = 0;
- const uint numIterationsPerTick = ARRAYSIZE(g_sci->_gfxFrameout->_showList);
+ const uint numIterationsPerTick = g_sci->_gfxFrameout->_showList.max_size();
clearShowRects();
diff --git a/engines/sci/graphics/video32.cpp b/engines/sci/graphics/video32.cpp
index 1db66644c8..bf0c990015 100644
--- a/engines/sci/graphics/video32.cpp
+++ b/engines/sci/graphics/video32.cpp
@@ -28,6 +28,7 @@
#include "engine.h" // for Engine, g_engine
#include "engines/util.h" // for initGraphics
#include "sci/console.h" // for Console
+#include "sci/engine/features.h" // for GameFeatures
#include "sci/engine/state.h" // for EngineState
#include "sci/engine/vm_types.h" // for reg_t
#include "sci/event.h" // for SciEvent, EventManager, SCI_...
@@ -39,10 +40,12 @@
#include "sci/graphics/plane32.h" // for Plane, PlanePictureCodes::kP...
#include "sci/graphics/screen_item32.h" // for ScaleInfo, ScreenItem, Scale...
#include "sci/sci.h" // for SciEngine, g_sci, getSciVersion
-#include "sci/graphics/video32.h"
+#include "sci/sound/audio32.h" // for Audio32
#include "sci/video/seq_decoder.h" // for SEQDecoder
#include "video/avi_decoder.h" // for AVIDecoder
#include "video/coktel_decoder.h" // for AdvancedVMDDecoder
+#include "sci/graphics/video32.h"
+
namespace Graphics { struct Surface; }
namespace Sci {
@@ -68,7 +71,8 @@ void SEQPlayer::play(const Common::String &fileName, const int16 numTicks, const
// mechanism that is very similar to that used by the VMD player, which
// allows the SEQ to be drawn into a bitmap ScreenItem and displayed using
// the normal graphics system.
- _segMan->allocateBitmap(&_bitmap, _decoder->getWidth(), _decoder->getHeight(), kDefaultSkipColor, 0, 0, kLowResX, kLowResY, 0, false, false);
+ SciBitmap &bitmap = *_segMan->allocateBitmap(&_bitmap, _decoder->getWidth(), _decoder->getHeight(), kDefaultSkipColor, 0, 0, kLowResX, kLowResY, 0, false, false);
+ bitmap.getBuffer().fillRect(Common::Rect(_decoder->getWidth(), _decoder->getHeight()), 0);
CelInfo32 celInfo;
celInfo.type = kCelTypeMem;
@@ -163,49 +167,37 @@ AVIPlayer::IOStatus AVIPlayer::init1x(const int16 x, const int16 y, int16 width,
_pixelDouble = false;
if (!width || !height) {
- width = _decoder->getWidth();
- height = _decoder->getHeight();
- } else if (getSciVersion() == SCI_VERSION_2_1_EARLY && g_sci->getGameId() == GID_KQ7) {
- // KQ7 1.51 provides an explicit width and height when it wants scaling,
- // though the width and height it provides are not scaled
- _pixelDouble = true;
- width *= 2;
- height *= 2;
- }
-
- // QFG4CD gives non-multiple-of-2 values for width and height,
- // which would normally be OK except the source video is a pixel bigger
- // in each dimension
+ const int16 screenWidth = g_sci->_gfxFrameout->getCurrentBuffer().screenWidth;
+ const int16 screenHeight = g_sci->_gfxFrameout->getCurrentBuffer().screenHeight;
+ const int16 scriptWidth = g_sci->_gfxFrameout->getCurrentBuffer().scriptWidth;
+ const int16 scriptHeight = g_sci->_gfxFrameout->getCurrentBuffer().scriptHeight;
+ const Ratio screenToScriptX(scriptWidth, screenWidth);
+ const Ratio screenToScriptY(scriptHeight, screenHeight);
+ width = (_decoder->getWidth() * screenToScriptX).toInt();
+ height = (_decoder->getHeight() * screenToScriptY).toInt();
+ }
+
+ // QFG4CD gives non-multiple-of-2 values for width and height of the intro
+ // video, which would normally be OK except the source video is a pixel
+ // bigger in each dimension so it just causes part of the video to get cut
+ // off
width = (width + 1) & ~1;
height = (height + 1) & ~1;
- _drawRect.left = x;
- _drawRect.top = y;
- _drawRect.right = x + width;
- _drawRect.bottom = y + height;
-
- // SCI2.1mid uses init2x to draw a pixel-doubled AVI, but SCI2 has only the
- // one play routine which automatically pixel-doubles in hi-res mode
- if (getSciVersion() == SCI_VERSION_2) {
- // This is somewhat of a hack; credits.avi from GK1 is not
- // rendered correctly in SSCI because it is a 640x480 video, but the
- // game script gives the wrong dimensions. Since this is the only
- // high-resolution AVI ever used, just set the draw rectangle to draw
- // the entire screen
- if (_decoder->getWidth() > 320) {
- _drawRect.left = 0;
- _drawRect.top = 0;
- _drawRect.right = 320;
- _drawRect.bottom = 200;
- }
-
- // In hi-res mode, video will be pixel doubled, so the origin (which
- // corresponds to the correct position without pixel doubling) needs to
- // be corrected
- if (g_sci->_gfxFrameout->_isHiRes && _decoder->getWidth() <= 320) {
- _drawRect.left /= 2;
- _drawRect.top /= 2;
- }
+ // GK1 CREDITS.AVI is not rendered correctly in SSCI because it is a 640x480
+ // video and the game script gives the wrong dimensions.
+ // Since this is the only high-resolution AVI ever used by any SCI game,
+ // just set the draw rectangle to draw across the entire screen
+ if (g_sci->getGameId() == GID_GK1 && _decoder->getWidth() > 320) {
+ _drawRect.left = 0;
+ _drawRect.top = 0;
+ _drawRect.right = 320;
+ _drawRect.bottom = 200;
+ } else {
+ _drawRect.left = x;
+ _drawRect.top = y;
+ _drawRect.right = x + width;
+ _drawRect.bottom = y + height;
}
init();
@@ -222,8 +214,8 @@ AVIPlayer::IOStatus AVIPlayer::init2x(const int16 x, const int16 y) {
_drawRect.top = y;
_drawRect.right = x + _decoder->getWidth() * 2;
_drawRect.bottom = y + _decoder->getHeight() * 2;
-
_pixelDouble = true;
+
init();
return kIOSuccess;
@@ -233,42 +225,38 @@ void AVIPlayer::init() {
int16 xRes;
int16 yRes;
- bool useScreenDimensions = false;
- if (g_sci->_gfxFrameout->_isHiRes && _decoder->getWidth() > 320) {
- useScreenDimensions = true;
- }
-
- // KQ7 1.51 gives video position in screen coordinates, not game
- // coordinates, because in SSCI they are passed to Video for Windows, which
- // renders as an overlay on the game video. Because we put the video into a
- // ScreenItem instead of rendering directly to the hardware surface, the
- // coordinates need to be converted to game script coordinates
- if (g_sci->getGameId() == GID_KQ7 && getSciVersion() == SCI_VERSION_2_1_EARLY) {
- useScreenDimensions = !_pixelDouble;
- // This y-translation is arbitrary, based on what roughly centers the
- // videos in the game window
- _drawRect.translate(-_drawRect.left / 2, -_drawRect.top * 2 / 3);
- }
-
- if (useScreenDimensions) {
+ // GK1 CREDITS.AVI or KQ7 1.51 half-size videos
+ if ((g_sci->_gfxFrameout->_isHiRes && _decoder->getWidth() > 320) ||
+ (g_sci->getGameId() == GID_KQ7 && getSciVersion() == SCI_VERSION_2_1_EARLY && _drawRect.width() <= 160)) {
xRes = g_sci->_gfxFrameout->getCurrentBuffer().screenWidth;
yRes = g_sci->_gfxFrameout->getCurrentBuffer().screenHeight;
} else {
xRes = g_sci->_gfxFrameout->getCurrentBuffer().scriptWidth;
- yRes = g_sci->_gfxFrameout->getCurrentBuffer().scriptHeight;
+
+ const Ratio videoRatio(_decoder->getWidth(), _decoder->getHeight());
+ const Ratio screenRatio(4, 3);
+
+ // Videos that already have a 4:3 aspect ratio should not receive any
+ // aspect ratio correction
+ if (videoRatio == screenRatio) {
+ yRes = 240;
+ } else {
+ yRes = g_sci->_gfxFrameout->getCurrentBuffer().scriptHeight;
+ }
}
_plane = new Plane(_drawRect);
g_sci->_gfxFrameout->addPlane(*_plane);
if (_decoder->getPixelFormat().bytesPerPixel == 1) {
- _segMan->allocateBitmap(&_bitmap, _decoder->getWidth(), _decoder->getHeight(), kDefaultSkipColor, 0, 0, xRes, yRes, 0, false, false);
+ SciBitmap &bitmap = *_segMan->allocateBitmap(&_bitmap, _decoder->getWidth(), _decoder->getHeight(), kDefaultSkipColor, 0, 0, xRes, yRes, 0, false, false);
+ bitmap.getBuffer().fillRect(Common::Rect(_decoder->getWidth(), _decoder->getHeight()), 0);
CelInfo32 celInfo;
celInfo.type = kCelTypeMem;
celInfo.bitmap = _bitmap;
- _screenItem = new ScreenItem(_plane->_object, celInfo, Common::Point(_drawRect.left, _drawRect.top), ScaleInfo());
+ _screenItem = new ScreenItem(_plane->_object, celInfo, Common::Point(), ScaleInfo());
g_sci->_gfxFrameout->addScreenItem(*_screenItem);
g_sci->_gfxFrameout->frameOut(true);
} else {
@@ -384,7 +372,7 @@ void AVIPlayer::renderFrame() const {
const uint8 *end = (const uint8 *)surface->getPixels() + surface->w * surface->h;
while (source != end) {
- uint8 value = *source++;
+ const uint8 value = *source++;
*target++ = value == 0 ? 255 : value;
}
} else {
@@ -414,12 +402,19 @@ void AVIPlayer::renderFrame() const {
} else {
assert(surface->format.bytesPerPixel == 4);
+ const int16 screenWidth = g_sci->_gfxFrameout->getCurrentBuffer().screenWidth;
+ const int16 screenHeight = g_sci->_gfxFrameout->getCurrentBuffer().screenHeight;
+ const int16 scriptWidth = g_sci->_gfxFrameout->getCurrentBuffer().scriptWidth;
+ const int16 scriptHeight = g_sci->_gfxFrameout->getCurrentBuffer().scriptHeight;
+
Common::Rect drawRect(_drawRect);
+ mulru(drawRect, Ratio(screenWidth, scriptWidth), Ratio(screenHeight, scriptHeight), 1);
if (_pixelDouble) {
const uint32 *source = (const uint32 *)surface->getPixels();
uint32 *target = (uint32 *)_scaleBuffer;
- // target pitch here is in uint32s, not bytes
+ // target pitch here is in uint32s, not bytes, because the surface
+ // bpp is 4
const uint16 pitch = surface->pitch / 2;
for (int y = 0; y < surface->h; ++y) {
for (int x = 0; x < surface->w; ++x) {
@@ -434,17 +429,12 @@ void AVIPlayer::renderFrame() const {
target += pitch;
}
- g_system->copyRectToScreen(_scaleBuffer, surface->pitch * 2, _drawRect.left, _drawRect.top, _drawRect.width(), _drawRect.height());
+ g_system->copyRectToScreen(_scaleBuffer, surface->pitch * 2, drawRect.left, drawRect.top, _drawRect.width(), _drawRect.height());
} else {
- const int16 screenWidth = g_sci->_gfxFrameout->getCurrentBuffer().screenWidth;
- const int16 screenHeight = g_sci->_gfxFrameout->getCurrentBuffer().screenHeight;
- const int16 scriptWidth = g_sci->_gfxFrameout->getCurrentBuffer().scriptWidth;
- const int16 scriptHeight = g_sci->_gfxFrameout->getCurrentBuffer().scriptHeight;
-
- mulinc(drawRect, Ratio(screenWidth, scriptWidth), Ratio(screenHeight, scriptHeight));
-
g_system->copyRectToScreen(surface->getPixels(), surface->pitch, drawRect.left, drawRect.top, surface->w, surface->h);
}
+
+ g_system->updateScreen();
}
}
@@ -500,6 +490,7 @@ VMDPlayer::VMDPlayer(SegManager *segMan, EventManager *eventMan) :
_isOpen(false),
_isInitialized(false),
+ _yieldFrame(0),
_yieldInterval(0),
_lastYieldedFrameNo(0),
@@ -512,6 +503,7 @@ VMDPlayer::VMDPlayer(SegManager *segMan, EventManager *eventMan) :
_blackLines(false),
_leaveScreenBlack(false),
_leaveLastFrame(false),
+ _ignorePalettes(false),
_blackoutPlane(nullptr),
@@ -538,6 +530,10 @@ VMDPlayer::IOStatus VMDPlayer::open(const Common::String &fileName, const OpenFl
error("Attempted to play %s, but another VMD was loaded", fileName.c_str());
}
+ if (g_sci->_features->VMDOpenStopsAudio()) {
+ g_sci->_audio32->stop(kAllChannels);
+ }
+
if (_decoder->loadFile(fileName)) {
if (flags & kOpenFlagMute) {
_decoder->setVolume(0);
@@ -571,6 +567,7 @@ VMDPlayer::IOStatus VMDPlayer::close() {
_decoder->close();
_isOpen = false;
_isInitialized = false;
+ _ignorePalettes = false;
if (!_planeIsOwned && _screenItem != nullptr) {
g_sci->_gfxFrameout->deleteScreenItem(*_screenItem);
@@ -625,12 +622,12 @@ VMDPlayer::VMDStatus VMDPlayer::getStatus() const {
VMDPlayer::EventFlags VMDPlayer::kernelPlayUntilEvent(const EventFlags flags, const int16 lastFrameNo, const int16 yieldInterval) {
assert(lastFrameNo >= -1);
- const int32 maxFrameNo = (int32)(_decoder->getFrameCount() - 1);
+ const int32 maxFrameNo = _decoder->getFrameCount() - 1;
- if ((flags & kEventFlagToFrame) && lastFrameNo > 0) {
- _decoder->setEndFrame(MIN<int32>(lastFrameNo, maxFrameNo));
+ if (flags & kEventFlagToFrame) {
+ _yieldFrame = MIN<int32>(lastFrameNo, maxFrameNo);
} else {
- _decoder->setEndFrame(maxFrameNo);
+ _yieldFrame = maxFrameNo;
}
if (flags & kEventFlagYieldToVM) {
@@ -705,6 +702,7 @@ VMDPlayer::EventFlags VMDPlayer::playUntilEvent(const EventFlags flags) {
reg_t bitmapId;
SciBitmap &vmdBitmap = *_segMan->allocateBitmap(&bitmapId, vmdRect.width(), vmdRect.height(), 255, 0, 0, screenWidth, screenHeight, 0, false, false);
+ vmdBitmap.getBuffer().fillRect(Common::Rect(vmdRect.width(), vmdRect.height()), 0);
if (screenWidth != scriptWidth || screenHeight != scriptHeight) {
mulru(vmdRect, Ratio(scriptWidth, screenWidth), Ratio(scriptHeight, screenHeight), 1);
@@ -767,6 +765,11 @@ VMDPlayer::EventFlags VMDPlayer::playUntilEvent(const EventFlags flags) {
const int currentFrameNo = _decoder->getCurFrame();
+ if (currentFrameNo == _yieldFrame) {
+ stopFlag = kEventFlagEnd;
+ break;
+ }
+
if (_yieldInterval > 0 &&
currentFrameNo != _lastYieldedFrameNo &&
(currentFrameNo % _yieldInterval) == 0
@@ -826,7 +829,7 @@ void VMDPlayer::renderFrame() const {
// we are just submitting it directly here because the decoder exposes
// this information a little bit differently than the one in SSCI
const bool dirtyPalette = _decoder->hasDirtyPalette();
- if (dirtyPalette) {
+ if (dirtyPalette && !_ignorePalettes) {
Palette palette;
palette.timestamp = g_sci->getTickCount();
for (uint16 i = 0; i < _startColor; ++i) {
diff --git a/engines/sci/graphics/video32.h b/engines/sci/graphics/video32.h
index 75b8fb2d21..4fc627e674 100644
--- a/engines/sci/graphics/video32.h
+++ b/engines/sci/graphics/video32.h
@@ -326,6 +326,12 @@ private:
bool _isInitialized;
/**
+ * For VMDs played with the `kEventFlagToFrame` flag,
+ * the target frame for yielding back to the SCI VM.
+ */
+ int32 _yieldFrame;
+
+ /**
* For VMDs played with the `kEventFlagYieldToVM` flag,
* the number of frames that should be rendered until
* yielding back to the SCI VM.
@@ -347,6 +353,13 @@ private:
#pragma mark -
#pragma mark VMDPlayer - Rendering
+public:
+ /**
+ * Causes the VMD player to ignore all palettes in
+ * the currently playing video.
+ */
+ void ignorePalettes() { _ignorePalettes = true; }
+
private:
/**
* The location of the VMD plane, in game script
@@ -408,6 +421,11 @@ private:
bool _leaveLastFrame;
/**
+ * Whether or not palettes from the VMD should be ignored.
+ */
+ bool _ignorePalettes;
+
+ /**
* Renders a frame of video to the output bitmap.
*/
void renderFrame() const;
diff --git a/engines/sci/parser/vocabulary.cpp b/engines/sci/parser/vocabulary.cpp
index a09ba8f3ce..a0f958167d 100644
--- a/engines/sci/parser/vocabulary.cpp
+++ b/engines/sci/parser/vocabulary.cpp
@@ -365,7 +365,7 @@ bool Vocabulary::checkAltInput(Common::String& text, uint16& cursorPos) {
}
}
}
- } while (changed && loopCount < 10);
+ } while (changed && loopCount++ < 10);
return ret;
}
diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp
index 8826b0625a..5b57eed123 100644
--- a/engines/sci/resource.cpp
+++ b/engines/sci/resource.cpp
@@ -2459,38 +2459,6 @@ void ResourceManager::detectSciVersion() {
}
}
-bool ResourceManager::detectHires() {
- // SCI 1.1 and prior is never hires
- if (getSciVersion() <= SCI_VERSION_1_1)
- return false;
-
-#ifdef ENABLE_SCI32
- for (int i = 0; i < 32768; i++) {
- Resource *res = findResource(ResourceId(kResourceTypePic, i), 0);
-
- if (res) {
- if (READ_SCI11ENDIAN_UINT16(res->data) == 0x0e) {
- // SCI32 picture
- uint16 width = READ_SCI11ENDIAN_UINT16(res->data + 10);
- uint16 height = READ_SCI11ENDIAN_UINT16(res->data + 12);
- // Surely lowres (e.g. QFG4CD)
- if ((width == 320) && ((height == 190) || (height == 200)))
- return false;
- // Surely hires
- if ((width >= 600) || (height >= 400))
- return true;
- }
- }
- }
-
- // We haven't been able to find hires content
-
- return false;
-#else
- error("no sci32 support");
-#endif
-}
-
bool ResourceManager::detectFontExtended() {
Resource *res = findResource(ResourceId(kResourceTypeFont, 0), 0);
diff --git a/engines/sci/resource.h b/engines/sci/resource.h
index 70db5909b7..928d571dbc 100644
--- a/engines/sci/resource.h
+++ b/engines/sci/resource.h
@@ -424,7 +424,6 @@ private:
public:
#endif
- bool detectHires();
// Detects, if standard font of current game includes extended characters (>0x80)
bool detectFontExtended();
// Detects, if SCI1.1 game uses palette merging
diff --git a/engines/sci/sci.cpp b/engines/sci/sci.cpp
index 246c031c06..e89d05217c 100644
--- a/engines/sci/sci.cpp
+++ b/engines/sci/sci.cpp
@@ -1166,7 +1166,9 @@ void SciEngine::syncIngameAudioOptions() {
void SciEngine::updateScummVMAudioOptions() {
// Update ScummVM's speech/subtitles settings for SCI1.1 CD games,
// depending on the in-game settings
- if (isCD() && getSciVersion() == SCI_VERSION_1_1) {
+ if ((isCD() && getSciVersion() == SCI_VERSION_1_1) ||
+ getSciVersion() >= SCI_VERSION_2) {
+
uint16 ingameSetting = _gamestate->variables[VAR_GLOBAL][kGlobalVarMessageType].getOffset();
switch (ingameSetting) {
diff --git a/engines/scumm/sound.cpp b/engines/scumm/sound.cpp
index a62092f493..98958a3050 100644
--- a/engines/scumm/sound.cpp
+++ b/engines/scumm/sound.cpp
@@ -359,7 +359,7 @@ void Sound::playSound(int soundID) {
_currentCDSound = soundID;
} else {
// All other sound types are ignored
- warning("Scumm::Sound::playSound: encountered audio resoure with chunk type 'SOUN' and sound type %d", type);
+ warning("Scumm::Sound::playSound: encountered audio resource with chunk type 'SOUN' and sound type %d", type);
}
}
else if ((_vm->_game.platform == Common::kPlatformMacintosh) && (_vm->_game.id == GID_INDY3) && READ_BE_UINT16(ptr + 8) == 0x1C) {
diff --git a/engines/titanic/carry/arm.cpp b/engines/titanic/carry/arm.cpp
index cbc14da477..1f77247e93 100644
--- a/engines/titanic/carry/arm.cpp
+++ b/engines/titanic/carry/arm.cpp
@@ -108,7 +108,7 @@ bool CArm::TranslateObjectMsg(CTranslateObjectMsg *msg) {
bool CArm::UseWithOtherMsg(CUseWithOtherMsg *msg) {
if (_string6 != "None") {
- CShowTextMsg textMsg("The arm is already holding something.");
+ CShowTextMsg textMsg(ARM_ALREADY_HOLDING);
textMsg.execute("PET");
return false;
} else if (msg->_other->getName() == "GondolierLeftLever") {
@@ -138,9 +138,10 @@ bool CArm::UseWithOtherMsg(CUseWithOtherMsg *msg) {
bool CArm::MouseDragStartMsg(CMouseDragStartMsg *msg) {
if (!_fieldE0) {
- CShowTextMsg textMsg("You can't get this.");
+ CShowTextMsg textMsg(YOU_CANT_GET_THIS);
textMsg.execute("PET");
} else if (checkStartDragging(msg)) {
+ hideMouse();
_tempPos = msg->_mousePos - _bounds;
setPosition(msg->_mousePos - _tempPos);
diff --git a/engines/titanic/carry/carry.cpp b/engines/titanic/carry/carry.cpp
index 03798e8713..4f8df11260 100644
--- a/engines/titanic/carry/carry.cpp
+++ b/engines/titanic/carry/carry.cpp
@@ -25,6 +25,7 @@
#include "titanic/npcs/character.h"
#include "titanic/npcs/succubus.h"
#include "titanic/pet_control/pet_control.h"
+#include "titanic/titanic.h"
namespace Titanic {
@@ -48,8 +49,8 @@ CCarry::CCarry() : CGameObject(), _fieldDC(0), _fieldE0(1),
_itemFrame(0), _enterFrame(0), _enterFrameSet(false), _visibleFrame(0),
_string1("None"),
_fullViewName("NULL"),
- _string3("That doesn't seem to do anything."),
- _string4("It doesn't seem to want this.") {
+ _string3(g_vm->_strings[DOESNT_DO_ANYTHING]),
+ _string4(g_vm->_strings[DOESNT_WANT_THIS]) {
}
void CCarry::save(SimpleFile *file, int indent) {
@@ -98,18 +99,19 @@ void CCarry::load(SimpleFile *file) {
bool CCarry::MouseDragStartMsg(CMouseDragStartMsg *msg) {
CString name = getName();
+ debugC(ERROR_BASIC, kDebugScripts, "MosueDragStartMsg - %s", name.c_str());
if (_fieldE0) {
- if (_visible) {
- CShowTextMsg textMsg("You can't get this.");
- textMsg.execute("PET");
- }
- } else {
if (checkStartDragging(msg)) {
CPassOnDragStartMsg startMsg(msg->_mousePos);
startMsg.execute(this);
return true;
}
+ } else {
+ if (_visible) {
+ CShowTextMsg textMsg(YOU_CANT_GET_THIS);
+ textMsg.execute("PET");
+ }
}
return false;
@@ -121,6 +123,9 @@ bool CCarry::MouseDragMoveMsg(CMouseDragMoveMsg *msg) {
}
bool CCarry::MouseDragEndMsg(CMouseDragEndMsg *msg) {
+ debugC(ERROR_BASIC, kDebugScripts, "MosueDragEndMsg");
+ showMouse();
+
if (msg->_dropTarget) {
if (msg->_dropTarget->isPet()) {
petAddToInventory();
@@ -224,6 +229,8 @@ bool CCarry::EnterViewMsg(CEnterViewMsg *msg) {
}
bool CCarry::PassOnDragStartMsg(CPassOnDragStartMsg *msg) {
+ hideMouse();
+
if (_visibleFrame != -1)
loadFrame(_visibleFrame);
@@ -234,7 +241,7 @@ bool CCarry::PassOnDragStartMsg(CPassOnDragStartMsg *msg) {
_tempPos = msg->_mousePos - _bounds;
}
- setPosition(_tempPos - getMousePos());
+ setPosition(getMousePos() - _tempPos);
return true;
}
diff --git a/engines/titanic/carry/carry_parrot.cpp b/engines/titanic/carry/carry_parrot.cpp
index 57d82af78a..ed86384147 100644
--- a/engines/titanic/carry/carry_parrot.cpp
+++ b/engines/titanic/carry/carry_parrot.cpp
@@ -145,6 +145,7 @@ bool CCarryParrot::MouseDragEndMsg(CMouseDragEndMsg *msg) {
}
}
+ showMouse();
return true;
}
@@ -153,8 +154,8 @@ bool CCarryParrot::PassOnDragStartMsg(CPassOnDragStartMsg *msg) {
moveToView();
setPosition(Point(0, 0));
setVisible(true);
- playClip("Pick Up", 2);
- playClip("Flapping", 1);
+ playClip("Pick Up", MOVIE_STOP_PREVIOUS);
+ playClip("Flapping", MOVIE_REPEAT);
stopTimer(_timerId);
_timerId = addTimer(1000, 1000);
diff --git a/engines/titanic/carry/central_core.cpp b/engines/titanic/carry/central_core.cpp
index e210b34cbe..afc3b85bf0 100644
--- a/engines/titanic/carry/central_core.cpp
+++ b/engines/titanic/carry/central_core.cpp
@@ -47,7 +47,7 @@ bool CCentralCore::UseWithOtherMsg(CUseWithOtherMsg *msg) {
CPuzzleSolvedMsg solvedMsg;
solvedMsg.execute("BigHammer");
} else if (name == "SpeechCentre") {
- CShowTextMsg textMsg("This does not reach.");
+ CShowTextMsg textMsg(DOES_NOT_REACH);
textMsg.execute("PET");
}
diff --git a/engines/titanic/carry/chicken.cpp b/engines/titanic/carry/chicken.cpp
index 0e8f6b3653..b80096b718 100644
--- a/engines/titanic/carry/chicken.cpp
+++ b/engines/titanic/carry/chicken.cpp
@@ -74,7 +74,7 @@ bool CChicken::UseWithOtherMsg(CUseWithOtherMsg *msg) {
actMsg.execute(this);
petAddToInventory();
} else {
- CShowTextMsg textMsg("The chicken is already clean.");
+ CShowTextMsg textMsg(CHICKEN_ALREADY_CLEAN);
textMsg.execute("PET");
}
@@ -200,10 +200,12 @@ bool CChicken::ParrotTriesChickenMsg(CParrotTriesChickenMsg *msg) {
}
bool CChicken::MouseDragEndMsg(CMouseDragEndMsg *msg) {
- if (_field13C)
+ if (_field13C) {
+ showMouse();
return true;
- else
+ } else {
return CCarry::MouseDragEndMsg(msg);
+ }
}
bool CChicken::PETObjectStateMsg(CPETObjectStateMsg *msg) {
diff --git a/engines/titanic/carry/hose.cpp b/engines/titanic/carry/hose.cpp
index e90119138a..3bfb4eae47 100644
--- a/engines/titanic/carry/hose.cpp
+++ b/engines/titanic/carry/hose.cpp
@@ -22,6 +22,7 @@
#include "titanic/carry/hose.h"
#include "titanic/npcs/succubus.h"
+#include "titanic/titanic.h"
namespace Titanic {
@@ -44,7 +45,7 @@ void CHose::deinit() {
}
CHose::CHose() : CCarry(),
- _string6("Succ-U-Bus auxiliary hose attachment incompatible with sliding glass cover.") {
+ _string6(g_vm->_strings[HOSE_INCOMPATIBLE]) {
}
void CHose::save(SimpleFile *file, int indent) {
diff --git a/engines/titanic/carry/perch.cpp b/engines/titanic/carry/perch.cpp
index 4f0e76bdb0..f432dafa85 100644
--- a/engines/titanic/carry/perch.cpp
+++ b/engines/titanic/carry/perch.cpp
@@ -40,7 +40,7 @@ void CPerch::load(SimpleFile *file) {
bool CPerch::UseWithOtherMsg(CUseWithOtherMsg *msg) {
if (msg->_other->isEquals("SpeechCentre")) {
- CShowTextMsg textMsg("This does not reach.");
+ CShowTextMsg textMsg(DOES_NOT_REACH);
textMsg.execute("PET");
}
diff --git a/engines/titanic/carry/plug_in.cpp b/engines/titanic/carry/plug_in.cpp
index 438b9a5883..55767ce9a8 100644
--- a/engines/titanic/carry/plug_in.cpp
+++ b/engines/titanic/carry/plug_in.cpp
@@ -50,7 +50,7 @@ bool CPlugIn::UseWithOtherMsg(CUseWithOtherMsg *msg) {
if (otherName == "PET") {
return CCarry::UseWithOtherMsg(msg);
} else if (isEquals("DatasideTransporter")) {
- CShowTextMsg textMsg("This item is incorrectly calibrated.");
+ CShowTextMsg textMsg(INCORRECTLY_CALIBRATED);
textMsg.execute("PET");
} else if (isEquals("DatasideTransporter")) {
error("TODO: Set msg->_other->fieldC4 = 2");
diff --git a/engines/titanic/continue_save_dialog.cpp b/engines/titanic/continue_save_dialog.cpp
index 39b7d1942a..0982cab408 100644
--- a/engines/titanic/continue_save_dialog.cpp
+++ b/engines/titanic/continue_save_dialog.cpp
@@ -54,9 +54,10 @@ CContinueSaveDialog::~CContinueSaveDialog() {
}
void CContinueSaveDialog::addSavegame(int slot, const CString &name) {
- assert(_saves.size() < SAVEGAME_SLOTS_COUNT);
- _slotNames[_saves.size()].setText(name);
- _saves.push_back(SaveEntry(slot, name));
+ if (_saves.size() < SAVEGAME_SLOTS_COUNT) {
+ _slotNames[_saves.size()].setText(name);
+ _saves.push_back(SaveEntry(slot, name));
+ }
}
Rect CContinueSaveDialog::getSlotBounds(int index) {
diff --git a/engines/titanic/core/background.cpp b/engines/titanic/core/background.cpp
index 733dfc1cf3..792cd28346 100644
--- a/engines/titanic/core/background.cpp
+++ b/engines/titanic/core/background.cpp
@@ -58,7 +58,7 @@ void CBackground::load(SimpleFile *file) {
bool CBackground::StatusChangeMsg(CStatusChangeMsg *msg) {
setVisible(true);
if (_fieldDC) {
- playMovie(_startFrame, _endFrame, 16);
+ playMovie(_startFrame, _endFrame, MOVIE_GAMESTATE);
} else {
playMovie(_startFrame, _endFrame, 0);
}
diff --git a/engines/titanic/core/game_object.cpp b/engines/titanic/core/game_object.cpp
index 8f71b3d995..76a2f2d5c0 100644
--- a/engines/titanic/core/game_object.cpp
+++ b/engines/titanic/core/game_object.cpp
@@ -403,8 +403,11 @@ void CGameObject::loadImage(const CString &name, bool pendingFlag) {
void CGameObject::loadFrame(int frameNumber) {
_frameNumber = -1;
- if (!_resource.empty())
+
+ if (!_surface && !_resource.empty()) {
loadResource(_resource);
+ _resource.clear();
+ }
if (_surface)
_surface->setMovieFrame(frameNumber);
@@ -612,9 +615,8 @@ void CGameObject::playMovie(uint flags) {
void CGameObject::playMovie(int startFrame, int endFrame, uint flags) {
_frameNumber = -1;
- if (!_surface) {
- if (!_resource.empty())
- loadResource(_resource);
+ if (!_surface && !_resource.empty()) {
+ loadResource(_resource);
_resource.clear();
}
@@ -630,9 +632,8 @@ void CGameObject::playMovie(int startFrame, int endFrame, uint flags) {
void CGameObject::playMovie(int startFrame, int endFrame, int initialFrame, uint flags) {
_frameNumber = -1;
- if (!_surface) {
- if (!_resource.empty())
- loadResource(_resource);
+ if (!_surface && !_resource.empty()) {
+ loadResource(_resource);
_resource.clear();
}
@@ -645,6 +646,8 @@ void CGameObject::playMovie(int startFrame, int endFrame, int initialFrame, uint
}
void CGameObject::playClip(const CString &name, uint flags) {
+ debugC(ERROR_DETAILED, kDebugScripts, "playClip - %s", name.c_str());
+
_frameNumber = -1;
CMovieClip *clip = _movieClips.findByName(name);
if (clip)
@@ -652,6 +655,8 @@ void CGameObject::playClip(const CString &name, uint flags) {
}
void CGameObject::playClip(uint startFrame, uint endFrame) {
+ debugC(ERROR_DETAILED, kDebugScripts, "playClip - %d to %d", startFrame, endFrame);
+
CMovieClip *clip = new CMovieClip("", startFrame, endFrame);
CGameManager *gameManager = getGameManager();
CRoomItem *room = gameManager->getRoom();
@@ -753,7 +758,7 @@ int CGameObject::playSound(const CString &name, CProximity &prox) {
if (gameManager && !name.empty()) {
g_vm->_filesManager->preload(name);
- gameManager->_sound.playSound(name, prox);
+ return gameManager->_sound.playSound(name, prox);
}
return -1;
@@ -864,7 +869,8 @@ CViewItem *CGameObject::parseView(const CString &viewString) {
if (project) {
if (room->getName() != roomName) {
// Scan for the correct room
- for (room = project->findFirstRoom(); room && room->getName() != roomName;
+ for (room = project->findFirstRoom();
+ room && room->getName() != roomName;
room = project->findNextRoom(room)) ;
}
}
@@ -912,12 +918,12 @@ Point CGameObject::getMousePos() const {
}
bool CGameObject::compareViewNameTo(const CString &name) const {
- return getViewFullName().compareToIgnoreCase(name);
+ return !getViewFullName().compareToIgnoreCase(name);
}
int CGameObject::compareRoomNameTo(const CString &name) {
CRoomItem *room = getGameManager()->getRoom();
- return room->getName().compareToIgnoreCase(name);
+ return !room->getName().compareToIgnoreCase(name);
}
CString CGameObject::getRoomName() const {
@@ -1142,11 +1148,11 @@ void CGameObject::lockMouse() {
}
void CGameObject::hideMouse() {
- CScreenManager::_screenManagerPtr->_mouseCursor->hide();
+ CScreenManager::_screenManagerPtr->_mouseCursor->incHideCounter();
}
void CGameObject::showMouse() {
- CScreenManager::_screenManagerPtr->_mouseCursor->show();
+ CScreenManager::_screenManagerPtr->_mouseCursor->decHideCounter();
}
void CGameObject::disableMouse() {
@@ -1159,12 +1165,12 @@ void CGameObject::enableMouse() {
showMouse();
}
-void CGameObject::mouseLockE4() {
- CScreenManager::_screenManagerPtr->_mouseCursor->lockE4();
+void CGameObject::mouseDisableControl() {
+ CScreenManager::_screenManagerPtr->_mouseCursor->disableControl();
}
-void CGameObject::mouseUnlockE4() {
- CScreenManager::_screenManagerPtr->_mouseCursor->unlockE4();
+void CGameObject::mouseEnableControl() {
+ CScreenManager::_screenManagerPtr->_mouseCursor->enableControl();
}
void CGameObject::mouseSetPosition(const Point &pt, double rate) {
@@ -1330,17 +1336,17 @@ CMusicRoom *CGameObject::getMusicRoom() const {
return gameManager ? &gameManager->_musicRoom : nullptr;
}
-int CGameObject::getPassengerClass() const {
+PassengerClass CGameObject::getPassengerClass() const {
CGameManager *gameManager = getGameManager();
- return gameManager ? gameManager->_gameState._passengerClass : 3;
+ return gameManager ? gameManager->_gameState._passengerClass : THIRD_CLASS;
}
-int CGameObject::getPriorClass() const {
+PassengerClass CGameObject::getPriorClass() const {
CGameManager *gameManager = getGameManager();
- return gameManager ? gameManager->_gameState._priorClass : 3;
+ return gameManager ? gameManager->_gameState._priorClass : THIRD_CLASS;
}
-void CGameObject::setPassengerClass(int newClass) {
+void CGameObject::setPassengerClass(PassengerClass newClass) {
if (newClass >= 1 && newClass <= 4) {
// Change the passenger class
CGameManager *gameMan = getGameManager();
@@ -1575,7 +1581,7 @@ void CGameObject::petMoveToHiddenRoom() {
}
}
-void CGameObject::petReassignRoom(int passClassNum) {
+void CGameObject::petReassignRoom(PassengerClass passClassNum) {
CPetControl *petControl = getPetControl();
if (petControl)
petControl->reassignRoom(passClassNum);
@@ -1607,7 +1613,7 @@ void CGameObject::petSetRooms1D4(int v) {
void CGameObject::petOnSummonBot(const CString &name, int val) {
CPetControl *pet = getPetControl();
if (pet)
- pet->summonBot(name, val);
+ pet->onSummonBot(name, val);
}
void CGameObject::petUnlockInput() {
@@ -1654,7 +1660,7 @@ void CGameObject::startTalking(CTrueTalkNPC *npc, uint id, CViewItem *view) {
}
}
-void CGameObject::endTalking(CTrueTalkNPC *npc, bool viewFlag, CViewItem *view) {
+void CGameObject::setTalking(CTrueTalkNPC *npc, bool viewFlag, CViewItem *view) {
CPetControl *pet = getPetControl();
if (pet)
pet->setActiveNPC(npc);
diff --git a/engines/titanic/core/game_object.h b/engines/titanic/core/game_object.h
index b50278cf21..ae35e2ba5b 100644
--- a/engines/titanic/core/game_object.h
+++ b/engines/titanic/core/game_object.h
@@ -165,8 +165,15 @@ protected:
*/
void enableMouse();
- void mouseLockE4();
- void mouseUnlockE4();
+ /**
+ * Disables user control of the mouse
+ */
+ void mouseDisableControl();
+
+ /**
+ * Re-enables user control of the mouse
+ */
+ void mouseEnableControl();
/**
* Sets the mouse to a new position
@@ -445,7 +452,7 @@ protected:
/**
* Set's the player's passenger class
*/
- void setPassengerClass(int newClass);
+ void setPassengerClass(PassengerClass newClass);
/**
* Overrides whether the object's movie has audio timing
@@ -705,12 +712,12 @@ public:
/**
* Return the player's passenger class
*/
- int getPassengerClass() const;
+ PassengerClass getPassengerClass() const;
/**
* Return the player's previous passenger class
*/
- int getPriorClass() const;
+ PassengerClass getPriorClass() const;
/**
* Sets the mail identifier for an object
@@ -877,7 +884,7 @@ public:
/**
* Gives the player a new assigned room in the specified passenger class
*/
- void petReassignRoom(int passClassNum);
+ void petReassignRoom(PassengerClass passClassNum);
/**
* Sets a new area in the PET
@@ -925,19 +932,20 @@ public:
/*--- CTrueTalkManager Methods ---*/
/**
- * Stop a conversation with the NPC
+ * Start a conversation with the NPC
*/
- void endTalking(CTrueTalkNPC *npc, bool viewFlag, CViewItem *view = nullptr);
+ void startTalking(CTrueTalkNPC *npc, uint id, CViewItem *view = nullptr);
/**
* Start a conversation with the NPC
*/
- void startTalking(CTrueTalkNPC *npc, uint id, CViewItem *view = nullptr);
+ void startTalking(const CString &name, uint id, CViewItem *view = nullptr);
/**
* Start a conversation with the NPC
*/
- void startTalking(const CString &name, uint id, CViewItem *view = nullptr);
+ void setTalking(CTrueTalkNPC *npc, bool viewFlag, CViewItem *view = nullptr);
+
/**
* Sets a dial region for a given NPC
diff --git a/engines/titanic/core/project_item.cpp b/engines/titanic/core/project_item.cpp
index 65e8645baa..af67f69580 100644
--- a/engines/titanic/core/project_item.cpp
+++ b/engines/titanic/core/project_item.cpp
@@ -372,15 +372,20 @@ CTreeItem *CProjectItem::findChildInstance(ClassDef *classDef) const {
}
CRoomItem *CProjectItem::findNextRoom(CRoomItem *priorRoom) const {
- return dynamic_cast<CRoomItem *>(findSiblingInstanceOf(CRoomItem::_type, priorRoom));
+ return dynamic_cast<CRoomItem *>(findSiblingChildInstanceOf(CRoomItem::_type, priorRoom));
}
-CTreeItem *CProjectItem::findSiblingInstanceOf(ClassDef *classDef, CTreeItem *startItem) const {
- CTreeItem *treeItem = startItem->getParent()->getNextSibling();
- if (treeItem == nullptr)
- return nullptr;
+CTreeItem *CProjectItem::findSiblingChildInstanceOf(ClassDef *classDef, CTreeItem *startItem) const {
+ for (CTreeItem *treeItem = startItem->getParent()->getNextSibling();
+ treeItem; treeItem = treeItem->getNextSibling()) {
+ for (CTreeItem *childItem = treeItem->getFirstChild();
+ childItem; childItem = childItem->getNextSibling()) {
+ if (childItem->isInstanceOf(classDef))
+ return childItem;
+ }
+ }
- return findChildInstance(classDef);
+ return nullptr;
}
CDontSaveFileItem *CProjectItem::getDontSaveFileItem() const {
diff --git a/engines/titanic/core/project_item.h b/engines/titanic/core/project_item.h
index 4d009dd50b..20c4a4377a 100644
--- a/engines/titanic/core/project_item.h
+++ b/engines/titanic/core/project_item.h
@@ -118,7 +118,7 @@ private:
/**
* Finds the next sibling occurance of a given class type
*/
- CTreeItem *findSiblingInstanceOf(ClassDef *classDef, CTreeItem *startItem) const;
+ CTreeItem *findSiblingChildInstanceOf(ClassDef *classDef, CTreeItem *startItem) const;
private:
/**
* Load project data from the passed file
diff --git a/engines/titanic/core/saveable_object.cpp b/engines/titanic/core/saveable_object.cpp
index 7522a34737..73b4bf861f 100644
--- a/engines/titanic/core/saveable_object.cpp
+++ b/engines/titanic/core/saveable_object.cpp
@@ -421,14 +421,14 @@ CSaveableObject *ClassDef::create() {
/*------------------------------------------------------------------------*/
-Common::HashMap<Common::String, CSaveableObject::CreateFunction> *
- CSaveableObject::_classList = nullptr;
-Common::List<ClassDef *> *CSaveableObject::_classDefs;
+CSaveableObject::ClassListMap *CSaveableObject::_classList;
+CSaveableObject::ClassDefList *CSaveableObject::_classDefs;
#define DEFFN(T) CSaveableObject *Function##T() { return new T(); } \
ClassDef *T::_type
#define ADDFN(CHILD, PARENT) \
CHILD::_type = new TypeTemplate<CHILD>(#CHILD, PARENT::_type); \
+ _classDefs->push_back(CHILD::_type); \
(*_classList)[#CHILD] = Function##CHILD
DEFFN(CArm);
@@ -835,6 +835,7 @@ DEFFN(CMouseDragMsg);
DEFFN(CMouseDragStartMsg);
DEFFN(CMouseDragMoveMsg);
DEFFN(CMouseDragEndMsg);
+DEFFN(CMouseWheelMsg);
DEFFN(CMoveToStartPosMsg);
DEFFN(CMovieEndMsg);
DEFFN(CMovieFrameMsg);
@@ -1019,8 +1020,8 @@ DEFFN(CStarControl);
DEFFN(CTimeEventInfo);
void CSaveableObject::initClassList() {
- _classDefs = new Common::List<ClassDef *>();
- _classList = new Common::HashMap<Common::String, CreateFunction>();
+ _classDefs = new ClassDefList();
+ _classList = new ClassListMap();
ADDFN(CArm, CCarry);
ADDFN(CAuditoryCentre, CBrain);
ADDFN(CBowlEar, CEar);
@@ -1426,6 +1427,7 @@ void CSaveableObject::initClassList() {
ADDFN(CMouseDragStartMsg, CMouseDragMsg);
ADDFN(CMouseDragMoveMsg, CMouseDragMsg);
ADDFN(CMouseDragEndMsg, CMouseDragMsg);
+ ADDFN(CMouseWheelMsg, CMouseMsg);
ADDFN(CMoveToStartPosMsg, CMessage);
ADDFN(CMovieEndMsg, CMessage);
ADDFN(CMovieFrameMsg, CMessage);
@@ -1615,7 +1617,7 @@ void CSaveableObject::initClassList() {
}
void CSaveableObject::freeClassList() {
- Common::List<ClassDef *>::iterator i;
+ ClassDefList::iterator i;
for (i = _classDefs->begin(); i != _classDefs->end(); ++i)
delete *i;
diff --git a/engines/titanic/core/saveable_object.h b/engines/titanic/core/saveable_object.h
index 4c7c1a7737..80525f1156 100644
--- a/engines/titanic/core/saveable_object.h
+++ b/engines/titanic/core/saveable_object.h
@@ -59,8 +59,10 @@ public:
class CSaveableObject {
typedef CSaveableObject *(*CreateFunction)();
private:
- static Common::List<ClassDef *> *_classDefs;
- static Common::HashMap<Common::String, CreateFunction> *_classList;
+ typedef Common::List<ClassDef *> ClassDefList;
+ typedef Common::HashMap<Common::String, CreateFunction> ClassListMap;
+ static ClassDefList *_classDefs;
+ static ClassListMap *_classList;
public:
/**
* Sets up the list of saveable object classes
diff --git a/engines/titanic/core/view_item.cpp b/engines/titanic/core/view_item.cpp
index 9b20860a46..aa1ff7108e 100644
--- a/engines/titanic/core/view_item.cpp
+++ b/engines/titanic/core/view_item.cpp
@@ -270,7 +270,7 @@ bool CViewItem::handleMouseMsg(CMouseMsg *msg, bool flag) {
if (gameObjects.size() == 0)
return false;
- for (int idx = (int)gameObjects.size() - 1; idx >= 0; ++idx) {
+ for (int idx = (int)gameObjects.size() - 1; idx >= 0; --idx) {
if (gameObjects[idx]->_cursorId != CURSOR_IGNORE) {
CScreenManager::_screenManagerPtr->_mouseCursor->setCursor(gameObjects[idx]->_cursorId);
break;
diff --git a/engines/titanic/events.cpp b/engines/titanic/events.cpp
index fa057de432..97f9a86eb3 100644
--- a/engines/titanic/events.cpp
+++ b/engines/titanic/events.cpp
@@ -31,7 +31,7 @@
namespace Titanic {
Events::Events(TitanicEngine *vm): _vm(vm), _frameCounter(1),
- _priorFrameTime(0) {
+ _priorFrameTime(0), _specialButtons(0) {
}
void Events::pollEvents() {
@@ -47,33 +47,46 @@ void Events::pollEvents() {
eventTarget()->mouseMove(_mousePos);
break;
case Common::EVENT_LBUTTONDOWN:
+ _specialButtons |= MK_LBUTTON;
_mousePos = event.mouse;
eventTarget()->leftButtonDown(_mousePos);
break;
case Common::EVENT_LBUTTONUP:
+ _specialButtons &= ~MK_LBUTTON;
_mousePos = event.mouse;
eventTarget()->leftButtonUp(_mousePos);
break;
case Common::EVENT_MBUTTONDOWN:
+ _specialButtons |= MK_MBUTTON;
_mousePos = event.mouse;
eventTarget()->middleButtonDown(_mousePos);
break;
case Common::EVENT_MBUTTONUP:
+ _specialButtons &= ~MK_MBUTTON;
_mousePos = event.mouse;
eventTarget()->middleButtonUp(_mousePos);
break;
case Common::EVENT_RBUTTONDOWN:
+ _specialButtons |= MK_RBUTTON;
_mousePos = event.mouse;
eventTarget()->rightButtonDown(_mousePos);
break;
case Common::EVENT_RBUTTONUP:
+ _specialButtons &= ~MK_RBUTTON;
_mousePos = event.mouse;
eventTarget()->rightButtonUp(_mousePos);
break;
+ case Common::EVENT_WHEELUP:
+ case Common::EVENT_WHEELDOWN:
+ _mousePos = event.mouse;
+ eventTarget()->mouseWheel(_mousePos, event.type == Common::EVENT_WHEELUP);
+ break;
case Common::EVENT_KEYDOWN:
+ handleKbdSpecial(event.kbd);
eventTarget()->keyDown(event.kbd);
break;
case Common::EVENT_KEYUP:
+ handleKbdSpecial(event.kbd);
eventTarget()->keyUp(event.kbd);
break;
default:
@@ -125,31 +138,34 @@ void Events::sleep(uint time) {
}
bool Events::waitForPress(uint expiry) {
- CGameManager *gameManager = g_vm->_window->_gameManager;
uint32 delayEnd = g_system->getMillis() + expiry;
+ CPressTarget pressTarget;
+ addTarget(&pressTarget);
- while (!_vm->shouldQuit() && g_system->getMillis() < delayEnd) {
- g_system->delayMillis(10);
- checkForNextFrameCounter();
-
- // Regularly update the sound mixer
- if (gameManager)
- gameManager->_sound.updateMixer();
-
- Common::Event event;
- if (g_system->getEventManager()->pollEvent(event)) {
- switch (event.type) {
- case Common::EVENT_LBUTTONDOWN:
- case Common::EVENT_MBUTTONDOWN:
- case Common::EVENT_KEYDOWN:
- return true;
- default:
- break;
- }
- }
+ while (!_vm->shouldQuit() && g_system->getMillis() < delayEnd && !pressTarget._pressed) {
+ pollEventsAndWait();
}
- return false;
+ removeTarget();
+ return pressTarget._pressed;
+}
+
+void Events::setMousePos(const Common::Point &pt) {
+ g_system->warpMouse(pt.x, pt.y);
+ _mousePos = pt;
+ eventTarget()->mouseMove(_mousePos);
+}
+
+void Events::handleKbdSpecial(Common::KeyState keyState) {
+ if (keyState.flags & Common::KBD_CTRL)
+ _specialButtons |= MK_CONTROL;
+ else
+ _specialButtons &= ~MK_CONTROL;
+
+ if (keyState.flags & Common::KBD_SHIFT)
+ _specialButtons |= MK_SHIFT;
+ else
+ _specialButtons &= ~MK_SHIFT;
}
} // End of namespace Titanic
diff --git a/engines/titanic/events.h b/engines/titanic/events.h
index 3ea9b63217..52e900c2ef 100644
--- a/engines/titanic/events.h
+++ b/engines/titanic/events.h
@@ -65,10 +65,26 @@ public:
virtual void middleButtonDoubleClick(const Point &mousePos) {}
virtual void rightButtonDown(const Point &mousePos) {}
virtual void rightButtonUp(const Point &mousePos) {}
+ virtual void mouseWheel(const Point &mousePos, bool wheelUp) {}
virtual void keyDown(Common::KeyState keyState) {}
virtual void keyUp(Common::KeyState keyState) {}
};
+/**
+ * An eent target used for waiting for a mouse or keypress
+ */
+class CPressTarget : public CEventTarget {
+public:
+ bool _pressed;
+public:
+ CPressTarget() : _pressed(false) {}
+ virtual ~CPressTarget() {}
+ virtual void leftButtonDown(const Point &mousePos) { _pressed = true; }
+ virtual void middleButtonDown(const Point &mousePos) { _pressed = true; }
+ virtual void rightButtonDown(const Point &mousePos) { _pressed = true; }
+ virtual void keyDown(Common::KeyState keyState) { _pressed = true; }
+};
+
class Events {
private:
TitanicEngine *_vm;
@@ -76,6 +92,7 @@ private:
uint32 _frameCounter;
uint32 _priorFrameTime;
Common::Point _mousePos;
+ uint _specialButtons;
/**
* Check whether it's time to display the next screen frame
@@ -88,6 +105,11 @@ private:
CEventTarget *eventTarget() const {
return _eventTargets.top();
}
+
+ /**
+ * Handles setting/resettings special buttons on key up/down
+ */
+ void handleKbdSpecial(Common::KeyState keyState);
public:
Events(TitanicEngine *vm);
~Events() {}
@@ -138,6 +160,28 @@ public:
* Wait for a mouse or keypress
*/
bool waitForPress(uint expiry);
+
+ /**
+ * Get the mouse position
+ */
+ Common::Point getMousePos() const { return _mousePos; }
+
+ /**
+ * Sets the mouse position
+ */
+ void setMousePos(const Common::Point &pt);
+
+ /*
+ * Return whether a given special key is currently pressed
+ */
+ bool isSpecialPressed(SpecialButtons btn) const {
+ return (_specialButtons & btn) != 0;
+ }
+
+ /**
+ * Returns the bitset of the currently pressed special buttons
+ */
+ uint getSpecialButtons() const { return _specialButtons; }
};
} // End of namespace Titanic
diff --git a/engines/titanic/game/cdrom.cpp b/engines/titanic/game/cdrom.cpp
index cd913d05f7..0d1cd3a6f2 100644
--- a/engines/titanic/game/cdrom.cpp
+++ b/engines/titanic/game/cdrom.cpp
@@ -50,6 +50,7 @@ void CCDROM::load(SimpleFile *file) {
bool CCDROM::MouseDragStartMsg(CMouseDragStartMsg *msg) {
if (checkStartDragging(msg)) {
+ hideMouse();
_tempPos = msg->_mousePos - _bounds;
setPosition(msg->_mousePos - _tempPos);
return true;
@@ -59,6 +60,8 @@ bool CCDROM::MouseDragStartMsg(CMouseDragStartMsg *msg) {
}
bool CCDROM::MouseDragEndMsg(CMouseDragEndMsg *msg) {
+ showMouse();
+
if (msg->_dropTarget && msg->_dropTarget->getName() == "newComputer") {
CCDROMTray *newTray = dynamic_cast<CCDROMTray *>(getRoom()->findByName("newTray"));
diff --git a/engines/titanic/game/cdrom_tray.cpp b/engines/titanic/game/cdrom_tray.cpp
index 505bdad319..d6aa32c702 100644
--- a/engines/titanic/game/cdrom_tray.cpp
+++ b/engines/titanic/game/cdrom_tray.cpp
@@ -95,6 +95,7 @@ bool CCDROMTray::ActMsg(CActMsg *msg) {
playSound("a#35.wav", 50, 0, 0);
} else if (msg->_action == "newSTCD") {
// Starship Titanic CD dropped on CDROM Tray
+ disableMouse();
playMovie(11, 21, MOVIE_NOTIFY_OBJECT);
playSound("a#35.wav", 50, 0, 0);
} else {
diff --git a/engines/titanic/game/computer.cpp b/engines/titanic/game/computer.cpp
index 3077b46178..9aa5db252c 100644
--- a/engines/titanic/game/computer.cpp
+++ b/engines/titanic/game/computer.cpp
@@ -54,7 +54,7 @@ bool CComputer::ActMsg(CActMsg *msg) {
else if (msg->_action == "CD2")
playMovie(50, 79, 0);
else if (msg->_action == "STCD")
- playMovie(80, 90, 4);
+ playMovie(80, 90, MOVIE_NOTIFY_OBJECT);
_currentCD = msg->_action;
_state = 0;
diff --git a/engines/titanic/game/maitred/maitred_prod_receptor.cpp b/engines/titanic/game/maitred/maitred_prod_receptor.cpp
index 95e029af44..6f64a76d7f 100644
--- a/engines/titanic/game/maitred/maitred_prod_receptor.cpp
+++ b/engines/titanic/game/maitred/maitred_prod_receptor.cpp
@@ -81,7 +81,7 @@ bool CMaitreDProdReceptor::MouseMoveMsg(CMouseMoveMsg *msg) {
prodMsg._value = 125;
CMaitreD *maitreD = dynamic_cast<CMaitreD *>(findRoomObject("MaitreD"));
- if (maitreD && maitreD->_field100 <= 0)
+ if (maitreD && maitreD->_speechCounter == 0)
prodMsg.execute(this);
return true;
@@ -90,7 +90,7 @@ bool CMaitreDProdReceptor::MouseMoveMsg(CMouseMoveMsg *msg) {
bool CMaitreDProdReceptor::ProdMaitreDMsg(CProdMaitreDMsg *msg) {
if (_fieldC4) {
CMaitreD *maitreD = static_cast<CMaitreD *>(findRoomObject("MaitreD"));
- if (maitreD->_field100 <= 0) {
+ if (maitreD->_speechCounter == 0) {
CViewItem *view = findView();
startTalking(maitreD, msg->_value, view);
diff --git a/engines/titanic/game/pet/pet.cpp b/engines/titanic/game/pet/pet.cpp
index 99c9e01eb3..235d68f242 100644
--- a/engines/titanic/game/pet/pet.cpp
+++ b/engines/titanic/game/pet/pet.cpp
@@ -62,7 +62,7 @@ void CPET::load(SimpleFile *file) {
bool CPET::ShowTextMsg(CShowTextMsg *msg) {
CPetControl *pet = getPetControl();
if (pet)
- pet->petDisplayMessage(1, msg->_value);
+ pet->petDisplayMessage(1, msg->_message);
return true;
}
diff --git a/engines/titanic/game/pet/pet_lift.cpp b/engines/titanic/game/pet/pet_lift.cpp
index a7b48853e6..75a48a6a6c 100644
--- a/engines/titanic/game/pet/pet_lift.cpp
+++ b/engines/titanic/game/pet/pet_lift.cpp
@@ -50,8 +50,8 @@ bool CPETLift::TransportMsg(CTransportMsg *msg) {
} else if (msg->_roomName == "BottomOfWell") {
floorNum = 39;
} else if (msg->_roomName == "PlayersRoom" && pet) {
- int assignedFloor = pet->getAssignedFloorNum();
- if (assignedFloor < 1 || assignedFloor > 39) {
+ floorNum = pet->getAssignedFloorNum();
+ if (floorNum < 1 || floorNum > 39) {
pet->petDisplayMessage(NO_ROOM_ASSIGNED);
floorNum = -1;
}
diff --git a/engines/titanic/game/pet/pet_position.cpp b/engines/titanic/game/pet/pet_position.cpp
index d3d030eb16..db6f9997c9 100644
--- a/engines/titanic/game/pet/pet_position.cpp
+++ b/engines/titanic/game/pet/pet_position.cpp
@@ -171,8 +171,8 @@ bool CPETPosition::EnterViewMsg(CEnterViewMsg *msg) {
bool CPETPosition::LeaveViewMsg(CLeaveViewMsg *msg) {
CPetControl *pet = getPetControl();
- CString oldView = msg->_oldView->getName();
- CString newView = msg->_newView->getName();
+ CString oldView = msg->_oldView->getFullViewName();
+ CString newView = msg->_newView->getFullViewName();
if (pet && newView == "Lift.Node 1.N") {
int elevatorNum = pet->getRoomsElevatorNum();
diff --git a/engines/titanic/game/pet/pet_transport.cpp b/engines/titanic/game/pet/pet_transport.cpp
index a48e70ed01..29dce6c1b6 100644
--- a/engines/titanic/game/pet/pet_transport.cpp
+++ b/engines/titanic/game/pet/pet_transport.cpp
@@ -26,6 +26,7 @@ namespace Titanic {
BEGIN_MESSAGE_MAP(CPETTransport, CGameObject)
ON_MESSAGE(EnterRoomMsg)
+ ON_MESSAGE(LeaveRoomMsg)
END_MESSAGE_MAP()
void CPETTransport::save(SimpleFile *file, int indent) {
@@ -39,6 +40,11 @@ void CPETTransport::load(SimpleFile *file) {
}
bool CPETTransport::EnterRoomMsg(CEnterRoomMsg *msg) {
+ petSetRemoteTarget();
+ return true;
+}
+
+bool CPETTransport::LeaveRoomMsg(CLeaveRoomMsg *msg) {
petClear();
return true;
}
diff --git a/engines/titanic/game/pet/pet_transport.h b/engines/titanic/game/pet/pet_transport.h
index 58aefe6743..6a08c4bdf3 100644
--- a/engines/titanic/game/pet/pet_transport.h
+++ b/engines/titanic/game/pet/pet_transport.h
@@ -31,6 +31,7 @@ namespace Titanic {
class CPETTransport : public CGameObject {
DECLARE_MESSAGE_MAP;
virtual bool EnterRoomMsg(CEnterRoomMsg *msg);
+ virtual bool LeaveRoomMsg(CLeaveRoomMsg *msg);
public:
CLASSDEF;
diff --git a/engines/titanic/game/service_elevator_window.cpp b/engines/titanic/game/service_elevator_window.cpp
index 13db7a26f8..d548bbf37e 100644
--- a/engines/titanic/game/service_elevator_window.cpp
+++ b/engines/titanic/game/service_elevator_window.cpp
@@ -35,25 +35,25 @@ END_MESSAGE_MAP()
static const int FACTORS[4] = { 0, 20, 100, 0 };
CServiceElevatorWindow::CServiceElevatorWindow() : CBackground(),
- _fieldE0(0), _fieldE4(0), _fieldE8(0), _fieldEC(0) {
+ _destFloor(0), _notifyFlag(false), _isIndicator(false), _intoSpace(false) {
}
void CServiceElevatorWindow::save(SimpleFile *file, int indent) {
file->writeNumberLine(1, indent);
- file->writeNumberLine(_fieldE0, indent);
- file->writeNumberLine(_fieldE4, indent);
- file->writeNumberLine(_fieldE8, indent);
- file->writeNumberLine(_fieldEC, indent);
+ file->writeNumberLine(_destFloor, indent);
+ file->writeNumberLine(_notifyFlag, indent);
+ file->writeNumberLine(_isIndicator, indent);
+ file->writeNumberLine(_intoSpace, indent);
CBackground::save(file, indent);
}
void CServiceElevatorWindow::load(SimpleFile *file) {
file->readNumber();
- _fieldE0 = file->readNumber();
- _fieldE4 = file->readNumber();
- _fieldE8 = file->readNumber();
- _fieldEC = file->readNumber();
+ _destFloor = file->readNumber();
+ _notifyFlag = file->readNumber();
+ _isIndicator = file->readNumber();
+ _intoSpace = file->readNumber();
CBackground::load(file);
}
@@ -61,39 +61,42 @@ void CServiceElevatorWindow::load(SimpleFile *file) {
bool CServiceElevatorWindow::ServiceElevatorFloorChangeMsg(CServiceElevatorFloorChangeMsg *msg) {
if (getView() == findView()) {
CDoorbot *doorbot = dynamic_cast<CDoorbot *>(findRoom()->findByName("Doorbot"));
- int val = (_fieldE8 && doorbot) ? 65 : 15;
+ int fps = (_isIndicator && doorbot) ? 65 : 15;
CMovieClip *clip = _movieClips.findByName("Going Up");
if (!clip)
return true;
- int count = _endFrame - _startFrame;
- setMovieFrameRate(1.0 * count / val);
+ int count = clip->_endFrame - clip->_startFrame;
+ setMovieFrameRate(1.0 * count / fps);
- int startFrame = clip->_startFrame + count * FACTORS[msg->_value1] / 100;
- int endFrame = clip->_startFrame + count * FACTORS[msg->_value2] / 100;
+ int startFrame = clip->_startFrame + count * FACTORS[msg->_startFloor] / 100;
+ int endFrame = clip->_startFrame + count * FACTORS[msg->_endFloor] / 100;
- if (_fieldE4) {
+ if (_notifyFlag) {
+ // Service elevator indicator
playMovie(startFrame, endFrame, MOVIE_NOTIFY_OBJECT);
} else {
+ // Background outside elevator
playMovie(startFrame, endFrame, 0);
- if (_fieldEC)
+ if (_intoSpace)
playClip("Into Space");
}
}
- _fieldE0 = msg->_value2;
+ _destFloor = msg->_endFloor;
return true;
}
bool CServiceElevatorWindow::MovieEndMsg(CMovieEndMsg *msg) {
+ // Called when indicator reaches desired destination floor
CServiceElevatorMsg elevMsg(5);
elevMsg.execute(findRoom()->findByName("Service Elevator Entity"));
return true;
}
bool CServiceElevatorWindow::EnterViewMsg(CEnterViewMsg *msg) {
- if (_fieldEC) {
+ if (_intoSpace) {
playClip("Fade Up");
playMovie(1, 2, 0);
} else {
@@ -101,7 +104,7 @@ bool CServiceElevatorWindow::EnterViewMsg(CEnterViewMsg *msg) {
if (clip) {
int frameNum = clip->_startFrame + (clip->_endFrame - clip->_startFrame)
- * FACTORS[_fieldE0] / 100;
+ * FACTORS[_destFloor] / 100;
loadFrame(frameNum);
} else {
loadFrame(0);
diff --git a/engines/titanic/game/service_elevator_window.h b/engines/titanic/game/service_elevator_window.h
index 88e1663aba..baeef5aeb8 100644
--- a/engines/titanic/game/service_elevator_window.h
+++ b/engines/titanic/game/service_elevator_window.h
@@ -33,10 +33,10 @@ class CServiceElevatorWindow : public CBackground {
bool MovieEndMsg(CMovieEndMsg *msg);
bool EnterViewMsg(CEnterViewMsg *msg);
public:
- int _fieldE0;
- int _fieldE4;
- int _fieldE8;
- int _fieldEC;
+ int _destFloor;
+ bool _notifyFlag;
+ bool _isIndicator;
+ bool _intoSpace;
public:
CLASSDEF;
CServiceElevatorWindow();
diff --git a/engines/titanic/game/television.cpp b/engines/titanic/game/television.cpp
index 571ebcd6fa..2d5a09790b 100644
--- a/engines/titanic/game/television.cpp
+++ b/engines/titanic/game/television.cpp
@@ -257,11 +257,11 @@ bool CTelevision::MovieEndMsg(CMovieEndMsg *msg) {
if (_turnOn)
loadFrame(502);
else
- warning("There is currently nothing available for your viewing pleasure on this channel.");
+ petDisplayMessage(NOTHING_ON_CHANNEL);
} else if (_fieldE0 == 5 && *CGetLiftEye2::_destObject != "NULL") {
loadFrame(393 + _v4);
} else {
- warning("There is currently nothing available for your viewing pleasure on this channel.");
+ petDisplayMessage(NOTHING_ON_CHANNEL);
}
return true;
diff --git a/engines/titanic/game/transport/gondolier.cpp b/engines/titanic/game/transport/gondolier.cpp
index 8c28ff9b66..85f3b365b5 100644
--- a/engines/titanic/game/transport/gondolier.cpp
+++ b/engines/titanic/game/transport/gondolier.cpp
@@ -46,7 +46,7 @@ void CGondolier::load(SimpleFile *file) {
}
bool CGondolier::StatusChangeMsg(CStatusChangeMsg *msg) {
- CShowTextMsg textMsg("Only First Class passengers are allowed to use the Gondoliers.");
+ CShowTextMsg textMsg(GONDOLIERS_FIRST_CLASS_ONLY);
textMsg.execute("PET");
return true;
}
diff --git a/engines/titanic/game/transport/lift_indicator.cpp b/engines/titanic/game/transport/lift_indicator.cpp
index a642451fe0..df0ff397da 100644
--- a/engines/titanic/game/transport/lift_indicator.cpp
+++ b/engines/titanic/game/transport/lift_indicator.cpp
@@ -38,31 +38,31 @@ BEGIN_MESSAGE_MAP(CLiftindicator, CLift)
END_MESSAGE_MAP()
CLiftindicator::CLiftindicator() : CLift(),
- _fieldFC(0), _start(0), _end(0) {
+ _multiplier(0), _startY(0), _endY(0) {
}
void CLiftindicator::save(SimpleFile *file, int indent) {
file->writeNumberLine(1, indent);
- file->writeNumberLine(_fieldFC, indent);
+ file->writeNumberLine(_multiplier, indent);
file->writePoint(_indicatorPos, indent);
- file->writeNumberLine(_start, indent);
- file->writeNumberLine(_end, indent);
+ file->writeNumberLine(_startY, indent);
+ file->writeNumberLine(_endY, indent);
CLift::save(file, indent);
}
void CLiftindicator::load(SimpleFile *file) {
file->readNumber();
- _fieldFC = file->readNumber();
+ _multiplier = file->readNumber();
_indicatorPos = file->readPoint();
- _start = file->readNumber();
- _end = file->readNumber();
+ _startY = file->readNumber();
+ _endY = file->readNumber();
CLift::load(file);
}
bool CLiftindicator::EnterViewMsg(CEnterViewMsg *msg) {
- double multiplier = _fieldFC * 0.037037037;
+ double multiplier = _multiplier * 0.037037037;
CPetControl *pet = getPetControl();
int floorNum = pet->getRoomsFloorNum();
debugC(kDebugScripts, "Lifts = %d,%d,%d,%d, %d",
@@ -70,7 +70,7 @@ bool CLiftindicator::EnterViewMsg(CEnterViewMsg *msg) {
CLift::_elevator3Floor, CLift::_elevator4Floor,
floorNum);
- if ((pet->petGetRoomsWellEntry() & 1) == (_fieldFC & 1)) {
+ if ((pet->petGetRoomsWellEntry() & 1) == (_liftNum & 1)) {
petSetRemoteTarget();
petSetArea(PET_REMOTE);
@@ -142,7 +142,7 @@ bool CLiftindicator::LeaveViewMsg(CLeaveViewMsg *msg) {
}
bool CLiftindicator::PETActivateMsg(CPETActivateMsg *msg) {
- double multiplier = _fieldFC * 0.037037037;
+ double multiplier = _multiplier * 0.037037037;
CPetControl *pet = getPetControl();
if (msg->_name == "Lift") {
@@ -155,8 +155,8 @@ bool CLiftindicator::PETActivateMsg(CPETActivateMsg *msg) {
&& pet->getRoomsFloorNum() != CLift::_elevator4Floor) {
petDisplayMessage(1, ELEVATOR_NON_FUNCTIONAL);
} else {
- _start = _indicatorPos.y + (int)(_startFrame * multiplier);
- _end = _indicatorPos.y + (int)(_endFrame * multiplier);
+ _startY = _indicatorPos.y + (int)(_startFrame * multiplier);
+ _endY = _indicatorPos.y + (int)(_endFrame * multiplier);
lockMouse();
addTimer(100);
@@ -213,15 +213,15 @@ bool CLiftindicator::LeaveRoomMsg(CLeaveRoomMsg *msg) {
}
bool CLiftindicator::TimerMsg(CTimerMsg *msg) {
- debugC(kDebugScripts, "Start %d, End %d", _start, _end);
+ debugC(kDebugScripts, "Start %d, End %d", _startY, _endY);
- if (_start > _end) {
+ if (_startY > _endY) {
setPosition(Point(_bounds.left, _bounds.top - 1));
- --_start;
+ --_startY;
addTimer(20);
- } else if (_start < _end) {
+ } else if (_startY < _endY) {
setPosition(Point(_bounds.left, _bounds.top + 1));
- ++_start;
+ ++_startY;
addTimer(20);
} else {
CMovieEndMsg endMsg(0, 0);
diff --git a/engines/titanic/game/transport/lift_indicator.h b/engines/titanic/game/transport/lift_indicator.h
index 5d0bc45d7b..5ff9dc6d36 100644
--- a/engines/titanic/game/transport/lift_indicator.h
+++ b/engines/titanic/game/transport/lift_indicator.h
@@ -39,10 +39,10 @@ class CLiftindicator : public CLift {
bool LeaveRoomMsg(CLeaveRoomMsg *msg);
bool TimerMsg(CTimerMsg *msg);
private:
- int _fieldFC;
+ int _multiplier;
Point _indicatorPos;
- int _start;
- int _end;
+ int _startY;
+ int _endY;
public:
CLASSDEF;
CLiftindicator();
diff --git a/engines/titanic/game/transport/service_elevator.cpp b/engines/titanic/game/transport/service_elevator.cpp
index 066a418dbb..dbd4e5d74f 100644
--- a/engines/titanic/game/transport/service_elevator.cpp
+++ b/engines/titanic/game/transport/service_elevator.cpp
@@ -116,6 +116,7 @@ bool CServiceElevator::ServiceElevatorMsg(CServiceElevatorMsg *msg) {
break;
case 5:
+ // Reaching destination floor
_fieldF8 = false;
_fieldDC = _v3;
loadSound("z#423.wav");
@@ -164,9 +165,10 @@ bool CServiceElevator::TimerMsg(CTimerMsg *msg) {
if (!isSoundActive(_soundHandle1)) {
stopAnimTimer(_timerId);
if (msg->_actionVal == 0) {
+ // Elevator in motion after pressing button
_fieldF8 = true;
CServiceElevatorFloorChangeMsg changeMsg(_fieldDC, _v3);
- changeMsg.execute(getRoom());
+ changeMsg.execute(getRoom(), nullptr, MSGFLAG_SCAN);
_soundHandle2 = playSound("z#424.wav");
if (doorbot) {
@@ -174,6 +176,7 @@ bool CServiceElevator::TimerMsg(CTimerMsg *msg) {
actMsg.execute(doorbot);
}
} else {
+ // Finished playing message for bottom/middle floor disabled
enableMouse();
if (doorbot) {
CActMsg actMsg;
@@ -207,10 +210,10 @@ bool CServiceElevator::ServiceElevatorFloorRequestMsg(CServiceElevatorFloorReque
if (doorbot && _v3 == 0) {
_soundHandle1 = playSound("z#415.wav", 50);
- addTimer(1, 1000, 500);
+ _timerId = addTimer(1, 1000, 500);
} else if (doorbot && _v3 == 1) {
_soundHandle1 = playSound("z#417.wav", 50);
- addTimer(1, 1000, 500);
+ _timerId = addTimer(1, 1000, 500);
} else if (_fieldDC == _v3) {
switch (_v3) {
case 0:
@@ -226,7 +229,7 @@ bool CServiceElevator::ServiceElevatorFloorRequestMsg(CServiceElevatorFloorReque
break;
}
- addTimer(1, 1000, 500);
+ _timerId = addTimer(1, 1000, 500);
} else {
switch (_v3) {
case 0:
@@ -236,13 +239,13 @@ bool CServiceElevator::ServiceElevatorFloorRequestMsg(CServiceElevatorFloorReque
_soundHandle1 = playSound(_fieldDC ? "z#419.wav" : "z#418.wav", 50);
break;
case 2:
- _soundHandle1 = playSound("z#414.wav", 50);
+ _soundHandle1 = playSound("z#409.wav", 50);
break;
default:
break;
}
- addTimer(0, 1000, 500);
+ _timerId = addTimer(0, 1000, 500);
}
return true;
diff --git a/engines/titanic/game_location.h b/engines/titanic/game_location.h
index f145d36340..87416f6cd7 100644
--- a/engines/titanic/game_location.h
+++ b/engines/titanic/game_location.h
@@ -30,6 +30,11 @@
namespace Titanic {
+enum PassengerClass {
+ UNCHECKED = 4, THIRD_CLASS = 3, SECOND_CLASS = 2, FIRST_CLASS = 1,
+ NO_CLASS = 0
+};
+
class CGameState;
class CGameLocation {
diff --git a/engines/titanic/game_manager.cpp b/engines/titanic/game_manager.cpp
index 6023244325..015296fb14 100644
--- a/engines/titanic/game_manager.cpp
+++ b/engines/titanic/game_manager.cpp
@@ -150,11 +150,12 @@ void CGameManager::playClip(CMovieClip *clip, CRoomItem *oldRoom, CRoomItem *new
if (clip && clip->_startFrame != clip->_endFrame && _movie) {
// Clip details specifying a sub-section of movie to play
Rect tempRect(20, 10, SCREEN_WIDTH - 20, 350);
+ CMouseCursor &mouseCursor = *CScreenManager::_screenManagerPtr->_mouseCursor;
lockInputHandler();
- CScreenManager::_screenManagerPtr->_mouseCursor->hide();
+ mouseCursor.incHideCounter();
_movie->playCutscene(tempRect, clip->_startFrame, clip->_endFrame);
- CScreenManager::_screenManagerPtr->_mouseCursor->show();
+ mouseCursor.decHideCounter();
unlockInputHandler();
}
}
diff --git a/engines/titanic/game_state.cpp b/engines/titanic/game_state.cpp
index ea94deec35..5b6d34ad76 100644
--- a/engines/titanic/game_state.cpp
+++ b/engines/titanic/game_state.cpp
@@ -35,7 +35,6 @@ bool CGameStateMovieList::clear() {
++i;
} else {
i = erase(i);
- delete movieItem;
}
}
@@ -45,10 +44,10 @@ bool CGameStateMovieList::clear() {
/*------------------------------------------------------------------------*/
CGameState::CGameState(CGameManager *gameManager) :
- _gameManager(gameManager), _gameLocation(this),
- _passengerClass(0), _priorClass(0), _mode(GSMODE_NONE),
- _seasonNum(SEASON_SUMMER), _petActive(false), _field1C(false), _quitGame(false),
- _field24(0), _nodeChangeCtr(0), _nodeEnterTicks(0), _field38(0) {
+ _gameManager(gameManager), _gameLocation(this), _passengerClass(NO_CLASS),
+ _priorClass(NO_CLASS), _mode(GSMODE_NONE), _seasonNum(SEASON_SUMMER),
+ _petActive(false), _field1C(false), _quitGame(false), _field24(0),
+ _nodeChangeCtr(0), _nodeEnterTicks(0), _field38(0) {
}
void CGameState::save(SimpleFile *file) const {
@@ -64,8 +63,8 @@ void CGameState::save(SimpleFile *file) const {
void CGameState::load(SimpleFile *file) {
_petActive = file->readNumber() != 0;
- _passengerClass = file->readNumber();
- _priorClass = file->readNumber();
+ _passengerClass = (PassengerClass)file->readNumber();
+ _priorClass = (PassengerClass)file->readNumber();
_seasonNum = (Season)file->readNumber();
_field24 = file->readNumber();
_field38 = file->readNumber();
@@ -79,14 +78,14 @@ void CGameState::load(SimpleFile *file) {
void CGameState::setMode(GameStateMode newMode) {
CScreenManager *sm = CScreenManager::_screenManagerPtr;
- if (newMode == GSMODE_CUTSCENE && newMode != _mode) {
+ if (newMode == GSMODE_CUTSCENE && _mode != GSMODE_CUTSCENE) {
if (_gameManager)
_gameManager->lockInputHandler();
if (sm && sm->_mouseCursor)
sm->_mouseCursor->hide();
- } else if (newMode != GSMODE_CUTSCENE && newMode != _mode) {
+ } else if (newMode != GSMODE_CUTSCENE && _mode == GSMODE_CUTSCENE) {
if (sm && sm->_mouseCursor)
sm->_mouseCursor->show();
@@ -130,7 +129,7 @@ void CGameState::changeView(CViewItem *newView, CMovieClip *clip) {
oldView->leaveView(newView);
// If Shift key is pressed, skip showing the transition clip
- if (g_vm->_window->isSpecialPressed(MK_SHIFT))
+ if (g_vm->_events->isSpecialPressed(MK_SHIFT))
clip = nullptr;
if (_mode == GSMODE_CUTSCENE) {
@@ -139,7 +138,7 @@ void CGameState::changeView(CViewItem *newView, CMovieClip *clip) {
} else {
oldView->preEnterView(newView);
_gameManager->_gameView->setView(newView);
- CRoomItem *oldRoom = newView->findNode()->findRoom();
+ CRoomItem *oldRoom = oldView->findNode()->findRoom();
CRoomItem *newRoom = newView->findNode()->findRoom();
// If a transition clip is defined, play it
diff --git a/engines/titanic/game_state.h b/engines/titanic/game_state.h
index 77b4ded79f..ba1dff2a45 100644
--- a/engines/titanic/game_state.h
+++ b/engines/titanic/game_state.h
@@ -64,8 +64,8 @@ public:
CGameManager *_gameManager;
CGameLocation _gameLocation;
CGameStateMovieList _movieList;
- int _passengerClass;
- int _priorClass;
+ PassengerClass _passengerClass;
+ PassengerClass _priorClass;
GameStateMode _mode;
Season _seasonNum;
bool _petActive;
diff --git a/engines/titanic/input_handler.cpp b/engines/titanic/input_handler.cpp
index 9fa2b0073c..e2d1bd7a32 100644
--- a/engines/titanic/input_handler.cpp
+++ b/engines/titanic/input_handler.cpp
@@ -49,7 +49,10 @@ void CInputHandler::incLockCount() {
}
void CInputHandler::decLockCount() {
- if (--_lockCount == 0 && _inputTranslator) {
+ --_lockCount;
+ assert(_lockCount >= 0);
+
+ if (_lockCount == 0 && _inputTranslator) {
if (_dragging && !_inputTranslator->isMousePressed()) {
CMouseButtonUpMsg upMsg(_mousePos, MK_LBUTTON);
handleMessage(upMsg);
@@ -107,6 +110,7 @@ void CInputHandler::processMessage(CMessage *msg) {
_dragging = false;
_dragItem = nullptr;
+ _gameManager->_dragItem = nullptr;
}
} else if (_buttonDown) {
if (!mouseMsg->isMouseMoveMsg()) {
diff --git a/engines/titanic/input_translator.cpp b/engines/titanic/input_translator.cpp
index ce272d152c..0f717de37f 100644
--- a/engines/titanic/input_translator.cpp
+++ b/engines/titanic/input_translator.cpp
@@ -90,6 +90,11 @@ void CInputTranslator::rightButtonUp(int special, const Point &pt) {
_inputHandler->handleMessage(msg);
}
+void CInputTranslator::mouseWheel(bool wheelUp, const Point &pt) {
+ CMouseWheelMsg msg(pt, wheelUp);
+ _inputHandler->handleMessage(msg);
+}
+
void CInputTranslator::rightButtonDoubleClick(int special, const Point &pt) {
CMouseDoubleClickMsg msg(pt, MB_RIGHT);
_inputHandler->handleMessage(msg);
@@ -108,7 +113,7 @@ void CInputTranslator::keyDown(const Common::KeyState &keyState) {
}
bool CInputTranslator::isMousePressed() const {
- return g_vm->_window->getSpecialButtons() & (MK_LBUTTON | MK_RBUTTON | MK_MBUTTON);
+ return g_vm->_events->getSpecialButtons() & (MK_LBUTTON | MK_RBUTTON | MK_MBUTTON);
}
} // End of namespace Titanic
diff --git a/engines/titanic/input_translator.h b/engines/titanic/input_translator.h
index d92157bccc..66dcaa1cbe 100644
--- a/engines/titanic/input_translator.h
+++ b/engines/titanic/input_translator.h
@@ -50,6 +50,7 @@ public:
void middleButtonDoubleClick(int special, const Point &pt);
void rightButtonDown(int special, const Point &pt);
void rightButtonUp(int special, const Point &pt);
+ void mouseWheel(bool wheelUp, const Point &pt);
void rightButtonDoubleClick(int special, const Point &pt);
void keyDown(const Common::KeyState &keyState);
diff --git a/engines/titanic/main_game_window.cpp b/engines/titanic/main_game_window.cpp
index 80da792e4a..de0ac715ba 100644
--- a/engines/titanic/main_game_window.cpp
+++ b/engines/titanic/main_game_window.cpp
@@ -32,8 +32,7 @@
namespace Titanic {
CMainGameWindow::CMainGameWindow(TitanicEngine *vm): _vm(vm),
- _specialButtons(0), _priorLeftDownTime(0),
- _priorMiddleDownTime(0), _priorRightDownTime(0) {
+ _priorLeftDownTime(0), _priorMiddleDownTime(0), _priorRightDownTime(0) {
_gameView = nullptr;
_gameManager = nullptr;
_project = nullptr;
@@ -150,6 +149,14 @@ void CMainGameWindow::draw() {
scrManager->clearSurface(SURFACE_BACKBUFFER, &_gameManager->_bounds);
switch (_gameManager->_gameState._mode) {
+ case GSMODE_PENDING_LOAD:
+ // Pending savegame to load
+ _gameManager->_gameState.setMode(GSMODE_INTERACTIVE);
+ _project->loadGame(_pendingLoadSlot);
+ _pendingLoadSlot = -1;
+
+ // Deliberate fall-through to draw loaded game
+
case GSMODE_INTERACTIVE:
case GSMODE_CUTSCENE:
if (_gameManager->_gameState._petActive)
@@ -165,12 +172,6 @@ void CMainGameWindow::draw() {
_vm->_filesManager->insertCD(scrManager);
break;
- case GSMODE_PENDING_LOAD:
- // Pending savegame to load
- _gameManager->_gameState.setMode(GSMODE_INTERACTIVE);
- _vm->_window->_project->loadGame(_pendingLoadSlot);
- break;
-
default:
break;
}
@@ -246,17 +247,21 @@ void CMainGameWindow::onIdle() {
}
#define HANDLE_MESSAGE(METHOD) if (_inputAllowed) { \
- _gameManager->_inputTranslator.METHOD(_specialButtons, mousePos); \
+ _gameManager->_inputTranslator.METHOD(g_vm->_events->getSpecialButtons(), mousePos); \
mouseChanged(); \
}
void CMainGameWindow::mouseMove(const Point &mousePos) {
+ if (!isMouseControlEnabled())
+ return;
+
HANDLE_MESSAGE(mouseMove)
}
void CMainGameWindow::leftButtonDown(const Point &mousePos) {
- _specialButtons |= MK_LBUTTON;
+ if (!isMouseControlEnabled())
+ return;
if ((_vm->_events->getTicksCount() - _priorLeftDownTime) < DOUBLE_CLICK_TIME) {
_priorLeftDownTime = 0;
@@ -268,16 +273,22 @@ void CMainGameWindow::leftButtonDown(const Point &mousePos) {
}
void CMainGameWindow::leftButtonUp(const Point &mousePos) {
- _specialButtons &= ~MK_LBUTTON;
+ if (!isMouseControlEnabled())
+ return;
+
HANDLE_MESSAGE(leftButtonUp)
}
void CMainGameWindow::leftButtonDoubleClick(const Point &mousePos) {
+ if (!isMouseControlEnabled())
+ return;
+
HANDLE_MESSAGE(leftButtonDoubleClick)
}
void CMainGameWindow::middleButtonDown(const Point &mousePos) {
- _specialButtons |= MK_MBUTTON;
+ if (!isMouseControlEnabled())
+ return;
if ((_vm->_events->getTicksCount() - _priorMiddleDownTime) < DOUBLE_CLICK_TIME) {
_priorMiddleDownTime = 0;
@@ -289,16 +300,22 @@ void CMainGameWindow::middleButtonDown(const Point &mousePos) {
}
void CMainGameWindow::middleButtonUp(const Point &mousePos) {
- _specialButtons &= ~MK_MBUTTON;
+ if (!isMouseControlEnabled())
+ return;
+
HANDLE_MESSAGE(middleButtonUp)
}
void CMainGameWindow::middleButtonDoubleClick(const Point &mousePos) {
+ if (!isMouseControlEnabled())
+ return;
+
HANDLE_MESSAGE(middleButtonDoubleClick)
}
void CMainGameWindow::rightButtonDown(const Point &mousePos) {
- _specialButtons |= MK_RBUTTON;
+ if (!isMouseControlEnabled())
+ return;
if ((_vm->_events->getTicksCount() - _priorRightDownTime) < DOUBLE_CLICK_TIME) {
_priorRightDownTime = 0;
@@ -310,21 +327,28 @@ void CMainGameWindow::rightButtonDown(const Point &mousePos) {
}
void CMainGameWindow::rightButtonUp(const Point &mousePos) {
- _specialButtons &= ~MK_RBUTTON;
+ if (!isMouseControlEnabled())
+ return;
+
HANDLE_MESSAGE(rightButtonUp)
}
-void CMainGameWindow::rightButtonDoubleClick(const Point &mousePos) {
- HANDLE_MESSAGE(rightButtonDoubleClick)
+void CMainGameWindow::mouseWheel(const Point &mousePos, bool wheelUp) {
+ if (!isMouseControlEnabled())
+ return;
+
+ _gameManager->_inputTranslator.mouseWheel(wheelUp, mousePos);
+ mouseChanged();
}
-void CMainGameWindow::charPress(char c) {
+void CMainGameWindow::rightButtonDoubleClick(const Point &mousePos) {
+ if (!isMouseControlEnabled())
+ return;
+ HANDLE_MESSAGE(rightButtonDoubleClick)
}
void CMainGameWindow::keyDown(Common::KeyState keyState) {
- handleKbdSpecial(keyState);
-
if (keyState.keycode == Common::KEYCODE_d && (keyState.flags & Common::KBD_CTRL)) {
// Attach to the debugger
_vm->_debugger->attach();
@@ -335,20 +359,12 @@ void CMainGameWindow::keyDown(Common::KeyState keyState) {
_gameManager->_inputTranslator.keyDown(keyState);
}
-void CMainGameWindow::keyUp(Common::KeyState keyState) {
- handleKbdSpecial(keyState);
-}
-
-void CMainGameWindow::handleKbdSpecial(Common::KeyState keyState) {
- if (keyState.flags & Common::KBD_CTRL)
- _specialButtons |= MK_CONTROL;
- else
- _specialButtons &= ~MK_CONTROL;
+bool CMainGameWindow::isMouseControlEnabled() const {
+ CScreenManager *screenMan = CScreenManager::_screenManagerPtr;
+ if (!screenMan || !screenMan->_mouseCursor)
+ return true;
- if (keyState.flags & Common::KBD_SHIFT)
- _specialButtons |= MK_SHIFT;
- else
- _specialButtons &= ~MK_SHIFT;
+ return screenMan->_mouseCursor->_inputEnabled;
}
} // End of namespace Titanic
diff --git a/engines/titanic/main_game_window.h b/engines/titanic/main_game_window.h
index 7bd918df04..52d4267c83 100644
--- a/engines/titanic/main_game_window.h
+++ b/engines/titanic/main_game_window.h
@@ -39,7 +39,6 @@ class CMainGameWindow : public CEventTarget {
private:
TitanicEngine *_vm;
int _pendingLoadSlot;
- uint _specialButtons;
uint32 _priorLeftDownTime;
uint32 _priorMiddleDownTime;
uint32 _priorRightDownTime;
@@ -74,8 +73,11 @@ private:
void leftButtonDoubleClick(const Point &mousePos);
void middleButtonDoubleClick(const Point &mousePos);
void rightButtonDoubleClick(const Point &mousePos);
- void charPress(char c);
- void handleKbdSpecial(Common::KeyState keyState);
+
+ /**
+ * Returns true if the player can control the mouse
+ */
+ bool isMouseControlEnabled() const;
public:
CGameView *_gameView;
CGameManager *_gameManager;
@@ -99,8 +101,8 @@ public:
virtual void middleButtonUp(const Point &mousePos);
virtual void rightButtonDown(const Point &mousePos);
virtual void rightButtonUp(const Point &mousePos);
+ virtual void mouseWheel(const Point &mousePos, bool wheelUp);
virtual void keyDown(Common::KeyState keyState);
- virtual void keyUp(Common::KeyState keyState);
/**
* Called when the application starts
@@ -126,18 +128,6 @@ public:
* Schedules a savegame to be loaded
*/
void loadGame(int slotId);
-
- /*
- * Return whether a given special key is currently pressed
- */
- bool isSpecialPressed(SpecialButtons btn) const {
- return (_specialButtons & btn) != 0;
- }
-
- /**
- * Returns the bitset of the currently pressed special buttons
- */
- uint getSpecialButtons() const { return _specialButtons; }
};
} // End of namespace Titanic
diff --git a/engines/titanic/messages/messages.cpp b/engines/titanic/messages/messages.cpp
index a8507063ff..db89c3de3d 100644
--- a/engines/titanic/messages/messages.cpp
+++ b/engines/titanic/messages/messages.cpp
@@ -25,6 +25,7 @@
#include "titanic/core/game_object.h"
#include "titanic/core/message_target.h"
#include "titanic/core/tree_item.h"
+#include "titanic/pet_control/pet_control.h"
#include "titanic/titanic.h"
namespace Titanic {
@@ -163,4 +164,16 @@ bool CMessage::isLeaveViewMsg() const {
return dynamic_cast<const CLeaveViewMsg *>(this) != nullptr;
}
+/*------------------------------------------------------------------------*/
+
+CShowTextMsg::CShowTextMsg() : CMessage(), _message("NO TEXT INCLUDED!!!") {
+}
+
+CShowTextMsg::CShowTextMsg(const CString &msg) : CMessage(), _message(msg) {
+}
+
+CShowTextMsg::CShowTextMsg(StringId stringId) : CMessage() {
+ _message = g_vm->_strings[stringId];
+}
+
} // End of namespace Titanic
diff --git a/engines/titanic/messages/messages.h b/engines/titanic/messages/messages.h
index b421e8ecb8..fbe504700b 100644
--- a/engines/titanic/messages/messages.h
+++ b/engines/titanic/messages/messages.h
@@ -26,6 +26,7 @@
#include "common/keyboard.h"
#include "titanic/core/saveable_object.h"
#include "titanic/core/tree_item.h"
+#include "titanic/support/strings.h"
namespace Titanic {
@@ -182,6 +183,20 @@ public:
}
};
+class CShowTextMsg : public CMessage {
+public:
+ CString _message;
+public:
+ CLASSDEF;
+ CShowTextMsg();
+ CShowTextMsg(const CString &msg);
+ CShowTextMsg(StringId stringId);
+
+ static bool isSupportedBy(const CTreeItem *item) {
+ return supports(item, _type);
+ }
+};
+
MESSAGE1(CActMsg, CString, action, "");
MESSAGE1(CActivationmsg, CString, value, "");
MESSAGE1(CAddHeadPieceMsg, CString, value, "NULL");
@@ -286,7 +301,7 @@ MESSAGE0(CReplaceBowlAndNutsMsg);
MESSAGE1(CRestaurantMusicChanged, CString, value, "");
MESSAGE2(CSendCCarryMsg, CString, strValue, "", int, numValue, 0);
MESSAGE1(CSenseWorkingMsg, CString, value, "Not Working");
-MESSAGE2(CServiceElevatorFloorChangeMsg, int, value1, 0, int, value2, 0);
+MESSAGE2(CServiceElevatorFloorChangeMsg, int, startFloor, 0, int, endFloor, 0);
MESSAGE0(CServiceElevatorFloorRequestMsg);
MESSAGE1(CServiceElevatorMsg, int, value, 4);
MESSAGE2(CSetChevButtonImageMsg, int, value1, 0, int, value2, 0);
@@ -301,7 +316,6 @@ MESSAGE0(CSetMusicControlsMsg);
MESSAGE2(CSetVarMsg, CString, varName, "", int, value, 0);
MESSAGE2(CSetVolumeMsg, int, volume, 70, int, secondsTransition, 0);
MESSAGE2(CShipSettingMsg, int, value, 0, CString, name, "");
-MESSAGE1(CShowTextMsg, CString, value, "NO TEXT INCLUDED!!!");
MESSAGE2(CSignalObject, CString, strValue, "", int, numValue, 0);
MESSAGE1(CSpeechFallsFromTreeMsg, Point, pos, Point());
MESSAGE1(CStartMusicMsg, CMusicPlayer *, musicPlayer, (CMusicPlayer *)nullptr);
diff --git a/engines/titanic/messages/mouse_messages.h b/engines/titanic/messages/mouse_messages.h
index a10f3b42a8..05f9685c04 100644
--- a/engines/titanic/messages/mouse_messages.h
+++ b/engines/titanic/messages/mouse_messages.h
@@ -101,6 +101,20 @@ public:
static void generate();
};
+class CMouseWheelMsg : public CMouseMsg {
+public:
+ bool _wheelUp;
+public:
+ CLASSDEF;
+ CMouseWheelMsg() : CMouseMsg(), _wheelUp(false) {}
+ CMouseWheelMsg(const Point &pt, bool wheelUp) :
+ CMouseMsg(pt, 0), _wheelUp(wheelUp) {}
+
+ static bool isSupportedBy(const CTreeItem *item) {
+ return supports(item, _type);
+ }
+};
+
class CMouseDoubleClickMsg : public CMouseButtonMsg {
public:
CLASSDEF;
diff --git a/engines/titanic/moves/exit_lift.cpp b/engines/titanic/moves/exit_lift.cpp
index de9a3117af..a85af7c7a2 100644
--- a/engines/titanic/moves/exit_lift.cpp
+++ b/engines/titanic/moves/exit_lift.cpp
@@ -46,8 +46,8 @@ void CExitLift::load(SimpleFile *file) {
bool CExitLift::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
CPetControl *pet = getPetControl();
- int floorNum = pet->getRoomsFloorNum();//ebx
- int elevNum = pet->getRoomsElevatorNum(); //eax
+ int floorNum = pet->getRoomsFloorNum();
+ int elevNum = pet->getRoomsElevatorNum();
if (floorNum == 39) {
switch (elevNum) {
diff --git a/engines/titanic/moves/restricted_move.cpp b/engines/titanic/moves/restricted_move.cpp
index b1040a3554..92804d473d 100644
--- a/engines/titanic/moves/restricted_move.cpp
+++ b/engines/titanic/moves/restricted_move.cpp
@@ -51,7 +51,7 @@ bool CRestrictedMove::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
if (classNum <= _classNum) {
// Okay to change to the given destination
changeView(_destination);
- } else if (classNum != 4) {
+ } else if (classNum != UNCHECKED) {
petDisplayMessage(1, CLASS_NOT_ALLOWED_AT_DEST);
} else if (compareRoomNameTo("EmbLobby")) {
playSound("a#17.wav");
@@ -66,9 +66,9 @@ bool CRestrictedMove::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
bool CRestrictedMove::EnterViewMsg(CEnterViewMsg *msg) {
int classNum = getPassengerClass();
- bool flag = classNum > _classNum;
+ bool flag = classNum <= _classNum;
- if (classNum == 4) {
+ if (classNum == UNCHECKED) {
if (compareRoomNameTo("EmbLobby"))
flag = false;
else if (compareViewNameTo("Titania.Node 1.S"))
diff --git a/engines/titanic/npcs/barbot.cpp b/engines/titanic/npcs/barbot.cpp
index 791adaa05c..87aaea611f 100644
--- a/engines/titanic/npcs/barbot.cpp
+++ b/engines/titanic/npcs/barbot.cpp
@@ -336,7 +336,7 @@ bool CBarbot::TurnOn(CTurnOn *msg) {
_fieldC4 = 1;
++_v0;
petSetArea(PET_CONVERSATION);
- endTalking(this, true);
+ setTalking(this, true);
}
return true;
diff --git a/engines/titanic/npcs/bellbot.cpp b/engines/titanic/npcs/bellbot.cpp
index 7aa32eeef3..1326655299 100644
--- a/engines/titanic/npcs/bellbot.cpp
+++ b/engines/titanic/npcs/bellbot.cpp
@@ -79,7 +79,7 @@ bool CBellBot::OnSummonBotMsg(COnSummonBotMsg *msg) {
for (idx = 0; idx < 8; ++idx) {
if (compareRoomNameTo(ROOM_WAVES[idx][0])) {
playSound(ROOM_WAVES[idx][1]);
-
+ break;
}
}
if (idx == 8)
@@ -99,7 +99,7 @@ bool CBellBot::OnSummonBotMsg(COnSummonBotMsg *msg) {
bool CBellBot::LeaveViewMsg(CLeaveViewMsg *msg) {
if (_npcFlags & NPCFLAG_10000) {
performAction(1);
- _npcFlags &= ~NPCFLAG_4;
+ _npcFlags &= ~NPCFLAG_START_IDLING;
CDismissBotMsg dismissMsg;
dismissMsg.execute(this);
}
@@ -113,13 +113,13 @@ bool CBellBot::MovieEndMsg(CMovieEndMsg *msg) {
} else if (clipExistsByEnd("Walk On", msg->_endFrame)) {
setPosition(Point(80, 10));
loadFrame(543);
- _npcFlags |= NPCFLAG_4;
+ _npcFlags |= NPCFLAG_START_IDLING;
if (_npcFlags & NPCFLAG_40000) {
startTalking(this, 157);
_npcFlags &= ~NPCFLAG_40000;
}
- endTalking(this, true);
+ setTalking(this, true);
petSetArea(PET_CONVERSATION);
} else if (clipExistsByEnd("Walk Off", msg->_endFrame)) {
CPutBotBackInHisBoxMsg boxMsg;
@@ -142,8 +142,8 @@ bool CBellBot::Use(CUse *msg) {
bool CBellBot::DismissBotMsg(CDismissBotMsg *msg) {
if (_npcFlags & NPCFLAG_10000) {
playClip("Walk Off", MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE);
- if (_npcFlags & NPCFLAG_4) {
- _npcFlags &= ~NPCFLAG_4;
+ if (_npcFlags & NPCFLAG_START_IDLING) {
+ _npcFlags &= ~NPCFLAG_START_IDLING;
performAction(true);
} else {
performAction(false);
@@ -160,7 +160,7 @@ bool CBellBot::TrueTalkTriggerActionMsg(CTrueTalkTriggerActionMsg *msg) {
switch (msg->_action) {
case 1:
case 28: {
- _npcFlags &= ~NPCFLAG_2;
+ _npcFlags &= ~NPCFLAG_IDLING;
CDismissBotMsg dismissMsg;
dismissMsg.execute(this);
break;
@@ -203,7 +203,7 @@ bool CBellBot::MovieFrameMsg(CMovieFrameMsg *msg) {
bool CBellBot::PutBotBackInHisBoxMsg(CPutBotBackInHisBoxMsg *msg) {
petMoveToHiddenRoom();
- _npcFlags &= ~NPCFLAG_4;
+ _npcFlags &= ~NPCFLAG_START_IDLING;
return true;
}
@@ -229,7 +229,7 @@ bool CBellBot::NPCPlayTalkingAnimationMsg(CNPCPlayTalkingAnimationMsg *msg) {
};
if (msg->_value2 == 2)
- playClip("Mother Frame", 0);
+ playClip("Mother Frame");
else
msg->_names = NAMES;
@@ -238,8 +238,6 @@ bool CBellBot::NPCPlayTalkingAnimationMsg(CNPCPlayTalkingAnimationMsg *msg) {
bool CBellBot::TimerMsg(CTimerMsg *msg) {
if (msg->_action == "SummonDoorbot") {
- CTrueTalkNPC::TimerMsg(msg);
- } else {
CRoomItem *room = getRoom();
if (room) {
CSummonBotMsg botMsg;
@@ -249,6 +247,8 @@ bool CBellBot::TimerMsg(CTimerMsg *msg) {
}
_npcFlags &= ~NPCFLAG_20000;
+ } else {
+ CTrueTalkNPC::TimerMsg(msg);
}
return true;
diff --git a/engines/titanic/npcs/bilge_succubus.cpp b/engines/titanic/npcs/bilge_succubus.cpp
index d1b89e58b4..006f532a31 100644
--- a/engines/titanic/npcs/bilge_succubus.cpp
+++ b/engines/titanic/npcs/bilge_succubus.cpp
@@ -431,7 +431,7 @@ bool CBilgeSuccUBus::TurnOn(CTurnOn *msg) {
CSUBTransition transMsg;
transMsg.execute(this);
- endTalking(this, true);
+ setTalking(this, true);
petSetArea(PET_REMOTE);
petHighlightGlyph(16);
}
diff --git a/engines/titanic/npcs/deskbot.cpp b/engines/titanic/npcs/deskbot.cpp
index c5032f1674..3a65b6f5bb 100644
--- a/engines/titanic/npcs/deskbot.cpp
+++ b/engines/titanic/npcs/deskbot.cpp
@@ -52,7 +52,8 @@ END_MESSAGE_MAP()
int CDeskbot::_v1;
int CDeskbot::_v2;
-CDeskbot::CDeskbot() : CTrueTalkNPC(), _deskbotActive(false), _classNum(0) {
+CDeskbot::CDeskbot() : CTrueTalkNPC(), _deskbotActive(false),
+ _classNum(NO_CLASS) {
}
void CDeskbot::save(SimpleFile *file, int indent) {
@@ -70,7 +71,7 @@ void CDeskbot::load(SimpleFile *file) {
_v1 = file->readNumber();
_v2 = file->readNumber();
_deskbotActive = file->readNumber();
- _classNum = file->readNumber();
+ _classNum = (PassengerClass)file->readNumber();
CTrueTalkNPC::load(file);
}
@@ -78,7 +79,9 @@ void CDeskbot::load(SimpleFile *file) {
bool CDeskbot::TurnOn(CTurnOn *msg) {
if (!_deskbotActive) {
setVisible(true);
- playClip("BellRinging", 4);
+ playClip("BellRinging");
+ playClip("Opening", MOVIE_NOTIFY_OBJECT);
+
playSound("b#69.wav");
petSetArea(PET_CONVERSATION);
@@ -114,7 +117,7 @@ bool CDeskbot::MovieEndMsg(CMovieEndMsg *msg) {
dec54();
unlockMouse();
playSound("z#47.wav");
- _classNum = false;
+ _classNum = NO_CLASS;
}
_npcFlags &= ~NPCFLAG_10000;
@@ -143,9 +146,9 @@ bool CDeskbot::MovieEndMsg(CMovieEndMsg *msg) {
if (_npcFlags & NPCFLAG_20000) {
_npcFlags &= ~(NPCFLAG_40000 | NPCFLAG_20000);
- endTalking(this, 1, findView());
+ setTalking(this, true, findView());
- _npcFlags |= NPCFLAG_4;
+ _npcFlags |= NPCFLAG_START_IDLING;
flag = true;
}
@@ -170,23 +173,23 @@ bool CDeskbot::TrueTalkTriggerActionMsg(CTrueTalkTriggerActionMsg *msg) {
inc54();
lockMouse();
petSetArea(PET_CONVERSATION);
- playClip("ReprogramPETInHand", 4);
+ playClip("ReprogramPETInHand", MOVIE_NOTIFY_OBJECT);
_npcFlags |= NPCFLAG_10000;
- _classNum = msg->_param1;
+ _classNum = (PassengerClass)msg->_param1;
switch (_classNum) {
- case 1:
+ case FIRST_CLASS:
petDisplayMessage(UPGRADED_TO_FIRST_CLASS);
setPassengerClass(_classNum);
petReassignRoom(_classNum);
break;
- case 2:
+ case SECOND_CLASS:
petDisplayMessage(UPGRADED_TO_SECOND_CLASS);
setPassengerClass(_classNum);
petReassignRoom(_classNum);
break;
- case 3:
- setPassengerClass(3);
+ case THIRD_CLASS:
+ setPassengerClass(THIRD_CLASS);
petReassignRoom(_classNum);
break;
default:
@@ -197,31 +200,31 @@ bool CDeskbot::TrueTalkTriggerActionMsg(CTrueTalkTriggerActionMsg *msg) {
if (getPassengerClass() == 1) {
CPetControl *petControl = getPetControl();
if (petControl)
- petControl->changeLocationClass(4);
+ petControl->changeLocationClass(UNCHECKED);
}
break;
case 21:
- if (getPassengerClass() == 1) {
+ if (getPassengerClass() == FIRST_CLASS) {
CPetControl *petControl = getPetControl();
if (petControl)
- petControl->changeLocationClass(3);
+ petControl->changeLocationClass(THIRD_CLASS);
}
break;
case 22:
- if (getPassengerClass() == 1) {
+ if (getPassengerClass() == FIRST_CLASS) {
CPetControl *petControl = getPetControl();
if (petControl)
- petControl->changeLocationClass(2);
+ petControl->changeLocationClass(SECOND_CLASS);
}
break;
case 23:
- if (getPassengerClass() == 1) {
+ if (getPassengerClass() == FIRST_CLASS) {
CPetControl *petControl = getPetControl();
if (petControl)
- petControl->changeLocationClass(1);
+ petControl->changeLocationClass(FIRST_CLASS);
}
break;
@@ -300,8 +303,8 @@ bool CDeskbot::TurnOff(CTurnOff *msg) {
stopMovie();
performAction(1, findView());
- _npcFlags = (_npcFlags & ~(NPCFLAG_SPEAKING | NPCFLAG_2 | NPCFLAG_4)) | NPCFLAG_40000;
- playClip("Closing", 0x14);
+ _npcFlags = (_npcFlags & ~(NPCFLAG_SPEAKING | NPCFLAG_IDLING | NPCFLAG_START_IDLING)) | NPCFLAG_40000;
+ playClip("Closing", MOVIE_GAMESTATE | MOVIE_NOTIFY_OBJECT);
}
return true;
diff --git a/engines/titanic/npcs/deskbot.h b/engines/titanic/npcs/deskbot.h
index ab48d63546..1b462f6584 100644
--- a/engines/titanic/npcs/deskbot.h
+++ b/engines/titanic/npcs/deskbot.h
@@ -45,7 +45,7 @@ private:
static int _v2;
public:
bool _deskbotActive;
- int _classNum;
+ PassengerClass _classNum;
public:
CLASSDEF;
CDeskbot();
diff --git a/engines/titanic/npcs/doorbot.cpp b/engines/titanic/npcs/doorbot.cpp
index d26f4bb828..ebab6508c2 100644
--- a/engines/titanic/npcs/doorbot.cpp
+++ b/engines/titanic/npcs/doorbot.cpp
@@ -22,6 +22,7 @@
#include "titanic/npcs/doorbot.h"
#include "titanic/core/room_item.h"
+#include "titanic/titanic.h"
namespace Titanic {
@@ -48,7 +49,7 @@ int CDoorbot::_v1;
int CDoorbot::_v2;
CDoorbot::CDoorbot() : CTrueTalkNPC() {
- _field108 = 0;
+ _introMovieNum = 0;
_timerId = 0;
_field110 = 0;
_field114 = 0;
@@ -59,7 +60,7 @@ void CDoorbot::save(SimpleFile *file, int indent) {
file->writeNumberLine(_v1, indent);
file->writeNumberLine(_v2, indent);
- file->writeNumberLine(_field108, indent);
+ file->writeNumberLine(_introMovieNum, indent);
file->writeNumberLine(_timerId, indent);
file->writeNumberLine(_field110, indent);
file->writeNumberLine(_field114, indent);
@@ -72,7 +73,7 @@ void CDoorbot::load(SimpleFile *file) {
_v1 = file->readNumber();
_v2 = file->readNumber();
- _field108 = file->readNumber();
+ _introMovieNum = file->readNumber();
_timerId = file->readNumber();
_field110 = file->readNumber();
_field114 = file->readNumber();
@@ -81,11 +82,14 @@ void CDoorbot::load(SimpleFile *file) {
}
bool CDoorbot::MovieEndMsg(CMovieEndMsg *msg) {
+ debugC(ERROR_DETAILED, kDebugScripts, "CDoorbot MovieEndMsg flags=%x v=%d, start=%d, end=%d",
+ _npcFlags, _introMovieNum, msg->_startFrame, msg->_endFrame);
+
if (_npcFlags & NPCFLAG_DOORBOT_INTRO) {
- switch (_field108) {
+ switch (_introMovieNum) {
case 3:
startTalking(this, 221482);
- _field108 = 4;
+ _introMovieNum = 4;
break;
case 6:
@@ -99,7 +103,7 @@ bool CDoorbot::MovieEndMsg(CMovieEndMsg *msg) {
case 7:
startTalking(this, 221467);
- _field108 = 8;
+ _introMovieNum = 8;
break;
case 9:
@@ -118,11 +122,11 @@ bool CDoorbot::MovieEndMsg(CMovieEndMsg *msg) {
CTrueTalkNPC::MovieEndMsg(msg);
} else if (_npcFlags & NPCFLAG_100000) {
if (clipExistsByEnd("Cloak Off", msg->_endFrame)) {
- _npcFlags = (_npcFlags & ~NPCFLAG_8) | NPCFLAG_4;
- endTalking(this, false);
+ _npcFlags = (_npcFlags & ~NPCFLAG_8) | NPCFLAG_START_IDLING;
+ setTalking(this, false);
startTalking(this, 221474);
_npcFlags |= NPCFLAG_DOORBOT_INTRO;
- _field108 = 0;
+ _introMovieNum = 0;
} else if (clipExistsByEnd("Cloak On", msg->_endFrame)) {
petShow();
setState1C(true);
@@ -135,8 +139,8 @@ bool CDoorbot::MovieEndMsg(CMovieEndMsg *msg) {
|| clipExistsByEnd("Whizz On Right", msg->_endFrame)) {
setPosition(Point((600 - _bounds.width()) / 2 + 18, 42));
loadFrame(0);
- endTalking(this, true);
- _npcFlags |= NPCFLAG_4;
+ setTalking(this, true);
+ _npcFlags |= NPCFLAG_START_IDLING;
petSetArea(PET_CONVERSATION);
} else if (clipExistsByEnd("Whizz Off Left", msg->_endFrame)
|| clipExistsByEnd("Whizz Off Right", msg->_endFrame)) {
@@ -195,12 +199,12 @@ bool CDoorbot::TrueTalkTriggerActionMsg(CTrueTalkTriggerActionMsg *msg) {
break;
case 4:
- _npcFlags = (_npcFlags & ~NPCFLAG_2) | NPCFLAG_4000000;
+ _npcFlags = (_npcFlags & ~NPCFLAG_IDLING) | NPCFLAG_4000000;
playClip("Whizz Off Left", MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE);
break;
case 28: {
- _npcFlags &= ~(NPCFLAG_2 | NPCFLAG_4);
+ _npcFlags &= ~(NPCFLAG_IDLING | NPCFLAG_START_IDLING);
CDismissBotMsg dismissMsg;
dismissMsg.execute(this);
break;
@@ -227,13 +231,13 @@ bool CDoorbot::DoorbotNeededInElevatorMsg(CDoorbotNeededInElevatorMsg *msg) {
setPosition(Point(100, 42));
if (_npcFlags & NPCFLAG_DOORBOT_INTRO) {
- _field108 = 7;
+ _introMovieNum = 7;
_npcFlags |= NPCFLAG_200000;
loadFrame(797);
} else {
_npcFlags = 0;
if (msg->_value)
- endTalking(this, true);
+ setTalking(this, true);
}
return true;
@@ -242,7 +246,7 @@ bool CDoorbot::DoorbotNeededInElevatorMsg(CDoorbotNeededInElevatorMsg *msg) {
bool CDoorbot::LeaveViewMsg(CLeaveViewMsg *msg) {
if (!(_npcFlags & NPCFLAG_DOORBOT_INTRO) && (_npcFlags & NPCFLAG_400000)) {
performAction(true);
- _npcFlags &= ~NPCFLAG_4;
+ _npcFlags &= ~NPCFLAG_START_IDLING;
}
return true;
@@ -252,6 +256,8 @@ bool CDoorbot::TimerMsg(CTimerMsg *msg) {
if (msg->_action == "NPCIdleAnim") {
return CTrueTalkNPC::TimerMsg(msg);
} else if (_npcFlags & NPCFLAG_DOORBOT_INTRO) {
+ _timerId = 0;
+
switch (msg->_actionVal) {
case 0:
startTalking(this, 221475);
@@ -266,11 +272,11 @@ bool CDoorbot::TimerMsg(CTimerMsg *msg) {
break;
case 3:
- playClip("DoubleTake Start", 0);
- playClip("DoubleTake End", 0);
- playClip("DoubleTake Start", 0);
+ playClip("DoubleTake Start");
+ playClip("DoubleTake End");
+ playClip("DoubleTake Start");
playClip("DoubleTake End", MOVIE_NOTIFY_OBJECT);
- _field108 = 3;
+ _introMovieNum = 3;
break;
case 4:
@@ -281,21 +287,23 @@ bool CDoorbot::TimerMsg(CTimerMsg *msg) {
case 5:
lockInputHandler();
- mouseLockE4();
+ mouseDisableControl();
_field114 = true;
startTalking(this, 221485);
break;
case 6:
+ // Start dragging photograph to PET
CMouseButtonDownMsg::generate();
mouseSetPosition(Point(200, 430), 2500);
_timerId = addTimer(7, 2500, 0);
break;
case 7:
- CMouseButtonDownMsg::generate();
+ // Drop photograph in PET
+ CMouseButtonUpMsg::generate();
startTalking(this, 221486);
- mouseUnlockE4();
+ mouseEnableControl();
unlockInputHandler();
_field114 = false;
disableMouse();
@@ -334,11 +342,17 @@ bool CDoorbot::NPCPlayTalkingAnimationMsg(CNPCPlayTalkingAnimationMsg *msg) {
if (msg->_value2 != 2) {
if (_npcFlags & NPCFLAG_200000) {
- if (_field108 == 8 || _field110) {
+ switch (_introMovieNum) {
+ case 8:
+ case 10:
msg->_names = NAMES2;
- } else if (_field108 == 9) {
+ break;
+ case 9:
msg->_names = NAMES3;
- _field108 = 10;
+ _introMovieNum = 10;
+ break;
+ default:
+ break;
}
} else if (_npcFlags & (NPCFLAG_100000 | NPCFLAG_400000)) {
msg->_names = NAMES1;
@@ -362,7 +376,7 @@ bool CDoorbot::NPCPlayIdleAnimationMsg(CNPCPlayIdleAnimationMsg *msg) {
bool CDoorbot::PutBotBackInHisBoxMsg(CPutBotBackInHisBoxMsg *msg) {
petMoveToHiddenRoom();
- _npcFlags &= ~(NPCFLAG_4 | NPCFLAG_100000 | NPCFLAG_200000 | NPCFLAG_DOORBOT_INTRO);
+ _npcFlags &= ~(NPCFLAG_START_IDLING | NPCFLAG_100000 | NPCFLAG_200000 | NPCFLAG_DOORBOT_INTRO);
if (msg->_value)
performAction(true);
@@ -375,8 +389,8 @@ bool CDoorbot::DismissBotMsg(CDismissBotMsg *msg) {
MOVIE_STOP_PREVIOUS | MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE);
movieEvent();
- if (_npcFlags & NPCFLAG_4) {
- _npcFlags &= ~NPCFLAG_4;
+ if (_npcFlags & NPCFLAG_START_IDLING) {
+ _npcFlags &= ~NPCFLAG_START_IDLING;
performAction(true);
} else {
performAction(false);
@@ -409,7 +423,7 @@ bool CDoorbot::TrueTalkNotifySpeechEndedMsg(CTrueTalkNotifySpeechEndedMsg *msg)
switch (msg->_dialogueId) {
case 10552:
playClip("SE Try Buttons", MOVIE_NOTIFY_OBJECT);
- _field108 = 9;
+ _introMovieNum = 9;
break;
case 10553:
@@ -418,7 +432,7 @@ bool CDoorbot::TrueTalkNotifySpeechEndedMsg(CTrueTalkNotifySpeechEndedMsg *msg)
case 10557:
playClip("SE Move To Right", MOVIE_NOTIFY_OBJECT);
- _field108 = 11;
+ _introMovieNum = 11;
break;
case 10559:
@@ -435,13 +449,13 @@ bool CDoorbot::TrueTalkNotifySpeechEndedMsg(CTrueTalkNotifySpeechEndedMsg *msg)
case 10561:
enableMouse();
- _field108 = 1;
+ _introMovieNum = 1;
stopAnimTimer(_timerId);
_timerId = addTimer(2, 10000, 0);
break;
case 10562:
- if (_field108 == 1) {
+ if (_introMovieNum == 1) {
stopAnimTimer(_timerId);
_timerId = addTimer(2, getRandomNumber(5000), 0);
}
@@ -462,7 +476,7 @@ bool CDoorbot::TrueTalkNotifySpeechEndedMsg(CTrueTalkNotifySpeechEndedMsg *msg)
_timerId = 0;
if (_field110 == 2) {
playClip("Cloak On", MOVIE_NOTIFY_OBJECT);
- _field108 = 6;
+ _introMovieNum = 6;
} else {
_timerId = addTimer(3, 2000, 0);
}
@@ -478,7 +492,8 @@ bool CDoorbot::TrueTalkNotifySpeechEndedMsg(CTrueTalkNotifySpeechEndedMsg *msg)
}
case 10568:
- mouseLockE4();
+ // Start moving cursor to photograph
+ mouseDisableControl();
mouseSetPosition(Point(600, 250), 2500);
_timerId = addTimer(6, 2500, 0);
break;
@@ -497,7 +512,7 @@ bool CDoorbot::TrueTalkNotifySpeechEndedMsg(CTrueTalkNotifySpeechEndedMsg *msg)
case 10571:
playClip("Cloak On", MOVIE_NOTIFY_OBJECT);
- _field108 = 6;
+ _introMovieNum = 6;
break;
default:
@@ -512,9 +527,9 @@ bool CDoorbot::TextInputMsg(CTextInputMsg *msg) {
if (!(_npcFlags & NPCFLAG_DOORBOT_INTRO))
return CTrueTalkNPC::TextInputMsg(msg);
- if (_field108 == 1) {
+ if (_introMovieNum == 1) {
stopAnimTimer(_timerId);
- _field108 = 2;
+ _introMovieNum = 2;
_timerId = 0;
if (msg->_input == "yes" || msg->_input == "yeah"
@@ -532,34 +547,36 @@ bool CDoorbot::TextInputMsg(CTextInputMsg *msg) {
}
bool CDoorbot::EnterViewMsg(CEnterViewMsg *msg) {
- if ((_npcFlags & NPCFLAG_DOORBOT_INTRO) && _field108 == 7)
+ if ((_npcFlags & NPCFLAG_DOORBOT_INTRO) && _introMovieNum == 7)
playClip("SE Move And Turn", MOVIE_NOTIFY_OBJECT);
return true;
}
bool CDoorbot::ActMsg(CActMsg *msg) {
+ debugC(ERROR_DETAILED, kDebugScripts, "CDoorbot ActMsg action=%s v108=%d v110=%d v114=%d",
+ msg->_action.c_str(), _introMovieNum, _field110, _field114);
+
if (msg->_action == "DoorbotPlayerPressedTopButton") {
disableMouse();
startTalking(this, 221471);
} else if (msg->_action == "DoorbotPlayerPressedMiddleButton") {
startTalking(this, 221470);
- }
- else if (msg->_action == "DoorbotPlayerPressedBottomButton") {
+ } else if (msg->_action == "DoorbotPlayerPressedBottomButton") {
startTalking(this, 221469);
} else if (msg->_action == "DoorbotReachedEmbLobby") {
startTalking(this, 221472);
} else if (msg->_action == "PlayerPicksUpPhoto") {
_field110 = 1;
- if (!_field114 && _field108 == 4) {
+ if (!_field114 && _introMovieNum == 4) {
stopAnimTimer(_timerId);
_timerId = 0;
- _field108 = 5;
+ _introMovieNum = 5;
startTalking(this, 221484);
}
} else if (msg->_action == "PlayerPutsPhotoInPet") {
_field110 = 2;
- if (!_field114 && _field108 == 5) {
+ if (!_field114 && _introMovieNum == 5) {
stopAnimTimer(_timerId);
_timerId = 0;
startTalking(this, 221486);
diff --git a/engines/titanic/npcs/doorbot.h b/engines/titanic/npcs/doorbot.h
index 9095ebc7e7..1cb7ec3f27 100644
--- a/engines/titanic/npcs/doorbot.h
+++ b/engines/titanic/npcs/doorbot.h
@@ -49,7 +49,7 @@ private:
static int _v1;
static int _v2;
private:
- int _field108;
+ int _introMovieNum;
int _timerId;
int _field110;
int _field114;
diff --git a/engines/titanic/npcs/liftbot.cpp b/engines/titanic/npcs/liftbot.cpp
index 64bc7c4989..bb554a104f 100644
--- a/engines/titanic/npcs/liftbot.cpp
+++ b/engines/titanic/npcs/liftbot.cpp
@@ -66,7 +66,7 @@ void CLiftBot::load(SimpleFile *file) {
bool CLiftBot::TextInputMsg(CTextInputMsg *msg) {
CPetControl *pet = getPetControl();
if (_enabled || pet->getRoomsElevatorNum() != 4) {
- if (getName() != "LiftBot") {
+ if (getName() == "LiftBot") {
CViewItem *view = findView();
processInput(msg, view);
}
@@ -79,13 +79,12 @@ bool CLiftBot::EnterViewMsg(CEnterViewMsg *msg) {
CPetControl *pet = getPetControl();
if (!_enabled && pet->getRoomsElevatorNum() == 4) {
loadFrame(700);
- } else if (!_flag) {
- if (getName() != "LiftBot") {
- CViewItem *view = findView();
- endTalking(this, true, view);
- petSetArea(PET_CONVERSATION);
- _flag = 1;
- }
+ } else if (!_flag && getName() == "LiftBot") {
+ // First time meeting the LiftBot
+ CViewItem *view = findView();
+ setTalking(this, true, view);
+ petSetArea(PET_CONVERSATION);
+ _flag = 1;
}
return true;
@@ -109,7 +108,7 @@ bool CLiftBot::TrueTalkTriggerActionMsg(CTrueTalkTriggerActionMsg *msg) {
}
bool CLiftBot::LeaveRoomMsg(CLeaveRoomMsg *msg) {
- if (getName() != "LiftBot")
+ if (getName() == "LiftBot")
performAction(false);
return true;
@@ -124,7 +123,7 @@ bool CLiftBot::TurnOn(CTurnOn *msg) {
_enabled = true;
if (!_flag) {
if (isEquals("LiftBotTalking")) {
- endTalking(this, MOVIE_REPEAT, findView());
+ setTalking(this, MOVIE_REPEAT, findView());
petSetArea(PET_CONVERSATION);
_flag = true;
}
@@ -164,7 +163,7 @@ bool CLiftBot::NPCPlayTalkingAnimationMsg(CNPCPlayTalkingAnimationMsg *msg) {
};
if (msg->_value2 == 2)
- playClip("At Rest", 0);
+ playClip("At Rest");
else
msg->_names = NAMES;
return true;
@@ -174,7 +173,7 @@ bool CLiftBot::ActMsg(CActMsg *msg) {
if (msg->_action == "ActivateLift") {
_enabled = true;
CViewItem *view = findView();
- endTalking(this, true, view);
+ setTalking(this, true, view);
startTalking(this, 155, view);
} else if (msg->_action == "LiftArrive") {
CViewItem *view = findView();
diff --git a/engines/titanic/npcs/maitre_d.cpp b/engines/titanic/npcs/maitre_d.cpp
index 658b7c7123..cbb406fffa 100644
--- a/engines/titanic/npcs/maitre_d.cpp
+++ b/engines/titanic/npcs/maitre_d.cpp
@@ -114,7 +114,7 @@ bool CMaitreD::TrueTalkTriggerActionMsg(CTrueTalkTriggerActionMsg *msg) {
}
bool CMaitreD::EnterViewMsg(CEnterViewMsg *msg) {
- endTalking(this, true, findView());
+ setTalking(this, true, findView());
_field12C = _field134;
if (_string3 == "STMusic" && (!_field11C || _string2 == _string3))
diff --git a/engines/titanic/npcs/parrot.cpp b/engines/titanic/npcs/parrot.cpp
index 97a1944fef..c3702e17d4 100644
--- a/engines/titanic/npcs/parrot.cpp
+++ b/engines/titanic/npcs/parrot.cpp
@@ -202,7 +202,7 @@ bool CParrot::ActMsg(CActMsg *msg) {
}
bool CParrot::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
- if (!(_npcFlags & NPCFLAG_2000000) && _field100 <= 0) {
+ if (!(_npcFlags & NPCFLAG_2000000) && _speechCounter == 0) {
CTrueTalkTriggerActionMsg triggerMsg(280250, 280250, 1);
triggerMsg.execute(this);
}
@@ -291,7 +291,7 @@ bool CParrot::MovieEndMsg(CMovieEndMsg *msg) {
return true;
} else if (clipExistsByEnd("Lean Over To Chicken", msg->_endFrame)) {
- playClip("Eat Chicken", 0);
+ playClip("Eat Chicken");
playClip("Eat Chicken 2", MOVIE_NOTIFY_OBJECT);
_v1 = 1;
@@ -352,9 +352,9 @@ bool CParrot::EnterViewMsg(CEnterViewMsg *msg) {
_field118 = 1;
_npcFlags &= ~(NPCFLAG_10000 | NPCFLAG_20000 | NPCFLAG_40000 | NPCFLAG_80000 | NPCFLAG_100000 | NPCFLAG_200000 | NPCFLAG_400000);
loadFrame(0);
- endTalking(this, true, findView());
+ setTalking(this, true, findView());
- if (_field100 > 0) {
+ if (_speechCounter > 0) {
playRandomClip(NAMES, MOVIE_NOTIFY_OBJECT);
} else {
startTalking(this, 280258, findView());
@@ -362,7 +362,7 @@ bool CParrot::EnterViewMsg(CEnterViewMsg *msg) {
petSetArea(PET_CONVERSATION);
_field12C = 0;
- _npcFlags |= NPCFLAG_4;
+ _npcFlags |= NPCFLAG_START_IDLING;
}
return true;
@@ -404,7 +404,7 @@ bool CParrot::MouseDragStartMsg(CMouseDragStartMsg *msg) {
bool CParrot::LeaveViewMsg(CLeaveViewMsg *msg) {
performAction(true);
- _npcFlags &= ~NPCFLAG_4;
+ _npcFlags &= ~NPCFLAG_START_IDLING;
return true;
}
@@ -425,7 +425,7 @@ bool CParrot::ParrotSpeakMsg(CParrotSpeakMsg *msg) {
}
// Don't have the parrot speak too often
- if ((getTicksCount() - _field120) < 20000 || _field100)
+ if ((getTicksCount() - _field120) < 20000 || _speechCounter)
return true;
playSound("z#475.wav", 50);
diff --git a/engines/titanic/npcs/succubus.cpp b/engines/titanic/npcs/succubus.cpp
index 6db8c8d798..bdde682c03 100644
--- a/engines/titanic/npcs/succubus.cpp
+++ b/engines/titanic/npcs/succubus.cpp
@@ -671,7 +671,7 @@ bool CSuccUBus::TurnOn(CTurnOn *msg) {
CSUBTransition transMsg;
transMsg.execute(this);
- endTalking(this, true, findView());
+ setTalking(this, true, findView());
petSetArea(PET_REMOTE);
petHighlightGlyph(16);
}
diff --git a/engines/titanic/npcs/titania.cpp b/engines/titanic/npcs/titania.cpp
index aa92ddd166..db0c85d5f5 100644
--- a/engines/titanic/npcs/titania.cpp
+++ b/engines/titanic/npcs/titania.cpp
@@ -180,7 +180,7 @@ bool CTitania::ActMsg(CActMsg *msg) {
CActMsg actMsg("Woken");
actMsg.execute("MouthSlot");
actMsg.execute("VisionCentreSlot");
- setPassengerClass(4);
+ setPassengerClass(UNCHECKED);
addTimer(1000);
} else {
diff --git a/engines/titanic/npcs/true_talk_npc.cpp b/engines/titanic/npcs/true_talk_npc.cpp
index 55666a21a9..8d08600c9b 100644
--- a/engines/titanic/npcs/true_talk_npc.cpp
+++ b/engines/titanic/npcs/true_talk_npc.cpp
@@ -24,6 +24,7 @@
#include "titanic/core/view_item.h"
#include "titanic/pet_control/pet_control.h"
#include "titanic/game_manager.h"
+#include "titanic/titanic.h"
namespace Titanic {
@@ -41,7 +42,7 @@ END_MESSAGE_MAP()
CTrueTalkNPC::CTrueTalkNPC() : _assetName("z451.dlg"),
_assetNumber(0x11170), _fieldE4(0), _npcFlags(0), _speechDuration(0), _startTicks(0),
- _fieldF4(0), _fieldF8(0), _speechTimerId(0), _field100(0), _field104(0) {
+ _fieldF4(0), _fieldF8(0), _speechTimerId(0), _speechCounter(0), _field104(0) {
}
void CTrueTalkNPC::save(SimpleFile *file, int indent) {
@@ -55,7 +56,7 @@ void CTrueTalkNPC::save(SimpleFile *file, int indent) {
file->writeNumberLine(_fieldF4, indent);
file->writeNumberLine(_fieldF8, indent);
file->writeNumberLine(_speechTimerId, indent);
- file->writeNumberLine(_field100, indent);
+ file->writeNumberLine(_speechCounter, indent);
file->writeNumberLine(_field104, indent);
CCharacter::save(file, indent);
@@ -72,7 +73,7 @@ void CTrueTalkNPC::load(SimpleFile *file) {
_fieldF4 = file->readNumber();
_fieldF8 = file->readNumber();
_speechTimerId = file->readNumber();
- _field100 = file->readNumber();
+ _speechCounter = file->readNumber();
_field104 = file->readNumber();
CCharacter::load(file);
@@ -95,8 +96,11 @@ bool CTrueTalkNPC::DismissBotMsg(CDismissBotMsg *msg) {
}
bool CTrueTalkNPC::TrueTalkNotifySpeechStartedMsg(CTrueTalkNotifySpeechStartedMsg *msg) {
+ debugC(ERROR_DETAILED, kDebugScripts, "%s TrueTalkNotifySpeechStartedMsg flags=%x dialogueId=%d",
+ getName().c_str(), _npcFlags, msg->_dialogueId);
+
_npcFlags |= NPCFLAG_SPEAKING;
- ++_field100;
+ ++_speechCounter;
if (!(_npcFlags & NPCFLAG_8)) {
// Stop any previous animation
@@ -107,8 +111,8 @@ bool CTrueTalkNPC::TrueTalkNotifySpeechStartedMsg(CTrueTalkNotifySpeechStartedMs
_speechDuration = msg->_speechDuration;
_startTicks = getTicksCount();
- if (!hasActiveMovie() || (_npcFlags & NPCFLAG_2)) {
- _npcFlags &= ~NPCFLAG_2;
+ if (!hasActiveMovie() || (_npcFlags & NPCFLAG_IDLING)) {
+ _npcFlags &= ~NPCFLAG_IDLING;
stopMovie();
CNPCPlayTalkingAnimationMsg msg1(_speechDuration, 0, nullptr);
@@ -125,12 +129,13 @@ bool CTrueTalkNPC::TrueTalkNotifySpeechStartedMsg(CTrueTalkNotifySpeechStartedMs
}
bool CTrueTalkNPC::TrueTalkNotifySpeechEndedMsg(CTrueTalkNotifySpeechEndedMsg *msg) {
+ debugC(ERROR_DETAILED, kDebugScripts, "%s TrueTalkNotifySpeechEndedMsg flags=%x dialogueId=%d", getName().c_str(), _npcFlags, msg->_dialogueId);
_npcFlags &= ~NPCFLAG_SPEAKING;
- --_field100;
+ --_speechCounter;
_speechDuration = 0;
if (!(_npcFlags & NPCFLAG_8)) {
- CNPCPlayTalkingAnimationMsg msg1(0, 2, 0);
+ CNPCPlayTalkingAnimationMsg msg1(0, 2, nullptr);
msg1.execute(this);
CNPCQueueIdleAnimMsg msg2;
msg2.execute(this);
@@ -140,8 +145,8 @@ bool CTrueTalkNPC::TrueTalkNotifySpeechEndedMsg(CTrueTalkNotifySpeechEndedMsg *m
}
bool CTrueTalkNPC::MovieEndMsg(CMovieEndMsg *msg) {
- if (_npcFlags & NPCFLAG_2) {
- _npcFlags &= ~NPCFLAG_2;
+ if (_npcFlags & NPCFLAG_IDLING) {
+ _npcFlags &= ~NPCFLAG_IDLING;
CNPCQueueIdleAnimMsg idleMsg;
idleMsg.execute(this);
return true;
@@ -170,8 +175,8 @@ bool CTrueTalkNPC::NPCQueueIdleAnimMsg(CNPCQueueIdleAnimMsg *msg) {
}
bool CTrueTalkNPC::TimerMsg(CTimerMsg *msg) {
- if (_npcFlags & NPCFLAG_4) {
- if (_field100 > 0)
+ if (_npcFlags & NPCFLAG_START_IDLING) {
+ if (_speechCounter > 0)
return false;
CNPCPlayIdleAnimationMsg idleMsg;
@@ -181,7 +186,7 @@ bool CTrueTalkNPC::TimerMsg(CTimerMsg *msg) {
animMsg.execute(this);
}
- _npcFlags &= ~NPCFLAG_2;
+ _npcFlags &= ~NPCFLAG_IDLING;
}
}
diff --git a/engines/titanic/npcs/true_talk_npc.h b/engines/titanic/npcs/true_talk_npc.h
index 3adf055449..d9ea037a72 100644
--- a/engines/titanic/npcs/true_talk_npc.h
+++ b/engines/titanic/npcs/true_talk_npc.h
@@ -30,8 +30,8 @@
namespace Titanic {
enum NpcFlag {
- NPCFLAG_SPEAKING = 1, NPCFLAG_2 = 2, NPCFLAG_4 = 4, NPCFLAG_8 = 8,
- NPCFLAG_10000 = 0x10000, NPCFLAG_20000 = 0x20000,
+ NPCFLAG_SPEAKING = 1, NPCFLAG_IDLING = 2, NPCFLAG_START_IDLING = 4,
+ NPCFLAG_8 = 8, NPCFLAG_10000 = 0x10000, NPCFLAG_20000 = 0x20000,
NPCFLAG_40000 = 0x40000, NPCFLAG_80000 = 0x80000,
NPCFLAG_100000 = 0x100000, NPCFLAG_200000 = 0x200000,
NPCFLAG_400000 = 0x400000, NPCFLAG_800000 = 0x800000,
@@ -66,7 +66,7 @@ protected:
protected:
void processInput(CTextInputMsg *msg, CViewItem *view);
public:
- int _field100;
+ int _speechCounter;
public:
CLASSDEF;
CTrueTalkNPC();
diff --git a/engines/titanic/pet_control/pet_control.cpp b/engines/titanic/pet_control/pet_control.cpp
index 4cdab24f6d..415d1e9821 100644
--- a/engines/titanic/pet_control/pet_control.cpp
+++ b/engines/titanic/pet_control/pet_control.cpp
@@ -27,6 +27,7 @@
#include "titanic/messages/pet_messages.h"
#include "titanic/game_manager.h"
#include "titanic/game_state.h"
+#include "titanic/titanic.h"
namespace Titanic {
@@ -37,6 +38,7 @@ BEGIN_MESSAGE_MAP(CPetControl, CGameObject)
ON_MESSAGE(MouseDragEndMsg)
ON_MESSAGE(MouseButtonUpMsg)
ON_MESSAGE(MouseDoubleClickMsg)
+ ON_MESSAGE(MouseWheelMsg)
ON_MESSAGE(KeyCharMsg)
ON_MESSAGE(VirtualKeyCharMsg)
ON_MESSAGE(TimerMsg)
@@ -154,7 +156,7 @@ void CPetControl::postLoad() {
if (!_remoteTargetName.empty() && root)
_remoteTarget = dynamic_cast<CGameObject *>(root->findByName(_remoteTargetName));
- setArea(_currentArea);
+ setArea(_currentArea, true);
loaded();
}
@@ -184,7 +186,9 @@ void CPetControl::resetRemoteTarget() {
}
void CPetControl::setActiveNPC(CTrueTalkNPC *npc) {
- if (_activeNPC == npc) {
+ if (_activeNPC != npc) {
+ _activeNPC = npc;
+
if (_activeNPC) {
_activeNPCName = npc->getName();
_conversations.displayNPCName(npc);
@@ -207,8 +211,8 @@ void CPetControl::resetActiveNPC() {
_activeNPCName = "";
}
-PetArea CPetControl::setArea(PetArea newArea) {
- if (newArea == _currentArea || !isAreaActive())
+PetArea CPetControl::setArea(PetArea newArea, bool forceChange) {
+ if ((!forceChange && newArea == _currentArea) || !isAreaActive())
return _currentArea;
// Signal the currently active area that it's being left
@@ -315,6 +319,13 @@ bool CPetControl::MouseDoubleClickMsg(CMouseDoubleClickMsg *msg) {
return _sections[_currentArea]->MouseDoubleClickMsg(msg);
}
+bool CPetControl::MouseWheelMsg(CMouseWheelMsg *msg) {
+ if (!containsPt(msg->_mousePos) || isInputLocked())
+ return false;
+
+ return _sections[_currentArea]->MouseWheelMsg(msg);
+}
+
bool CPetControl::KeyCharMsg(CKeyCharMsg *msg) {
if (isInputLocked())
return false;
@@ -377,7 +388,7 @@ bool CPetControl::checkDragEnd(CGameObject *item) const {
}
void CPetControl::displayMessage(StringId stringId, int param) const {
- CString msg = CString::format(_strings[stringId].c_str(), param);
+ CString msg = CString::format(g_vm->_strings[stringId].c_str(), param);
_sections[_currentArea]->displayMessage(msg);
}
@@ -388,7 +399,7 @@ void CPetControl::displayMessage(const CString &str, int param) const {
void CPetControl::addTranslation(StringId id1, StringId id2) {
setArea(PET_TRANSLATION);
- _translation.addTranslation(_strings[id1], _strings[id2]);
+ _translation.addTranslation(g_vm->_strings[id1], g_vm->_strings[id2]);
}
void CPetControl::clearTranslation() {
@@ -461,7 +472,7 @@ void CPetControl::moveToHiddenRoom(CTreeItem *item) {
CRoomItem *room = getHiddenRoom();
if (room) {
item->detach();
- room->addUnder(item);
+ item->addUnder(room);
}
}
@@ -594,6 +605,7 @@ void CPetControl::onSummonBot(const CString &name, int val) {
COnSummonBotMsg summonMsg(val);
summonMsg.execute(bot);
+ makeDirty();
}
}
@@ -609,10 +621,13 @@ bool CPetControl::dismissBot(const CString &name) {
CDismissBotMsg dismissMsg;
for (CTreeItem *treeItem = view->getFirstChild(); treeItem;
treeItem = treeItem->scan(view)) {
- if (!treeItem->getName().compareToIgnoreCase(name))
- dismissMsg.execute(treeItem);
- else
- result = true;
+ CGameObject *obj = dynamic_cast<CGameObject *>(treeItem);
+ if (obj) {
+ if (!obj->getName().compareToIgnoreCase(name))
+ result = true;
+ else
+ dismissMsg.execute(treeItem);
+ }
}
return result;
@@ -686,7 +701,7 @@ void CPetControl::resetDials0() {
int CPetControl::getMailDest(const CRoomFlags &roomFlags) const {
if (!roomFlags.isSuccUBusRoomFlags())
- return roomFlags.getPassengerClassNum();
+ return (int)roomFlags.getPassengerClassNum();
return roomFlags.getSuccUBusNum(roomFlags.getSuccUBusRoomName());
}
diff --git a/engines/titanic/pet_control/pet_control.h b/engines/titanic/pet_control/pet_control.h
index d42dff598c..34d1330b52 100644
--- a/engines/titanic/pet_control/pet_control.h
+++ b/engines/titanic/pet_control/pet_control.h
@@ -68,7 +68,6 @@ private:
CRoomItem *_hiddenRoom;
Rect _drawBounds;
PetEventInfo _timers[2];
- Strings _strings;
private:
/**
* Returns true if the control is in a valid state
@@ -116,6 +115,7 @@ protected:
bool MouseDragEndMsg(CMouseDragEndMsg *msg);
bool MouseButtonUpMsg(CMouseButtonUpMsg *msg);
bool MouseDoubleClickMsg(CMouseDoubleClickMsg *msg);
+ bool MouseWheelMsg(CMouseWheelMsg *msg);
bool KeyCharMsg(CKeyCharMsg *msg);
bool VirtualKeyCharMsg(CVirtualKeyCharMsg *msg);
bool TimerMsg(CTimerMsg *msg);
@@ -180,7 +180,7 @@ public:
/**
* Sets the currently viewed area within the PET
*/
- PetArea setArea(PetArea newSection);
+ PetArea setArea(PetArea newSection, bool forceChange = false);
/**
* Hides the text cursor in the current section, if applicable
@@ -421,14 +421,14 @@ public:
/**
* Gives the player a new assigned room in the specified passenger class
*/
- void reassignRoom(int passClassNum) {
+ void reassignRoom(PassengerClass passClassNum) {
_rooms.reassignRoom(passClassNum);
}
/**
* Change the current location passenger class
*/
- bool changeLocationClass(int newClassNum) {
+ bool changeLocationClass(PassengerClass newClassNum) {
return _rooms.changeLocationClass(newClassNum);
}
diff --git a/engines/titanic/pet_control/pet_conversations.cpp b/engines/titanic/pet_control/pet_conversations.cpp
index 58dcd57384..c2cddd9598 100644
--- a/engines/titanic/pet_control/pet_conversations.cpp
+++ b/engines/titanic/pet_control/pet_conversations.cpp
@@ -23,6 +23,7 @@
#include "titanic/pet_control/pet_conversations.h"
#include "titanic/pet_control/pet_control.h"
#include "titanic/game_manager.h"
+#include "titanic/titanic.h"
namespace Titanic {
@@ -116,11 +117,11 @@ void CPetConversations::draw(CScreenManager *screenManager) {
_textInput.draw(screenManager);
if (_logChanged) {
- int startIndex = _log.getLinesStart();
- if (startIndex >= 0) {
- int npcNum = _log.getNPCNum(1, startIndex);
+ int endIndex = _log.displayEndIndex();
+ if (endIndex >= 0) {
+ int npcNum = _log.getNPCNum(1, endIndex);
if (npcNum > 0 && npcNum < 10)
- _npcNum = npcNum;
+ _npcNum = npcNum - 1;
}
_logChanged = false;
@@ -164,7 +165,7 @@ bool CPetConversations::MouseButtonUpMsg(CMouseButtonUpMsg *msg) {
if (_doorBot.MouseButtonUpMsg(msg->_mousePos)) {
switch (canSummonBot("DoorBot")) {
case SUMMON_CANT:
- _log.addLine("Sadly, it is not possible to summon the DoorBot from this location.", getColor(1));
+ _log.addLine(g_vm->_strings[CANT_SUMMON_DOORBOT], getColor(1));
break;
case SUMMON_CAN:
summonBot("DoorBot");
@@ -181,7 +182,7 @@ bool CPetConversations::MouseButtonUpMsg(CMouseButtonUpMsg *msg) {
if (_bellBot.MouseButtonUpMsg(msg->_mousePos)) {
switch (canSummonBot("BellBot")) {
case SUMMON_CANT:
- _log.addLine("Sadly, it is not possible to summon the BellBot from this location.", getColor(1));
+ _log.addLine(g_vm->_strings[CANT_SUMMON_BELLBOT], getColor(1));
break;
case SUMMON_CAN:
summonBot("BellBot");
@@ -203,6 +204,15 @@ bool CPetConversations::MouseDoubleClickMsg(CMouseDoubleClickMsg *msg) {
|| _scrollUp.MouseDoubleClickMsg(msg->_mousePos);
}
+bool CPetConversations::MouseWheelMsg(CMouseWheelMsg *msg) {
+ if (msg->_wheelUp)
+ scrollUp();
+ else
+ scrollDown();
+
+ return true;
+}
+
bool CPetConversations::KeyCharMsg(CKeyCharMsg *msg) {
Common::KeyState keyState;
keyState.ascii = msg->_key;
@@ -268,40 +278,42 @@ void CPetConversations::timerExpired(int val) {
}
void CPetConversations::displayNPCName(CGameObject *npc) {
+ const Strings &strings = g_vm->_strings;
+
if (npc) {
displayMessage(CString());
- CString msg = "Talking to ";
+ CString msg = strings[TALKING_TO];
CString name = npc->getName();
int id = 1;
if (name.contains("Doorbot")) {
- msg += "the DoorBot";
- } else if (name.contains("DeskBot")) {
+ msg += strings[DOORBOT_NAME];
+ } else if (name.contains("Deskbot")) {
id = 2;
- msg += "the DeskBot";
+ msg += strings[DESKBOT_NAME];
} else if (name.contains("LiftBot")) {
id = 3;
- msg += "a LiftBot";
+ msg += strings[LIFTBOT_NAME];
} else if (name.contains("Parrot")) {
id = 4;
- msg += "the Parrot";
+ msg += strings[PARROT_NAME];
} else if (name.contains("BarBot")) {
id = 5;
- msg += "the BarBot";
+ msg += strings[BARBOT_NAME];
} else if (name.contains("ChatterBot")) {
id = 6;
- msg += "a ChatterBot";
+ msg += strings[CHATTERBOT_NAME];
} else if (name.contains("BellBot")) {
id = 7;
- msg += "the BellBot";
+ msg += strings[BELLBOT_NAME];
} else if (name.contains("Maitre")) {
id = 8;
- msg += "the Maitre d'Bot";
+ msg += strings[MAITRED_NAME];
} else if (name.contains("Succubus") || name.contains("Sub")) {
id = 9;
- msg += "a Succ-U-Bus";
+ msg += strings[SUCCUBUS_NAME];
} else {
- msg += "Unknown";
+ msg += strings[UNKNOWN_NAME];
}
_log.setNPC(1, id);
@@ -418,7 +430,7 @@ int CPetConversations::canSummonBot(const CString &name) {
void CPetConversations::summonBot(const CString &name) {
if (_petControl) {
- if (_petControl->getPassengerClass() >= 4) {
+ if (_petControl->getPassengerClass() >= UNCHECKED) {
_petControl->displayMessage(AT_LEAST_3RD_CLASS_FOR_HELP);
} else {
_petControl->summonBot(name, 0);
@@ -498,7 +510,7 @@ void CPetConversations::textLineEntered(const CString &textLine) {
if (!inputMsg._response.empty())
_log.addLine(inputMsg._response);
} else {
- _log.addLine("There is no one here to talk to", getColor(1));
+ _log.addLine(g_vm->_strings[NO_ONE_TO_TALK_TO], getColor(1));
}
// Clear input line and scroll log down to end to show response
diff --git a/engines/titanic/pet_control/pet_conversations.h b/engines/titanic/pet_control/pet_conversations.h
index efb7db4277..1837e5df2a 100644
--- a/engines/titanic/pet_control/pet_conversations.h
+++ b/engines/titanic/pet_control/pet_conversations.h
@@ -164,6 +164,7 @@ public:
virtual bool MouseButtonDownMsg(CMouseButtonDownMsg *msg);
virtual bool MouseButtonUpMsg(CMouseButtonUpMsg *msg);
virtual bool MouseDoubleClickMsg(CMouseDoubleClickMsg *msg);
+ virtual bool MouseWheelMsg(CMouseWheelMsg *msg);
virtual bool KeyCharMsg(CKeyCharMsg *msg);
virtual bool VirtualKeyCharMsg(CVirtualKeyCharMsg *msg);
diff --git a/engines/titanic/pet_control/pet_drag_chev.cpp b/engines/titanic/pet_control/pet_drag_chev.cpp
index 7816570a23..4fe64283ff 100644
--- a/engines/titanic/pet_control/pet_drag_chev.cpp
+++ b/engines/titanic/pet_control/pet_drag_chev.cpp
@@ -54,20 +54,16 @@ bool CPetDragChev::MouseDragMoveMsg(CMouseDragMoveMsg *msg) {
}
bool CPetDragChev::MouseDragEndMsg(CMouseDragEndMsg *msg) {
- if (msg->_dropTarget) {
- CSuccUBus *succubus = dynamic_cast<CSuccUBus *>(msg->_dropTarget);
+ CSuccUBus *succubus = dynamic_cast<CSuccUBus *>(msg->_dropTarget);
- if (succubus) {
- CSetChevRoomBits chevMsg(_id);
- chevMsg.execute(succubus);
- } else {
- CPetControl *petControl = getPetControl();
- if (petControl && petControl->contains(msg->_mousePos)
- && msg->_mousePos.x < 528) {
- if (petControl->checkDragEnd(this))
- petMoveToHiddenRoom();
- }
- }
+ if (succubus) {
+ CSetChevRoomBits chevMsg(_id);
+ chevMsg.execute(succubus);
+ } else {
+ CPetControl *petControl = getPetControl();
+ if (!petControl || !petControl->contains(msg->_mousePos)
+ || msg->_mousePos.x >= 528 || !petControl->checkDragEnd(this))
+ petMoveToHiddenRoom();
}
return true;
diff --git a/engines/titanic/pet_control/pet_gfx_element.cpp b/engines/titanic/pet_control/pet_gfx_element.cpp
index e43c847bb1..3fdfd02f3a 100644
--- a/engines/titanic/pet_control/pet_gfx_element.cpp
+++ b/engines/titanic/pet_control/pet_gfx_element.cpp
@@ -49,11 +49,11 @@ void CPetGfxElement::reset(const CString &name, CPetControl *petControl, PetElem
return;
CString numString(3);
- int classNum = petControl->getPassengerClass();
+ PassengerClass classNum = petControl->getPassengerClass();
- if (classNum >= 1 && classNum <= 3) {
+ if (classNum >= FIRST_CLASS && classNum <= THIRD_CLASS) {
numString = CString(classNum);
- } else if (classNum == 4) {
+ } else if (classNum == UNCHECKED) {
int stateC = petControl->getPriorClass();
if (stateC == 1)
numString = CString(stateC);
diff --git a/engines/titanic/pet_control/pet_glyphs.cpp b/engines/titanic/pet_control/pet_glyphs.cpp
index bd05342095..5cc428b104 100644
--- a/engines/titanic/pet_control/pet_glyphs.cpp
+++ b/engines/titanic/pet_control/pet_glyphs.cpp
@@ -101,9 +101,9 @@ void CPetGlyphs::setup(int numVisible, CPetSection *owner) {
int buttonsLeft = numVisible * 70 + 21;
_scrollLeft.setBounds(Rect(0, 0, 31, 15));
- _scrollLeft.translate(buttonsLeft, 373);
+ _scrollLeft.translate(buttonsLeft + 7, 373);
_scrollRight.setBounds(Rect(0, 0, 31, 15));
- _scrollRight.translate(buttonsLeft, 413);
+ _scrollRight.translate(buttonsLeft + 7, 413);
}
void CPetGlyphs::reset() {
@@ -155,7 +155,7 @@ void CPetGlyphs::draw(CScreenManager *screenManager) {
int itemIndex = getItemIndex(index);
if (itemIndex >= 0 && itemIndex < listSize) {
- Point pt = getPosition(itemIndex);
+ Point pt = getPosition(index);
CPetGlyph *glyph = getGlyph(itemIndex);
if (glyph)
diff --git a/engines/titanic/pet_control/pet_inventory.cpp b/engines/titanic/pet_control/pet_inventory.cpp
index be01146398..c1eb0754a2 100644
--- a/engines/titanic/pet_control/pet_inventory.cpp
+++ b/engines/titanic/pet_control/pet_inventory.cpp
@@ -242,7 +242,7 @@ void CPetInventory::playMovie(CGameObject *movie, int flag) {
if (_movie) {
if (flag)
- _movie->playMovie(0, 14, 1);
+ _movie->playMovie(0, 14, MOVIE_REPEAT);
else
_movie->playMovie(0);
}
diff --git a/engines/titanic/pet_control/pet_inventory_glyphs.cpp b/engines/titanic/pet_control/pet_inventory_glyphs.cpp
index 03293eb453..e6087b5c02 100644
--- a/engines/titanic/pet_control/pet_inventory_glyphs.cpp
+++ b/engines/titanic/pet_control/pet_inventory_glyphs.cpp
@@ -295,7 +295,7 @@ void CPetInventoryGlyph::startBackgroundMovie() {
if (_owner) {
CPetInventory *section = dynamic_cast<CPetInventory *>(_owner->getOwner());
if (section)
- section->playMovie(_background, 1);
+ section->playMovie(_background, MOVIE_REPEAT);
}
}
@@ -303,7 +303,7 @@ void CPetInventoryGlyph::startForegroundMovie() {
if (_owner) {
CPetInventory *section = dynamic_cast<CPetInventory *>(_owner->getOwner());
if (section)
- section->playMovie(_image, 1);
+ section->playMovie(_image, MOVIE_REPEAT);
}
}
@@ -311,7 +311,7 @@ void CPetInventoryGlyph::stopMovie() {
if (_owner) {
CPetInventory *section = dynamic_cast<CPetInventory *>(_owner->getOwner());
if (section)
- section->playMovie(nullptr, 1);
+ section->playMovie(nullptr, MOVIE_REPEAT);
}
}
diff --git a/engines/titanic/pet_control/pet_load_save.cpp b/engines/titanic/pet_control/pet_load_save.cpp
index 136953cab7..aa438c06d3 100644
--- a/engines/titanic/pet_control/pet_load_save.cpp
+++ b/engines/titanic/pet_control/pet_load_save.cpp
@@ -159,7 +159,7 @@ void CPetLoadSave::highlightChange() {
uint col = section ? section->getColor(3) : 0;
for (int idx = 0; idx < SAVEGAME_SLOTS_COUNT; ++idx)
- _slotNames[idx].setColor(col);
+ _slotNames[idx].setLineColor(0, col);
if (_savegameSlotNum != -1) {
col = section ? section->getColor(4) : 0;
diff --git a/engines/titanic/pet_control/pet_real_life.h b/engines/titanic/pet_control/pet_real_life.h
index b359d285c8..7c7101a84b 100644
--- a/engines/titanic/pet_control/pet_real_life.h
+++ b/engines/titanic/pet_control/pet_real_life.h
@@ -87,11 +87,6 @@ public:
virtual CGameObject *dragEnd(const Point &pt) const { return nullptr; }
/**
- * Display a message
- */
- virtual void displayMessage(const CString &msg) {}
-
- /**
* Returns true if the object is in a valid state
*/
virtual bool isValid(CPetControl *petControl);
diff --git a/engines/titanic/pet_control/pet_remote.cpp b/engines/titanic/pet_control/pet_remote.cpp
index 7e98308114..46af55c4d3 100644
--- a/engines/titanic/pet_control/pet_remote.cpp
+++ b/engines/titanic/pet_control/pet_remote.cpp
@@ -118,10 +118,10 @@ bool CPetRemote::reset() {
_right.reset("PetRight", _petControl, MODE_UNSELECTED);
_top.reset("PetTopUp", _petControl, MODE_SELECTED);
_top.reset("PetTop", _petControl, MODE_UNSELECTED);
- _bottom.reset("PetBottomUp", _petControl, MODE_SELECTED);
- _bottom.reset("PetBottom", _petControl, MODE_UNSELECTED);
- _action.reset("PetActionUp", _petControl, MODE_SELECTED);
- _action.reset("PetAction", _petControl, MODE_UNSELECTED);
+ _bottom.reset("PetBottomUp", _petControl, MODE_UNSELECTED);
+ _bottom.reset("PetBottom", _petControl, MODE_SELECTED);
+ _action.reset("PetActionUp", _petControl, MODE_UNSELECTED);
+ _action.reset("PetAction", _petControl, MODE_SELECTED);
_send.reset("PetActSend0", _petControl, MODE_UNSELECTED);
_send.reset("PetActSend1", _petControl, MODE_SELECTED);
@@ -314,8 +314,8 @@ bool CPetRemote::getRemoteData(int roomIndex, Common::Array<uint> &indexes) {
const byte *p = &REMOTE_DATA[0];
for (int idx = 0; idx < TOTAL_ROOMS; ++idx) {
if (*p == roomIndex) {
- for (int ctr = 0; ctr < *p; ++ctr)
- indexes.push_back(p[ctr + 1]);
+ for (int ctr = 0; ctr < p[1]; ++ctr)
+ indexes.push_back(p[ctr + 2]);
return true;
}
diff --git a/engines/titanic/pet_control/pet_remote_glyphs.cpp b/engines/titanic/pet_control/pet_remote_glyphs.cpp
index aa756bc941..2e69ad6bce 100644
--- a/engines/titanic/pet_control/pet_remote_glyphs.cpp
+++ b/engines/titanic/pet_control/pet_remote_glyphs.cpp
@@ -24,6 +24,7 @@
#include "titanic/pet_control/pet_remote.h"
#include "titanic/pet_control/pet_control.h"
#include "titanic/messages/pet_messages.h"
+#include "titanic/support/strings.h"
#include "titanic/titanic.h"
namespace Titanic {
@@ -58,22 +59,22 @@ bool CBasicRemoteGlyph::setup(CPetControl *petControl, CPetGlyphs *owner) {
CPetRemoteGlyph::setup(petControl, owner);
setDefaults(_gfxName, petControl);
if (owner)
- _gfxElement = getElement(18);
+ _callButton = getElement(18);
return true;
}
void CBasicRemoteGlyph::draw2(CScreenManager *screenManager) {
- if (_gfxElement)
- _gfxElement->draw(screenManager);
+ if (_callButton)
+ _callButton->draw(screenManager);
}
bool CBasicRemoteGlyph::MouseButtonDownMsg(const Point &pt) {
- return _gfxElement && _gfxElement->MouseButtonDownMsg(pt);
+ return _callButton && _callButton->MouseButtonDownMsg(pt);
}
bool CBasicRemoteGlyph::MouseButtonUpMsg(const Point &pt) {
- if (_gfxElement && _gfxElement->MouseButtonUpMsg(pt)) {
- getOwner()->generateMessage(RMSG_ACTIVATE, "Lift");
+ if (_callButton && _callButton->MouseButtonUpMsg(pt)) {
+ getOwner()->generateMessage(RMSG_ACTIVATE, _msgString);
return true;
}
@@ -124,22 +125,22 @@ bool CRemoteGotoGlyph::setup(CPetControl *petControl, CPetGlyphs *owner) {
setDefaults(_gfxName, petControl);
if (owner)
- _gfxElement = getElement(7);
+ _goButton = getElement(7);
return true;
}
void CRemoteGotoGlyph::draw2(CScreenManager *screenManager) {
- if (_gfxElement)
- _gfxElement->draw(screenManager);
+ if (_goButton)
+ _goButton->draw(screenManager);
}
bool CRemoteGotoGlyph::MouseButtonDownMsg(const Point &pt) {
- return _gfxElement && _gfxElement->MouseButtonDownMsg(pt);
+ return _goButton && _goButton->MouseButtonDownMsg(pt);
}
bool CRemoteGotoGlyph::MouseButtonUpMsg(const Point &pt) {
- if (!_gfxElement || !_gfxElement->MouseButtonUpMsg(pt))
+ if (!_goButton || !_goButton->MouseButtonUpMsg(pt))
return false;
CPetControl *petControl = getPetControl();
@@ -216,7 +217,7 @@ bool CTelevisionControlGlyph::MouseButtonUpMsg(const Point &pt) {
}
void CTelevisionControlGlyph::getTooltip(CPetText *text) {
- text->setText("Television control");
+ text->setText(TELEVISION_CONTROL);
}
/*------------------------------------------------------------------------*/
@@ -280,7 +281,7 @@ bool CEntertainmentDeviceGlyph::MouseButtonUpMsg(const Point &pt) {
}
void CEntertainmentDeviceGlyph::getTooltip(CPetText *text) {
- text->setText("Operate visual entertainment device");
+ text->setText(OPERATE_ENTERTAINMENT);
}
/*------------------------------------------------------------------------*/
@@ -334,7 +335,7 @@ bool COperateLightsGlyph::MouseButtonUpMsg(const Point &pt) {
}
void COperateLightsGlyph::getTooltip(CPetText *text) {
- text->setText("Operate the lights");
+ text->setText(OPERATE_LIGHTS);
}
/*------------------------------------------------------------------------*/
@@ -346,7 +347,7 @@ bool CDeployFloralGlyph::setup(CPetControl *petControl, CPetGlyphs *owner) {
}
void CDeployFloralGlyph::getTooltip(CPetText *text) {
- text->setText("Deploy floral enhancement");
+ text->setText(DEPLOY_FLORAL_ENHANCEMENT);
}
@@ -359,7 +360,7 @@ bool CDeployFullyRelaxationGlyph::setup(CPetControl *petControl, CPetGlyphs *own
}
void CDeployFullyRelaxationGlyph::getTooltip(CPetText *text) {
- text->setText("Deploy fully recumbent relaxation device");
+ text->setText(DEPLOY_FULLY_RELAXATION);
}
/*------------------------------------------------------------------------*/
@@ -371,7 +372,7 @@ bool CDeployComfortGlyph::setup(CPetControl *petControl, CPetGlyphs *owner) {
}
void CDeployComfortGlyph::getTooltip(CPetText *text) {
- text->setText("Deploy comfort workstation");
+ text->setText(DEPLOY_COMFORT_WORKSTATION);
}
/*------------------------------------------------------------------------*/
@@ -383,7 +384,7 @@ bool CDeployMinorStorageGlyph::setup(CPetControl *petControl, CPetGlyphs *owner)
}
void CDeployMinorStorageGlyph::getTooltip(CPetText *text) {
- text->setText("Deploy minor horizontally mobile storage compartment");
+ text->setText(DEPLOY_MINOR_STORAGE);
}
/*------------------------------------------------------------------------*/
@@ -395,7 +396,7 @@ bool CDeployMajorRelaxationGlyph::setup(CPetControl *petControl, CPetGlyphs *own
}
void CDeployMajorRelaxationGlyph::getTooltip(CPetText *text) {
- text->setText("Deploy major semi-recumbent relaxation device");
+ text->setText(DEPLOY_MAJOR_RELAXATION);
}
/*------------------------------------------------------------------------*/
@@ -407,7 +408,7 @@ bool CInflateRelaxationGlyph::setup(CPetControl *petControl, CPetGlyphs *owner)
}
void CInflateRelaxationGlyph::getTooltip(CPetText *text) {
- text->setText("Inflate fully recumbent relaxation device ");
+ text->setText(INFLATE_RELAXATION_DEVICE);
}
/*------------------------------------------------------------------------*/
@@ -419,7 +420,7 @@ bool CDeployMaintenanceGlyph::setup(CPetControl *petControl, CPetGlyphs *owner)
}
void CDeployMaintenanceGlyph::getTooltip(CPetText *text) {
- text->setText("Deploy personal maintenance hub");
+ text->setText(DEPLOY_MAINTENANCE_HUB);
}
/*------------------------------------------------------------------------*/
@@ -431,7 +432,7 @@ bool CDeployWorkSurfaceGlyph::setup(CPetControl *petControl, CPetGlyphs *owner)
}
void CDeployWorkSurfaceGlyph::getTooltip(CPetText *text) {
- text->setText("Deploy executive horizontal worksurface");
+ text->setText(DEPLOY_EXECUTIVE_SURFACE);
}
/*------------------------------------------------------------------------*/
@@ -443,7 +444,7 @@ bool CDeployMinorRelaxationGlyph::setup(CPetControl *petControl, CPetGlyphs *own
}
void CDeployMinorRelaxationGlyph::getTooltip(CPetText *text) {
- text->setText("Deploy minor semi-recumbent relaxation device");
+ text->setText(DEPLOY_MINOR_RELAXATION);
}
/*------------------------------------------------------------------------*/
@@ -455,7 +456,7 @@ bool CDeploySinkGlyph::setup(CPetControl *petControl, CPetGlyphs *owner) {
}
void CDeploySinkGlyph::getTooltip(CPetText *text) {
- text->setText("Deploy aqueous cleansing receptacle");
+ text->setText(DEPLOY_SINK);
}
/*------------------------------------------------------------------------*/
@@ -467,7 +468,7 @@ bool CDeployMajorStorageGlyph::setup(CPetControl *petControl, CPetGlyphs *owner)
}
void CDeployMajorStorageGlyph::getTooltip(CPetText *text) {
- text->setText("Deploy major horizontally mobile storage compartment");
+ text->setText(DEPLOY_MAJOR_STORAGE);
}
/*------------------------------------------------------------------------*/
@@ -515,7 +516,7 @@ bool CSuccubusDeliveryGlyph::MouseButtonUpMsg(const Point &pt) {
}
void CSuccubusDeliveryGlyph::getTooltip(CPetText *text) {
- text->setText("Succ-U-Bus delivery system control");
+ text->setText(SUCCUBUS_DELIVERY_SYSTEM);
}
/*------------------------------------------------------------------------*/
@@ -554,9 +555,67 @@ bool CNavigationControllerGlyph::MouseButtonUpMsg(const Point &pt) {
}
void CNavigationControllerGlyph::getTooltip(CPetText *text) {
- text->setText("Navigation controller");
+ text->setText(NAVIGATION_CONTROLLER);
+}
+
+/*------------------------------------------------------------------------*/
+
+CSummonElevatorGlyph::CSummonElevatorGlyph() : CBasicRemoteGlyph(
+ "3PetLift", g_vm->_strings[SUMMON_ELEVATOR], "Lift") {
+}
+
+/*------------------------------------------------------------------------*/
+
+CSummonPelleratorGlyph::CSummonPelleratorGlyph() : CBasicRemoteGlyph(
+ "3PetPellerator", g_vm->_strings[SUMMON_PELLERATOR], "Pellerator") {
+}
+
+/*------------------------------------------------------------------------*/
+
+CGotoBottomOfWellGlyph::CGotoBottomOfWellGlyph() : CRemoteGotoGlyph("3PetBotOfWell",
+ g_vm->_strings[GO_TO_BOTTOM_OF_WELL], 10) {
+}
+
+/*------------------------------------------------------------------------*/
+
+CGotoTopOfWellGlyph::CGotoTopOfWellGlyph() : CRemoteGotoGlyph("3PetTopOfWell",
+ g_vm->_strings[GO_TO_TOP_OF_WELL], 32) {
+}
+
+/*------------------------------------------------------------------------*/
+
+CGotoStateroomGlyph::CGotoStateroomGlyph() : CRemoteGotoGlyph("3PetRoom",
+ g_vm->_strings[GO_TO_STATEROOM], 33) {
+}
+
+/*------------------------------------------------------------------------*/
+
+CGotoBarGlyph::CGotoBarGlyph() : CRemoteGotoGlyph("3PetBar",
+ g_vm->_strings[GO_TO_BAR], 7) {
+}
+
+/*------------------------------------------------------------------------*/
+
+CGotoPromenadeDeckGlyph::CGotoPromenadeDeckGlyph() : CRemoteGotoGlyph("3PetPromDeck",
+ g_vm->_strings[GO_TO_PROMENADE_DECK], 23) {
}
/*------------------------------------------------------------------------*/
+CGotoArboretumGlyph::CGotoArboretumGlyph() : CRemoteGotoGlyph("3PetArboretum",
+ g_vm->_strings[GO_TO_ARBORETUM], 5) {
+}
+
+/*------------------------------------------------------------------------*/
+
+CGotoMusicRoomGlyph::CGotoMusicRoomGlyph() : CRemoteGotoGlyph("3PetMusicRoom",
+ g_vm->_strings[GO_TO_MUSIC_ROOM], 20) {
+}
+
+/*------------------------------------------------------------------------*/
+
+CGotoRestaurantGlyph::CGotoRestaurantGlyph() : CRemoteGotoGlyph("3Pet1stClassRest",
+ g_vm->_strings[GO_TO_1ST_CLASS_RESTAURANT], 1) {
+}
+
} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_remote_glyphs.h b/engines/titanic/pet_control/pet_remote_glyphs.h
index 6114c81a9f..c661a1e2af 100644
--- a/engines/titanic/pet_control/pet_remote_glyphs.h
+++ b/engines/titanic/pet_control/pet_remote_glyphs.h
@@ -65,9 +65,9 @@ public:
class CPetRemoteGlyph : public CPetGlyph {
protected:
- CPetGfxElement *_gfxElement;
+ CPetGfxElement *_callButton;
protected:
- CPetRemoteGlyph() : CPetGlyph(), _gfxElement(nullptr) {}
+ CPetRemoteGlyph() : CPetGlyph(), _callButton(nullptr) {}
/**
* Set defaults for the glyph
@@ -150,13 +150,13 @@ public:
class CRemoteGotoGlyph : public CPetRemoteGlyph {
protected:
int _roomIndex;
- CPetGfxElement *_gfxElement;
+ CPetGfxElement *_goButton;
CString _gfxName, _tooltip;
public:
- CRemoteGotoGlyph() : CPetRemoteGlyph(), _gfxElement(nullptr), _roomIndex(21) {}
- CRemoteGotoGlyph(const CString &gfxName, const CString &tooltip) :
- CPetRemoteGlyph(), _gfxElement(nullptr), _roomIndex(21),
- _gfxName(gfxName), _tooltip(tooltip) {}
+ CRemoteGotoGlyph() : CPetRemoteGlyph(), _goButton(nullptr), _roomIndex(21) {}
+ CRemoteGotoGlyph(const CString &gfxName, const CString &tooltip, int roomIndex) :
+ CPetRemoteGlyph(), _gfxName(gfxName), _tooltip(tooltip), _roomIndex(roomIndex),
+ _goButton(nullptr) {}
/**
* Setup the glyph
@@ -186,14 +186,12 @@ public:
class CSummonElevatorGlyph : public CBasicRemoteGlyph {
public:
- CSummonElevatorGlyph() : CBasicRemoteGlyph(
- "3PetLift", "Summon Elevator", "Lift") {}
+ CSummonElevatorGlyph();
};
class CSummonPelleratorGlyph : public CBasicRemoteGlyph {
public:
- CSummonPelleratorGlyph() : CBasicRemoteGlyph(
- "3PetPellerator", "Summon Pellerator", "Pellerator") {}
+ CSummonPelleratorGlyph();
};
class CTelevisionControlGlyph : public CPetRemoteGlyph {
@@ -664,50 +662,42 @@ public:
class CGotoBottomOfWellGlyph : public CRemoteGotoGlyph {
public:
- CGotoBottomOfWellGlyph() : CRemoteGotoGlyph("3PetBotOfWell",
- "Go to the Bottom of the Well") {}
+ CGotoBottomOfWellGlyph();
};
class CGotoTopOfWellGlyph : public CRemoteGotoGlyph {
public:
- CGotoTopOfWellGlyph() : CRemoteGotoGlyph("3PetTopOfWell",
- "Go to the Top of the Well") {}
+ CGotoTopOfWellGlyph();
};
class CGotoStateroomGlyph : public CRemoteGotoGlyph {
public:
- CGotoStateroomGlyph() : CRemoteGotoGlyph("3PetRoom",
- "Go to your stateroom") {}
+ CGotoStateroomGlyph();
};
class CGotoBarGlyph : public CRemoteGotoGlyph {
public:
- CGotoBarGlyph() : CRemoteGotoGlyph("3PetBar",
- "Go to the Bar") {}
+ CGotoBarGlyph();
};
class CGotoPromenadeDeckGlyph : public CRemoteGotoGlyph {
public:
- CGotoPromenadeDeckGlyph() : CRemoteGotoGlyph("3PetPromDeck",
- "Go to the Promenade Deck") {}
+ CGotoPromenadeDeckGlyph();
};
class CGotoArboretumGlyph : public CRemoteGotoGlyph {
public:
- CGotoArboretumGlyph() : CRemoteGotoGlyph("3PetArboretum",
- "Go to the Arboretum") {}
+ CGotoArboretumGlyph();
};
class CGotoMusicRoomGlyph : public CRemoteGotoGlyph {
public:
- CGotoMusicRoomGlyph() : CRemoteGotoGlyph("3PetMusicRoom",
- "Go to the Music Room") {}
+ CGotoMusicRoomGlyph();
};
class CGotoRestaurantGlyph : public CRemoteGotoGlyph {
public:
- CGotoRestaurantGlyph() : CRemoteGotoGlyph("3Pet1stClassRest",
- "Go to the First Class Restaurant") {}
+ CGotoRestaurantGlyph();
};
} // End of namespace Titanic
diff --git a/engines/titanic/pet_control/pet_rooms.cpp b/engines/titanic/pet_control/pet_rooms.cpp
index fb92f2692d..d32667e5f7 100644
--- a/engines/titanic/pet_control/pet_rooms.cpp
+++ b/engines/titanic/pet_control/pet_rooms.cpp
@@ -56,6 +56,7 @@ bool CPetRooms::reset() {
void CPetRooms::draw(CScreenManager *screenManager) {
_petControl->drawSquares(screenManager, 6);
_plinth.draw(screenManager);
+ _glyphs.draw(screenManager);
_glyphItem.drawAt(screenManager, getGlyphPos(), false);
_text.draw(screenManager);
}
@@ -67,7 +68,7 @@ bool CPetRooms::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
if (!_glyphItem.contains(getGlyphPos(), msg->_mousePos))
return false;
- _glyphItem.MouseButtonDownMsg(msg->_mousePos);
+ _glyphItem.selectGlyph(getGlyphPos(), msg->_mousePos);
return true;
}
@@ -165,7 +166,8 @@ void CPetRooms::enter(PetArea oldArea) {
}
void CPetRooms::enterRoom(CRoomItem *room) {
-
+ if (room)
+ resetHighlight();
}
CPetText *CPetRooms::getText() {
@@ -221,7 +223,7 @@ bool CPetRooms::setupControl(CPetControl *petControl) {
_glyphs.setup(6, this);
_glyphs.setFlags(GFLAG_16);
_glyphItem.setup(petControl, &_glyphs);
- _glyphItem.set38(1);
+ _glyphItem.setFlag(1);
return true;
}
@@ -240,17 +242,17 @@ uint CPetRooms::getRoomFlags() const {
if (flags)
return flags;
- int classNum = roomFlags.whatPassengerClass(_floorNum);
+ PassengerClass classNum = roomFlags.whatPassengerClass(_floorNum);
roomFlags.setPassengerClassBits(classNum);
roomFlags.setFloorNum(_floorNum);
switch (classNum) {
- case 1:
+ case FIRST_CLASS:
roomFlags.setElevatorNum(_elevatorNum);
roomFlags.setRoomBits(_roomNum);
break;
- case 2:
+ case SECOND_CLASS:
if (_roomNum > 0) {
if (_roomNum >= 3) {
roomFlags.setElevatorNum(_elevatorNum == 1 || _elevatorNum == 2 ? 1 : 3);
@@ -264,7 +266,7 @@ uint CPetRooms::getRoomFlags() const {
}
break;
- case 3:
+ case THIRD_CLASS:
roomFlags.setElevatorNum(_elevatorNum);
roomFlags.setRoomBits(_roomNum + _field1CC * 6 - 6);
break;
@@ -276,7 +278,7 @@ uint CPetRooms::getRoomFlags() const {
return roomFlags.get();
}
-void CPetRooms::reassignRoom(int passClassNum) {
+void CPetRooms::reassignRoom(PassengerClass passClassNum) {
CPetRoomsGlyph *glyph = _glyphs.findAssignedRoom();
if (glyph)
// Flag the old assigned room as no longer assigned
@@ -329,12 +331,12 @@ CPetRoomsGlyph *CPetRooms::addGlyph(uint roomFlags, bool highlight_) {
}
}
-bool CPetRooms::changeLocationClass(int newClassNum) {
+bool CPetRooms::changeLocationClass(PassengerClass newClassNum) {
CPetRoomsGlyph *glyph = _glyphs.findAssignedRoom();
if (!glyph)
return 0;
- glyph->changeLocation(newClassNum);
+ glyph->changeClass(newClassNum);
return true;
}
diff --git a/engines/titanic/pet_control/pet_rooms.h b/engines/titanic/pet_control/pet_rooms.h
index 28d6553a33..efc7e3c969 100644
--- a/engines/titanic/pet_control/pet_rooms.h
+++ b/engines/titanic/pet_control/pet_rooms.h
@@ -26,6 +26,7 @@
#include "titanic/pet_control/pet_section.h"
#include "titanic/pet_control/pet_text.h"
#include "titanic/pet_control/pet_rooms_glyphs.h"
+#include "titanic/game_location.h"
namespace Titanic {
@@ -155,12 +156,12 @@ public:
/**
* Gives the player a new assigned room in the specified passenger class
*/
- void reassignRoom(int passClassNum);
+ void reassignRoom(PassengerClass passClassNum);
/**
* Change the current location passenger class
*/
- bool changeLocationClass(int newClassNum);
+ bool changeLocationClass(PassengerClass newClassNum);
/**
* Returns true if a room glyph exists with the given flags
diff --git a/engines/titanic/pet_control/pet_rooms_glyphs.cpp b/engines/titanic/pet_control/pet_rooms_glyphs.cpp
index e89e8072dc..f38ed28a80 100644
--- a/engines/titanic/pet_control/pet_rooms_glyphs.cpp
+++ b/engines/titanic/pet_control/pet_rooms_glyphs.cpp
@@ -30,15 +30,15 @@
namespace Titanic {
CPetRoomsGlyph::CPetRoomsGlyph() : CPetGlyph(),
- _roomFlags(0), _field38(0), _mode(RGM_UNASSIGNED),
- _object0(nullptr), _object1(nullptr), _object2(nullptr), _object3(nullptr),
- _object4(nullptr), _object5(nullptr), _object6(nullptr), _object7(nullptr) {
+ _roomFlags(0), _mailFlag(0), _mode(RGM_UNASSIGNED),
+ _chevLeftOnDim(nullptr), _chevLeftOffDim(nullptr), _chevLeftOnLit(nullptr), _chevLeftOffLit(nullptr),
+ _chevRightOnDim(nullptr), _chevRightOffDim(nullptr), _chevRightOnLit(nullptr), _chevRightOffLit(nullptr) {
}
CPetRoomsGlyph::CPetRoomsGlyph(uint flags) : CPetGlyph(),
- _roomFlags(flags), _field38(0), _mode(RGM_UNASSIGNED),
- _object0(nullptr), _object1(nullptr), _object2(nullptr), _object3(nullptr),
- _object4(nullptr), _object5(nullptr), _object6(nullptr), _object7(nullptr) {
+ _roomFlags(flags), _mailFlag(0), _mode(RGM_UNASSIGNED),
+ _chevLeftOnDim(nullptr), _chevLeftOffDim(nullptr), _chevLeftOnLit(nullptr), _chevLeftOffLit(nullptr),
+ _chevRightOnDim(nullptr), _chevRightOffDim(nullptr), _chevRightOnLit(nullptr), _chevRightOffLit(nullptr) {
}
bool CPetRoomsGlyph::setup(CPetControl *petControl, CPetGlyphs *owner) {
@@ -46,14 +46,14 @@ bool CPetRoomsGlyph::setup(CPetControl *petControl, CPetGlyphs *owner) {
return false;
CPetSection *section = owner->getOwner();
- _object0 = section->getBackground(9);
- _object1 = section->getBackground(12);
- _object4 = section->getBackground(13);
- _object5 = section->getBackground(10);
- _object2 = section->getBackground(11);
- _object3 = section->getBackground(14);
- _object6 = section->getBackground(15);
- _object7 = _object6;
+ _chevLeftOnDim = section->getBackground(8);
+ _chevLeftOffDim = section->getBackground(9);
+ _chevRightOnDim = section->getBackground(12);
+ _chevRightOffDim = section->getBackground(13);
+ _chevLeftOnLit = section->getBackground(10);
+ _chevLeftOffLit = section->getBackground(11);
+ _chevRightOnLit = section->getBackground(14);
+ _chevRightOffLit = section->getBackground(15);
return true;
}
@@ -69,19 +69,19 @@ void CPetRoomsGlyph::drawAt(CScreenManager *screenManager, const Point &pt, bool
uint roomBits = roomFlags.getRoomBits();
// Save a copy of object pointers that may be modified
- CGameObject *obj0 = _object0;
- CGameObject *obj1 = _object1;
- CGameObject *obj4 = _object4;
- CGameObject *obj5 = _object5;
-
- if (_field38 == 1 || isHighlighted_) {
- _object0 = _object2;
- _object1 = _object3;
- _object4 = _object6;
- _object5 = _object7;
+ CGameObject *leftOnDim = _chevLeftOnDim;
+ CGameObject *leftOffDim = _chevLeftOffDim;
+ CGameObject *rightOnDim = _chevRightOnDim;
+ CGameObject *rightOffDim = _chevRightOffDim;
+
+ if (_mailFlag || isHighlighted_) {
+ _chevLeftOnDim = _chevLeftOnLit;
+ _chevLeftOffDim = _chevLeftOffLit;
+ _chevRightOnDim = _chevRightOnLit;
+ _chevRightOffDim = _chevRightOffLit;
}
- // Draw the images
+ // Draw the chevron fragments for each line
Point destPt = pt;
drawObjects(classBits + elevBits * 4, destPt, screenManager);
destPt.y += 10;
@@ -94,21 +94,21 @@ void CPetRoomsGlyph::drawAt(CScreenManager *screenManager, const Point &pt, bool
drawObjects(((roomBits & 7) << 1) + (roomFlags.getBit0() ? 1 : 0),
destPt, screenManager);
- // Restore original object pointers
- _object0 = obj0;
- _object1 = obj1;
- _object4 = obj4;
- _object5 = obj5;
+ // Restore original image pointers
+ _chevLeftOnDim = leftOnDim;
+ _chevLeftOffDim = leftOffDim;
+ _chevRightOnDim = rightOnDim;
+ _chevRightOffDim = rightOffDim;
}
void CPetRoomsGlyph::selectGlyph(const Point &topLeft, const Point &pt) {
- if (isAssigned()) {
- bool isShiftPressed = g_vm->_window->getSpecialButtons() & MK_SHIFT;
+ if (!isAssigned()) {
+ bool isShiftPressed = g_vm->_events->getSpecialButtons() & MK_SHIFT;
if (isShiftPressed) {
int selection = getSelection(topLeft, pt);
if (selection >= 0)
- _roomFlags |= 1 << selection;
+ _roomFlags ^= 1 << selection;
}
updateTooltip();
@@ -116,7 +116,7 @@ void CPetRoomsGlyph::selectGlyph(const Point &topLeft, const Point &pt) {
}
bool CPetRoomsGlyph::dragGlyph(const Point &topLeft, CMouseDragStartMsg *msg) {
- bool isShiftPressed = g_vm->_window->getSpecialButtons() & MK_SHIFT;
+ bool isShiftPressed = g_vm->_events->getSpecialButtons() & MK_SHIFT;
CPetControl *petControl = getPetControl();
if (!isShiftPressed && petControl) {
@@ -124,7 +124,7 @@ bool CPetRoomsGlyph::dragGlyph(const Point &topLeft, CMouseDragStartMsg *msg) {
if (chevron) {
chevron->_id = _roomFlags;
- chevron->_isMail = _field38;
+ chevron->_isMail = _mailFlag != 0;
petControl->removeFromInventory(chevron, false, false);
chevron->loadSurface();
@@ -133,6 +133,8 @@ bool CPetRoomsGlyph::dragGlyph(const Point &topLeft, CMouseDragStartMsg *msg) {
if (msg->execute(chevron))
return true;
+
+ petControl->moveToHiddenRoom(chevron);
}
}
@@ -148,9 +150,9 @@ void CPetRoomsGlyph::getTooltip(CPetText *text) {
msg = "Your assigned room: ";
} else if (isPreviouslyAssigned()) {
msg = "A previously assigned room: ";
- } else if (!_field38) {
+ } else if (!_mailFlag) {
msg = "Saved Chevron: ";
- } else if (_field38 == 1 && owner->getRoomFlags() == _roomFlags) {
+ } else if (_mailFlag == 1 && owner->getRoomFlags() == _roomFlags) {
msg = "Current location: ";
}
@@ -183,9 +185,9 @@ void CPetRoomsGlyph::loadFlags(SimpleFile *file, int val) {
}
}
-void CPetRoomsGlyph::changeLocation(int newClassNum) {
+void CPetRoomsGlyph::changeClass(PassengerClass newClassNum) {
CRoomFlags roomFlags(_roomFlags);
- roomFlags.changeLocation(newClassNum);
+ roomFlags.changeClass(newClassNum);
_roomFlags = roomFlags.get();
}
@@ -212,15 +214,15 @@ int CPetRoomsGlyph::getSelection(const Point &topLeft, const Point &pt) {
}
void CPetRoomsGlyph::drawObjects(uint flags, const Point &pt, CScreenManager *screenManager) {
- if (_object0 && _object1 && _object4 && _object5) {
+ if (_chevLeftOnDim && _chevLeftOffDim && _chevRightOnDim && _chevRightOffDim) {
Point destPos = pt;
- ((flags & 8) ? _object0 : _object5)->draw(screenManager, destPos);
+ ((flags & 8) ? _chevLeftOnDim : _chevLeftOffDim)->draw(screenManager, destPos);
destPos.x += 13;
- ((flags & 4) ? _object4 : _object5)->draw(screenManager, destPos);
+ ((flags & 4) ? _chevRightOnDim : _chevRightOffDim)->draw(screenManager, destPos);
destPos.x += 13;
- ((flags & 2) ? _object0 : _object1)->draw(screenManager, destPos);
+ ((flags & 2) ? _chevLeftOnDim : _chevLeftOffDim)->draw(screenManager, destPos);
destPos.x += 13;
- ((flags & 1) ? _object4 : _object5)->draw(screenManager, destPos);
+ ((flags & 1) ? _chevRightOnDim : _chevRightOffDim)->draw(screenManager, destPos);
}
}
diff --git a/engines/titanic/pet_control/pet_rooms_glyphs.h b/engines/titanic/pet_control/pet_rooms_glyphs.h
index 11de6c4a8e..6c51b6f875 100644
--- a/engines/titanic/pet_control/pet_rooms_glyphs.h
+++ b/engines/titanic/pet_control/pet_rooms_glyphs.h
@@ -25,6 +25,7 @@
#include "titanic/pet_control/pet_glyphs.h"
#include "titanic/support/simple_file.h"
+#include "titanic/game_location.h"
namespace Titanic {
@@ -35,16 +36,16 @@ enum RoomGlyphMode {
class CPetRoomsGlyph : public CPetGlyph {
private:
uint _roomFlags;
- int _field38;
+ uint _mailFlag;
RoomGlyphMode _mode;
- CGameObject *_object0;
- CGameObject *_object1;
- CGameObject *_object2;
- CGameObject *_object3;
- CGameObject *_object4;
- CGameObject *_object5;
- CGameObject *_object6;
- CGameObject *_object7;
+ CGameObject *_chevLeftOnDim;
+ CGameObject *_chevLeftOffDim;
+ CGameObject *_chevLeftOnLit;
+ CGameObject *_chevLeftOffLit;
+ CGameObject *_chevRightOnDim;
+ CGameObject *_chevRightOffDim;
+ CGameObject *_chevRightOnLit;
+ CGameObject *_chevRightOffLit;
private:
/**
* Find the selected button under the given point, based on the buttons
@@ -112,14 +113,20 @@ public:
*/
uint getRoomFlags() const { return _roomFlags; }
- void set38(int val) { _field38 = val; }
+ /**
+ * Set mail status flag
+ */
+ void setFlag(uint val) { _mailFlag = val; }
/**
* Sets the mode of the glyph
*/
void setMode(RoomGlyphMode mode) { _mode = mode; }
- void changeLocation(int newClassNum);
+ /**
+ * Change the current class
+ */
+ void changeClass(PassengerClass newClassNum);
/**
* Returns true if the room is either currently or previously assigned
diff --git a/engines/titanic/pet_control/pet_save.cpp b/engines/titanic/pet_control/pet_save.cpp
index d344c8cd14..60afa11ab4 100644
--- a/engines/titanic/pet_control/pet_save.cpp
+++ b/engines/titanic/pet_control/pet_save.cpp
@@ -49,6 +49,16 @@ bool CPetSave::MouseButtonUpMsg(const Point &pt) {
}
}
+bool CPetSave::KeyCharMsg(int key) {
+ if (CPetLoadSave::KeyCharMsg(key))
+ return true;
+
+ if (_savegameSlotNum != -1)
+ _slotNames[_savegameSlotNum].handleKey(key);
+
+ return true;
+}
+
void CPetSave::highlightCurrent(const Point &pt) {
resetSlots();
highlightSave(_savegameSlotNum);
@@ -71,11 +81,12 @@ void CPetSave::unhighlightSave(int index) {
void CPetSave::execute() {
CPetControl *pet = getPetControl();
if (_savegameSlotNum >= 0) {
+ int slotNumber = _savegameSlotNum;
highlightSlot(-1);
CProjectItem *project = pet ? pet->getRoot() : nullptr;
if (project) {
- project->saveGame(_savegameSlotNum, _slotNames[_savegameSlotNum].getText());
+ project->saveGame(slotNumber, _slotNames[slotNumber].getText());
pet->displayMessage(BLANK);
}
} else if (pet) {
diff --git a/engines/titanic/pet_control/pet_save.h b/engines/titanic/pet_control/pet_save.h
index e5e956403f..39a25eb087 100644
--- a/engines/titanic/pet_control/pet_save.h
+++ b/engines/titanic/pet_control/pet_save.h
@@ -40,6 +40,11 @@ public:
virtual bool MouseButtonUpMsg(const Point &pt);
/**
+ * Handles keypresses when the glyph is focused
+ */
+ virtual bool KeyCharMsg(int key);
+
+ /**
* Unhighlight any currently highlighted element
*/
virtual void unhighlightCurrent() { unhighlightSave(_savegameSlotNum); }
diff --git a/engines/titanic/pet_control/pet_section.cpp b/engines/titanic/pet_control/pet_section.cpp
index 50d6c7615c..aced697705 100644
--- a/engines/titanic/pet_control/pet_section.cpp
+++ b/engines/titanic/pet_control/pet_section.cpp
@@ -43,6 +43,7 @@ void CPetSection::displayMessage(const CString &msg) {
if (text) {
text->setColor(getColor(1));
+ text->setText(msg);
_petControl->makeDirty();
removeText(5000);
}
diff --git a/engines/titanic/pet_control/pet_section.h b/engines/titanic/pet_control/pet_section.h
index 9e9afe6c21..c68aa90411 100644
--- a/engines/titanic/pet_control/pet_section.h
+++ b/engines/titanic/pet_control/pet_section.h
@@ -106,6 +106,7 @@ public:
virtual bool MouseDragEndMsg(CMouseDragEndMsg *msg) { return false; }
virtual bool MouseButtonUpMsg(CMouseButtonUpMsg *msg) { return false; }
virtual bool MouseDoubleClickMsg(CMouseDoubleClickMsg *msg) { return false; }
+ virtual bool MouseWheelMsg(CMouseWheelMsg *msg) { return false; }
virtual bool KeyCharMsg(CKeyCharMsg *msg) { return false; }
virtual bool VirtualKeyCharMsg(CVirtualKeyCharMsg *msg) { return false; }
diff --git a/engines/titanic/pet_control/pet_text.cpp b/engines/titanic/pet_control/pet_text.cpp
index 1aa9b804ff..7bb0bad16e 100644
--- a/engines/titanic/pet_control/pet_text.cpp
+++ b/engines/titanic/pet_control/pet_text.cpp
@@ -21,12 +21,13 @@
*/
#include "titanic/pet_control/pet_text.h"
+#include "titanic/titanic.h"
namespace Titanic {
CPetText::CPetText(uint count) :
_stringsMerged(false), _maxCharsPerLine(-1), _lineCount(0),
- _linesStart(-1), _unused1(0), _unused2(0), _unused3(0),
+ _displayEndCharIndex(-1), _unused1(0), _unused2(0), _unused3(0),
_backR(0xff), _backG(0xff), _backB(0xff),
_textR(0), _textG(0), _textB(200),
_fontNumber(0), _npcFlag(0), _npcId(0), _hasBorder(true),
@@ -57,7 +58,7 @@ void CPetText::setup() {
}
void CPetText::setLineColor(uint lineNum, uint col) {
- setLineColor(lineNum, col & 0xff, (col >> 16) & 0xff, (col >> 8) & 0xff);
+ setLineColor(lineNum, col & 0xff, (col >> 8) & 0xff, (col >> 16) & 0xff);
}
void CPetText::setLineColor(uint lineNum, byte r, byte g, byte b) {
@@ -87,7 +88,7 @@ CString CPetText::getColorText(byte r, byte g, byte b) {
void CPetText::load(SimpleFile *file, int param) {
if (!param) {
uint numLines = file->readNumber();
- uint charsPerLine = file->readNumber();
+ int charsPerLine = file->readNumber();
uint count = file->readNumber();
_bounds = file->readRect();
_unused1 = file->readNumber();
@@ -102,8 +103,9 @@ void CPetText::load(SimpleFile *file, int param) {
_hasBorder = file->readNumber() != 0;
_scrollTop = file->readNumber();
- resize(numLines);
setMaxCharsPerLine(charsPerLine);
+ resize(numLines);
+ _lineCount = (count == 0) ? 0 : count - 1;
assert(_array.size() >= count);
for (uint idx = 0; idx < count; ++idx) {
@@ -172,7 +174,7 @@ void CPetText::draw(CScreenManager *screenManager) {
tempRect.grow(-2);
int oldFontNumber = screenManager->setFontNumber(_fontNumber);
- screenManager->writeString(SURFACE_BACKBUFFER, tempRect, _scrollTop, _lines, _textCursor);
+ _displayEndCharIndex = screenManager->writeString(SURFACE_BACKBUFFER, tempRect, _scrollTop, _lines, _textCursor);
screenManager->setFontNumber(oldFontNumber);
}
@@ -211,6 +213,10 @@ void CPetText::setText(const CString &str) {
appendText(str);
}
+void CPetText::setText(StringId stringId) {
+ setText(g_vm->_strings[stringId]);
+}
+
void CPetText::appendText(const CString &str) {
int lineSize = _array[_lineCount]._line.size();
int strSize = str.size();
@@ -295,7 +301,7 @@ int CPetText::getTextWidth(CScreenManager *screenManager) {
int CPetText::getTextHeight(CScreenManager *screenManager) {
mergeStrings();
int oldFontNumber = screenManager->setFontNumber(_fontNumber);
- int textHeight = screenManager->getTextBounds(_lines, _bounds.width());
+ int textHeight = screenManager->getTextBounds(_lines, _bounds.width() - 4);
screenManager->setFontNumber(oldFontNumber);
return textHeight;
@@ -449,7 +455,7 @@ void CPetText::hideCursor() {
}
}
-int CPetText::getNPCNum(uint npcId, uint startIndex) {
+int CPetText::getNPCNum(uint ident, uint startIndex) {
if (!_stringsMerged) {
mergeStrings();
if (!_stringsMerged)
@@ -460,18 +466,20 @@ int CPetText::getNPCNum(uint npcId, uint startIndex) {
if (startIndex < 5 || startIndex >= size)
return -1;
- // Loop through string
- for (const char *strP = _lines.c_str(); size >= 5; ++strP, --size) {
+ // Loop backwards from the starting index to find an NPC ident sequence
+ for (const char *strP = _lines.c_str() + startIndex;
+ strP >= (_lines.c_str() + 5); --strP) {
if (*strP == 26) {
byte id = *(strP - 2);
- if (id == npcId)
+ if (id == ident)
return *(strP - 1);
+ strP -= 3;
} else if (*strP == 27) {
- strP += 4;
+ strP -= 4;
}
}
- return - 1;
+ return -1;
}
void CPetText::setFontNumber(int fontNumber) {
diff --git a/engines/titanic/pet_control/pet_text.h b/engines/titanic/pet_control/pet_text.h
index 0a6bb2d03d..9b2f47274c 100644
--- a/engines/titanic/pet_control/pet_text.h
+++ b/engines/titanic/pet_control/pet_text.h
@@ -43,7 +43,7 @@ private:
Rect _bounds;
int _maxCharsPerLine;
int _lineCount;
- int _linesStart;
+ int _displayEndCharIndex;
int _unused1;
int _unused2;
int _unused3;
@@ -136,6 +136,11 @@ public:
void setText(const CString &str);
/**
+ * Set the text
+ */
+ void setText(StringId stringId);
+
+ /**
* Set text color
*/
void setColor(uint col);
@@ -176,9 +181,10 @@ public:
void setNPC(int npcFlag, int npcId);
/**
- * Get the index into _lines where on-screen text starts
+ * Returns the character index into _lines of the last
+ * character to be displayed on-screen
*/
- int getLinesStart() const { return _linesStart; }
+ int displayEndIndex() const { return _displayEndCharIndex; }
/**
* Scroll the text up
@@ -246,8 +252,11 @@ public:
/**
* Get an NPC Number embedded within on-screen text.
* Used by the PET log to encode which NPC spoke
+ * @param ident Npc Type. Always passed as 1
+ * @param startIndex Starting index to scan backwards
+ * through the log text to find an NPC ident sequence
*/
- int getNPCNum(uint npcId, uint startIndex);
+ int getNPCNum(uint ident, uint startIndex);
/**
* Replaces any occurances of line colors that appear in the
diff --git a/engines/titanic/room_flags.cpp b/engines/titanic/room_flags.cpp
index 9be8ea3d33..66519aa091 100644
--- a/engines/titanic/room_flags.cpp
+++ b/engines/titanic/room_flags.cpp
@@ -112,7 +112,7 @@ int CRoomFlags::getRoomArea() const {
uint v6 = getElevatorNum();
if (v6 >= 1 && v6 <= 4) {
- uint v7 = getPassengerClassNum() - 1;
+ uint v7 = (int)getPassengerClassNum() - 1;
if (v7) {
uint v8 = v7 - 1;
if (v8) {
@@ -148,41 +148,11 @@ CString CRoomFlags::getRoomDesc() const {
result += ", ";
result += getElevatorDesc();
result += ", ";
- result += getRoomDesc();
+ result += getRoomNumDesc();
return result;
}
case 4:
- if (isTransportRoom()) {
- switch (_data) {
- case 0x68797:
- return "The Service Elevator";
- case 0x5D3AD:
- return "The Super Galactic Leisure Lounge";
- case 0x96E45:
- return "The Elevator";
- case 0xAD171:
- return "The Dome";
- case 0xC95E9:
- return "The Pellerator";
- case 0xDF4D1:
- return "The Top of the Well";
- default:
- break;
- }
- }
-
- if (getRoomCategory() == 0) {
- return "Nowhere you're likely to want to go.";
- } else {
- CString result = getPassengerClassDesc();
- result += ", ";
- result += getFloorDesc();
- return result;
- }
- break;
-
- case 5:
switch (_data) {
case 0x1D0D9:
return "The Parrot Lobby";
@@ -215,6 +185,36 @@ CString CRoomFlags::getRoomDesc() const {
}
return "Unknown Room";
+ case 5:
+ if (isTransportRoom()) {
+ switch (_data) {
+ case 0x68797:
+ return "The Service Elevator";
+ case 0x5D3AD:
+ return "The Super Galactic Leisure Lounge";
+ case 0x96E45:
+ return "The Elevator";
+ case 0xAD171:
+ return "The Dome";
+ case 0xC95E9:
+ return "The Pellerator";
+ case 0xDF4D1:
+ return "The Top of the Well";
+ default:
+ break;
+ }
+ }
+
+ if (getRoomCategory() == 0) {
+ return "Nowhere you're likely to want to go.";
+ } else {
+ CString result = getPassengerClassDesc();
+ result += ", ";
+ result += getFloorDesc();
+ return result;
+ }
+ break;
+
default:
break;
}
@@ -241,14 +241,14 @@ uint CRoomFlags::getPassengerClassBits() const {
}
CString CRoomFlags::getPassengerClassDesc() const {
- int classNum = getPassengerClassNum();
+ PassengerClass classNum = getPassengerClassNum();
switch (classNum) {
- case 1:
+ case FIRST_CLASS:
return "1st class";
- case 2:
+ case SECOND_CLASS:
return "2nd class";
- case 3:
+ case THIRD_CLASS:
return "SGT class";
default:
return "no class";
@@ -269,21 +269,20 @@ uint CRoomFlags::decodeFloorBits(uint bits) const {
int offset = bits & 0xF;
switch ((bits >> 4) & 0xF) {
- case 1:
- case 2:
- case 3:
- base = 40;
+ case 9:
+ base = 0;
break;
- case 4:
+ case 0xD:
base = 10;
break;
- case 5:
+ case 0xE:
base = 20;
break;
- case 6:
+ case 0xF:
base = 30;
break;
default:
+ base = 40;
break;
}
@@ -369,29 +368,29 @@ CString CRoomFlags::getSuccUBusRoomName() const {
return CString();
}
-void CRoomFlags::changeLocation(int action) {
+void CRoomFlags::changeClass(PassengerClass newClassNum) {
uint floorNum = getFloorNum();
uint roomNum = getRoomNum();
uint elevatorNum = getElevatorNum();
- uint classNum = getPassengerClassNum();
+ PassengerClass classNum = getPassengerClassNum();
uint v10, v11, v12, v13;
switch (classNum) {
- case 1:
+ case FIRST_CLASS:
v10 = 2;
v11 = 19;
v12 = 1;
v13 = 3;
break;
- case 2:
+ case SECOND_CLASS:
v10 = 20;
v11 = 27;
v12 = 1;
v13 = (elevatorNum & 1) ? 3 : 4;
break;
- case 3:
+ case THIRD_CLASS:
v10 = 28;
v11 = 38;
v12 = 1;
@@ -407,25 +406,28 @@ void CRoomFlags::changeLocation(int action) {
}
// Perform action to change room or floor
- switch (action) {
- case 1:
+ switch (newClassNum) {
+ case FIRST_CLASS:
if (--roomNum < v12)
roomNum = v12;
break;
- case 2:
+ case SECOND_CLASS:
if (++roomNum > v13)
roomNum = v13;
break;
- case 3:
+ case THIRD_CLASS:
if (--floorNum < v10)
floorNum = v10;
break;
- case 4:
+ case UNCHECKED:
if (++floorNum > v11)
floorNum = v11;
+
+ default:
+ break;
}
// Set new floor and room
@@ -442,16 +444,16 @@ bool CRoomFlags::compareClassElevator(uint flags1, uint flags2) {
uint elev1 = f1.getElevatorNum();
uint elev2 = f2.getElevatorNum();
- uint class1 = f1.getPassengerClassNum();
- uint class2 = f2.getPassengerClassNum();
+ PassengerClass class1 = f1.getPassengerClassNum();
+ PassengerClass class2 = f2.getPassengerClassNum();
- if (class1 > 0 && class1 < 3) {
+ if (class1 == FIRST_CLASS || class1 == SECOND_CLASS) {
if (elev1 == 2)
elev1 = 1;
else if (elev1 == 4)
elev1 = 3;
}
- if (class2 > 0 && class2 < 3) {
+ if (class2 == FIRST_CLASS || class2 == SECOND_CLASS) {
if (elev2 == 2)
elev2 = 1;
else if (elev2 == 4)
@@ -474,12 +476,12 @@ bool CRoomFlags::isTitania(uint flags1, uint flags2) {
return flags2 == 0x8A397;
}
-void CRoomFlags::setRandomLocation(int classNum, bool flag) {
+void CRoomFlags::setRandomLocation(PassengerClass classNum, bool flag) {
uint minRoom, elevNum, maxRoom, maxFloor, minFloor;
do {
switch (classNum) {
- case 1:
+ case FIRST_CLASS:
minFloor = 2;
maxFloor = 19;
minRoom = 1;
@@ -487,7 +489,7 @@ void CRoomFlags::setRandomLocation(int classNum, bool flag) {
elevNum = g_vm->getRandomNumber(flag ? 2 : 3);
break;
- case 2:
+ case SECOND_CLASS:
minFloor = 20;
maxFloor = 27;
elevNum = g_vm->getRandomNumber(flag ? 2 : 3);
@@ -495,14 +497,12 @@ void CRoomFlags::setRandomLocation(int classNum, bool flag) {
maxRoom = ((elevNum - 1) & 1) ? 3 : 4;
break;
- case 3:
+ case THIRD_CLASS:
minRoom = 1;
minFloor = 28;
maxFloor = 38;
maxRoom = 18;
- elevNum = g_vm->getRandomNumber(1);
- if (elevNum == 1)
- elevNum = 2;
+ elevNum = g_vm->getRandomNumber(1) ? 2 : 0;
break;
default:
@@ -514,14 +514,15 @@ void CRoomFlags::setRandomLocation(int classNum, bool flag) {
setElevatorBits(elevNum);
setRoomBits(roomNum);
setFloorNum(floorNum);
+ setPassengerClassBits(classNum);
} while (_data == 0x59706);
}
-int CRoomFlags::whatPassengerClass(int floorNum) {
+PassengerClass CRoomFlags::whatPassengerClass(int floorNum) {
if (is2To19(floorNum))
- return 1;
+ return FIRST_CLASS;
- return is20To27(floorNum) ? 2 : 3;
+ return is20To27(floorNum) ? SECOND_CLASS : THIRD_CLASS;
}
} // End of namespace Titanic
diff --git a/engines/titanic/room_flags.h b/engines/titanic/room_flags.h
index f0f90f80d1..8e86bf707e 100644
--- a/engines/titanic/room_flags.h
+++ b/engines/titanic/room_flags.h
@@ -24,6 +24,7 @@
#define TITANIC_ROOM_FLAGS_H
#include "titanic/support/string.h"
+#include "titanic/game_location.h"
namespace Titanic {
@@ -142,7 +143,9 @@ public:
/**
* Gets the passenger class number
*/
- uint getPassengerClassNum() const { return getPassengerClassBits(); }
+ PassengerClass getPassengerClassNum() const {
+ return (PassengerClass)getPassengerClassBits();
+ }
/**
* Get a description for the passenger class
@@ -198,12 +201,12 @@ public:
/**
* Change the passenger class
*/
- void changeLocation(int action);
+ void changeClass(PassengerClass newClassNum);
/**
* Sets a random destination in the flags
*/
- void setRandomLocation(int classNum, bool flag);
+ void setRandomLocation(PassengerClass classNum, bool flag);
/**
* Gets the succubus number associated with a given room
@@ -218,7 +221,7 @@ public:
/**
* Returns what passenger class a particular floor number belongs to
*/
- static int whatPassengerClass(int floorNum);
+ static PassengerClass whatPassengerClass(int floorNum);
bool not5() const { return getConditionally() != 5; }
diff --git a/engines/titanic/sound/qmixer.cpp b/engines/titanic/sound/qmixer.cpp
index 733164947e..b3910f846a 100644
--- a/engines/titanic/sound/qmixer.cpp
+++ b/engines/titanic/sound/qmixer.cpp
@@ -60,7 +60,19 @@ void QMixer::qsWaveMixFreeWave(Audio::SoundHandle &handle) {
}
void QMixer::qsWaveMixFlushChannel(int iChannel, uint flags) {
- // Not currently implemented in ScummVM
+ if (flags & QMIX_OPENALL) {
+ // Ignore channel, and flush all the channels
+ for (uint idx = 0; idx < _channels.size(); ++idx)
+ qsWaveMixFlushChannel(idx, 0);
+ } else {
+ // Flush the specified channel
+ Common::List<SoundEntry>::iterator i;
+ Common::List<SoundEntry> &sounds = _channels[iChannel]._sounds;
+ for (i = sounds.begin(); i != sounds.end(); ++i)
+ _mixer->stopHandle((*i)._soundHandle);
+
+ sounds.clear();
+ }
}
void QMixer::qsWaveMixSetPanRate(int iChannel, uint flags, uint rate) {
@@ -83,11 +95,28 @@ void QMixer::qsWaveMixSetVolume(int iChannel, uint flags, uint volume) {
}
void QMixer::qsWaveMixSetSourcePosition(int iChannel, uint flags, const QSVECTOR &position) {
- // Not currently implemented in ScummVM
+ ChannelEntry &channel = _channels[iChannel];
+
+ // Flag whether distance should reset when a new sound is started
+ channel._resetDistance = (flags & QMIX_USEONCE) != 0;
+
+ // Currently, we only do a basic simulation of spatial positioning by
+ // getting the distance, and proportionately reducing the volume the
+ // further away the source is
+ channel._distance = sqrt(position.x * position.x + position.y * position.y
+ + position.z * position.z);
}
void QMixer::qsWaveMixSetPolarPosition(int iChannel, uint flags, const QSPOLAR &position) {
- // Not currently implemented in ScummVM
+ ChannelEntry &channel = _channels[iChannel];
+
+ // Flag whether distance should reset when a new sound is started
+ channel._resetDistance = (flags & QMIX_USEONCE) != 0;
+
+ // Currently, we only do a basic simulation of spatial positioning by
+ // getting the distance, and proportionately reducing the volume the
+ // further away the source is
+ channel._distance = position.range;
}
void QMixer::qsWaveMixSetListenerPosition(const QSVECTOR &position, uint flags) {
@@ -163,7 +192,8 @@ void QMixer::qsWaveMixPump() {
if (channel._volume != oldVolume && !channel._sounds.empty()
&& channel._sounds.front()._started) {
- _mixer->setChannelVolume(channel._sounds.front()._soundHandle, channel._volume);
+ _mixer->setChannelVolume(channel._sounds.front()._soundHandle,
+ channel.getRawVolume());
}
}
@@ -177,7 +207,7 @@ void QMixer::qsWaveMixPump() {
sound._waveFile->_stream->rewind();
_mixer->playStream(sound._waveFile->_soundType,
&sound._soundHandle, sound._waveFile->_stream,
- -1, channel._volume, 0, DisposeAfterUse::NO);
+ -1, channel.getRawVolume(), 0, DisposeAfterUse::NO);
} else {
// Sound is finished
if (sound._callback)
@@ -195,13 +225,30 @@ void QMixer::qsWaveMixPump() {
if (!channel._sounds.empty()) {
SoundEntry &sound = channel._sounds.front();
if (!sound._started) {
+ if (channel._resetDistance)
+ channel._distance = 0.0;
+
+ // Calculate an effective volume based on distance of source
_mixer->playStream(sound._waveFile->_soundType,
&sound._soundHandle, sound._waveFile->_stream,
- -1, channel._volume, 0, DisposeAfterUse::NO);
+ -1, channel.getRawVolume(), 0, DisposeAfterUse::NO);
sound._started = true;
}
}
}
}
+/*------------------------------------------------------------------------*/
+
+byte QMixer::ChannelEntry::getRawVolume() const {
+ // Emperically decided adjustment divisor for distances
+ const double ADJUSTMENT_FACTOR = 5.0;
+
+ double r = 1.0 + (_distance / ADJUSTMENT_FACTOR);
+ double percent = 1.0 / (r * r);
+
+ double newVolume = _volume * percent;
+ return (byte)newVolume;
+}
+
} // End of namespace Titanic
diff --git a/engines/titanic/sound/qmixer.h b/engines/titanic/sound/qmixer.h
index 9a0ea85ede..b8c7f6dae2 100644
--- a/engines/titanic/sound/qmixer.h
+++ b/engines/titanic/sound/qmixer.h
@@ -197,9 +197,19 @@ class QMixer {
uint _volumeChangeEnd;
byte _volumeStart;
byte _volumeEnd;
+ // Distance of source
+ double _distance;
+ bool _resetDistance;
ChannelEntry() : _volume(0), _panRate(0), _volumeChangeStart(0),
- _volumeChangeEnd(0), _volumeStart(0), _volumeEnd(0) {}
+ _volumeChangeEnd(0), _volumeStart(0), _volumeEnd(0),
+ _distance(0.0), _resetDistance(true) {}
+
+ /**
+ * Calculates the raw volume level to pass to ScummVM playStream, taking
+ * into the sound's volume level and distance from origin
+ */
+ byte getRawVolume() const;
};
private:
Audio::Mixer *_mixer;
@@ -290,7 +300,7 @@ public:
void qsWaveMixSetDistanceMapping(int iChannel, uint flags, const QMIX_DISTANCES &distances);
/**
- *
+ * Sets the frequency/rate of sound playback
*/
void qsWaveMixSetFrequency(int iChannel, uint flags, uint frequency);
diff --git a/engines/titanic/sound/sound.cpp b/engines/titanic/sound/sound.cpp
index e48c8760c5..c28823148e 100644
--- a/engines/titanic/sound/sound.cpp
+++ b/engines/titanic/sound/sound.cpp
@@ -57,7 +57,7 @@ void CSound::preEnterView(CViewItem *newView, bool isNewRoom) {
_soundManager.setListenerPosition(xp, yp, zp, cosVal, sinVal, 0, isNewRoom);
}
-bool CSound::isActive(int handle) const {
+bool CSound::isActive(int handle) {
if (handle != 0 && handle != -1)
return _soundManager.isActive(handle);
@@ -129,6 +129,7 @@ CWaveFile *CSound::loadSound(const CString &name) {
// Found it, so move it to the front of the list and return
_sounds.remove(soundItem);
_sounds.push_front(soundItem);
+ soundItem->_waveFile->reset();
return soundItem->_waveFile;
}
}
diff --git a/engines/titanic/sound/sound.h b/engines/titanic/sound/sound.h
index 21f2a93f24..c767a3d75f 100644
--- a/engines/titanic/sound/sound.h
+++ b/engines/titanic/sound/sound.h
@@ -115,7 +115,7 @@ public:
/**
* Returns true if a sound with the specified handle is active
*/
- bool isActive(int handle) const;
+ bool isActive(int handle);
/**
* Sets the volume for a sound
diff --git a/engines/titanic/sound/sound_manager.cpp b/engines/titanic/sound/sound_manager.cpp
index c1a46e5103..5f8e53caf3 100644
--- a/engines/titanic/sound/sound_manager.cpp
+++ b/engines/titanic/sound/sound_manager.cpp
@@ -311,7 +311,9 @@ void QSoundManager::setPolarPosition(int handle, double range, double azimuth, d
}
}
-bool QSoundManager::isActive(int handle) const {
+bool QSoundManager::isActive(int handle) {
+ resetChannel(10);
+
for (uint idx = 0; idx < _slots.size(); ++idx) {
if (_slots[idx]._handle == handle)
return true;
@@ -320,7 +322,7 @@ bool QSoundManager::isActive(int handle) const {
return false;
}
-bool QSoundManager::isActive(const CWaveFile *waveFile) const {
+bool QSoundManager::isActive(const CWaveFile *waveFile) {
return _sounds.contains(waveFile);
}
diff --git a/engines/titanic/sound/sound_manager.h b/engines/titanic/sound/sound_manager.h
index a3074a8e57..ff556346de 100644
--- a/engines/titanic/sound/sound_manager.h
+++ b/engines/titanic/sound/sound_manager.h
@@ -123,12 +123,12 @@ public:
/**
* Returns true if the given sound is currently active
*/
- virtual bool isActive(int handle) const = 0;
+ virtual bool isActive(int handle) = 0;
/**
* Returns true if the given sound is currently active
*/
- virtual bool isActive(const CWaveFile *waveFile) const { return false; }
+ virtual bool isActive(const CWaveFile *waveFile) { return false; }
/**
* Handles regularly updating the mixer
@@ -395,12 +395,12 @@ public:
/**
* Returns true if the given sound is currently active
*/
- virtual bool isActive(int handle) const;
+ virtual bool isActive(int handle);
/**
* Returns true if the given sound is currently active
*/
- virtual bool isActive(const CWaveFile *waveFile) const;
+ virtual bool isActive(const CWaveFile *waveFile);
/**
* Handles regularly updating the mixer
diff --git a/engines/titanic/sound/wave_file.cpp b/engines/titanic/sound/wave_file.cpp
index ade94aad50..f2366d1dd5 100644
--- a/engines/titanic/sound/wave_file.cpp
+++ b/engines/titanic/sound/wave_file.cpp
@@ -51,9 +51,9 @@ uint CWaveFile::getDurationTicks() const {
// a desired size. Since I have no idea how the system API
// method works, for now I'm using a simple ratio of a
// sample output to input value
- uint size = _size - 0x46;
- double newSize = (double)size * (1475712.0 / 199836.0);
- return newSize * 1000.0 / _stream->getRate();
+ uint dataSize = _size - 0x46;
+ double newSize = (double)dataSize * (1475712.0 / 199836.0);
+ return (uint)(newSize * 1000.0 / _stream->getRate());
}
bool CWaveFile::loadSound(const CString &name) {
@@ -106,4 +106,8 @@ uint CWaveFile::getFrequency() const {
return _stream->getRate();
}
+void CWaveFile::reset() {
+ _stream->rewind();
+}
+
} // End of namespace Titanic z
diff --git a/engines/titanic/sound/wave_file.h b/engines/titanic/sound/wave_file.h
index 19d367936f..e4bb71a0b6 100644
--- a/engines/titanic/sound/wave_file.h
+++ b/engines/titanic/sound/wave_file.h
@@ -81,6 +81,11 @@ public:
* Return the frequency of the loaded wave file
*/
uint getFrequency() const;
+
+ /**
+ * Resets the music stream
+ */
+ void reset();
};
} // End of namespace Titanic
diff --git a/engines/titanic/star_control/star_control_sub13.cpp b/engines/titanic/star_control/star_control_sub13.cpp
index 490e6d0630..5da6118a74 100644
--- a/engines/titanic/star_control/star_control_sub13.cpp
+++ b/engines/titanic/star_control/star_control_sub13.cpp
@@ -225,7 +225,7 @@ void CStarControlSub13::fn19(double *v1, double *v2, double *v3, double *v4) {
}
void CStarControlSub13::reset() {
- const double FACTOR = 3.1415927 * 0.0055555557;
+ //const double FACTOR = 3.1415927 * 0.0055555557;
error("TODO: CStarControlSub13::reset");
}
diff --git a/engines/titanic/support/avi_surface.cpp b/engines/titanic/support/avi_surface.cpp
index 07458812b9..525c6513dd 100644
--- a/engines/titanic/support/avi_surface.cpp
+++ b/engines/titanic/support/avi_surface.cpp
@@ -41,6 +41,7 @@ AVISurface::AVISurface(const CResourceKey &key) {
_streamCount = 0;
_movieFrameSurface[0] = _movieFrameSurface[1] = nullptr;
_framePixels = nullptr;
+ _priorFrameTime = 0;
// Reset current frame. We need to keep track of frames separately from the decoder,
// since it needs to be able to go beyond the frame count or to negative to allow
@@ -164,8 +165,8 @@ bool AVISurface::handleEvents(CMovieEventList &events) {
_currentFrame += _isReversed ? -1 : 1;
int newFrame = _currentFrame;
- if ((info->_isReversed && newFrame <= info->_endFrame) ||
- (!info->_isReversed && newFrame >= info->_endFrame)) {
+ if ((info->_isReversed && newFrame < info->_endFrame) ||
+ (!info->_isReversed && newFrame > info->_endFrame)) {
if (info->_isRepeat) {
newFrame = info->_startFrame;
} else {
@@ -180,6 +181,7 @@ bool AVISurface::handleEvents(CMovieEventList &events) {
// Not empty, so move onto new first one
info = _movieRangeInfo.front();
newFrame = info->_startFrame;
+ setReversed(info->_isReversed);
}
}
}
@@ -286,8 +288,20 @@ void AVISurface::setFrame(int frameNumber) {
renderFrame();
}
-bool AVISurface::isNextFrame() const {
- return _decoder->getTimeToNextFrame() == 0;
+bool AVISurface::isNextFrame() {
+ if (!_decoder->endOfVideo())
+ return _decoder->getTimeToNextFrame() == 0;
+
+ // We're at the end of the video, so we need to manually
+ // keep track of frame delays. Hardcoded at the moment for 15FPS
+ const uint FRAME_TIME = 1000 / 15;
+ uint32 currTime = g_system->getMillis();
+ if (currTime >= (_priorFrameTime + FRAME_TIME)) {
+ _priorFrameTime = currTime;
+ return true;
+ }
+
+ return false;
}
bool AVISurface::renderFrame() {
@@ -347,7 +361,12 @@ bool AVISurface::addEvent(int frameNumber, CGameObject *obj) {
}
void AVISurface::setFrameRate(double rate) {
- _decoder->setRate(Common::Rational((int)rate));
+ // Convert rate from fps to relative to 1.0 (normal speed)
+ const int PRECISION = 10000;
+ double playRate = rate / 15.0; // Standard 15 FPS
+ Common::Rational pRate(playRate * PRECISION, PRECISION);
+
+ _decoder->setRate(pRate);
}
Graphics::ManagedSurface *AVISurface::getSecondarySurface() {
@@ -370,10 +389,12 @@ void AVISurface::playCutscene(const Rect &r, uint startFrame, uint endFrame) {
_movieFrameSurface[0]->h != r.height();
startAtFrame(startFrame);
+ _currentFrame = startFrame;
+
while (_currentFrame < (int)endFrame && !g_vm->shouldQuit()) {
if (isNextFrame()) {
renderFrame();
- _currentFrame = _decoder->getCurFrame();
+ ++_currentFrame;
if (isDifferent) {
// Clear the destination area, and use the transBlitFrom method,
diff --git a/engines/titanic/support/avi_surface.h b/engines/titanic/support/avi_surface.h
index b4e6d420cb..2a4b321f0f 100644
--- a/engines/titanic/support/avi_surface.h
+++ b/engines/titanic/support/avi_surface.h
@@ -66,6 +66,7 @@ private:
Graphics::ManagedSurface *_framePixels;
bool _isReversed;
int _currentFrame;
+ uint32 _priorFrameTime;
private:
/**
* Render a frame to the video surface
@@ -132,7 +133,9 @@ public:
/**
* Return true if a video is currently playing
*/
- virtual bool isPlaying() const { return _decoder->isPlaying(); }
+ virtual bool isPlaying() const {
+ return _decoder->isPlaying();
+ }
/**
* Handle any movie events relevent for the frame
@@ -194,7 +197,7 @@ public:
/**
* Returns true if it's time for the next
*/
- bool isNextFrame() const;
+ bool isNextFrame();
/**
* Plays an interruptable cutscene
diff --git a/engines/titanic/support/font.cpp b/engines/titanic/support/font.cpp
index 625d03720b..f81251b10b 100644
--- a/engines/titanic/support/font.cpp
+++ b/engines/titanic/support/font.cpp
@@ -90,7 +90,7 @@ int STFont::getTextBounds(const CString &str, int maxWidth, Point *sizeOut) cons
strP += 4;
} else {
if (*strP == ' ') {
- // Check fo rline wrapping
+ // Check for line wrapping
checkLineWrap(textSize, maxWidth, strP);
}
@@ -152,7 +152,7 @@ int STFont::writeString(CVideoSurface *surface, const Rect &rect1, const Rect &d
setColor(r, g, b);
} else {
if (*srcP == ' ') {
- // Check fo rline wrapping
+ // Check for line wrapping
checkLineWrap(textSize, rect1.width(), srcP);
if (!*srcP)
return endP - str.c_str();
@@ -245,11 +245,8 @@ WriteCharacterResult STFont::writeChar(CVideoSurface *surface, unsigned char c,
if (c == 233)
c = '$';
- Rect tempRect;
- tempRect.left = _chars[c]._offset;
- tempRect.right = _chars[c]._offset + _chars[c]._width;
- tempRect.top = 0;
- tempRect.bottom = _fontHeight;
+ Rect charRect(_chars[c]._offset, 0,
+ _chars[c]._offset + _chars[c]._width, _fontHeight);
Point destPos(pt.x + destRect.left, pt.y + destRect.top);
if (srcRect->isEmpty())
@@ -257,34 +254,34 @@ WriteCharacterResult STFont::writeChar(CVideoSurface *surface, unsigned char c,
if (destPos.y > srcRect->bottom)
return WC_OUTSIDE_BOTTOM;
- if ((destPos.y + tempRect.height()) > srcRect->bottom) {
- tempRect.bottom += tempRect.top - destPos.y;
+ if ((destPos.y + charRect.height()) > srcRect->bottom) {
+ charRect.bottom += srcRect->bottom - (destPos.y + charRect.height());
}
if (destPos.y < srcRect->top) {
- if ((tempRect.height() + destPos.y) < srcRect->top)
+ if ((charRect.height() + destPos.y) < srcRect->top)
return WC_OUTSIDE_TOP;
- tempRect.top += srcRect->top - destPos.y;
+ charRect.top += srcRect->top - destPos.y;
destPos.y = srcRect->top;
}
if (destPos.x < srcRect->left) {
- if ((tempRect.width() + destPos.x) < srcRect->left)
+ if ((charRect.width() + destPos.x) < srcRect->left)
return WC_OUTSIDE_LEFT;
- tempRect.left += srcRect->left - destPos.x;
+ charRect.left += srcRect->left - destPos.x;
destPos.x = srcRect->left;
} else {
- if ((tempRect.width() + destPos.x) > srcRect->right) {
+ if ((charRect.width() + destPos.x) > srcRect->right) {
if (destPos.x > srcRect->right)
return WC_OUTSIDE_RIGHT;
- tempRect.right += srcRect->left - destPos.x;
+ charRect.right += srcRect->left - destPos.x;
}
}
- copyRect(surface, destPos, tempRect);
+ copyRect(surface, destPos, charRect);
return WC_IN_BOUNDS;
}
@@ -318,10 +315,10 @@ void STFont::extendBounds(Point &textSize, byte c, int maxWidth) const {
void STFont::checkLineWrap(Point &textSize, int maxWidth, const char *&str) const {
bool flag = false;
int totalWidth = 0;
- for (const char *srcPtr = str; *srcPtr && *srcPtr != ' '; ++srcPtr) {
- if (*srcPtr == ' ' && flag)
- break;
+ // Loop forward getting the width of the word (including preceding space)
+ // until a space is encountered following at least one character
+ for (const char *srcPtr = str; *srcPtr && (*srcPtr != ' ' || !flag); ++srcPtr) {
if (*srcPtr == TEXTCMD_NPC) {
srcPtr += 3;
} else if (*srcPtr == TEXTCMD_SET_COLOR) {
diff --git a/engines/titanic/support/mouse_cursor.cpp b/engines/titanic/support/mouse_cursor.cpp
index 4dd1ab4366..6300f65a3b 100644
--- a/engines/titanic/support/mouse_cursor.cpp
+++ b/engines/titanic/support/mouse_cursor.cpp
@@ -54,10 +54,11 @@ CMouseCursor::CursorEntry::~CursorEntry() {
}
CMouseCursor::CMouseCursor(CScreenManager *screenManager) :
- _screenManager(screenManager), _cursorId(CURSOR_HOURGLASS),
- _setCursorCount(0), _fieldE4(0), _fieldE8(0) {
+ _screenManager(screenManager), _cursorId(CURSOR_HOURGLASS), _hideCounter(0),
+ _hiddenCount(0), _cursorSuppressed(false), _setCursorCount(0), _inputEnabled(true), _fieldE8(0) {
loadCursorImages();
setCursor(CURSOR_ARROW);
+ CursorMan.showMouse(true);
}
CMouseCursor::~CMouseCursor() {
@@ -87,11 +88,38 @@ void CMouseCursor::loadCursorImages() {
}
void CMouseCursor::show() {
- CursorMan.showMouse(true);
+ assert(_hiddenCount > 0);
+
+ if (--_hiddenCount == 0)
+ CursorMan.showMouse(!_cursorSuppressed);
}
void CMouseCursor::hide() {
CursorMan.showMouse(false);
+ ++_hiddenCount;
+}
+
+void CMouseCursor::incHideCounter() {
+ if (_hideCounter++ == 0)
+ hide();
+}
+
+void CMouseCursor::decHideCounter() {
+ --_hideCounter;
+ assert(_hideCounter >= 0);
+ if (_hideCounter == 0)
+ show();
+}
+
+void CMouseCursor::suppressCursor() {
+ _cursorSuppressed = true;
+ hide();
+}
+
+void CMouseCursor::unsuppressCursor() {
+ _cursorSuppressed = false;
+ if (_hideCounter == 0)
+ show();
}
void CMouseCursor::setCursor(CursorId cursorId) {
@@ -108,7 +136,7 @@ void CMouseCursor::setCursor(CursorId cursorId) {
Graphics::ManagedSurface surface(CURSOR_SIZE, CURSOR_SIZE, g_system->getScreenFormat());
const uint16 *srcP = srcSurface.getPixels();
- CTransparencySurface transSurface(&ce._transSurface->rawSurface(), TRANS_DEFAULT);
+ CTransparencySurface transSurface(&ce._transSurface->rawSurface(), TRANS_ALPHA0);
uint16 *destP = (uint16 *)surface.getPixels();
for (int y = 0; y < CURSOR_SIZE; ++y) {
@@ -131,25 +159,45 @@ void CMouseCursor::setCursor(CursorId cursorId) {
}
void CMouseCursor::update() {
- // No implementation needed
+ if (!_inputEnabled && _moveStartTime) {
+ uint32 time = CLIP(g_system->getMillis(), _moveStartTime, _moveEndTime);
+ Common::Point pt(
+ _moveStartPos.x + (_moveDestPos.x - _moveStartPos.x) *
+ (int)(time - _moveStartTime) / (int)(_moveEndTime - _moveStartTime),
+ _moveStartPos.y + (_moveDestPos.y - _moveStartPos.y) *
+ (int)(time - _moveStartTime) / (int)(_moveEndTime - _moveStartTime)
+ );
+
+ if (pt != g_vm->_events->getMousePos()) {
+ g_vm->_events->setMousePos(pt);
+
+ CInputHandler &inputHandler = *CScreenManager::_screenManagerPtr->_inputHandler;
+ CMouseMoveMsg msg(pt, 0);
+ inputHandler.handleMessage(msg, false);
+ }
+
+ if (time == _moveEndTime)
+ _moveStartTime = _moveEndTime = 0;
+ }
}
-void CMouseCursor::lockE4() {
- _fieldE4 = 0;
+void CMouseCursor::disableControl() {
+ _inputEnabled = false;
CScreenManager::_screenManagerPtr->_inputHandler->incLockCount();
}
-void CMouseCursor::unlockE4() {
- _fieldE4 = 1;
+void CMouseCursor::enableControl() {
+ _inputEnabled = true;
_fieldE8 = 0;
CScreenManager::_screenManagerPtr->_inputHandler->decLockCount();
}
-void CMouseCursor::setPosition(const Point &pt, double rate) {
- assert(rate >= 0.0 && rate <= 1.0);
-
- // TODO: Figure out use of the rate parameter
- g_system->warpMouse(pt.x, pt.y);
+void CMouseCursor::setPosition(const Point &pt, double duration) {
+ _moveStartPos = g_vm->_events->getMousePos();
+ _moveDestPos = pt;
+ _moveStartTime = g_system->getMillis();
+ _moveEndTime = _moveStartTime + duration;
+ update();
}
} // End of namespace Titanic
diff --git a/engines/titanic/support/mouse_cursor.h b/engines/titanic/support/mouse_cursor.h
index 08de28e29d..1662ce743d 100644
--- a/engines/titanic/support/mouse_cursor.h
+++ b/engines/titanic/support/mouse_cursor.h
@@ -66,14 +66,22 @@ private:
CursorId _cursorId;
CursorEntry _cursors[NUM_CURSORS];
uint _setCursorCount;
- int _fieldE4;
+ int _hideCounter;
+ int _hiddenCount;
+ bool _cursorSuppressed;
int _fieldE8;
+ uint32 _priorMoveTime;
+ Common::Point _moveStartPos;
+ Common::Point _moveDestPos;
+ uint _moveStartTime, _moveEndTime;
/**
* Load the images for each cursor
*/
void loadCursorImages();
public:
+ bool _inputEnabled;
+public:
CMouseCursor(CScreenManager *screenManager);
~CMouseCursor();
@@ -88,6 +96,29 @@ public:
void hide();
/**
+ * Decrements the hide counter, and shows the mouse if
+ * it's reached zero
+ */
+ void incHideCounter();
+
+ /**
+ * Increments the hide counter, hiding the mouse if it's the first call
+ */
+ void decHideCounter();
+
+ /**
+ * Suppresses the cursor. When suppressed, the cursor isn't drawn,
+ * even if it's not otherwise being hidden
+ */
+ void suppressCursor();
+
+ /**
+ * Unflags the cursor as being suppressed, allowing it to be drawn
+ * again if it's enabled
+ */
+ void unsuppressCursor();
+
+ /**
* Set the cursor
*/
void setCursor(CursorId cursorId);
@@ -102,13 +133,20 @@ public:
*/
uint getChangeCount() const { return _setCursorCount; }
- void lockE4();
- void unlockE4();
+ /**
+ * Disables user control of the mouse
+ */
+ void disableControl();
+
+ /**
+ * Re-enables user control of the mouse
+ */
+ void enableControl();
/**
- * Sets the mouse to a new position
+ * Move the mouse to a new position
*/
- void setPosition(const Point &pt, double rate);
+ void setPosition(const Point &pt, double duration);
};
diff --git a/engines/titanic/support/movie.cpp b/engines/titanic/support/movie.cpp
index 2115906992..949ed62fca 100644
--- a/engines/titanic/support/movie.cpp
+++ b/engines/titanic/support/movie.cpp
@@ -126,19 +126,12 @@ void OSMovie::playCutscene(const Rect &drawRect, uint startFrame, uint endFrame)
if (!_movieSurface)
_movieSurface = CScreenManager::_screenManagerPtr->createSurface(600, 340);
- bool widthLess = _videoSurface->getWidth() < 600;
- bool heightLess = _videoSurface->getHeight() < 340;
- Rect r(drawRect.left, drawRect.top,
- drawRect.left + (widthLess ? CLIP_WIDTH_REDUCED : CLIP_WIDTH),
- drawRect.top + (heightLess ? CLIP_HEIGHT_REDUCED : CLIP_HEIGHT)
- );
-
// Set a new event target whilst the clip plays, so standard scene drawing isn't called
CEventTarget eventTarget;
g_vm->_events->addTarget(&eventTarget);
_aviSurface.setFrame(startFrame);
- _aviSurface.playCutscene(r, startFrame, endFrame);
+ _aviSurface.playCutscene(drawRect, startFrame, endFrame);
g_vm->_events->removeTarget();
}
diff --git a/engines/titanic/support/screen_manager.cpp b/engines/titanic/support/screen_manager.cpp
index 2e9bbcb6de..2a675394b5 100644
--- a/engines/titanic/support/screen_manager.cpp
+++ b/engines/titanic/support/screen_manager.cpp
@@ -308,11 +308,11 @@ CVideoSurface *OSScreenManager::createSurface(const CResourceKey &key) {
}
void OSScreenManager::showCursor() {
- CScreenManager::_screenManagerPtr->_mouseCursor->show();
+ CScreenManager::_screenManagerPtr->_mouseCursor->unsuppressCursor();
}
void OSScreenManager::hideCursor() {
- CScreenManager::_screenManagerPtr->_mouseCursor->hide();
+ CScreenManager::_screenManagerPtr->_mouseCursor->suppressCursor();
}
void OSScreenManager::destroyFrontAndBackBuffers() {
@@ -330,7 +330,6 @@ void OSScreenManager::loadCursors() {
delete _mouseCursor;
}
_mouseCursor = new CMouseCursor(this);
- showCursor();
if (!_textCursor) {
_textCursor = new CTextCursor(this);
diff --git a/engines/titanic/support/simple_file.cpp b/engines/titanic/support/simple_file.cpp
index 7e3cea35be..65d2c85273 100644
--- a/engines/titanic/support/simple_file.cpp
+++ b/engines/titanic/support/simple_file.cpp
@@ -467,7 +467,7 @@ void SimpleFile::skipSpaces() {
/*------------------------------------------------------------------------*/
bool StdCWadFile::open(const Common::String &filename) {
- File f;
+ Common::File f;
CString name = filename;
// Check for whether it is indeed a file/resource pair
@@ -476,9 +476,11 @@ bool StdCWadFile::open(const Common::String &filename) {
if (idx < 0) {
// Nope, so open up file for standard reading
assert(!name.empty());
- f.open(name);
+ if (!f.open(name))
+ return false;
SimpleFile::open(f.readStream(f.size()));
+ f.close();
return true;
}
@@ -489,7 +491,8 @@ bool StdCWadFile::open(const Common::String &filename) {
int resIndex = resStr.readInt();
// Open up the index for access
- f.open(fname);
+ if (!f.open(fname))
+ return false;
int indexSize = f.readUint32LE() / 4;
assert(resIndex < indexSize);
diff --git a/engines/titanic/support/strings.cpp b/engines/titanic/support/strings.cpp
index 7664b6849b..a8ab45800f 100644
--- a/engines/titanic/support/strings.cpp
+++ b/engines/titanic/support/strings.cpp
@@ -25,7 +25,7 @@
namespace Titanic {
-Strings::Strings() {
+void Strings::load() {
Common::SeekableReadStream *r = g_vm->_filesManager->getResource("TEXT/STRINGS");
while (r->pos() < r->size())
push_back(readStringFromStream(r));
diff --git a/engines/titanic/support/strings.h b/engines/titanic/support/strings.h
index 5164897522..30aad89697 100644
--- a/engines/titanic/support/strings.h
+++ b/engines/titanic/support/strings.h
@@ -87,6 +87,57 @@ enum StringId {
BOWL_OF_NUTS,
NOT_A_BOWL_OF_NUTS,
+ CANT_SUMMON_DOORBOT,
+ CANT_SUMMON_BELLBOT,
+ NO_ONE_TO_TALK_TO,
+ TALKING_TO,
+ DOORBOT_NAME,
+ DESKBOT_NAME,
+ LIFTBOT_NAME,
+ PARROT_NAME,
+ BARBOT_NAME,
+ CHATTERBOT_NAME,
+ BELLBOT_NAME,
+ MAITRED_NAME,
+ SUCCUBUS_NAME,
+ UNKNOWN_NAME,
+ ARM_ALREADY_HOLDING,
+ YOU_CANT_GET_THIS,
+ DOESNT_DO_ANYTHING,
+ DOESNT_WANT_THIS,
+ DOES_NOT_REACH,
+ CHICKEN_ALREADY_CLEAN,
+ HOSE_INCOMPATIBLE,
+ INCORRECTLY_CALIBRATED,
+ GONDOLIERS_FIRST_CLASS_ONLY,
+ NOTHING_ON_CHANNEL,
+ TELEVISION_CONTROL,
+ OPERATE_ENTERTAINMENT,
+ OPERATE_LIGHTS,
+ DEPLOY_FLORAL_ENHANCEMENT,
+ DEPLOY_FULLY_RELAXATION,
+ DEPLOY_COMFORT_WORKSTATION,
+ DEPLOY_MINOR_STORAGE,
+ DEPLOY_MAJOR_RELAXATION,
+ INFLATE_RELAXATION_DEVICE,
+ DEPLOY_MAINTENANCE_HUB,
+ DEPLOY_EXECUTIVE_SURFACE,
+ DEPLOY_MINOR_RELAXATION,
+ DEPLOY_SINK,
+ DEPLOY_MAJOR_STORAGE,
+ SUCCUBUS_DELIVERY_SYSTEM,
+ NAVIGATION_CONTROLLER,
+ SUMMON_ELEVATOR,
+ SUMMON_PELLERATOR,
+ GO_TO_BOTTOM_OF_WELL,
+ GO_TO_TOP_OF_WELL,
+ GO_TO_STATEROOM,
+ GO_TO_BAR,
+ GO_TO_PROMENADE_DECK,
+ GO_TO_ARBORETUM,
+ GO_TO_MUSIC_ROOM,
+ GO_TO_1ST_CLASS_RESTAURANT,
+
// German version only
DE_SUMMER,
DE_AUTUMN,
@@ -139,7 +190,7 @@ enum StringId {
class Strings : public Common::StringArray {
public:
- Strings();
+ void load();
};
} // End of namespace Titanic
diff --git a/engines/titanic/support/time_event_info.cpp b/engines/titanic/support/time_event_info.cpp
index e088a8e0c2..c61ceb29ae 100644
--- a/engines/titanic/support/time_event_info.cpp
+++ b/engines/titanic/support/time_event_info.cpp
@@ -100,8 +100,8 @@ CTimeEventInfo::CTimeEventInfo() : ListItem(), _lockCounter(0),
CTimeEventInfo::CTimeEventInfo(uint ticks, bool repeated, uint firstDuration,
uint repeatDuration, CTreeItem *target, int endVal, const CString &action) :
ListItem(), _lockCounter(0), _repeated(repeated), _firstDuration(firstDuration),
- _repeatDuration(repeatDuration), _target(target), _actionVal(endVal), _done(false),
- _timerCtr(0), _lastTimerTicks(ticks), _relativeTicks(0), _persisent(true) {
+ _repeatDuration(repeatDuration), _target(target), _actionVal(endVal), _action(action),
+ _done(false), _timerCtr(0), _lastTimerTicks(ticks), _relativeTicks(0), _persisent(true) {
_id = _nextId++;
}
diff --git a/engines/titanic/support/transparency_surface.cpp b/engines/titanic/support/transparency_surface.cpp
index 5ffa8b99b1..8b5cbecc5f 100644
--- a/engines/titanic/support/transparency_surface.cpp
+++ b/engines/titanic/support/transparency_surface.cpp
@@ -46,7 +46,7 @@ CTransparencySurface::CTransparencySurface(const Graphics::Surface *surface,
_flag1 = false;
break;
case TRANS_DEFAULT:
- if (*(byte *)surface->getPixels() < 0x80) {
+ if (*(const byte *)surface->getPixels() < 0x80) {
_flag1 = true;
_flag2 = false;
}
@@ -66,8 +66,17 @@ int CTransparencySurface::moveX() {
}
uint CTransparencySurface::getPixel() const {
- const byte *pixelP = (const byte *)_surface->getBasePtr(_pos.x, _pos.y);
- return *pixelP;
+ byte pixel = *(const byte *)_surface->getBasePtr(_pos.x, _pos.y);
+ return pixel;
+}
+
+uint CTransparencySurface::getAlpha() const {
+ byte pixel = getPixel();
+ return _flag1 ? 0xFF - pixel : pixel;
+}
+
+bool CTransparencySurface::isPixelTransparent() {
+ return getAlpha() == 0xff;
}
} // End of namespace Titanic
diff --git a/engines/titanic/support/transparency_surface.h b/engines/titanic/support/transparency_surface.h
index 0391b6d5b7..1b4587a9db 100644
--- a/engines/titanic/support/transparency_surface.h
+++ b/engines/titanic/support/transparency_surface.h
@@ -42,6 +42,11 @@ private:
bool _flag;
bool _flag1;
bool _flag2;
+private:
+ /**
+ * Returns a a pixel from the transparency surface
+ */
+ uint getPixel() const;
public:
/**
* Constructor
@@ -64,19 +69,14 @@ public:
int moveX();
/**
- * Returns a byte from the transparency surface
- */
- uint getPixel() const;
-
- /**
* Returns the alpha value for the pixel (0-31)
*/
- uint getAlpha() const { return 31 - (getPixel() >> 3); }
+ uint getAlpha() const;
/**
* Returns true if the pixel is completely transparent
*/
- bool isPixelTransparent() const { return getAlpha() == 31; }
+ bool isPixelTransparent();
};
} // End of namespace Titanic
diff --git a/engines/titanic/support/video_surface.cpp b/engines/titanic/support/video_surface.cpp
index 293232860c..52610379b5 100644
--- a/engines/titanic/support/video_surface.cpp
+++ b/engines/titanic/support/video_surface.cpp
@@ -246,9 +246,7 @@ void CVideoSurface::transBlitRect(const Rect &srcRect, const Rect &destRect, CVi
transSurface.setCol(srcRect.left);
for (int srcX = srcRect.left; srcX < srcRect.right; ++srcX) {
- if (!transSurface.isPixelTransparent()) {
- copyPixel(lineDestP, lineSrcP, transSurface.getAlpha(), srcSurface->format, isAlpha);
- }
+ copyPixel(lineDestP, lineSrcP, transSurface.getAlpha() >> 3, srcSurface->format, isAlpha);
++lineSrcP;
++lineDestP;
diff --git a/engines/titanic/titanic.cpp b/engines/titanic/titanic.cpp
index 2566a36d7c..29730c36c8 100644
--- a/engines/titanic/titanic.cpp
+++ b/engines/titanic/titanic.cpp
@@ -60,6 +60,12 @@ TitanicEngine::TitanicEngine(OSystem *syst, const TitanicGameDescription *gameDe
_scriptHandler = nullptr;
_script = nullptr;
CMusicRoom::_musicHandler = nullptr;
+
+ // Set up debug channels
+ DebugMan.addDebugChannel(kDebugCore, "core", "Core engine debug level");
+ DebugMan.addDebugChannel(kDebugScripts, "scripts", "Game scripts");
+ DebugMan.addDebugChannel(kDebugGraphics, "graphics", "Graphics handling");
+ DebugMan.addDebugChannel(kDebugSound, "sound", "Sound and Music handling");
}
TitanicEngine::~TitanicEngine() {
@@ -78,12 +84,6 @@ void TitanicEngine::initializePath(const Common::FSNode &gamePath) {
}
void TitanicEngine::initialize() {
- // Set up debug channels
- DebugMan.addDebugChannel(kDebugCore, "core", "Core engine debug level");
- DebugMan.addDebugChannel(kDebugScripts, "scripts", "Game scripts");
- DebugMan.addDebugChannel(kDebugGraphics, "graphics", "Graphics handling");
- DebugMan.addDebugChannel(kDebugSound, "sound", "Sound and Music handling");
-
_debugger = new Debugger(this);
_filesManager = new CFilesManager(this);
@@ -107,6 +107,7 @@ void TitanicEngine::initialize() {
_screen = new Graphics::Screen(0, 0);
_screenManager = new OSScreenManager(this);
_window = new CMainGameWindow(this);
+ _strings.load();
setItemNames();
setRoomNames();
@@ -149,7 +150,7 @@ void TitanicEngine::setItemNames() {
r = g_vm->_filesManager->getResource("TEXT/ITEM_DESCRIPTIONS");
while (r->pos() < r->size())
- _itemNames.push_back(readStringFromStream(r));
+ _itemDescriptions.push_back(readStringFromStream(r));
delete r;
r = g_vm->_filesManager->getResource("TEXT/ITEM_IDS");
diff --git a/engines/titanic/titanic.h b/engines/titanic/titanic.h
index b0776c55a5..d8e0f880f7 100644
--- a/engines/titanic/titanic.h
+++ b/engines/titanic/titanic.h
@@ -122,6 +122,7 @@ public:
CString _itemObjects[TOTAL_ITEMS];
StringArray _itemIds;
StringArray _roomNames;
+ Strings _strings;
public:
TitanicEngine(OSystem *syst, const TitanicGameDescription *gameDesc);
virtual ~TitanicEngine();
diff --git a/engines/titanic/true_talk/barbot_script.cpp b/engines/titanic/true_talk/barbot_script.cpp
index 76f28540ea..ad10f5a57f 100644
--- a/engines/titanic/true_talk/barbot_script.cpp
+++ b/engines/titanic/true_talk/barbot_script.cpp
@@ -167,7 +167,7 @@ int BarbotScript::process(const TTroomScript *roomScript, const TTsentence *sent
dialogueId = ARRAY2[0];
_arrIndex = 1;
} else if (getRandomNumber(100) > 60) {
- switch (sentence->_field2C) {
+ switch (sentence->_category) {
case 2:
dialogueId = 51914;
break;
@@ -209,7 +209,7 @@ int BarbotScript::process(const TTroomScript *roomScript, const TTsentence *sent
int val34 = getState();
setState(0);
- int val2C = sentence->_field2C;
+ int val2C = sentence->_category;
bool flag = val2C == 11 || val2C == 13;
bool flag2 = val2C == 12;
diff --git a/engines/titanic/true_talk/bellbot_script.cpp b/engines/titanic/true_talk/bellbot_script.cpp
index 038285ec8d..c51c918a2e 100644
--- a/engines/titanic/true_talk/bellbot_script.cpp
+++ b/engines/titanic/true_talk/bellbot_script.cpp
@@ -239,11 +239,11 @@ int BellbotScript::process(const TTroomScript *roomScript, const TTsentence *sen
if (processEntries(&_entries, _entryCount, roomScript, sentence) == 2)
return 2;
- if ((sentence->_field2C == 4 && sentence->localWord("am") && sentence->localWord("i"))
+ if ((sentence->_category == 4 && sentence->localWord("am") && sentence->localWord("i"))
|| (sentence->localWord("are") && sentence->localWord("we"))
- || (sentence->_field2C == 3 && sentence->localWord("room")
+ || (sentence->_category == 3 && sentence->localWord("room")
&& sentence->localWord("we") && sentence->localWord("in"))
- || (sentence->_field2C == 3 && sentence->localWord("rom")
+ || (sentence->_category == 3 && sentence->localWord("rom")
&& sentence->localWord("is") && sentence->localWord("this"))
) {
uint id = getRangeValue(getRoomDialogueId(roomScript));
@@ -527,7 +527,7 @@ int BellbotScript::handleQuote(const TTroomScript *roomScript, const TTsentence
int BellbotScript::updateState(uint oldId, uint newId, int index) {
if (!getValue(25)) {
- newId = 202043 - getValue(1) <= 2 ? 994 : 0;
+ newId = 202043 - (getValue(1) <= 2 ? 994 : 0);
CTrueTalkManager::setFlags(25, 1);
}
@@ -795,22 +795,22 @@ int BellbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
bool applyFlag = false, stateFlag = true;
switch (getValue(23)) {
case 1:
- if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ if (sentence->_category == 11 || sentence->_category == 13) {
addResponse(getDialogueId(200818));
applyFlag = true;
}
- if (sentence->_field2C == 12) {
+ if (sentence->_category == 12) {
addResponse(getDialogueId(200817));
applyFlag = true;
}
break;
case 2:
- if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ if (sentence->_category == 11 || sentence->_category == 13) {
addResponse(getDialogueId(200835));
addResponse(getDialogueId(200830));
applyFlag = true;
- } else if (sentence->_field2C == 12) {
+ } else if (sentence->_category == 12) {
addResponse(getDialogueId(200834));
addResponse(getDialogueId(200830));
applyFlag = true;
@@ -818,7 +818,7 @@ int BellbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 3:
- if (sentence->_field2C >= 11 && sentence->_field2C <= 13) {
+ if (sentence->_category >= 11 && sentence->_category <= 13) {
addResponse(getDialogueId(200831));
addResponse(getDialogueId(200833));
applyFlag = true;
@@ -826,36 +826,36 @@ int BellbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 4:
- if (sentence->_field2C == 11) {
+ if (sentence->_category == 11) {
addResponse(getDialogueId(200872));
applyFlag = true;
}
- if (sentence->_field2C == 12 || sentence->_field2C == 13) {
+ if (sentence->_category == 12 || sentence->_category == 13) {
addResponse(getDialogueId(200873));
applyFlag = true;
}
break;
case 5:
- if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ if (sentence->_category == 11 || sentence->_category == 13) {
addResponse(getDialogueId(200492));
applyFlag = true;
}
- if (sentence->_field2C == 12) {
+ if (sentence->_category == 12) {
addResponse(getDialogueId(200491));
applyFlag = true;
}
break;
case 6:
- if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ if (sentence->_category == 11 || sentence->_category == 13) {
addResponse(getDialogueId(200496));
applyResponse();
setState(0);
CTrueTalkManager::setFlags(23, 7);
return 2;
}
- if (sentence->_field2C == 12) {
+ if (sentence->_category == 12) {
addResponse(getDialogueId(200127));
applyFlag = true;
}
@@ -880,7 +880,7 @@ int BellbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 10:
- if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ if (sentence->_category == 11 || sentence->_category == 13) {
addResponse(getDialogueId(200317));
applyResponse();
setState(0);
@@ -888,14 +888,14 @@ int BellbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
return 2;
}
- addResponse(getDialogueId(sentence->_field2C == 12 ? 200316 : 200315));
+ addResponse(getDialogueId(sentence->_category == 12 ? 200316 : 200315));
applyFlag = true;
break;
case 11:
- if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ if (sentence->_category == 11 || sentence->_category == 13) {
addResponse(getDialogueId(200055));
- } else if (sentence->_field2C == 12) {
+ } else if (sentence->_category == 12) {
addResponse(getDialogueId(200318));
} else {
addResponse(getDialogueId(200315));
@@ -905,30 +905,30 @@ int BellbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 12:
- if (sentence->_field2C == 6) {
+ if (sentence->_category == 6) {
addResponse(getDialogueId(200259));
applyFlag = true;
}
break;
case 13:
- if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ if (sentence->_category == 11 || sentence->_category == 13) {
addResponse(getDialogueId(200207));
applyFlag = true;
- } else if (sentence->_field2C == 12) {
+ } else if (sentence->_category == 12) {
addResponse(getDialogueId(200206));
applyFlag = true;
}
break;
case 14:
- if (sentence->_field2C == 6) {
+ if (sentence->_category == 6) {
addResponse(getDialogueId(200349));
applyFlag = true;
}
case 15:
- if (sentence->_field2C == 6) {
+ if (sentence->_category == 6) {
addResponse(getDialogueId(200130));
applyResponse();
setState(0);
@@ -945,7 +945,7 @@ int BellbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 17:
- if ((sentence->_field2C == 3 && sentence->localWord("code"))
+ if ((sentence->_category == 3 && sentence->localWord("code"))
|| (sentence->localWord("which") && sentence->localWord("is"))
|| sentence->localWord("remember")
|| sentence->localWord("know")
@@ -957,7 +957,7 @@ int BellbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 19:
- if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ if (sentence->_category == 11 || sentence->_category == 13) {
addResponse(getDialogueId(200223));
applyFlag = true;
}
@@ -1042,12 +1042,12 @@ int BellbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 31:
- addResponse(getDialogueId(sentence->_field2C == 11 ? 200810 : 200811));
+ addResponse(getDialogueId(sentence->_category == 11 ? 200810 : 200811));
applyFlag = true;
break;
case 32:
- addResponse(getDialogueId(sentence->_field2C == 11 ? 200810 : 200812));
+ addResponse(getDialogueId(sentence->_category == 11 ? 200810 : 200812));
applyFlag = true;
break;
@@ -1062,7 +1062,7 @@ int BellbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 35:
- if (sentence->_field2C == 3 && sentence->localWord("it")
+ if (sentence->_category == 3 && sentence->localWord("it")
&& (sentence->localWord("for") || sentence->localWord("do"))) {
addResponse(getDialogueId(200768));
applyFlag = true;
@@ -1070,7 +1070,7 @@ int BellbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 36:
- if (sentence->_field2C == 11) {
+ if (sentence->_category == 11) {
CTrueTalkManager::triggerAction(14, 0);
addResponse(getDialogueId(200761));
applyFlag = true;
@@ -1083,14 +1083,14 @@ int BellbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 38:
- if (sentence->_field2C == 12) {
+ if (sentence->_category == 12) {
addResponse(getDialogueId(200631));
applyFlag = true;
}
break;
case 39:
- if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ if (sentence->_category == 11 || sentence->_category == 13) {
addResponse(getDialogueId(200632));
stateFlag = false;
} else {
@@ -1124,7 +1124,7 @@ int BellbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 43:
- if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ if (sentence->_category == 11 || sentence->_category == 13) {
addResponse(getDialogueId(200643));
applyFlag = true;
}
@@ -1157,7 +1157,7 @@ case44:
goto case44;
case 47:
- if (sentence->_field2C == 12)
+ if (sentence->_category == 12)
addResponse(getDialogueId(200368));
addResponse(getDialogueId(200366));
applyFlag = true;
@@ -1177,7 +1177,7 @@ case44:
break;
case 49:
- if (sentence->_field2C >= 11 && sentence->_field2C <= 13) {
+ if (sentence->_category >= 11 && sentence->_category <= 13) {
addResponse(getDialogueId(200407));
applyFlag = true;
stateFlag = false;
@@ -1185,7 +1185,7 @@ case44:
break;
case 50:
- if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ if (sentence->_category == 11 || sentence->_category == 13) {
addResponse(getDialogueId(200408));
stateFlag = false;
} else {
@@ -1204,24 +1204,24 @@ case44:
break;
case 52:
- if (sentence->_field2C >= 11 && sentence->_field2C <= 13) {
+ if (sentence->_category >= 11 && sentence->_category <= 13) {
addResponse(getDialogueId(200872));
applyFlag = true;
}
break;
case 53:
- if (sentence->_field2C == 12) {
+ if (sentence->_category == 12) {
addResponse(getDialogueId(200525));
applyFlag = true;
- } else if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ } else if (sentence->_category == 11 || sentence->_category == 13) {
addResponse(getDialogueId(200526));
applyFlag = true;
}
break;
case 54:
- if (sentence->_field2C == 12) {
+ if (sentence->_category == 12) {
addResponse(getDialogueId(200095));
applyFlag = true;
stateFlag = false;
@@ -1229,7 +1229,7 @@ case44:
break;
case 55:
- if (sentence->_field2C == 6) {
+ if (sentence->_category == 6) {
addResponse(getDialogueId(200112));
applyFlag = true;
}
@@ -1258,7 +1258,7 @@ case44:
case 58:
if (sentence->localWord("more")
|| (sentence->localWord("go") && sentence->localWord("on"))
- || (sentence->_field2C == 11 && sentence->localWord("really"))) {
+ || (sentence->_category == 11 && sentence->localWord("really"))) {
addResponse(getDialogueId(200650));
applyFlag = true;
stateFlag = false;
@@ -1274,7 +1274,7 @@ case44:
break;
case 60:
- if (sentence->_field2C == 3 && sentence->localWord("they") && sentence->localWord("do")) {
+ if (sentence->_category == 3 && sentence->localWord("they") && sentence->localWord("do")) {
addResponse(getDialogueId(200652));
applyFlag = true;
stateFlag = false;
@@ -1351,7 +1351,7 @@ stateFlag = false;
break;
case 70:
- if (sentence->_field2C == 12) {
+ if (sentence->_category == 12) {
addResponse(getDialogueId(201012));
applyFlag = true;
stateFlag = false;
@@ -1366,10 +1366,10 @@ stateFlag = false;
break;
case 72:
- if (sentence->_field2C == 12) {
+ if (sentence->_category == 12) {
addResponse(getDialogueId(200921));
applyFlag = true;
- } else if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ } else if (sentence->_category == 11 || sentence->_category == 13) {
addResponse(getDialogueId(200920));
applyFlag = true;
}
@@ -1384,7 +1384,7 @@ stateFlag = false;
break;
case 74:
- if (sentence->_field2C == 6) {
+ if (sentence->_category == 6) {
addResponse(getDialogueId(201022));
applyFlag = true;
stateFlag = false;
@@ -1392,7 +1392,7 @@ stateFlag = false;
break;
case 75:
- if (sentence->_field2C == 3) {
+ if (sentence->_category == 3) {
if (sentence->localWord("that") || sentence->localWord("worb")) {
addResponse(getDialogueId(201802));
applyFlag = true;
@@ -1401,7 +1401,7 @@ stateFlag = false;
break;
case 76:
- if (sentence->_field2C == 2 && (sentence->localWord("that") || sentence->localWord("gat"))) {
+ if (sentence->_category == 2 && (sentence->localWord("that") || sentence->localWord("gat"))) {
addResponse(getDialogueId(201034));
applyFlag = true;
stateFlag = false;
@@ -1409,7 +1409,7 @@ stateFlag = false;
break;
case 77:
- if (sentence->_field2C == 4 || sentence->_field2C == 3) {
+ if (sentence->_category == 4 || sentence->_category == 3) {
if (sentence->localWord("that") || sentence->localWord("blerontis")) {
addResponse(getDialogueId(201035));
applyFlag = true;
@@ -1418,11 +1418,11 @@ stateFlag = false;
break;
case 78:
- if (sentence->_field2C == 12) {
+ if (sentence->_category == 12) {
addResponse(getDialogueId(201034));
applyFlag = true;
stateFlag = false;
- } else if (sentence->_field2C == 11) {
+ } else if (sentence->_category == 11) {
addResponse(getDialogueId(201040));
applyFlag = true;
} else if ((sentence->localWord("not") && sentence->localWord("remember"))
@@ -1438,12 +1438,12 @@ stateFlag = false;
break;
case 79:
- if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ if (sentence->_category == 11 || sentence->_category == 13) {
addResponse(getDialogueId(201052));
CTrueTalkManager::triggerAction(14, 0);
applyFlag = true;
stateFlag = false;
- } else if (sentence->_field2C == 12) {
+ } else if (sentence->_category == 12) {
addResponse(getDialogueId(202119));
addResponse(getDialogueId(200256));
applyFlag = true;
@@ -1454,7 +1454,7 @@ stateFlag = false;
if ((!sentence->localWord("what") && sentence->localWord("how"))
|| sentence->localWord("about")
|| sentence->localWord("you")) {
- if (sentence->_field2C != 3 && sentence->_field2C != 4 && sentence->_field2C != 7) {
+ if (sentence->_category != 3 && sentence->_category != 4 && sentence->_category != 7) {
addResponse(getDialogueId(201694));
applyFlag = true;
stateFlag = false;
@@ -1477,7 +1477,7 @@ stateFlag = false;
break;
case 82:
- if ((sentence->_field2C == 3 && sentence->localWord("mean"))
+ if ((sentence->_category == 3 && sentence->localWord("mean"))
|| sentence->localWord("surf")
|| (sentence->localWord("what") && sentence->localWord("talk")
&& sentence->localWord("about"))) {
@@ -1488,14 +1488,14 @@ stateFlag = false;
break;
case 83:
- if (sentence->_field2C != 3 && sentence->_field2C != 4 && sentence->_field2C != 7) {
+ if (sentence->_category != 3 && sentence->_category != 4 && sentence->_category != 7) {
addResponse(getDialogueId(201083));
applyFlag = true;
}
break;
case 84:
- if (sentence->_field2C == 12) {
+ if (sentence->_category == 12) {
addResponse(getDialogueId(202119));
switch (getValue(1)) {
@@ -1511,7 +1511,7 @@ stateFlag = false;
default:
break;
}
- } else if (sentence->_field2C == 11) {
+ } else if (sentence->_category == 11) {
addResponse(getDialogueId(201060));
addResponse(getDialogueId(201079));
applyFlag = true;
@@ -1520,22 +1520,22 @@ stateFlag = false;
break;
case 85:
- if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ if (sentence->_category == 11 || sentence->_category == 13) {
addResponse(getDialogueId(201814));
applyFlag = true;
}
- if (sentence->_field2C == 12) {
+ if (sentence->_category == 12) {
addResponse(getDialogueId(201813));
applyFlag = true;
}
break;
case 86:
- if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ if (sentence->_category == 11 || sentence->_category == 13) {
addResponse(getDialogueId(202109));
applyFlag = true;
}
- if (sentence->_field2C == 12) {
+ if (sentence->_category == 12) {
addResponse(getDialogueId(202108));
applyFlag = true;
}
@@ -1548,14 +1548,14 @@ stateFlag = false;
break;
case 88:
- if (sentence->_field2C == 6 || sentence->contains("upside down")) {
+ if (sentence->_category == 6 || sentence->contains("upside down")) {
addResponse(getDialogueId(202142));
applyFlag = true;
}
break;
case 89:
- if (sentence->_field2C == 2) {
+ if (sentence->_category == 2) {
addResponse(getDialogueId(200739));
applyFlag = true;
stateFlag = false;
@@ -1710,7 +1710,7 @@ bool BellbotScript::checkCommonWords(const TTroomScript *roomScript, const TTsen
if (!roomScript || !sentence)
return 0;
CTrueTalkManager::setFlags(23, 0);
- if (sentence->_field2C != 4)
+ if (sentence->_category != 4)
return 0;
if (sentence->localWord("garage")) {
diff --git a/engines/titanic/true_talk/deskbot_script.cpp b/engines/titanic/true_talk/deskbot_script.cpp
index 4df47e0af1..d38d53a296 100644
--- a/engines/titanic/true_talk/deskbot_script.cpp
+++ b/engines/titanic/true_talk/deskbot_script.cpp
@@ -29,6 +29,8 @@ namespace Titanic {
int DeskbotScript::_oldId;
+#define CURRENT_STATE 17
+
DeskbotScript::DeskbotScript(int val1, const char *charClass, int v2,
const char *charName, int v3, int val2) :
TTnpcScript(val1, charClass, v2, charName, v3, val2, -1, -1, -1, 0) {
@@ -73,7 +75,7 @@ int DeskbotScript::process(const TTroomScript *roomScript, const TTsentence *sen
if (preprocess(roomScript, sentence) != 1)
return 1;
- CTrueTalkManager::setFlags(17, 0);
+ CTrueTalkManager::setFlags(CURRENT_STATE, 0);
setState(0);
updateCurrentDial(false);
@@ -344,7 +346,7 @@ int DeskbotScript::updateState(uint oldId, uint newId, int index) {
exit:
_oldId = oldId;
- setFlags17(newId, index);
+ setCurrentState(newId, index);
return newId;
}
@@ -509,8 +511,8 @@ uint DeskbotScript::getStateDialogueId() const {
}
}
-void DeskbotScript::setFlags17(uint newId, uint index) {
- int newValue = getValue(17);
+void DeskbotScript::setCurrentState(uint newId, uint index) {
+ int newValue = getValue(CURRENT_STATE);
for (uint idx = 0; idx < _states.size(); ++idx) {
const TTupdateState &us = _states[idx];
@@ -528,7 +530,7 @@ void DeskbotScript::setFlags17(uint newId, uint index) {
}
}
- CTrueTalkManager::setFlags(17, newValue);
+ CTrueTalkManager::setFlags(CURRENT_STATE, newValue);
}
int DeskbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *sentence) {
@@ -536,11 +538,11 @@ int DeskbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
return 1;
bool stateFlag = true, applyFlag = false;
- switch (getValue(17)) {
+ switch (getValue(CURRENT_STATE)) {
case 1:
- if (sentence->_field2C != 3 && sentence->_field2C != 4
- && sentence->_field2C != 6 && sentence->_field2C != 10
- && sentence->_field2C != 2) {
+ if (sentence->_category != 3 && sentence->_category != 4
+ && sentence->_category != 6 && sentence->_category != 10
+ && sentence->_category != 2) {
addResponse(getDialogueId(240423));
applyFlag = true;
}
@@ -554,15 +556,15 @@ int DeskbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 3:
- if (sentence->_field2C == 11 || sentence->_field2C == 13
- || sentence->_field2C == 3 || sentence->localWord("upgrade")) {
+ if (sentence->_category == 11 || sentence->_category == 13
+ || sentence->_category == 3 || sentence->localWord("upgrade")) {
addResponse(getDialogueId(240433));
applyFlag = true;
}
break;
case 4:
- addResponse(getDialogueId(sentence->_field2C == 11 || sentence->_field2C == 13
+ addResponse(getDialogueId(sentence->_category == 11 || sentence->_category == 13
? 240495 : 240494));
applyFlag = true;
break;
@@ -594,7 +596,7 @@ int DeskbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
stateFlag = true;
} else if (sentence->localWord("name")
|| sentence->localWord("called")
- || sentence->_field2C == 11) {
+ || sentence->_category == 11) {
addResponse(getDialogueId(240448));
stateFlag = true;
} else {
@@ -605,7 +607,7 @@ int DeskbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 7:
- if (sentence->_field2C == 11 || sentence->_field2C == 13
+ if (sentence->_category == 11 || sentence->_category == 13
|| (sentence->localWord("what") && sentence->localWord("wrong"))
|| sentence->localWord("clothes")) {
addResponse(getDialogueId(240489));
@@ -616,7 +618,7 @@ int DeskbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
case 8:
if (isDial1Low() && getValue(1) == 4) {
- if (sentence->_field2C == 12 || sentence->_field2C == 13
+ if (sentence->_category == 12 || sentence->_category == 13
|| sentence->contains("do not")) {
addResponse(getDialogueId(240447));
@@ -626,7 +628,7 @@ int DeskbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
CTrueTalkManager::triggerAction(19, 3);
CTrueTalkManager::setFlags(22, 1);
applyFlag = true;
- } else if (sentence->_field2C == 11) {
+ } else if (sentence->_category == 11) {
addResponse(getDialogueId(240746));
applyFlag = true;
stateFlag = false;
@@ -1089,7 +1091,7 @@ int DeskbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
case 74:
case 75:
- if (sentence->_field2C == 24) {
+ if (sentence->_category == 24) {
addResponse(getDialogueId(240972));
applyFlag = true;
} else if (sentence->localWord("good") || sentence->localWord("yes")
@@ -1101,7 +1103,7 @@ int DeskbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 76:
- if (sentence->_field2C == 6) {
+ if (sentence->_category == 6) {
addResponse(getDialogueId(240767));
applyFlag = true;
stateFlag = false;
@@ -1109,21 +1111,25 @@ int DeskbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 77:
- if (sentence->_field2C == 3) {
+ if (sentence->_category == 3) {
addResponse(getDialogueId(241109));
applyFlag = true;
stateFlag = false;
}
case 78:
- if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ // "Do you have a reservation?"
+ if (sentence->_category == 11 || sentence->_category == 13) {
+ // Player said they have a reservation
addResponse(getDialogueId(241262));
- } else if (sentence->_field2C == 12 || sentence->contains("do not")) {
+ } else if (sentence->_category == 12 || sentence->contains("do not")) {
+ // Player said they don't have a reservation
setDialRegion(0, 0);
setDialRegion(1, 0);
addResponse(getDialogueId(241268));
- add241716();
+ addAskBreakfast();
} else {
+ // Player didn't say yes or no
addResponse(getDialogueId(240745));
}
@@ -1142,27 +1148,27 @@ int DeskbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
case 3:
addAssignedRoom();
setState(0);
- CTrueTalkManager::setFlags(17, 0);
+ CTrueTalkManager::setFlags(CURRENT_STATE, 0);
return 2;
default:
addResponse(getDialogueId(241267));
break;
}
- add241716();
+ addAskBreakfast();
applyFlag = true;
stateFlag = false;
break;
case 81:
- addResponse(getDialogueId(sentence->_field2C == 12 ? 240602 : 241337));
+ addResponse(getDialogueId(sentence->_category == 12 ? 240602 : 241337));
applyResponse();
setState(0);
- CTrueTalkManager::setFlags(17, 0);
+ CTrueTalkManager::setFlags(CURRENT_STATE, 0);
return 2;
case 82:
- if (sentence->_field2C == 2) {
+ if (sentence->_category == 2) {
addResponse(getDialogueId(241339));
applyFlag = true;
}
@@ -1181,7 +1187,7 @@ int DeskbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 84:
- if (sentence->_field2C == 12 || sentence->contains("vegetarian")
+ if (sentence->_category == 12 || sentence->contains("vegetarian")
|| sentence->contains("vegitarian")) {
addResponse(getDialogueId(241718));
addResponse(getDialogueId(241709));
@@ -1208,7 +1214,7 @@ int DeskbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 85:
- if (sentence->_field2C == 12 || sentence->contains("bugle")
+ if (sentence->_category == 12 || sentence->contains("bugle")
|| sentence->contains("buggle") || sentence->contains("trumpet")
|| sentence->contains("saxophone") || sentence->contains("kazoo")
|| sentence->contains("blerontin 1") || sentence->contains("the 1")
@@ -1229,7 +1235,7 @@ int DeskbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 86:
- if (sentence->_field2C == 12 || sentence->_field2C == 11 || sentence->contains("view")) {
+ if (sentence->_category == 12 || sentence->_category == 11 || sentence->contains("view")) {
addResponse(getDialogueId(241714));
addResponse(getDialogueId(241699));
} else {
@@ -1352,19 +1358,25 @@ int DeskbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
case 92:
case 93:
- if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ // "Fish?"
+ if (sentence->_category == 11 || sentence->_category == 13) {
+ // Yes
addResponse(getDialogueId(241077));
addResponse(getDialogueId(241706));
- } else if (sentence->_field2C == 12) {
+ } else if (sentence->_category == 12) {
+ // No
addAssignedRoom();
setState(0);
- CTrueTalkManager::setFlags(17, 0);
+ CTrueTalkManager::setFlags(CURRENT_STATE, 0);
return 2;
- } else if (g_vm->_trueTalkManager->_quotes.find(sentence->_normalizedLine.c_str())
+ } else if (g_vm->_trueTalkManager->_quotes.find(sentence->_initialLine.c_str())
== MKTAG('F', 'I', 'S', 'H')) {
+ // WORKAROUND: Original passed _normalizedLine, but "fish" is one of the common
+ // phrases replaced with with alternative text "completelyrandom"
addResponse(getDialogueId(240877));
addResponse(getDialogueId(241706));
}else {
+ // All other responses
if (getRandomNumber(100) < 80 && sentence2C(sentence))
addResponse(getDialogueId(241707));
@@ -1387,7 +1399,7 @@ int DeskbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
|| sentence->contains("same room")) {
addAssignedRoom();
setState(0);
- CTrueTalkManager::setFlags(17, 0);
+ CTrueTalkManager::setFlags(CURRENT_STATE, 0);
return 2;
} else {
if (getRandomNumber(100) < 80 && sentence2C(sentence))
@@ -1410,7 +1422,7 @@ int DeskbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 96:
- if (sentence->_field2C == 2) {
+ if (sentence->_category == 2) {
addResponse(getDialogueId(241350));
applyFlag = true;
stateFlag = false;
@@ -1433,7 +1445,7 @@ int DeskbotScript::preprocess(const TTroomScript *roomScript, const TTsentence *
applyResponse();
if (stateFlag) {
setState(0);
- CTrueTalkManager::setFlags(17, 0);
+ CTrueTalkManager::setFlags(CURRENT_STATE, 0);
}
return applyFlag ? 2 : 1;
@@ -1480,7 +1492,7 @@ int DeskbotScript::checkCommonWords(const TTsentence *sentence) {
return 0;
}
-void DeskbotScript::add241716() {
+void DeskbotScript::addAskBreakfast() {
addResponse(getDialogueId(241716));
}
@@ -1497,6 +1509,7 @@ void DeskbotScript::addAssignedRoom() {
addResponse(getDialogueId(241271 + floorNum));
addResponse(getDialogueId(241317 + roomNum));
addResponse(getDialogueId(241698));
+ applyResponse();
}
} // End of namespace Titanic
diff --git a/engines/titanic/true_talk/deskbot_script.h b/engines/titanic/true_talk/deskbot_script.h
index f5978553ce..ffb6b1063c 100644
--- a/engines/titanic/true_talk/deskbot_script.h
+++ b/engines/titanic/true_talk/deskbot_script.h
@@ -61,9 +61,9 @@ private:
uint getStateDialogueId() const;
/**
- * Sets state data in flags 17
+ * Sets the current state for what the Deskbot is doing/asking
*/
- void setFlags17(uint newId, uint index);
+ void setCurrentState(uint newId, uint index);
/**
* Does preprocessing for the sentence
@@ -81,9 +81,9 @@ private:
int checkCommonWords(const TTsentence *sentence);
/**
- * Adds response dialogue 241716
+ * Adds a dialogue for asking the player what kind of breakfast they'd like
*/
- void add241716();
+ void addAskBreakfast();
/**
* Adds a dialogue description for the player's assigned room
diff --git a/engines/titanic/true_talk/doorbot_script.cpp b/engines/titanic/true_talk/doorbot_script.cpp
index 5c7403f187..b1d6a91107 100644
--- a/engines/titanic/true_talk/doorbot_script.cpp
+++ b/engines/titanic/true_talk/doorbot_script.cpp
@@ -196,13 +196,13 @@ int DoorbotScript::process(const TTroomScript *roomScript, const TTsentence *sen
return setResponse(getDialogueId(220113));
}
- if (sentence->_field2C == 6 && sentence->contains("why not")) {
+ if (sentence->_category == 6 && sentence->contains("why not")) {
return setResponse(11871, 8);
}
currState = getState();
if (currState) {
- int sentMode = sentence->_field2C;
+ int sentMode = sentence->_category;
bool flag1 = sentMode == 11 || sentMode == 13;
bool flag2 = sentMode == 12;
@@ -475,7 +475,7 @@ int DoorbotScript::process(const TTroomScript *roomScript, const TTsentence *sen
|| defaultProcess(roomScript, sentence))
return 2;
- switch (sentence->_field2C) {
+ switch (sentence->_category) {
case 11:
if (getRandomNumber(100) > 90)
return setResponse(10839, 42);
diff --git a/engines/titanic/true_talk/liftbot_script.cpp b/engines/titanic/true_talk/liftbot_script.cpp
index ab995b71b9..e52e47d99d 100644
--- a/engines/titanic/true_talk/liftbot_script.cpp
+++ b/engines/titanic/true_talk/liftbot_script.cpp
@@ -92,7 +92,7 @@ int LiftbotScript::process(const TTroomScript *roomScript, const TTsentence *sen
checkItems(roomScript, sentence);
int currState = getState();
- int sentMode = sentence->_field2C;
+ int sentMode = sentence->_category;
TTtreeResult treeResult;
if (currState) {
@@ -180,6 +180,7 @@ ScriptChangedResult LiftbotScript::scriptChanged(const TTroomScript *roomScript,
addResponse(getDialogueId(210033));
}
CTrueTalkManager::setFlags(27, 1);
+ applyResponse();
break;
case 155:
@@ -580,14 +581,14 @@ int LiftbotScript::sentence1(const TTsentence *sentence) {
return 1;
}
- int classNum = 1;
+ PassengerClass classNum = FIRST_CLASS;
bool classSet = true;
if (sentence->localWord("firstclass"))
- classNum = 1;
+ classNum = FIRST_CLASS;
else if (sentence->localWord("secondclass"))
- classNum = 2;
+ classNum = SECOND_CLASS;
else if (sentence->localWord("thirdclass"))
- classNum = 3;
+ classNum = THIRD_CLASS;
else
classSet = false;
@@ -650,7 +651,7 @@ int LiftbotScript::sentence1(const TTsentence *sentence) {
return 1;
}
- if (sentence->_field2C == 4 || sentence->localWord("find")
+ if (sentence->_category == 4 || sentence->localWord("find")
|| sentence->contains("get to")) {
if (getCurrentFloor() != diff) {
selectResponse(diff == 1 ? 210769 : 210764);
diff --git a/engines/titanic/true_talk/maitred_script.cpp b/engines/titanic/true_talk/maitred_script.cpp
index e902169ed0..cb1a3a5460 100644
--- a/engines/titanic/true_talk/maitred_script.cpp
+++ b/engines/titanic/true_talk/maitred_script.cpp
@@ -726,7 +726,7 @@ int MaitreDScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 7:
- if (sentence->_field2C == 12) {
+ if (sentence->_category == 12) {
addResponse(getDialogueId(260089));
applyFlag = true;
stateFlag = false;
@@ -738,7 +738,7 @@ int MaitreDScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 8:
- if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ if (sentence->_category == 11 || sentence->_category == 13) {
trigger12(false);
addResponse(getDialogueId(260094));
CTrueTalkManager::setFlags(11, 1);
@@ -819,7 +819,7 @@ int MaitreDScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 16:
- addResponse(getDialogueId(sentence->_field2C == 11 ? 260209 : 260210));
+ addResponse(getDialogueId(sentence->_category == 11 ? 260209 : 260210));
applyFlag = true;
stateFlag = false;
break;
@@ -843,13 +843,13 @@ int MaitreDScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 18:
- if (sentence->_field2C == 11) {
+ if (sentence->_category == 11) {
addResponse(getDialogueId(260232));
applyFlag = true;
- } else if (sentence->_field2C == 12) {
+ } else if (sentence->_category == 12) {
addResponse(getDialogueId(260231));
applyFlag = true;
- } else if (sentence->_field2C == 13) {
+ } else if (sentence->_category == 13) {
addResponse(getDialogueId(260444));
addResponse(getDialogueId(260233));
applyFlag = true;
@@ -937,7 +937,7 @@ int MaitreDScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 23:
- if (sentence->_field2C == 11) {
+ if (sentence->_category == 11) {
addResponse(getDialogueId(260237));
applyFlag = true;
stateFlag = false;
@@ -992,7 +992,7 @@ int MaitreDScript::preprocess(const TTroomScript *roomScript, const TTsentence *
addResponse(getDialogueId(260256));
applyFlag = true;
stateFlag = false;
- } else if (sentence->_field2C == 12) {
+ } else if (sentence->_category == 12) {
addResponse(getDialogueId(260255));
applyFlag = true;
stateFlag = false;
@@ -1024,7 +1024,7 @@ int MaitreDScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 29:
- if (sentence->_field2C == 11) {
+ if (sentence->_category == 11) {
setFlags12();
addResponse(getDialogueId(260131));
} else {
@@ -1034,10 +1034,10 @@ int MaitreDScript::preprocess(const TTroomScript *roomScript, const TTsentence *
break;
case 30:
- if (sentence->_field2C == 11 || sentence->_field2C == 13) {
+ if (sentence->_category == 11 || sentence->_category == 13) {
addResponse(getDialogueId(260695));
applyFlag = true;
- } else if (sentence->_field2C == 12) {
+ } else if (sentence->_category == 12) {
addResponse(getDialogueId(260696));
applyFlag = true;
}
diff --git a/engines/titanic/true_talk/parrot_script.cpp b/engines/titanic/true_talk/parrot_script.cpp
index b09e74505c..25b54f0715 100644
--- a/engines/titanic/true_talk/parrot_script.cpp
+++ b/engines/titanic/true_talk/parrot_script.cpp
@@ -55,7 +55,7 @@ int ParrotScript::process(const TTroomScript *roomScript, const TTsentence *sent
if (processEntries(roomScript, sentence) == 2) {
int tagId = g_vm->_trueTalkManager->_quotes.find(sentence->_normalizedLine);
if (!tagId || chooseResponse(roomScript, sentence, tagId) != 2) {
- addResponse(getDialogueId(sentence->check2C() ? 280248 : 280235));
+ addResponse(getDialogueId(sentence->checkCategory() ? 280248 : 280235));
applyResponse();
}
}
diff --git a/engines/titanic/true_talk/script_support.cpp b/engines/titanic/true_talk/script_support.cpp
index 14560e2d9f..52676139f0 100644
--- a/engines/titanic/true_talk/script_support.cpp
+++ b/engines/titanic/true_talk/script_support.cpp
@@ -38,7 +38,7 @@ int TTnpcScriptResponse::size() const {
TTscriptRange::TTscriptRange(uint id, const Common::Array<uint> &values,
bool isRandom, bool isSequential) :
- _id(id), _nextP(nullptr) {
+ _id(id), _nextP(nullptr), _priorIndex(0) {
_mode = SF_NONE;
if (isRandom)
_mode = SF_RANDOM;
@@ -57,7 +57,7 @@ bool TTsentenceEntry::load(Common::SeekableReadStream *s) {
return false;
_field0 = s->readUint32LE();
- _field4 = s->readUint32LE();
+ _category = s->readUint32LE();
_string8 = readStringFromStream(s);
_fieldC = s->readUint32LE();
_string10 = readStringFromStream(s);
diff --git a/engines/titanic/true_talk/script_support.h b/engines/titanic/true_talk/script_support.h
index bdaec6e7c9..3c5b919ccf 100644
--- a/engines/titanic/true_talk/script_support.h
+++ b/engines/titanic/true_talk/script_support.h
@@ -40,6 +40,10 @@ struct TTnpcScriptResponse {
uint _tag;
uint _values[4];
+ TTnpcScriptResponse() : _tag(0) {
+ _values[0] = _values[1] = _values[2] = _values[3] = 0;
+ }
+
/**
* Returns the size of the values list plus 1
*/
@@ -59,10 +63,9 @@ struct TTscriptRange {
bool isSequential);
};
-
struct TTsentenceEntry {
int _field0;
- int _field4;
+ int _category;
CString _string8;
int _fieldC;
CString _string10;
@@ -75,7 +78,7 @@ struct TTsentenceEntry {
int _field2C;
int _field30;
- TTsentenceEntry() : _field0(0), _field4(0), _fieldC(0),
+ TTsentenceEntry() : _field0(0), _category(0), _fieldC(0),
_field20(0), _field28(0), _field2C(0), _field30(0) {}
/**
diff --git a/engines/titanic/true_talk/succubus_script.cpp b/engines/titanic/true_talk/succubus_script.cpp
index db537c6470..888d23e17c 100644
--- a/engines/titanic/true_talk/succubus_script.cpp
+++ b/engines/titanic/true_talk/succubus_script.cpp
@@ -85,7 +85,7 @@ int SuccUBusScript::process(const TTroomScript *roomScript, const TTsentence *se
int currState = getState();
if (currState) {
- int currMode = sentence->_field2C;
+ int currMode = sentence->_category;
bool modeFlag1 = currMode == 11 || currMode == 13;
bool modeFlag2 = currMode == 12;
setState(0);
diff --git a/engines/titanic/true_talk/title_engine.cpp b/engines/titanic/true_talk/title_engine.cpp
index 079067389d..bfa97e3f92 100644
--- a/engines/titanic/true_talk/title_engine.cpp
+++ b/engines/titanic/true_talk/title_engine.cpp
@@ -40,7 +40,8 @@ void CTitleEngine::setup(int val1, int val2) {
/*------------------------------------------------------------------------*/
-STtitleEngine::STtitleEngine(): CTitleEngine(), _responseP(nullptr) {
+STtitleEngine::STtitleEngine(): CTitleEngine(),
+ _responseP(nullptr), _stream(nullptr) {
}
STtitleEngine::~STtitleEngine() {
diff --git a/engines/titanic/true_talk/true_talk_manager.cpp b/engines/titanic/true_talk/true_talk_manager.cpp
index 0e90676eef..fbb9d17407 100644
--- a/engines/titanic/true_talk/true_talk_manager.cpp
+++ b/engines/titanic/true_talk/true_talk_manager.cpp
@@ -245,7 +245,7 @@ void CTrueTalkManager::start4(CTrueTalkNPC *npc, CViewItem *view) {
TTnpcScript *CTrueTalkManager::getTalker(const CString &name) const {
if (name.contains("Doorbot"))
return _scripts.getNpcScript(104);
- else if (name.contains("DeskBot"))
+ else if (name.contains("Deskbot"))
return _scripts.getNpcScript(103);
else if (name.contains("LiftBot"))
return _scripts.getNpcScript(105);
@@ -271,6 +271,7 @@ TTnpcScript *CTrueTalkManager::getNpcScript(CTrueTalkNPC *npc) const {
if (!script) {
// Fall back on the default NPC script
+ warning("Could not find NPC script for %s, using fallback", npc->getName().c_str());
script = _scripts.getNpcScript(101);
}
@@ -513,7 +514,9 @@ void CTrueTalkManager::playSpeech(TTtalker *talker, TTroomScript *roomScript, CV
_gameManager->_sound.stopChannel(p1._channelMode);
if (view) {
p1._positioningMode = POSMODE_VECTOR;
+#if 0
view->getPosition(p1._posX, p1._posY, p1._posZ);
+#endif
}
// Loop through adding each of the speech portions in. We use the
@@ -537,12 +540,16 @@ void CTrueTalkManager::playSpeech(TTtalker *talker, TTroomScript *roomScript, CV
if (idx == 0)
g_vm->_events->sleep(milli);
-
+#if 0
+ // TODO: Figure out if these below are needed. It kinda looks like they were
+ // simply playing the same speech at different spatial co-ordinates. And since
+ // we don't support spatial processing in ScummVM yet, they're being left disabled
p3._priorSoundHandle = _gameManager->_sound.playSpeech(_dialogueFile, id - _dialogueId, p3);
if (idx == 0)
g_vm->_events->sleep(milli);
p2._priorSoundHandle = _gameManager->_sound.playSpeech(_dialogueFile, id - _dialogueId, p2);
+#endif
}
}
diff --git a/engines/titanic/true_talk/tt_concept.cpp b/engines/titanic/true_talk/tt_concept.cpp
index 9aad88722b..acb2e61e9e 100644
--- a/engines/titanic/true_talk/tt_concept.cpp
+++ b/engines/titanic/true_talk/tt_concept.cpp
@@ -131,7 +131,7 @@ void TTconcept::setScriptType(ScriptType scriptType) {
int TTconcept::initializeWordRef(TTword *word) {
delete _wordP;
- _wordP = word;
+ _wordP = word->copy();
return 0;
}
@@ -213,11 +213,9 @@ void TTconcept::copyFrom(TTconcept *src) {
}
int TTconcept::setOwner(TTconcept *src) {
- if (this) {
- if (src->_wordP) {
- TTword *newWord = src->_wordP->copy();
- return setOwner(newWord, 1);
- }
+ if (src->_wordP) {
+ TTword *newWord = src->_wordP->copy();
+ return setOwner(newWord, 1);
}
return 0;
@@ -298,11 +296,11 @@ TTconcept *TTconcept::findBy20(int val) {
}
bool TTconcept::isWordId(int id) const {
- return this && _wordP && _wordP->_id == id;
+ return _wordP && _wordP->_id == id;
}
int TTconcept::getWordId() const {
- return this && _wordP ? _wordP->_id : 0;
+ return _wordP ? _wordP->_id : 0;
}
} // End of namespace Titanic
diff --git a/engines/titanic/true_talk/tt_concept_node.cpp b/engines/titanic/true_talk/tt_concept_node.cpp
index 454ca59971..f6512b3d81 100644
--- a/engines/titanic/true_talk/tt_concept_node.cpp
+++ b/engines/titanic/true_talk/tt_concept_node.cpp
@@ -29,11 +29,14 @@ namespace Titanic {
TTconceptNode::TTconceptNode() : _concept0P(_concepts[0]), _concept1P(_concepts[1]),
_concept2P(_concepts[2]), _concept3P(_concepts[3]), _concept4P(_concepts[4]),
_concept5P(_concepts[5]), _field18(0), _field1C(0), _nextP(nullptr), _status(0) {
+ Common::fill(&_concepts[0], &_concepts[6], (TTconcept *)nullptr);
}
TTconceptNode::TTconceptNode(const TTconceptNode &src) : _concept0P(_concepts[0]), _concept1P(_concepts[1]),
_concept2P(_concepts[2]), _concept3P(_concepts[3]), _concept4P(_concepts[4]),
_concept5P(_concepts[5]), _field18(0), _field1C(0), _nextP(nullptr), _status(0) {
+ Common::fill(&_concepts[0], &_concepts[6], (TTconcept *)nullptr);
+
if (src._status) {
_status = SS_5;
} else {
diff --git a/engines/titanic/true_talk/tt_npc_script.cpp b/engines/titanic/true_talk/tt_npc_script.cpp
index 74e2f4f66b..527e33f14c 100644
--- a/engines/titanic/true_talk/tt_npc_script.cpp
+++ b/engines/titanic/true_talk/tt_npc_script.cpp
@@ -338,12 +338,13 @@ uint TTnpcScript::getRangeValue(uint id) {
case SF_RANDOM: {
uint count = range->_values.size();
- uint index = getRandomNumber(count) - 1;
+ int index = (int)getRandomNumber(count) - 1;
if (count > 1 && range->_values[index] == range->_priorIndex) {
- for (int retry = 0; retry < 8 && index != range->_priorIndex; ++retry)
- index = getRandomNumber(count) - 1;
+ for (int retry = 0; retry < 8 && index != (int)range->_priorIndex; ++retry)
+ index = (int)getRandomNumber(count) - 1;
}
+ assert(index >= 0);
range->_priorIndex = index;
return range->_values[index];
}
@@ -699,12 +700,12 @@ int TTnpcScript::processEntries(const TTsentenceEntries *entries, uint entryCoun
if (!entryCount)
// No count specified, so use entire list
entryCount = entries->size();
- int entryId = _field2C;
+ int categoryNum = sentence->_category;
for (uint loopCtr = 0; loopCtr < 2; ++loopCtr) {
for (uint entryCtr = 0; entryCtr < entryCount; ++entryCtr) {
const TTsentenceEntry &entry = (*entries)[entryCtr];
- if (entry._field4 != entryId && (loopCtr == 0 || entry._field4))
+ if (entry._category != categoryNum && (loopCtr == 0 || entry._category))
continue;
bool flag;
@@ -955,7 +956,7 @@ bool TTnpcScript::getStateValue() const {
}
bool TTnpcScript::sentence2C(const TTsentence *sentence) {
- return sentence->_field2C >= 2 && sentence->_field2C <= 7;
+ return sentence->_category >= 2 && sentence->_category <= 7;
}
void TTnpcScript::getAssignedRoom(int *roomNum, int *floorNum, int *elevatorNum) const {
diff --git a/engines/titanic/true_talk/tt_parser.cpp b/engines/titanic/true_talk/tt_parser.cpp
index d67f5235c4..e432677c7c 100644
--- a/engines/titanic/true_talk/tt_parser.cpp
+++ b/engines/titanic/true_talk/tt_parser.cpp
@@ -482,28 +482,30 @@ int TTparser::findFrames(TTsentence *sentence) {
TTstring *line = sentence->_normalizedLine.copy();
TTstring wordString;
int status = 0;
- for (int ctr = 1; !status; ++ctr) {
+ for (int ctr = 1; status <= 1; ++ctr) {
// Keep stripping words off the start of the passed input
wordString = line->tokenize(" \n");
if (wordString.empty())
break;
TTword *srcWord = nullptr;
- TTword *word = _owner->_vocab->getWord(wordString, &word);
+ TTword *word = _owner->_vocab->getWord(wordString, &srcWord);
sentence->storeVocabHit(srcWord);
if (!word && ctr == 1) {
word = new TTword(wordString, WC_UNKNOWN, 0);
}
- for (TTword *currP = word; currP && !status; currP = currP->_nextP)
+ for (TTword *currP = word; currP && status <= 1; currP = currP->_nextP)
status = processRequests(currP);
- word->deleteSiblings();
- delete word;
+ if (word) {
+ word->deleteSiblings();
+ delete word;
+ }
}
- if (!status) {
+ if (status <= 1) {
status = checkForAction();
}
@@ -514,7 +516,7 @@ int TTparser::findFrames(TTsentence *sentence) {
int TTparser::loadRequests(TTword *word) {
int status = 0;
- if (word->_tag != MKTAG('Z', 'Z', 'Z', 'T'))
+ if (word->_tag != MKTAG('Z', 'Z', 'Z', '['))
addNode(word->_tag);
switch (word->_wordClass) {
@@ -620,7 +622,7 @@ int TTparser::loadRequests(TTword *word) {
break;
case WC_CONJUNCTION:
- if (_sentence->check2C()) {
+ if (_sentence->checkCategory()) {
_sentenceConcept->_field1C = 1;
_sentenceConcept = _sentenceConcept->addSibling();
delete this;
@@ -674,7 +676,7 @@ int TTparser::loadRequests(TTword *word) {
case 901:
case 902:
case 904:
- if (_sentence->_field2C == 9) {
+ if (_sentence->_category == 9) {
_sentenceConcept->_field1C = 1;
_sentenceConcept = _sentenceConcept->addSibling();
addNode(1);
@@ -736,7 +738,7 @@ int TTparser::considerRequests(TTword *word) {
for (TTparserNode *nodeP = _nodesP; nodeP; ) {
switch (nodeP->_tag) {
case CHECK_COMMAND_FORM:
- if (_sentenceConcept->_concept1P && _sentence->_field2C == 1 &&
+ if (_sentenceConcept->_concept1P && _sentence->_category == 1 &&
!_sentenceConcept->_concept0P) {
concept = new TTconcept(_sentence->_npcScript, ST_NPC_SCRIPT);
_sentenceConcept->_concept0P = concept;
@@ -1030,7 +1032,7 @@ int TTparser::considerRequests(TTword *word) {
addNode(15);
}
- if (_sentence->check2C() && word->_id == 113)
+ if (_sentence->checkCategory() && word->_id == 113)
addNode(4);
if (word->_wordClass == WC_ACTION)
@@ -1053,10 +1055,10 @@ int TTparser::considerRequests(TTword *word) {
break;
case WORD_TYPE_IS_SENTENCE_TYPE:
- if (_sentence->_field2C == 1 || _sentence->_field2C == 10) {
+ if (_sentence->_category == 1 || _sentence->_category == 10) {
for (TTword *wordP = _currentWordP; wordP; wordP = wordP->_nextP) {
if (wordP->_id == 906) {
- _sentence->_field2C = 12;
+ _sentence->_category = 12;
flag = true;
break;
}
@@ -1066,44 +1068,44 @@ int TTparser::considerRequests(TTword *word) {
TTconcept *newConceptP;
switch (word->_id) {
case 108:
- _sentence->_field2C = 8;
+ _sentence->_category = 8;
break;
case 113:
if (!_sentenceConcept->_concept3P)
- _sentence->_field2C = 22;
+ _sentence->_category = 22;
break;
- case 304:
- _sentence->_field2C = 25;
+ case 306:
+ _sentence->_category = 7;
break;
- case 305:
- _sentence->_field2C = 24;
+ case 307:
+ _sentence->_category = 24;
break;
- case 306:
- _sentence->_field2C = 7;
+ case 308:
+ _sentence->_category = 25;
break;
case 501:
- _sentence->_field2C = 9;
+ _sentence->_category = 9;
break;
case 900:
- _sentence->_field2C = 5;
+ _sentence->_category = 5;
break;
case 901:
- _sentence->_field2C = 4;
+ _sentence->_category = 4;
break;
case 904:
- _sentence->_field2C = 6;
+ _sentence->_category = 6;
break;
case 905:
- _sentence->_field2C = 11;
+ _sentence->_category = 11;
break;
case 906:
- _sentence->_field2C = 12;
+ _sentence->_category = 12;
break;
case 907:
- _sentence->_field2C = 13;
+ _sentence->_category = 13;
break;
case 908:
- _sentence->_field2C = 2;
+ _sentence->_category = 2;
if (!_sentenceConcept->_concept0P) {
newPictP = new TTpicture(TTstring("?"), WC_THING, 0, 0, 0, 0, 0);
newConceptP = new TTconcept(newPictP);
@@ -1114,7 +1116,7 @@ int TTparser::considerRequests(TTword *word) {
}
break;
case 909:
- _sentence->_field2C = 3;
+ _sentence->_category = 3;
newPictP = new TTpicture(TTstring("?"), WC_THING, 0, 0, 0, 0, 0);
newConceptP = new TTconcept(newPictP);
@@ -1152,8 +1154,8 @@ int TTparser::considerRequests(TTword *word) {
addNode(5);
addNode(21);
- if (!_sentence->_field2C)
- _sentence->_field2C = 15;
+ if (!_sentence->_category)
+ _sentence->_category = 15;
break;
case MKTAG('C', 'U', 'R', 'S'):
@@ -1168,8 +1170,8 @@ int TTparser::considerRequests(TTword *word) {
addNode(5);
addNode(21);
- if (!_sentence->_field2C)
- _sentence->_field2C = 14;
+ if (!_sentence->_category)
+ _sentence->_category = 14;
break;
case MKTAG('F', 'A', 'R', 'R'):
@@ -1186,15 +1188,15 @@ int TTparser::considerRequests(TTword *word) {
addNode(5);
addNode(21);
- if (_sentence->_field2C == 1)
- _sentence->_field2C = 14;
+ if (_sentence->_category == 1)
+ _sentence->_category = 14;
flag = true;
break;
case MKTAG('H', 'E', 'L', 'P'):
- if (_sentence->_field2C == 1)
- _sentence->_field2C = 18;
+ if (_sentence->_category == 1)
+ _sentence->_category = 18;
flag = true;
break;
@@ -1257,8 +1259,8 @@ int TTparser::considerRequests(TTword *word) {
break;
case MKTAG('T', 'E', 'A', 'C'):
- if (_sentence->_field2C == 1)
- _sentence->_field2C = 10;
+ if (_sentence->_category == 1)
+ _sentence->_category = 10;
flag = true;
break;
@@ -1275,7 +1277,7 @@ int TTparser::considerRequests(TTword *word) {
TTparserNode *nextP = dynamic_cast<TTparserNode *>(nodeP->_nextP);
if (flag)
- delete nodeP;
+ removeNode(nodeP);
nodeP = nextP;
}
@@ -1402,8 +1404,8 @@ int TTparser::checkForAction() {
} else {
// No chain, so singular word can simply be removed
_currentWordP = nullptr;
- if (word->_id == 906 && _sentence->_field2C == 1)
- _sentence->_field2C = 12;
+ if (word->_id == 906 && _sentence->_category == 1)
+ _sentence->_category = 12;
}
if (word->_text == "do" || word->_text == "doing" || word->_text == "does" ||
@@ -1453,28 +1455,28 @@ int TTparser::checkForAction() {
if (_sentence->fn2(3, TTstring("thePlayer"), _sentenceConcept) && !flag) {
if (_sentenceConcept->concept1WordId() == 101) {
- _sentence->_field2C = 16;
- } else if (_sentence->_field2C != 18 && _sentenceConcept->concept1WordId() == 102) {
+ _sentence->_category = 16;
+ } else if (_sentence->_category != 18 && _sentenceConcept->concept1WordId() == 102) {
if (_sentence->fn2(0, TTstring("targetNpc"), _sentenceConcept))
- _sentence->_field2C = 15;
+ _sentence->_category = 15;
}
}
if (_sentence->fn2(2, TTstring("thePlayer"), _sentenceConcept) &&
_sentenceConcept->concept1WordId() == 101 && flag)
- _sentence->_field2C = 17;
+ _sentence->_category = 17;
if (!_sentenceConcept->_concept0P && !_sentenceConcept->_concept1P &&
!_sentenceConcept->_concept2P && !_sentenceConcept->_concept5P && !flag) {
if (_conceptP)
filterConcepts(5, 2);
- if (!_sentenceConcept->_concept2P && _sentence->_field2C == 1)
- _sentence->_field2C = 0;
+ if (!_sentenceConcept->_concept2P && _sentence->_category == 1)
+ _sentence->_category = 0;
}
- if (_sentence->_field58 < 5 && _sentence->_field2C == 1 && !flag)
- _sentence->_field2C = 19;
+ if (_sentence->_field58 < 5 && _sentence->_category == 1 && !flag)
+ _sentence->_category = 19;
for (TTconceptNode *nodeP = &_sentence->_sentenceConcept; nodeP; nodeP = nodeP->_nextP) {
if (nodeP->_field18 == 0 && nodeP->_concept1P) {
@@ -1490,15 +1492,15 @@ int TTparser::checkForAction() {
}
}
- if (_sentence->_field2C == 1 && _sentenceConcept->_concept5P &&
+ if (_sentence->_category == 1 && _sentenceConcept->_concept5P &&
_sentenceConcept->_concept2P) {
if (_sentence->fn4(1, 113, nullptr)) {
if (_sentence->fn2(2, TTstring("targetNpc"), nullptr)) {
- _sentence->_field2C = 20;
+ _sentence->_category = 20;
} else if (_sentence->fn2(2, TTstring("thePlayer"), nullptr)) {
- _sentence->_field2C = 21;
+ _sentence->_category = 21;
} else {
- _sentence->_field2C = 22;
+ _sentence->_category = 22;
}
}
} else if (!_sentenceConcept->_concept0P && !_sentenceConcept->_concept1P &&
@@ -1506,8 +1508,8 @@ int TTparser::checkForAction() {
if (_conceptP)
filterConcepts(5, 2);
- if (!_sentenceConcept->_concept2P && _sentence->_field2C == 1)
- _sentence->_field2C = 0;
+ if (!_sentenceConcept->_concept2P && _sentence->_category == 1)
+ _sentence->_category = 0;
}
return status;
@@ -1632,7 +1634,7 @@ int TTparser::processModifiers(int modifier, TTword *word) {
TTconcept *newConcept = new TTconcept(word, ST_UNKNOWN_SCRIPT);
// Cycles through each word
- for (TTword *currP = _currentWordP; currP != word; currP = _currentWordP) {
+ for (TTword *currP = _currentWordP; currP && currP != word; currP = _currentWordP) {
if ((modifier == 2 && currP->_wordClass == WC_ADJECTIVE) ||
(modifier == 1 && currP->_wordClass == WC_ADVERB)) {
newConcept->_string2 += ' ';
@@ -1658,8 +1660,8 @@ int TTparser::processModifiers(int modifier, TTword *word) {
case 204:
newConcept->_field34 = 1;
- if (_sentence->_field2C == 1)
- _sentence->_field2C = 12;
+ if (_sentence->_category == 1)
+ _sentence->_category = 12;
newConcept->_field14 = 1;
break;
diff --git a/engines/titanic/true_talk/tt_quotes_tree.cpp b/engines/titanic/true_talk/tt_quotes_tree.cpp
index 16453a10ae..e2293887a8 100644
--- a/engines/titanic/true_talk/tt_quotes_tree.cpp
+++ b/engines/titanic/true_talk/tt_quotes_tree.cpp
@@ -66,7 +66,7 @@ int TTquotesTree::search(const char *str, QuoteTreeNum treeNum,
return -1;
if (remainder) {
- while (*str) {
+ for (; *str; ++str) {
if (*str >= 'a' && *str != 's')
*remainder += *str;
}
diff --git a/engines/titanic/true_talk/tt_response.cpp b/engines/titanic/true_talk/tt_response.cpp
index 1c784ad320..3cb8d2c9ec 100644
--- a/engines/titanic/true_talk/tt_response.cpp
+++ b/engines/titanic/true_talk/tt_response.cpp
@@ -49,6 +49,12 @@ TTresponse::~TTresponse() {
}
}
+TTresponse *TTresponse::appendResponse(int id) {
+ TTresponse *resp = new TTresponse(id, 3);
+ _nextP = resp;
+ return resp;
+}
+
TTresponse *TTresponse::copyChain() const {
TTresponse *returnResponseP = new TTresponse(this);
diff --git a/engines/titanic/true_talk/tt_response.h b/engines/titanic/true_talk/tt_response.h
index d39d18c193..950e1cd23e 100644
--- a/engines/titanic/true_talk/tt_response.h
+++ b/engines/titanic/true_talk/tt_response.h
@@ -42,6 +42,12 @@ public:
virtual ~TTresponse();
/**
+ * Creates a new response and adds it as the current
+ * response's next response
+ */
+ TTresponse *appendResponse(int id);
+
+ /**
* Makes a copy of the chain of responses
*/
TTresponse *copyChain() const;
diff --git a/engines/titanic/true_talk/tt_script_base.cpp b/engines/titanic/true_talk/tt_script_base.cpp
index 2f58ad1400..1fa1ce3315 100644
--- a/engines/titanic/true_talk/tt_script_base.cpp
+++ b/engines/titanic/true_talk/tt_script_base.cpp
@@ -129,7 +129,7 @@ void TTscriptBase::appendResponse(int index, int *maxP, int id) {
if (id && (!maxP || index <= *maxP)) {
if (_respTailP) {
// Prior fragments already exist, so append to end of chain
- _respTailP = new TTresponse(_respTailP);
+ _respTailP = _respTailP->appendResponse(id);
} else {
// Currently no tail
_respTailP = new TTresponse(id, 3);
diff --git a/engines/titanic/true_talk/tt_sentence.cpp b/engines/titanic/true_talk/tt_sentence.cpp
index 3fae527770..451582383d 100644
--- a/engines/titanic/true_talk/tt_sentence.cpp
+++ b/engines/titanic/true_talk/tt_sentence.cpp
@@ -41,7 +41,7 @@ TTsentenceConcept *TTsentenceConcept::addSibling() {
TTsentence::TTsentence(int inputCtr, const TTstring &line, CScriptHandler *owner,
TTroomScript *roomScript, TTnpcScript *npcScript) :
- _owner(owner), _field2C(1), _inputCtr(inputCtr), _field34(0),
+ _owner(owner), _category(1), _inputCtr(inputCtr), _field34(0),
_field38(0), _initialLine(line), _nodesP(nullptr), _roomScript(roomScript),
_npcScript(npcScript), _field58(0), _field5C(0) {
_status = _initialLine.isValid() && _normalizedLine.isValid() ? SS_11: SS_VALID;
@@ -77,7 +77,7 @@ void TTsentence::copyFrom(const TTsentence &src) {
_field5C = src._field5C;
_field34 = src._field34;
_field38 = src._field38;
- _field2C = src._field2C;
+ _category = src._category;
_nodesP = nullptr;
if (src._nodesP) {
@@ -109,10 +109,10 @@ int TTsentence::storeVocabHit(TTword *word) {
bool TTsentence::fn1(const CString &str, int wordId1, const CString &str1, const CString &str2,
const CString &str3, int wordId2, int val1, int val2, const TTconceptNode *node) const {
- if (node)
+ if (!node)
node = &_sentenceConcept;
- if (!node && !node)
+ if (!node)
return false;
if (val1 && !is18(val1, node))
return false;
@@ -265,7 +265,9 @@ TTconcept *TTsentence::getFrameEntry(int slotIndex, const TTconceptNode *concept
TTconcept *TTsentence::getFrameSlot(int slotIndex, const TTconceptNode *conceptNode) const {
TTconcept *newConcept = new TTconcept();
TTconcept *concept = getFrameEntry(slotIndex, conceptNode);
- newConcept->copyFrom(concept);
+
+ if (concept)
+ newConcept->copyFrom(concept);
if (!newConcept->isValid()) {
delete newConcept;
diff --git a/engines/titanic/true_talk/tt_sentence.h b/engines/titanic/true_talk/tt_sentence.h
index 7b2c6400c5..cbaef26831 100644
--- a/engines/titanic/true_talk/tt_sentence.h
+++ b/engines/titanic/true_talk/tt_sentence.h
@@ -67,7 +67,7 @@ public:
int _field58;
TTroomScript *_roomScript;
TTnpcScript *_npcScript;
- int _field2C;
+ int _category;
public:
TTsentence(int inputCtr, const TTstring &line, CScriptHandler *owner,
TTroomScript *roomScript, TTnpcScript *npcScript);
@@ -76,7 +76,7 @@ public:
void setState(int v) { _field34 = v; }
void set38(int v) { _field38 = v; }
- bool check2C() const { return _field2C > 1 && _field2C <= 10; }
+ bool checkCategory() const { return _category > 1 && _category <= 10; }
int concept18(TTconceptNode *conceptNode) {
return conceptNode ? conceptNode->get18() : 0;
}
diff --git a/engines/titanic/true_talk/tt_string.cpp b/engines/titanic/true_talk/tt_string.cpp
index 198a8c2e80..43910fc823 100644
--- a/engines/titanic/true_talk/tt_string.cpp
+++ b/engines/titanic/true_talk/tt_string.cpp
@@ -111,7 +111,7 @@ TTstring TTstring::tokenize(const char *delim) {
const char *strP = _data->_string.c_str();
const char *splitP = nullptr, *chP;
- for (const char *d = delim; d; ++d) {
+ for (const char *d = delim; *d; ++d) {
chP = strchr(strP, *d);
if (chP && (splitP == nullptr || chP < splitP))
splitP = chP;
@@ -122,7 +122,9 @@ TTstring TTstring::tokenize(const char *delim) {
_data->_string = CString(splitP + 1);
return result;
} else {
- return TTstring();
+ TTstring result(strP);
+ _data->_string = CString();
+ return result;
}
}
diff --git a/engines/titanic/true_talk/tt_vocab.cpp b/engines/titanic/true_talk/tt_vocab.cpp
index 062a6b65c0..6748d6535b 100644
--- a/engines/titanic/true_talk/tt_vocab.cpp
+++ b/engines/titanic/true_talk/tt_vocab.cpp
@@ -196,10 +196,12 @@ TTword *TTvocab::getPrimeWord(TTstring &str, TTword **srcWord) const {
TTword *newWord = nullptr;
TTword *vocabP;
- if (!Common::isDigit(c)) {
+ if (Common::isDigit(c)) {
+ // Number
vocabP = _headP;
newWord = new TTword(str, WC_ABSTRACT, 300);
} else {
+ // Standard word
for (vocabP = _headP; vocabP && !newWord; vocabP = vocabP->_nextP) {
if (_vocabMode == 3 && !strcmp(str.c_str(), vocabP->c_str())) {
newWord = vocabP->copy();
@@ -550,7 +552,6 @@ TTword *TTvocab::getPrefixedWord(TTstring &str) const {
word->_text = str;
}
- delete tempStr;
return word;
}
diff --git a/graphics/fonts/bdf.cpp b/graphics/fonts/bdf.cpp
index 6049f9a283..511ea5cde1 100644
--- a/graphics/fonts/bdf.cpp
+++ b/graphics/fonts/bdf.cpp
@@ -702,7 +702,7 @@ BdfFont *BdfFont::loadFromCache(Common::SeekableReadStream &stream) {
BdfFont *BdfFont::scaleFont(BdfFont *src, int newSize) {
if (!src) {
- warning("Emtpy font reference in scale font");
+ warning("Empty font reference in scale font");
return NULL;
}
@@ -759,7 +759,7 @@ BdfFont *BdfFont::scaleFont(BdfFont *src, int newSize) {
byte *ptr = bitmaps[i];
for (int y = 0; y < box.height; y++) {
- byte *srcd = (byte *)&src->_data.bitmaps[i][((int)((float)y / scale)) * srcPitch];
+ const byte *srcd = (const byte *)&src->_data.bitmaps[i][((int)((float)y / scale)) * srcPitch];
byte *dst = ptr;
byte b = 0;
diff --git a/gui/ThemeEngine.h b/gui/ThemeEngine.h
index dff228f5b7..8a6db17dfd 100644
--- a/gui/ThemeEngine.h
+++ b/gui/ThemeEngine.h
@@ -37,7 +37,7 @@
#include "graphics/pixelformat.h"
-#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.22"
+#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.23"
class OSystem;
diff --git a/gui/editgamedialog.cpp b/gui/editgamedialog.cpp
index 36af271d2c..85b37929dc 100644
--- a/gui/editgamedialog.cpp
+++ b/gui/editgamedialog.cpp
@@ -381,45 +381,43 @@ void EditGameDialog::open() {
_platformPopUp->setSelected(sel);
}
-
-void EditGameDialog::close() {
- if (getResult()) {
- ConfMan.set("description", _descriptionWidget->getEditString(), _domain);
-
- Common::Language lang = (Common::Language)_langPopUp->getSelectedTag();
- if (lang < 0)
- ConfMan.removeKey("language", _domain);
- else
- ConfMan.set("language", Common::getLanguageCode(lang), _domain);
-
- String gamePath(_gamePathWidget->getLabel());
- if (!gamePath.empty())
- ConfMan.set("path", gamePath, _domain);
-
- String extraPath(_extraPathWidget->getLabel());
- if (!extraPath.empty() && (extraPath != _c("None", "path")))
- ConfMan.set("extrapath", extraPath, _domain);
- else
- ConfMan.removeKey("extrapath", _domain);
-
- String savePath(_savePathWidget->getLabel());
- if (!savePath.empty() && (savePath != _("Default")))
- ConfMan.set("savepath", savePath, _domain);
- else
- ConfMan.removeKey("savepath", _domain);
-
- Common::Platform platform = (Common::Platform)_platformPopUp->getSelectedTag();
- if (platform < 0)
- ConfMan.removeKey("platform", _domain);
- else
- ConfMan.set("platform", Common::getPlatformCode(platform), _domain);
-
- // Set the state of engine-specific checkboxes
- for (uint i = 0; i < _engineOptions.size(); i++) {
- ConfMan.setBool(_engineOptions[i].configOption, _engineCheckboxes[i]->getState(), _domain);
- }
+void EditGameDialog::apply() {
+ ConfMan.set("description", _descriptionWidget->getEditString(), _domain);
+
+ Common::Language lang = (Common::Language)_langPopUp->getSelectedTag();
+ if (lang < 0)
+ ConfMan.removeKey("language", _domain);
+ else
+ ConfMan.set("language", Common::getLanguageCode(lang), _domain);
+
+ String gamePath(_gamePathWidget->getLabel());
+ if (!gamePath.empty())
+ ConfMan.set("path", gamePath, _domain);
+
+ String extraPath(_extraPathWidget->getLabel());
+ if (!extraPath.empty() && (extraPath != _c("None", "path")))
+ ConfMan.set("extrapath", extraPath, _domain);
+ else
+ ConfMan.removeKey("extrapath", _domain);
+
+ String savePath(_savePathWidget->getLabel());
+ if (!savePath.empty() && (savePath != _("Default")))
+ ConfMan.set("savepath", savePath, _domain);
+ else
+ ConfMan.removeKey("savepath", _domain);
+
+ Common::Platform platform = (Common::Platform)_platformPopUp->getSelectedTag();
+ if (platform < 0)
+ ConfMan.removeKey("platform", _domain);
+ else
+ ConfMan.set("platform", Common::getPlatformCode(platform), _domain);
+
+ // Set the state of engine-specific checkboxes
+ for (uint i = 0; i < _engineOptions.size(); i++) {
+ ConfMan.setBool(_engineOptions[i].configOption, _engineCheckboxes[i]->getState(), _domain);
}
- OptionsDialog::close();
+
+ OptionsDialog::apply();
}
void EditGameDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
diff --git a/gui/editgamedialog.h b/gui/editgamedialog.h
index 0be6c1650e..a317e364c6 100644
--- a/gui/editgamedialog.h
+++ b/gui/editgamedialog.h
@@ -65,7 +65,7 @@ public:
EditGameDialog(const String &domain, const String &desc);
void open();
- void close();
+ virtual void apply();
virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
protected:
diff --git a/gui/launcher.cpp b/gui/launcher.cpp
index cf9c0bf56d..f96dd17d46 100644
--- a/gui/launcher.cpp
+++ b/gui/launcher.cpp
@@ -99,6 +99,30 @@ LauncherDialog::LauncherDialog()
_w = screenW;
_h = screenH;
+ build();
+
+ GUI::GuiManager::instance()._launched = true;
+}
+
+void LauncherDialog::selectTarget(const String &target) {
+ if (!target.empty()) {
+ int itemToSelect = 0;
+ StringArray::const_iterator iter;
+ for (iter = _domains.begin(); iter != _domains.end(); ++iter, ++itemToSelect) {
+ if (target == *iter) {
+ _list->setSelected(itemToSelect);
+ break;
+ }
+ }
+ }
+}
+
+LauncherDialog::~LauncherDialog() {
+ delete _browser;
+ delete _loadDialog;
+}
+
+void LauncherDialog::build() {
#ifndef DISABLE_FANCY_THEMES
_logo = 0;
if (g_gui.xmlEval()->getVar("Globals.ShowLauncherLogo") == 1 && g_gui.theme()->supportsImages()) {
@@ -174,28 +198,25 @@ LauncherDialog::LauncherDialog()
// Create Load dialog
_loadDialog = new SaveLoadChooser(_("Load game:"), _("Load"), false);
-
- GUI::GuiManager::instance()._launched = true;
}
-void LauncherDialog::selectTarget(const String &target) {
- if (!target.empty()) {
- int itemToSelect = 0;
- StringArray::const_iterator iter;
- for (iter = _domains.begin(); iter != _domains.end(); ++iter, ++itemToSelect) {
- if (target == *iter) {
- _list->setSelected(itemToSelect);
- break;
- }
- }
+void LauncherDialog::clean() {
+ while (_firstWidget) {
+ Widget* w = _firstWidget;
+ removeWidget(w);
+ delete w;
}
-}
-
-LauncherDialog::~LauncherDialog() {
delete _browser;
delete _loadDialog;
}
+void LauncherDialog::rebuild() {
+ clean();
+ build();
+ reflowLayout();
+ setFocusWidget(_firstWidget);
+}
+
void LauncherDialog::open() {
// Clear the active domain, in case we return to the dialog from a
// failure to launch a game. Otherwise, pressing ESC will attempt to
diff --git a/gui/launcher.h b/gui/launcher.h
index 58f1c930ed..08413fe3d2 100644
--- a/gui/launcher.h
+++ b/gui/launcher.h
@@ -47,6 +47,8 @@ public:
LauncherDialog();
~LauncherDialog();
+ void rebuild();
+
virtual void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
virtual void handleKeyDown(Common::KeyState state);
@@ -83,6 +85,9 @@ protected:
void updateButtons();
void switchButtonsText(ButtonWidget *button, const char *normalText, const char *shiftedText);
+ void build();
+ void clean();
+
void open();
void close();
diff --git a/gui/options.cpp b/gui/options.cpp
index 3701369316..3f6fc5aa2c 100644
--- a/gui/options.cpp
+++ b/gui/options.cpp
@@ -28,6 +28,7 @@
#include "gui/widgets/popup.h"
#include "gui/widgets/tab.h"
#include "gui/ThemeEval.h"
+#include "gui/launcher.h"
#include "common/fs.h"
#include "common/config-manager.h"
@@ -110,6 +111,10 @@ enum {
kRootPathClearCmd = 'clrp'
};
#endif
+
+enum {
+ kApplyCmd = 'appl'
+};
static const char *savePeriodLabels[] = { _s("Never"), _s("every 5 mins"), _s("every 10 mins"), _s("every 15 mins"), _s("every 30 mins"), 0 };
static const int savePeriodValues[] = { 0, 5 * 60, 10 * 60, 15 * 60, 30 * 60, -1 };
@@ -182,8 +187,6 @@ void OptionsDialog::init() {
_subSpeedSlider = 0;
_subSpeedLabel = 0;
- _oldTheme = g_gui.theme()->getThemeId();
-
// Retrieve game GUI options
_guioptions.clear();
if (ConfMan.hasKey("guioptions", _domain)) {
@@ -191,13 +194,8 @@ void OptionsDialog::init() {
_guioptions = parseGameGUIOptions(_guioptionsString);
}
}
-
-void OptionsDialog::open() {
- Dialog::open();
-
- // Reset result value
- setResult(0);
-
+
+void OptionsDialog::build() {
// Retrieve game GUI options
_guioptions.clear();
if (ConfMan.hasKey("guioptions", _domain)) {
@@ -352,212 +350,238 @@ void OptionsDialog::open() {
_subSpeedLabel->setValue(speed);
}
}
+
+void OptionsDialog::clean() {
+ delete _subToggleGroup;
+ while (_firstWidget) {
+ Widget* w = _firstWidget;
+ removeWidget(w);
+ delete w;
+ }
+ init();
+}
+
+void OptionsDialog::rebuild() {
+ int currentTab = _tabWidget->getActiveTab();
+ clean();
+ build();
+ reflowLayout();
+ _tabWidget->setActiveTab(currentTab);
+ setFocusWidget(_firstWidget);
+}
-void OptionsDialog::close() {
- if (getResult()) {
-
- // Graphic options
- bool graphicsModeChanged = false;
- if (_fullscreenCheckbox) {
- if (_enableGraphicSettings) {
- if (ConfMan.getBool("filtering", _domain) != _filteringCheckbox->getState())
- graphicsModeChanged = true;
- if (ConfMan.getBool("fullscreen", _domain) != _fullscreenCheckbox->getState())
- graphicsModeChanged = true;
- if (ConfMan.getBool("aspect_ratio", _domain) != _aspectCheckbox->getState())
- graphicsModeChanged = true;
-
- ConfMan.setBool("filtering", _filteringCheckbox->getState(), _domain);
- ConfMan.setBool("fullscreen", _fullscreenCheckbox->getState(), _domain);
- ConfMan.setBool("aspect_ratio", _aspectCheckbox->getState(), _domain);
-
- bool isSet = false;
-
- if ((int32)_gfxPopUp->getSelectedTag() >= 0) {
- const OSystem::GraphicsMode *gm = g_system->getSupportedGraphicsModes();
-
- while (gm->name) {
- if (gm->id == (int)_gfxPopUp->getSelectedTag()) {
- if (ConfMan.get("gfx_mode", _domain) != gm->name)
- graphicsModeChanged = true;
- ConfMan.set("gfx_mode", gm->name, _domain);
- isSet = true;
- break;
- }
- gm++;
+void OptionsDialog::open() {
+ build();
+
+ Dialog::open();
+
+ // Reset result value
+ setResult(0);
+}
+
+void OptionsDialog::apply() {
+ // Graphic options
+ bool graphicsModeChanged = false;
+ if (_fullscreenCheckbox) {
+ if (_enableGraphicSettings) {
+ if (ConfMan.getBool("filtering", _domain) != _filteringCheckbox->getState())
+ graphicsModeChanged = true;
+ if (ConfMan.getBool("fullscreen", _domain) != _fullscreenCheckbox->getState())
+ graphicsModeChanged = true;
+ if (ConfMan.getBool("aspect_ratio", _domain) != _aspectCheckbox->getState())
+ graphicsModeChanged = true;
+
+ ConfMan.setBool("filtering", _filteringCheckbox->getState(), _domain);
+ ConfMan.setBool("fullscreen", _fullscreenCheckbox->getState(), _domain);
+ ConfMan.setBool("aspect_ratio", _aspectCheckbox->getState(), _domain);
+
+ bool isSet = false;
+
+ if ((int32)_gfxPopUp->getSelectedTag() >= 0) {
+ const OSystem::GraphicsMode *gm = g_system->getSupportedGraphicsModes();
+
+ while (gm->name) {
+ if (gm->id == (int)_gfxPopUp->getSelectedTag()) {
+ if (ConfMan.get("gfx_mode", _domain) != gm->name)
+ graphicsModeChanged = true;
+ ConfMan.set("gfx_mode", gm->name, _domain);
+ isSet = true;
+ break;
}
+ gm++;
}
- if (!isSet)
- ConfMan.removeKey("gfx_mode", _domain);
-
- if ((int32)_renderModePopUp->getSelectedTag() >= 0)
- ConfMan.set("render_mode", Common::getRenderModeCode((Common::RenderMode)_renderModePopUp->getSelectedTag()), _domain);
- } else {
- ConfMan.removeKey("fullscreen", _domain);
- ConfMan.removeKey("filtering", _domain);
- ConfMan.removeKey("aspect_ratio", _domain);
- ConfMan.removeKey("gfx_mode", _domain);
- ConfMan.removeKey("render_mode", _domain);
}
+ if (!isSet)
+ ConfMan.removeKey("gfx_mode", _domain);
+
+ if ((int32)_renderModePopUp->getSelectedTag() >= 0)
+ ConfMan.set("render_mode", Common::getRenderModeCode((Common::RenderMode)_renderModePopUp->getSelectedTag()), _domain);
+ } else {
+ ConfMan.removeKey("fullscreen", _domain);
+ ConfMan.removeKey("filtering", _domain);
+ ConfMan.removeKey("aspect_ratio", _domain);
+ ConfMan.removeKey("gfx_mode", _domain);
+ ConfMan.removeKey("render_mode", _domain);
}
-
- // Setup graphics again if needed
- if (_domain == Common::ConfigManager::kApplicationDomain && graphicsModeChanged) {
- g_system->beginGFXTransaction();
- g_system->setGraphicsMode(ConfMan.get("gfx_mode", _domain).c_str());
-
- if (ConfMan.hasKey("aspect_ratio"))
- g_system->setFeatureState(OSystem::kFeatureAspectRatioCorrection, ConfMan.getBool("aspect_ratio", _domain));
- if (ConfMan.hasKey("fullscreen"))
- g_system->setFeatureState(OSystem::kFeatureFullscreenMode, ConfMan.getBool("fullscreen", _domain));
- if (ConfMan.hasKey("filtering"))
- g_system->setFeatureState(OSystem::kFeatureFilteringMode, ConfMan.getBool("filtering", _domain));
-
- OSystem::TransactionError gfxError = g_system->endGFXTransaction();
-
- // Since this might change the screen resolution we need to give
- // the GUI a chance to update it's internal state. Otherwise we might
- // get a crash when the GUI tries to grab the overlay.
- //
- // This fixes bug #3303501 "Switching from HQ2x->HQ3x crashes ScummVM"
- //
- // It is important that this is called *before* any of the current
- // dialog's widgets are destroyed (for example before
- // Dialog::close) is called, to prevent crashes caused by invalid
- // widgets being referenced or similar errors.
- g_gui.checkScreenChange();
-
- if (gfxError != OSystem::kTransactionSuccess) {
- // Revert ConfMan to what OSystem is using.
- Common::String message = _("Failed to apply some of the graphic options changes:");
-
- if (gfxError & OSystem::kTransactionModeSwitchFailed) {
- const OSystem::GraphicsMode *gm = g_system->getSupportedGraphicsModes();
- while (gm->name) {
- if (gm->id == g_system->getGraphicsMode()) {
- ConfMan.set("gfx_mode", gm->name, _domain);
- break;
- }
- gm++;
+ }
+
+ // Setup graphics again if needed
+ if (_domain == Common::ConfigManager::kApplicationDomain && graphicsModeChanged) {
+ g_system->beginGFXTransaction();
+ g_system->setGraphicsMode(ConfMan.get("gfx_mode", _domain).c_str());
+
+ if (ConfMan.hasKey("aspect_ratio"))
+ g_system->setFeatureState(OSystem::kFeatureAspectRatioCorrection, ConfMan.getBool("aspect_ratio", _domain));
+ if (ConfMan.hasKey("fullscreen"))
+ g_system->setFeatureState(OSystem::kFeatureFullscreenMode, ConfMan.getBool("fullscreen", _domain));
+ if (ConfMan.hasKey("filtering"))
+ g_system->setFeatureState(OSystem::kFeatureFilteringMode, ConfMan.getBool("filtering", _domain));
+
+ OSystem::TransactionError gfxError = g_system->endGFXTransaction();
+
+ // Since this might change the screen resolution we need to give
+ // the GUI a chance to update it's internal state. Otherwise we might
+ // get a crash when the GUI tries to grab the overlay.
+ //
+ // This fixes bug #3303501 "Switching from HQ2x->HQ3x crashes ScummVM"
+ //
+ // It is important that this is called *before* any of the current
+ // dialog's widgets are destroyed (for example before
+ // Dialog::close) is called, to prevent crashes caused by invalid
+ // widgets being referenced or similar errors.
+ g_gui.checkScreenChange();
+
+ if (gfxError != OSystem::kTransactionSuccess) {
+ // Revert ConfMan to what OSystem is using.
+ Common::String message = _("Failed to apply some of the graphic options changes:");
+
+ if (gfxError & OSystem::kTransactionModeSwitchFailed) {
+ const OSystem::GraphicsMode *gm = g_system->getSupportedGraphicsModes();
+ while (gm->name) {
+ if (gm->id == g_system->getGraphicsMode()) {
+ ConfMan.set("gfx_mode", gm->name, _domain);
+ break;
}
- message += "\n";
- message += _("the video mode could not be changed.");
- }
-
- if (gfxError & OSystem::kTransactionAspectRatioFailed) {
- ConfMan.setBool("aspect_ratio", g_system->getFeatureState(OSystem::kFeatureAspectRatioCorrection), _domain);
- message += "\n";
- message += _("the aspect ratio setting could not be changed");
+ gm++;
}
-
- if (gfxError & OSystem::kTransactionFullscreenFailed) {
- ConfMan.setBool("fullscreen", g_system->getFeatureState(OSystem::kFeatureFullscreenMode), _domain);
- message += "\n";
- message += _("the fullscreen setting could not be changed");
- }
-
- if (gfxError & OSystem::kTransactionFilteringFailed) {
- ConfMan.setBool("filtering", g_system->getFeatureState(OSystem::kFeatureFilteringMode), _domain);
- message += "\n";
- message += _("the filtering setting could not be changed");
- }
-
- // And display the error
- GUI::MessageDialog dialog(message);
- dialog.runModal();
+ message += "\n";
+ message += _("the video mode could not be changed.");
}
- }
-
- // Volume options
- if (_musicVolumeSlider) {
- if (_enableVolumeSettings) {
- ConfMan.setInt("music_volume", _musicVolumeSlider->getValue(), _domain);
- ConfMan.setInt("sfx_volume", _sfxVolumeSlider->getValue(), _domain);
- ConfMan.setInt("speech_volume", _speechVolumeSlider->getValue(), _domain);
- ConfMan.setBool("mute", _muteCheckbox->getState(), _domain);
- } else {
- ConfMan.removeKey("music_volume", _domain);
- ConfMan.removeKey("sfx_volume", _domain);
- ConfMan.removeKey("speech_volume", _domain);
- ConfMan.removeKey("mute", _domain);
+
+ if (gfxError & OSystem::kTransactionAspectRatioFailed) {
+ ConfMan.setBool("aspect_ratio", g_system->getFeatureState(OSystem::kFeatureAspectRatioCorrection), _domain);
+ message += "\n";
+ message += _("the aspect ratio setting could not be changed");
}
- }
-
- // Audio options
- if (_midiPopUp) {
- if (_enableAudioSettings) {
- saveMusicDeviceSetting(_midiPopUp, "music_driver");
- } else {
- ConfMan.removeKey("music_driver", _domain);
+
+ if (gfxError & OSystem::kTransactionFullscreenFailed) {
+ ConfMan.setBool("fullscreen", g_system->getFeatureState(OSystem::kFeatureFullscreenMode), _domain);
+ message += "\n";
+ message += _("the fullscreen setting could not be changed");
}
+
+ if (gfxError & OSystem::kTransactionFilteringFailed) {
+ ConfMan.setBool("filtering", g_system->getFeatureState(OSystem::kFeatureFilteringMode), _domain);
+ message += "\n";
+ message += _("the filtering setting could not be changed");
+ }
+
+ // And display the error
+ GUI::MessageDialog dialog(message);
+ dialog.runModal();
}
-
- if (_oplPopUp) {
- if (_enableAudioSettings) {
- const OPL::Config::EmulatorDescription *ed = OPL::Config::findDriver(_oplPopUp->getSelectedTag());
-
- if (ed)
- ConfMan.set("opl_driver", ed->name, _domain);
- else
- ConfMan.removeKey("opl_driver", _domain);
- } else {
+ }
+
+ // Volume options
+ if (_musicVolumeSlider) {
+ if (_enableVolumeSettings) {
+ ConfMan.setInt("music_volume", _musicVolumeSlider->getValue(), _domain);
+ ConfMan.setInt("sfx_volume", _sfxVolumeSlider->getValue(), _domain);
+ ConfMan.setInt("speech_volume", _speechVolumeSlider->getValue(), _domain);
+ ConfMan.setBool("mute", _muteCheckbox->getState(), _domain);
+ } else {
+ ConfMan.removeKey("music_volume", _domain);
+ ConfMan.removeKey("sfx_volume", _domain);
+ ConfMan.removeKey("speech_volume", _domain);
+ ConfMan.removeKey("mute", _domain);
+ }
+ }
+
+ // Audio options
+ if (_midiPopUp) {
+ if (_enableAudioSettings) {
+ saveMusicDeviceSetting(_midiPopUp, "music_driver");
+ } else {
+ ConfMan.removeKey("music_driver", _domain);
+ }
+ }
+
+ if (_oplPopUp) {
+ if (_enableAudioSettings) {
+ const OPL::Config::EmulatorDescription *ed = OPL::Config::findDriver(_oplPopUp->getSelectedTag());
+
+ if (ed)
+ ConfMan.set("opl_driver", ed->name, _domain);
+ else
ConfMan.removeKey("opl_driver", _domain);
- }
+ } else {
+ ConfMan.removeKey("opl_driver", _domain);
}
-
- if (_outputRatePopUp) {
- if (_enableAudioSettings) {
- if (_outputRatePopUp->getSelectedTag() != 0)
- ConfMan.setInt("output_rate", _outputRatePopUp->getSelectedTag(), _domain);
- else
- ConfMan.removeKey("output_rate", _domain);
- } else {
+ }
+
+ if (_outputRatePopUp) {
+ if (_enableAudioSettings) {
+ if (_outputRatePopUp->getSelectedTag() != 0)
+ ConfMan.setInt("output_rate", _outputRatePopUp->getSelectedTag(), _domain);
+ else
ConfMan.removeKey("output_rate", _domain);
- }
+ } else {
+ ConfMan.removeKey("output_rate", _domain);
}
-
- // MIDI options
- if (_multiMidiCheckbox) {
- if (_enableMIDISettings) {
- saveMusicDeviceSetting(_gmDevicePopUp, "gm_device");
-
- ConfMan.setBool("multi_midi", _multiMidiCheckbox->getState(), _domain);
- ConfMan.setInt("midi_gain", _midiGainSlider->getValue(), _domain);
-
- Common::String soundFont(_soundFont->getLabel());
- if (!soundFont.empty() && (soundFont != _c("None", "soundfont")))
- ConfMan.set("soundfont", soundFont, _domain);
- else
- ConfMan.removeKey("soundfont", _domain);
- } else {
- ConfMan.removeKey("gm_device", _domain);
- ConfMan.removeKey("multi_midi", _domain);
- ConfMan.removeKey("midi_gain", _domain);
+ }
+
+ // MIDI options
+ if (_multiMidiCheckbox) {
+ if (_enableMIDISettings) {
+ saveMusicDeviceSetting(_gmDevicePopUp, "gm_device");
+
+ ConfMan.setBool("multi_midi", _multiMidiCheckbox->getState(), _domain);
+ ConfMan.setInt("midi_gain", _midiGainSlider->getValue(), _domain);
+
+ Common::String soundFont(_soundFont->getLabel());
+ if (!soundFont.empty() && (soundFont != _c("None", "soundfont")))
+ ConfMan.set("soundfont", soundFont, _domain);
+ else
ConfMan.removeKey("soundfont", _domain);
- }
+ } else {
+ ConfMan.removeKey("gm_device", _domain);
+ ConfMan.removeKey("multi_midi", _domain);
+ ConfMan.removeKey("midi_gain", _domain);
+ ConfMan.removeKey("soundfont", _domain);
}
-
- // MT-32 options
- if (_mt32DevicePopUp) {
- if (_enableMT32Settings) {
- saveMusicDeviceSetting(_mt32DevicePopUp, "mt32_device");
- ConfMan.setBool("native_mt32", _mt32Checkbox->getState(), _domain);
- ConfMan.setBool("enable_gs", _enableGSCheckbox->getState(), _domain);
- } else {
- ConfMan.removeKey("mt32_device", _domain);
- ConfMan.removeKey("native_mt32", _domain);
- ConfMan.removeKey("enable_gs", _domain);
- }
+ }
+
+ // MT-32 options
+ if (_mt32DevicePopUp) {
+ if (_enableMT32Settings) {
+ saveMusicDeviceSetting(_mt32DevicePopUp, "mt32_device");
+ ConfMan.setBool("native_mt32", _mt32Checkbox->getState(), _domain);
+ ConfMan.setBool("enable_gs", _enableGSCheckbox->getState(), _domain);
+ } else {
+ ConfMan.removeKey("mt32_device", _domain);
+ ConfMan.removeKey("native_mt32", _domain);
+ ConfMan.removeKey("enable_gs", _domain);
}
-
- // Subtitle options
- if (_subToggleGroup) {
- if (_enableSubtitleSettings) {
- bool subtitles, speech_mute;
- int talkspeed;
- int sliderMaxValue = _subSpeedSlider->getMaxValue();
-
- switch (_subToggleGroup->getValue()) {
+ }
+
+ // Subtitle options
+ if (_subToggleGroup) {
+ if (_enableSubtitleSettings) {
+ bool subtitles, speech_mute;
+ int talkspeed;
+ int sliderMaxValue = _subSpeedSlider->getMaxValue();
+
+ switch (_subToggleGroup->getValue()) {
case kSubtitlesSpeech:
subtitles = speech_mute = false;
break;
@@ -569,26 +593,30 @@ void OptionsDialog::close() {
default:
subtitles = speech_mute = true;
break;
- }
-
- ConfMan.setBool("subtitles", subtitles, _domain);
- ConfMan.setBool("speech_mute", speech_mute, _domain);
-
- // Engines that reuse the subtitle speed widget set their own max value.
- // Scale the config value accordingly (see addSubtitleControls)
- talkspeed = (_subSpeedSlider->getValue() * 255 + sliderMaxValue / 2) / sliderMaxValue;
- ConfMan.setInt("talkspeed", talkspeed, _domain);
-
- } else {
- ConfMan.removeKey("subtitles", _domain);
- ConfMan.removeKey("talkspeed", _domain);
- ConfMan.removeKey("speech_mute", _domain);
}
+
+ ConfMan.setBool("subtitles", subtitles, _domain);
+ ConfMan.setBool("speech_mute", speech_mute, _domain);
+
+ // Engines that reuse the subtitle speed widget set their own max value.
+ // Scale the config value accordingly (see addSubtitleControls)
+ talkspeed = (_subSpeedSlider->getValue() * 255 + sliderMaxValue / 2) / sliderMaxValue;
+ ConfMan.setInt("talkspeed", talkspeed, _domain);
+
+ } else {
+ ConfMan.removeKey("subtitles", _domain);
+ ConfMan.removeKey("talkspeed", _domain);
+ ConfMan.removeKey("speech_mute", _domain);
}
-
- // Save config file
- ConfMan.flushToDisk();
}
+
+ // Save config file
+ ConfMan.flushToDisk();
+}
+
+void OptionsDialog::close() {
+ if (getResult())
+ apply();
Dialog::close();
}
@@ -630,15 +658,14 @@ void OptionsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data
_soundFontClearButton->setEnabled(false);
draw();
break;
+ case kApplyCmd:
+ apply();
+ break;
case kOKCmd:
setResult(1);
close();
break;
case kCloseCmd:
- if (g_gui.theme()->getThemeId() != _oldTheme) {
- g_gui.loadNewTheme(_oldTheme);
- ConfMan.set("gui_theme", _oldTheme);
- }
close();
break;
default:
@@ -1127,7 +1154,75 @@ void OptionsDialog::reflowLayout() {
GlobalOptionsDialog::GlobalOptionsDialog(LauncherDialog *launcher)
: OptionsDialog(Common::ConfigManager::kApplicationDomain, "GlobalOptions"), _launcher(launcher) {
+#ifdef GUI_ENABLE_KEYSDIALOG
+ _keysDialog = 0;
+#endif
+#ifdef USE_FLUIDSYNTH
+ _fluidSynthSettingsDialog = 0;
+#endif
+ _savePath = 0;
+ _savePathClearButton = 0;
+ _themePath = 0;
+ _themePathClearButton = 0;
+ _extraPath = 0;
+ _extraPathClearButton = 0;
+#ifdef DYNAMIC_MODULES
+ _pluginsPath = 0;
+#endif
+ _curTheme = 0;
+ _rendererPopUpDesc = 0;
+ _rendererPopUp = 0;
+ _autosavePeriodPopUpDesc = 0;
+ _autosavePeriodPopUp = 0;
+ _guiLanguagePopUpDesc = 0;
+ _guiLanguagePopUp = 0;
+#ifdef USE_UPDATES
+ _updatesPopUpDesc = 0;
+ _updatesPopUp = 0;
+#endif
+#ifdef USE_CLOUD
+#ifdef USE_LIBCURL
+ _selectedStorageIndex = CloudMan.getStorageIndex();
+#else
+ _selectedStorageIndex = 0;
+#endif
+ _storagePopUpDesc = 0;
+ _storagePopUp = 0;
+ _storageUsernameDesc = 0;
+ _storageUsername = 0;
+ _storageUsedSpaceDesc = 0;
+ _storageUsedSpace = 0;
+ _storageLastSyncDesc = 0;
+ _storageLastSync = 0;
+ _storageConnectButton = 0;
+ _storageRefreshButton = 0;
+ _storageDownloadButton = 0;
+ _runServerButton = 0;
+ _serverInfoLabel = 0;
+ _rootPathButton = 0;
+ _rootPath = 0;
+ _rootPathClearButton = 0;
+ _serverPortDesc = 0;
+ _serverPort = 0;
+ _serverPortClearButton = 0;
+ _redrawCloudTab = false;
+#ifdef USE_SDL_NET
+ _serverWasRunning = false;
+#endif
+#endif
+}
+GlobalOptionsDialog::~GlobalOptionsDialog() {
+#ifdef GUI_ENABLE_KEYSDIALOG
+ delete _keysDialog;
+#endif
+
+#ifdef USE_FLUIDSYNTH
+ delete _fluidSynthSettingsDialog;
+#endif
+}
+
+void GlobalOptionsDialog::build() {
// The tab widget
TabWidget *tab = new TabWidget(this, "GlobalOptions.TabWidget");
@@ -1310,12 +1405,6 @@ GlobalOptionsDialog::GlobalOptionsDialog(LauncherDialog *launcher)
ScrollContainerWidget *container = new ScrollContainerWidget(tab, "GlobalOptions_Cloud.Container", kCloudTabContainerReflowCmd);
container->setTarget(this);
-#ifdef USE_LIBCURL
- _selectedStorageIndex = CloudMan.getStorageIndex();
-#else
- _selectedStorageIndex = 0;
-#endif
-
_storagePopUpDesc = new StaticTextWidget(container, "GlobalOptions_Cloud_Container.StoragePopupDesc", _("Storage:"), _("Active cloud storage"));
_storagePopUp = new PopUpWidget(container, "GlobalOptions_Cloud_Container.StoragePopup");
#ifdef USE_LIBCURL
@@ -1362,10 +1451,6 @@ GlobalOptionsDialog::GlobalOptionsDialog(LauncherDialog *launcher)
_serverPortClearButton = addClearButton(container, "GlobalOptions_Cloud_Container.ServerPortClearButton", kServerPortClearCmd);
setupCloudTab();
- _redrawCloudTab = false;
-#ifdef USE_SDL_NET
- _serverWasRunning = false;
-#endif
#endif // USE_CLOUD
// Activate the first tab
@@ -1374,6 +1459,7 @@ GlobalOptionsDialog::GlobalOptionsDialog(LauncherDialog *launcher)
// Add OK & Cancel buttons
new ButtonWidget(this, "GlobalOptions.Cancel", _("Cancel"), 0, kCloseCmd);
+ new ButtonWidget(this, "GlobalOptions.Apply", _("Apply"), 0, kApplyCmd);
new ButtonWidget(this, "GlobalOptions.Ok", _("OK"), 0, kOKCmd);
#ifdef GUI_ENABLE_KEYSDIALOG
@@ -1383,20 +1469,8 @@ GlobalOptionsDialog::GlobalOptionsDialog(LauncherDialog *launcher)
#ifdef USE_FLUIDSYNTH
_fluidSynthSettingsDialog = new FluidSynthSettingsDialog();
#endif
-}
-
-GlobalOptionsDialog::~GlobalOptionsDialog() {
-#ifdef GUI_ENABLE_KEYSDIALOG
- delete _keysDialog;
-#endif
-
-#ifdef USE_FLUIDSYNTH
- delete _fluidSynthSettingsDialog;
-#endif
-}
-void GlobalOptionsDialog::open() {
- OptionsDialog::open();
+ OptionsDialog::build();
#if !( defined(__DC__) || defined(__GP32__) )
// Set _savePath to the current save path
@@ -1455,117 +1529,158 @@ void GlobalOptionsDialog::open() {
#endif
}
-void GlobalOptionsDialog::close() {
- if (getResult()) {
- Common::String savePath(_savePath->getLabel());
- if (!savePath.empty() && (savePath != _("Default")))
- ConfMan.set("savepath", savePath, _domain);
- else
- ConfMan.removeKey("savepath", _domain);
+void GlobalOptionsDialog::clean() {
+#ifdef GUI_ENABLE_KEYSDIALOG
+ delete _keysDialog;
+ _keysDialog = 0;
+#endif
- Common::String themePath(_themePath->getLabel());
- if (!themePath.empty() && (themePath != _c("None", "path")))
- ConfMan.set("themepath", themePath, _domain);
- else
- ConfMan.removeKey("themepath", _domain);
+#ifdef USE_FLUIDSYNTH
+ delete _fluidSynthSettingsDialog;
+ _fluidSynthSettingsDialog = 0;
+#endif
- Common::String extraPath(_extraPath->getLabel());
- if (!extraPath.empty() && (extraPath != _c("None", "path")))
- ConfMan.set("extrapath", extraPath, _domain);
- else
- ConfMan.removeKey("extrapath", _domain);
+ OptionsDialog::clean();
+}
+
+void GlobalOptionsDialog::apply() {
+ Common::String savePath(_savePath->getLabel());
+ if (!savePath.empty() && (savePath != _("Default")))
+ ConfMan.set("savepath", savePath, _domain);
+ else
+ ConfMan.removeKey("savepath", _domain);
+
+ Common::String themePath(_themePath->getLabel());
+ if (!themePath.empty() && (themePath != _c("None", "path")))
+ ConfMan.set("themepath", themePath, _domain);
+ else
+ ConfMan.removeKey("themepath", _domain);
+
+ Common::String extraPath(_extraPath->getLabel());
+ if (!extraPath.empty() && (extraPath != _c("None", "path")))
+ ConfMan.set("extrapath", extraPath, _domain);
+ else
+ ConfMan.removeKey("extrapath", _domain);
#ifdef DYNAMIC_MODULES
- Common::String pluginsPath(_pluginsPath->getLabel());
- if (!pluginsPath.empty() && (pluginsPath != _c("None", "path")))
- ConfMan.set("pluginspath", pluginsPath, _domain);
- else
- ConfMan.removeKey("pluginspath", _domain);
+ Common::String pluginsPath(_pluginsPath->getLabel());
+ if (!pluginsPath.empty() && (pluginsPath != _c("None", "path")))
+ ConfMan.set("pluginspath", pluginsPath, _domain);
+ else
+ ConfMan.removeKey("pluginspath", _domain);
#endif
#ifdef USE_CLOUD
- Common::String rootPath(_rootPath->getLabel());
- if (!rootPath.empty() && (rootPath != _c("None", "path")))
- ConfMan.set("rootpath", rootPath, "cloud");
- else
- ConfMan.removeKey("rootpath", "cloud");
+ Common::String rootPath(_rootPath->getLabel());
+ if (!rootPath.empty() && (rootPath != _c("None", "path")))
+ ConfMan.set("rootpath", rootPath, "cloud");
+ else
+ ConfMan.removeKey("rootpath", "cloud");
#endif
- ConfMan.setInt("autosave_period", _autosavePeriodPopUp->getSelectedTag(), _domain);
+ ConfMan.setInt("autosave_period", _autosavePeriodPopUp->getSelectedTag(), _domain);
- GUI::ThemeEngine::GraphicsMode selected = (GUI::ThemeEngine::GraphicsMode)_rendererPopUp->getSelectedTag();
- const char *cfg = GUI::ThemeEngine::findModeConfigName(selected);
- if (!ConfMan.get("gui_renderer").equalsIgnoreCase(cfg)) {
- // FIXME: Actually, any changes (including the theme change) should
- // only become active *after* the options dialog has closed.
- g_gui.loadNewTheme(g_gui.theme()->getThemeId(), selected);
- ConfMan.set("gui_renderer", cfg, _domain);
- }
+ GUI::ThemeEngine::GraphicsMode selected = (GUI::ThemeEngine::GraphicsMode)_rendererPopUp->getSelectedTag();
+ const char *cfg = GUI::ThemeEngine::findModeConfigName(selected);
+ if (!ConfMan.get("gui_renderer").equalsIgnoreCase(cfg)) {
+ // FIXME: Actually, any changes (including the theme change) should
+ // only become active *after* the options dialog has closed.
+ g_gui.loadNewTheme(g_gui.theme()->getThemeId(), selected);
+ ConfMan.set("gui_renderer", cfg, _domain);
+ }
#ifdef USE_TRANSLATION
- Common::String oldLang = ConfMan.get("gui_language");
- int selLang = _guiLanguagePopUp->getSelectedTag();
+ Common::String oldLang = ConfMan.get("gui_language");
+ int selLang = _guiLanguagePopUp->getSelectedTag();
- ConfMan.set("gui_language", TransMan.getLangById(selLang));
+ ConfMan.set("gui_language", TransMan.getLangById(selLang));
- Common::String newLang = ConfMan.get("gui_language").c_str();
- if (newLang != oldLang) {
-#if 0
- // Activate the selected language
- TransMan.setLanguage(selLang);
+ Common::String newLang = ConfMan.get("gui_language").c_str();
+ if (newLang != oldLang) {
+ // Activate the selected language
+ TransMan.setLanguage(selLang);
- // FIXME: Actually, any changes (including the theme change) should
- // only become active *after* the options dialog has closed.
- g_gui.loadNewTheme(g_gui.theme()->getThemeId(), ThemeEngine::kGfxDisabled, true);
-#else
- MessageDialog error(_("You have to restart ScummVM before your changes will take effect."));
- error.runModal();
-#endif
- }
+ // Rebuild the Launcher and Options dialogs
+ g_gui.loadNewTheme(g_gui.theme()->getThemeId(), ThemeEngine::kGfxDisabled, true);
+ rebuild();
+ if (_launcher != 0)
+ _launcher->rebuild();
+ }
#endif // USE_TRANSLATION
#ifdef USE_UPDATES
- ConfMan.setInt("updates_check", _updatesPopUp->getSelectedTag());
+ ConfMan.setInt("updates_check", _updatesPopUp->getSelectedTag());
- if (g_system->getUpdateManager()) {
- if (_updatesPopUp->getSelectedTag() == Common::UpdateManager::kUpdateIntervalNotSupported) {
- g_system->getUpdateManager()->setAutomaticallyChecksForUpdates(Common::UpdateManager::kUpdateStateDisabled);
- } else {
- g_system->getUpdateManager()->setAutomaticallyChecksForUpdates(Common::UpdateManager::kUpdateStateEnabled);
- g_system->getUpdateManager()->setUpdateCheckInterval(_updatesPopUp->getSelectedTag());
- }
+ if (g_system->getUpdateManager()) {
+ if (_updatesPopUp->getSelectedTag() == Common::UpdateManager::kUpdateIntervalNotSupported) {
+ g_system->getUpdateManager()->setAutomaticallyChecksForUpdates(Common::UpdateManager::kUpdateStateDisabled);
+ } else {
+ g_system->getUpdateManager()->setAutomaticallyChecksForUpdates(Common::UpdateManager::kUpdateStateEnabled);
+ g_system->getUpdateManager()->setUpdateCheckInterval(_updatesPopUp->getSelectedTag());
}
+ }
#endif
#ifdef USE_CLOUD
#ifdef USE_LIBCURL
- if (CloudMan.getStorageIndex() != _selectedStorageIndex) {
- if (!CloudMan.switchStorage(_selectedStorageIndex)) {
- bool anotherStorageIsWorking = CloudMan.isWorking();
- Common::String message = _("Failed to change cloud storage!");
- if (anotherStorageIsWorking) {
- message += "\n";
- message += _("Another cloud storage is already active.");
- }
- MessageDialog dialog(message);
- dialog.runModal();
+ if (CloudMan.getStorageIndex() != _selectedStorageIndex) {
+ if (!CloudMan.switchStorage(_selectedStorageIndex)) {
+ bool anotherStorageIsWorking = CloudMan.isWorking();
+ Common::String message = _("Failed to change cloud storage!");
+ if (anotherStorageIsWorking) {
+ message += "\n";
+ message += _("Another cloud storage is already active.");
}
+ MessageDialog dialog(message);
+ dialog.runModal();
}
+ }
#endif // USE_LIBCURL
#ifdef USE_SDL_NET
#ifdef NETWORKING_LOCALWEBSERVER_ENABLE_PORT_OVERRIDE
- // save server's port
- uint32 port = Networking::LocalWebserver::getPort();
- if (_serverPort) {
- uint64 contents = _serverPort->getEditString().asUint64();
- if (contents != 0)
- port = contents;
- }
- ConfMan.setInt("local_server_port", port);
+ // save server's port
+ uint32 port = Networking::LocalWebserver::getPort();
+ if (_serverPort) {
+ uint64 contents = _serverPort->getEditString().asUint64();
+ if (contents != 0)
+ port = contents;
+ }
+ ConfMan.setInt("local_server_port", port);
#endif // NETWORKING_LOCALWEBSERVER_ENABLE_PORT_OVERRIDE
#endif // USE_SDL_NET
#endif // USE_CLOUD
+
+ if (!_newTheme.empty()) {
+#ifdef USE_TRANSLATION
+ Common::String lang = TransMan.getCurrentLanguage();
+#endif
+ Common::String oldTheme = g_gui.theme()->getThemeId();
+ if (g_gui.loadNewTheme(_newTheme)) {
+#ifdef USE_TRANSLATION
+ // If the charset has changed, it means the font were not found for the
+ // new theme. Since for the moment we do not support change of translation
+ // language without restarting, we let the user know about this.
+ if (lang != TransMan.getCurrentLanguage()) {
+ TransMan.setLanguage(lang.c_str());
+ g_gui.loadNewTheme(oldTheme);
+ _curTheme->setLabel(g_gui.theme()->getThemeName());
+ MessageDialog error(_("The theme you selected does not support your current language. If you want to use this theme you need to switch to another language first."));
+ error.runModal();
+ } else {
+#endif
+ ConfMan.set("gui_theme", _newTheme);
+#ifdef USE_TRANSLATION
+ }
+#endif
+ }
+ draw();
+ _newTheme.clear();
}
+
+ OptionsDialog::apply();
+}
+
+void GlobalOptionsDialog::close() {
#if defined(USE_CLOUD) && defined(USE_SDL_NET)
if (LocalServer.isRunning()) {
LocalServer.stop();
@@ -1674,31 +1789,8 @@ void GlobalOptionsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint3
ThemeBrowser browser;
if (browser.runModal() > 0) {
// User made his choice...
- Common::String theme = browser.getSelected();
- // FIXME: Actually, any changes (including the theme change) should
- // only become active *after* the options dialog has closed.
-#ifdef USE_TRANSLATION
- Common::String lang = TransMan.getCurrentLanguage();
-#endif
- if (g_gui.loadNewTheme(theme)) {
-#ifdef USE_TRANSLATION
- // If the charset has changed, it means the font were not found for the
- // new theme. Since for the moment we do not support change of translation
- // language without restarting, we let the user know about this.
- if (lang != TransMan.getCurrentLanguage()) {
- TransMan.setLanguage(lang.c_str());
- g_gui.loadNewTheme(_oldTheme);
- MessageDialog error(_("The theme you selected does not support your current language. If you want to use this theme you need to switch to another language first."));
- error.runModal();
- } else {
-#endif
- _curTheme->setLabel(g_gui.theme()->getThemeName());
- ConfMan.set("gui_theme", theme);
-#ifdef USE_TRANSLATION
- }
-#endif
- }
- draw();
+ _newTheme = browser.getSelected();
+ _curTheme->setLabel(browser.getSelectedName());
}
break;
}
diff --git a/gui/options.h b/gui/options.h
index ffa355cc11..a6eebe5748 100644
--- a/gui/options.h
+++ b/gui/options.h
@@ -67,6 +67,7 @@ public:
void init();
void open();
+ virtual void apply();
void close();
void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
const Common::String& getDomain() const { return _domain; }
@@ -80,6 +81,10 @@ protected:
ButtonWidget *_soundFontButton;
StaticTextWidget *_soundFont;
ButtonWidget *_soundFontClearButton;
+
+ virtual void build();
+ virtual void clean();
+ void rebuild();
void addGraphicControls(GuiObject *boss, const Common::String &prefix);
void addAudioControls(GuiObject *boss, const Common::String &prefix);
@@ -194,11 +199,6 @@ protected:
Common::String _guioptionsString;
//
- //Theme Options
- //
- Common::String _oldTheme;
-
- //
// Engine-specific controls
//
CheckboxWidgetList _engineCheckboxes;
@@ -210,7 +210,7 @@ public:
GlobalOptionsDialog(LauncherDialog *launcher);
~GlobalOptionsDialog();
- void open();
+ virtual void apply();
void close();
void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
void handleTickle();
@@ -218,6 +218,10 @@ public:
virtual void reflowLayout();
protected:
+ virtual void build();
+ virtual void clean();
+
+ Common::String _newTheme;
LauncherDialog *_launcher;
#ifdef GUI_ENABLE_KEYSDIALOG
KeysDialog *_keysDialog;
diff --git a/gui/themebrowser.cpp b/gui/themebrowser.cpp
index d8bd5d6fe8..75be555e0a 100644
--- a/gui/themebrowser.cpp
+++ b/gui/themebrowser.cpp
@@ -84,6 +84,7 @@ void ThemeBrowser::handleCommand(CommandSender *sender, uint32 cmd, uint32 data)
++sel;
_select = sel->id;
+ _selectName = sel->name;
setResult(1);
close();
break;
diff --git a/gui/themebrowser.h b/gui/themebrowser.h
index 2d94a7f423..bb0bec8c1a 100644
--- a/gui/themebrowser.h
+++ b/gui/themebrowser.h
@@ -42,9 +42,11 @@ public:
void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
const Common::String &getSelected() const { return _select; }
+ const Common::String &getSelectedName() const { return _selectName; }
private:
ListWidget *_fileList;
Common::String _select;
+ Common::String _selectName;
typedef Common::List<ThemeEngine::ThemeDescriptor> ThemeDescList;
ThemeDescList _themes;
diff --git a/gui/themes/default.inc b/gui/themes/default.inc
index 8524a7728f..a83fd788ad 100644
--- a/gui/themes/default.inc
+++ b/gui/themes/default.inc
@@ -804,6 +804,9 @@ const char *defaultXML1 = "<?xml version = '1.0'?>"
"<widget name='Cancel' "
"type='Button' "
"/>"
+"<widget name='Apply' "
+"type='Button' "
+"/>"
"<widget name='Ok' "
"type='Button' "
"/>"
@@ -2343,6 +2346,9 @@ const char *defaultXML1 = "<?xml version = '1.0'?>"
"<widget name='Cancel' "
"type='Button' "
"/>"
+"<widget name='Apply' "
+"type='Button' "
+"/>"
"<widget name='Ok' "
"type='Button' "
"/>"
diff --git a/gui/themes/scummclassic.zip b/gui/themes/scummclassic.zip
index 44c78fabe4..400b997b93 100644
--- a/gui/themes/scummclassic.zip
+++ b/gui/themes/scummclassic.zip
Binary files differ
diff --git a/gui/themes/scummclassic/THEMERC b/gui/themes/scummclassic/THEMERC
index b70eeb6564..25d8531376 100644
--- a/gui/themes/scummclassic/THEMERC
+++ b/gui/themes/scummclassic/THEMERC
@@ -1 +1 @@
-[SCUMMVM_STX0.8.22:ScummVM Classic Theme:No Author]
+[SCUMMVM_STX0.8.23:ScummVM Classic Theme:No Author]
diff --git a/gui/themes/scummclassic/classic_layout.stx b/gui/themes/scummclassic/classic_layout.stx
index ea5d3268c4..b3100d4b92 100644
--- a/gui/themes/scummclassic/classic_layout.stx
+++ b/gui/themes/scummclassic/classic_layout.stx
@@ -228,6 +228,9 @@
<widget name = 'Cancel'
type = 'Button'
/>
+ <widget name = 'Apply'
+ type = 'Button'
+ />
<widget name = 'Ok'
type = 'Button'
/>
diff --git a/gui/themes/scummclassic/classic_layout_lowres.stx b/gui/themes/scummclassic/classic_layout_lowres.stx
index 7f43c7b1e1..7879e05a97 100644
--- a/gui/themes/scummclassic/classic_layout_lowres.stx
+++ b/gui/themes/scummclassic/classic_layout_lowres.stx
@@ -225,7 +225,9 @@
<widget name = 'Cancel'
type = 'Button'
/>
-
+ <widget name = 'Apply'
+ type = 'Button'
+ />
<widget name = 'Ok'
type = 'Button'
/>
diff --git a/gui/themes/scummmodern.zip b/gui/themes/scummmodern.zip
index ec14e45830..673d67ed87 100644
--- a/gui/themes/scummmodern.zip
+++ b/gui/themes/scummmodern.zip
Binary files differ
diff --git a/gui/themes/scummmodern/THEMERC b/gui/themes/scummmodern/THEMERC
index 7e4eb31c96..3dbd640865 100644
--- a/gui/themes/scummmodern/THEMERC
+++ b/gui/themes/scummmodern/THEMERC
@@ -1 +1 @@
-[SCUMMVM_STX0.8.22:ScummVM Modern Theme:No Author]
+[SCUMMVM_STX0.8.23:ScummVM Modern Theme:No Author]
diff --git a/gui/themes/scummmodern/scummmodern_layout.stx b/gui/themes/scummmodern/scummmodern_layout.stx
index a0a4e41f14..9cadc11e13 100644
--- a/gui/themes/scummmodern/scummmodern_layout.stx
+++ b/gui/themes/scummmodern/scummmodern_layout.stx
@@ -242,6 +242,9 @@
<widget name = 'Cancel'
type = 'Button'
/>
+ <widget name = 'Apply'
+ type = 'Button'
+ />
<widget name = 'Ok'
type = 'Button'
/>
diff --git a/gui/themes/scummmodern/scummmodern_layout_lowres.stx b/gui/themes/scummmodern/scummmodern_layout_lowres.stx
index 13ec698b85..7ef5fc5ee1 100644
--- a/gui/themes/scummmodern/scummmodern_layout_lowres.stx
+++ b/gui/themes/scummmodern/scummmodern_layout_lowres.stx
@@ -223,7 +223,9 @@
<widget name = 'Cancel'
type = 'Button'
/>
-
+ <widget name = 'Apply'
+ type = 'Button'
+ />
<widget name = 'Ok'
type = 'Button'
/>
diff --git a/gui/themes/translations.dat b/gui/themes/translations.dat
index 8965134429..e57f42f383 100644
--- a/gui/themes/translations.dat
+++ b/gui/themes/translations.dat
Binary files differ
diff --git a/gui/widgets/tab.cpp b/gui/widgets/tab.cpp
index ed261c98ec..cf9dd5d962 100644
--- a/gui/widgets/tab.cpp
+++ b/gui/widgets/tab.cpp
@@ -199,6 +199,12 @@ void TabWidget::setActiveTab(int tabID) {
}
_activeTab = tabID;
_firstWidget = _tabs[tabID].firstWidget;
+
+ // Also ensure the tab is visible in the tab bar
+ if (_firstVisibleTab > tabID)
+ _firstVisibleTab = tabID;
+ else if (_firstVisibleTab + _w / _tabWidth <= tabID)
+ _firstVisibleTab = tabID - _w / _tabWidth + 1;
_boss->draw();
}
diff --git a/image/codecs/msrle.cpp b/image/codecs/msrle.cpp
index bb1125e0af..95cada7e75 100644
--- a/image/codecs/msrle.cpp
+++ b/image/codecs/msrle.cpp
@@ -72,15 +72,10 @@ void MSRLEDecoder::decode8(Common::SeekableReadStream &stream) {
y--;
output = data + (y * width);
- if (y < 0) {
- warning("MS RLE Codec: Next line is beyond picture bounds");
- return;
- }
-
} else if (value == 1) {
// End of image
-
return;
+
} else if (value == 2) {
// Skip
@@ -99,6 +94,10 @@ void MSRLEDecoder::decode8(Common::SeekableReadStream &stream) {
} else {
// Copy data
+ if (y < 0) {
+ warning("MS RLE Codec: Copy data is beyond picture bounds");
+ return;
+ }
if (output + value > output_end) {
if (stream.pos() + value >= stream.size())
@@ -119,6 +118,10 @@ void MSRLEDecoder::decode8(Common::SeekableReadStream &stream) {
} else {
// Run data
+ if (y < 0) {
+ warning("MS RLE Codec: Run data is beyond picture bounds");
+ return;
+ }
if (output + count > output_end)
continue;
diff --git a/image/tga.cpp b/image/tga.cpp
index f22cfcb1ad..adfe7eefbb 100644
--- a/image/tga.cpp
+++ b/image/tga.cpp
@@ -152,7 +152,7 @@ bool TGADecoder::readHeader(Common::SeekableReadStream &tga, byte &imageType, by
// of alpha-bits, however, as the game files that use this decoder seems
// to ignore that fact, we force the amount to 8 for 32bpp files for now.
_format = Graphics::PixelFormat(4, 8, 8, 8, /* attributeBits */ 8, 16, 8, 0, 24);
- } else if (pixelDepth == 16 && imageType == TYPE_TRUECOLOR) {
+ } else if (pixelDepth == 16) {
// 16bpp TGA is ARGB1555
_format = Graphics::PixelFormat(2, 5, 5, 5, attributeBits, 10, 5, 0, 15);
} else {
@@ -353,6 +353,13 @@ bool TGADecoder::readDataRLE(Common::SeekableReadStream &tga, byte imageType, by
#endif
count--;
}
+ } else if (pixelDepth == 16 && imageType == TYPE_RLE_TRUECOLOR) {
+ const uint16 rgb = tga.readUint16LE();
+ while (rleCount-- > 0) {
+ *((uint16 *)data) = rgb;
+ data += 2;
+ count--;
+ }
} else if (pixelDepth == 8 && imageType == TYPE_RLE_BW) {
byte color = tga.readByte();
while (rleCount-- > 0) {
@@ -397,6 +404,12 @@ bool TGADecoder::readDataRLE(Common::SeekableReadStream &tga, byte imageType, by
#endif
count--;
}
+ } else if (pixelDepth == 16 && imageType == TYPE_RLE_TRUECOLOR) {
+ while (rleCount-- > 0) {
+ *((uint16 *)data) = tga.readUint16LE();
+ data += 2;
+ count--;
+ }
} else if (pixelDepth == 8 && imageType == TYPE_RLE_BW) {
while (rleCount-- > 0) {
byte color = tga.readByte();
diff --git a/po/be_BY.po b/po/be_BY.po
index 086e62d119..9cb16cec18 100644
--- a/po/be_BY.po
+++ b/po/be_BY.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.8.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
"PO-Revision-Date: 2016-10-07 19:14+0300\n"
"Last-Translator: Ivan Lukyanov <greencis@mail.ru>\n"
"Language-Team: Ivan Lukyanov <greencis@mail.ru>\n"
@@ -18,6 +18,7 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Poedit 1.8.9\n"
+"X-Language-name: Belarusian\n"
#: gui/about.cpp:94
#, c-format
@@ -57,7 +58,7 @@ msgstr "ĆŅÕąå"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -81,7 +82,7 @@ msgstr "°ŃąŠęģ"
msgid "Select directory where to download game data"
msgstr "°ŃļąėęÕ ŌėąķŚāŽąėī ŌŪļ įߊÜßŠŅŠŻŻļ ŌŠŌ×ÕŻėå ÓćŪģŻö"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "°ŃļąėęÕ ŌėąķŚāŽąėī × äŠŁŪŠÜö ÓćŪģŻö"
@@ -115,7 +116,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -127,7 +128,7 @@ msgstr "ĀŠŚ"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -137,7 +138,7 @@ msgstr "ĀŠŚ"
msgid "No"
msgstr "½Õ"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM ŻÕ ÜŽÖŠ ŠŌŚąėęģ Š×ŻŠēŠŻćī ŌėąķŚāŽąėī!"
@@ -150,8 +151,8 @@ msgstr ""
"ÜŠÕ äŠŁŪ × āėÜ ÖŠ öÜÕÜ."
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -236,8 +237,8 @@ msgstr ""
"¼ŽŅŠ ÓćŪģŻö. ·ÜÕŻŠ ÓķāŠŁ ŻŠŪŠŌė ŻÕ ßÕąŠāŅŽąėęģ ąćįŚćī ŅÕąįöī ÓćŪģŻö ž "
"ŃÕŪŠąćįŚćī"
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<ߊ ×ÜŠžēŠŻŻö>"
@@ -260,11 +261,11 @@ msgstr "æŪŠā䎹܊:"
msgid "Engine"
msgstr "ĄćåŠŅöēŽŚ"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "³ąŠäöŚŠ"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "³ąä"
@@ -277,7 +278,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "æÕąŠŚąėęģ ÓŪŠŃŠŪģŻėļ ŻŠŪŠŌė ÓąŠäöŚö"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "°žŌėń"
@@ -290,11 +291,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "æÕąŠŚąėęģ ÓŪŠŃŠŪģŻėļ ŻŠŪŠŌė ŠžŌėń"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "³ćēŻŠįęģ"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "³ćēŻŠįęģ"
@@ -308,7 +309,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "æÕąŠŚąėęģ ÓŪŠŃŠŪģŻėļ ŻŠŪŠŌė ÓćēŻŠįęö"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -321,7 +322,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "æÕąŠŚąėęģ ÓŪŠŃŠŪģŻėļ ŻŠŪŠŌė MIDI"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -334,11 +335,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "æÕąŠŚąėęģ ÓŪŠŃŠŪģŻėļ ŻŠŪŠŌė MT-32"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "ČŪļåö"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "ČŪļåö"
@@ -352,7 +353,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "ČŪļå ŌŠ ÓćŪģŻö:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "“ŠŌ. čŪļå:"
@@ -361,56 +362,56 @@ msgstr "“ŠŌ. čŪļå:"
msgid "Specifies path to additional data used by the game"
msgstr "æŠŚŠ×ŅŠÕ čŪļå ŌŠ ŌŠŌŠāŚŽŅėå äŠŁŪŠž, ŌŠŌ×ÕŻėå ŌŪļ ÓćŪģŻö"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "“ŠŌ. čŪļå:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "·ŠåŠŅŠŻŻö ÓćŪģŻļž:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "æŠŚŠ×ŅŠÕ čŪļå ŌŠ ׊åŠŅŠŻŻļž ÓćŪģŻö"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "·ŠåŠŅŠŻŻö ÓćŪģŻļž:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "½Õ ×ŠŌŠŌ×ÕŻė"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "æŠ ×ÜŠžēŠŻŻö"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "°ŃļąėęÕ SoundFont"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "°ŃļąėęÕ ŌŠŌŠāŚŽŅćī ŌėąķŚāŽąėī ÓćŪģŻö"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "°ŃļąėęÕ ŌėąķŚāŽąėī ŌŪļ ׊åŠŅŠŻŻļž"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
@@ -419,7 +420,7 @@ msgstr ""
"ŗŠŪö Ņė ÖŠŌŠÕęÕ, ŚŠŃ ŅŠčė ׊åŠŅŠŻŻö ÓćŪģŻļž įöŻåąŠŻö×ŠŅŠŪöįļ, "
"ŅėŚŠąėįāŽžŅŠŁęÕ ŌėąķŚāŽąėī ߊ ×ÜŠžēŠŻŻö."
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "³ķāė ID ÓćŪģŻö žÖŽ ŅėŚŠąėįāŽžŅŠÕęęŠ. ŗŠŪö ŪŠįŚŠ, ŠŃļąėęÕ öŻčė."
@@ -499,7 +500,7 @@ msgstr "ĮöŻćįŽöŌŠ"
msgid "Triangle"
msgstr "ĀąŽåŚćāŻŠļ"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "ĄŽ×ŻŠÕ"
@@ -547,15 +548,15 @@ msgstr "·ŠŚąėęģ"
msgid "Mouse click"
msgstr "ŗŪöŚ Üėččć"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "æŠŚŠ×Šęģ ŚŪŠŅöļāćąć"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "æÕąŠßąėׯŠēėęģ ŚŪŠŅöčė"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "æÕąŠŚŪīēķŻŻÕ ŻŠ žŅÕįģ ķŚąŠŻ"
@@ -589,110 +590,110 @@ msgstr "½ŠęöįŻöęÕ ŚŪŠŅöčć ŌŪļ ßąėׯŠēķŻŻļ"
msgid "Choose an action to map"
msgstr "°ŃļąėęÕ Ō×ÕļŻŻÕ ŌŪļ ßąėׯŠēķŻŻļ"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~²~ėåŠŌ"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "·ŠŅļąčėęģ ScummVM"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "æąŠ ß~ą~ŠÓąŠÜć..."
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "æąŠ ßąŠÓąŠÜć ScummVM"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~½~ŠŪŠŌė..."
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "·ÜļŻöęģ ÓŪŠŃŠŪģŻėļ ŻŠŪŠŌė ScummVM"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "æ~ć~įŚ"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "·Šßćįęöęģ ŠŃąŠŻćī ÓćŪģŻī"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~·~ŠÓąć×öęģ..."
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "·ŠÓąć×öęģ ׊åŠŅŠŻŻÕ ŌŪļ ŠŃąŠŻŠŁ ÓćŪģŻö"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "~“~ŠŌŠęģ ÓćŪģŻī..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr "ĆāąėÜŪöŅŠŁęÕ ŚŪŠŅöčć Shift, ŚŠŃ ŌŠŌŠęģ ŻÕŚŠŪģŚö ÓćŪģŻļž"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "½~Š~ŪŠŌė ÓćŪģŻö..."
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "·ÜļŻöęģ ŻŠŪŠŌė ÓćŪģŻö"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "²~ė~ŌŠŪöęģ ÓćŪģŻī"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr "²ėŌŠŪöęģ ÓćŪģŻī įŠ įßöįć. ½Õ ŅėŌŠŪļÕ ÓćŪģŻī × ŻŽįģŃöāŠ"
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "~“~ŠŌŠęģ ÓćŪģŻī..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "½~Š~ŪŠŌė ÓćŪģŻö..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "²~ė~ŌŠŪöęģ ÓćŪģŻī"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "æŽčćŚ ć įßöįÕ ÓćŪģŻļž"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "æŽčćŚ:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "·ŠÓąć×öęģ ÓćŪģŻī:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "·ŠÓąć×öęģ"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -700,41 +701,41 @@ msgstr ""
"²ė įŠßąŠžŌė ÖŠŌŠÕęÕ ×Šßćįęöęģ ŌķāķŚāŠą ćįöå ÓćŪģŻļž? ³ķāŠ ßŠāķŻęėļŪģŻŠ ÜŽÖŠ "
"ŌŠŌŠęģ ŅļŪöŚćī ŚŽŪģŚŠįęģ ÓćŪģŻļž."
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr ""
"³ķāŠ ŌėąķŚāŽąėļ ߊŚćŪģ ŻÕ ÜŽÖŠ ŅėŚŠąėįāŽžŅŠęęŠ, ć ļÕ ęļßÕą ׊ӹćÖŠīęęŠ "
"ŌŠŌ×ÕŻėļ!"
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "²ė įŠßąŠžŌė ÖŠŌŠÕęÕ ŅėŌŠŪöęģ ŻŠŪŠŌė ŌŪļ ÓķāŠŁ ÓćŪģŻö?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr "²ė ÖŠŌŠÕęÕ ×ŠÓąć×öęģ ÓćŪģŻī?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr "³ķāŠļ ÓćŪģŻļ ŻÕ ߊŌāąėÜŪöŅŠÕ ×ŠÓąć׌ć ׊åŠŅŠŻŻļž ßąŠ× ÓŠŪŽžŻŠÕ ÜÕŻī."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr "ScummVM ŻÕ ×ÜŽÓ ×ŻŠŁįęö ąćåŠŅöēŽŚ ŌŪļ ׊ßćįŚć ŠŃąŠŻŠŁ ÓćŪģŻö!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM ŻÕ ÜŽÖŠ ×ŻŠŁįęö ÓćŪģŻī ž Š×ŻŠēŠŻŠŁ ŌėąķŚāŽąėö!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "°ŃļąėęÕ ÓćŪģŻī:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "ČÜŠā ÓćŪģŻļž..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr "·Šßöį..."
@@ -777,146 +778,146 @@ msgstr "æÕąŠŚŪīēėęęŠ ž ÓćŪģŻī"
msgid "Fast replay"
msgstr "ÅćāŚŠÕ ßąŠŁÓąŠŅŠŻŻÕ"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "½öŚŽŪö"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "ŚŽÖŻėļ 5 åŅöŪöŻ"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "ŚŽÖŻėļ 10 åŅöŪöŻ"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "ŚŽÖŻėļ 15 åŅöŪöŻ"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "ŚŽÖŻėļ 30 åŅöŪöŻ"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 ڳę"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 ڳę"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 ڳę"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 ڳę"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 ڳę"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "½Õ ×ŠŌŠŌ×ÕŻė"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "½Õ ŠāąėÜŠŪŠįļ žÖėęģ ×ÜÕŻė ŻÕŚŠāŽąėå ÓąŠäöēŻėå ŻŠŪŠŌ:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "ŅöŌķŠąķÖėÜ ŻÕ ÜŽÖŠ Ńėęģ ×ÜÕŻÕŻė."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "ąķÖėÜ ŚŠąķŚāėąŽžŚö įćŠŌŻŽįöŻ ŃŠŚŽž ŻÕ ÜŽÖŠ Ńėęģ ×ÜÕŻÕŻė"
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "ߎžŻŠķŚąŠŻŻė ąķÖėÜ ŻÕ ÜŽÖŠ Ńėęģ ×ÜÕŻÕŻė"
-#: gui/options.cpp:462
+#: gui/options.cpp:486
#, fuzzy
msgid "the filtering setting could not be changed"
msgstr "ߎžŻŠķŚąŠŻŻė ąķÖėÜ ŻÕ ÜŽÖŠ Ńėęģ ×ÜÕŻÕŻė"
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "³ąŠä. ąķÖėÜ:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "ĄķÖėÜ ąŠįāąć:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "ĮßÕęėļŪģŻėļ ąķÖėÜė ąķŻŌķąėŻÓć, ߊŌāąėÜŽžŅŠŻėļ ŻÕŚŠāŽąėÜö ÓćŪģŻļÜö"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "æŽžŻŠķŚąŠŻŻė ąķÖėÜ"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
#, fuzzy
msgid "Filter graphics"
msgstr "²ėŚŠąėįāŽžŅŠęģ ŚŠŪļąŽŅćī ÓąŠäöŚć"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr ""
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "ŗŠąķŚęėļ įćŠŌŻŽįöŻ ŃŠŚŽž"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "ŗŠąķŚāŠŅŠęģ įćŠŌŻŽįöŻė ŃŠŚŽž ŌŪļ ÓćŪģŻļž × ŠŌąŽ×ŻÕŻŻÕÜ 320x200"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "ĆßŠŌŠŃŠŻŠļ ßąėŪŠŌŠ:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "³ćŚŠŅŠļ ßąėŪŠŌŠ:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr "·Š×ŻŠēŠÕ žßŠŌŠŃŠŻćī Ó挊Ņćī ßąėŪŠŌć ęö ķÜćŪļāŠą ÓćŚŠŅŽŁ ŚŠąāė"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr "·Š×ŻŠēŠÕ ŅėåŽŌŻćī Ó挊Ņćī ßąėŪŠŌć ęö ķÜćŪļāŠą ÓćŚŠŅŽŁ ŚŠąāė"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "ĆßŠŌŠŃŠŻŠļ:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "³ćŚŠŅŠļ ßąėŪŠŌŠ:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "ĶÜćŪļāŠą AdLib:"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "³ćŚŠŅŠļ ŚŠąāŠ AdLib ŅėŚŠąėįāŽžŅŠÕęęŠ ÜŻŽÓöÜö ÓćŪģŻļÜö"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "ĒŠčēėŻļ ÓćŚć:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -924,64 +925,64 @@ msgstr ""
"±ŽŪģčėļ ׯŠēķŻŻö ×ŠŌŠīęģ ŪÕßčćī ļŚŠįęģ ÓćŚć, ŠŌŻŠŚ ļŻė ÜŽÓćęģ ŻÕ "
"ߊŌāąėÜŪöŅŠęęŠ ŅŠčŠŁ ÓćŚŠŅŽŁ ŚŠąāŠŁ"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "æąėŪŠŌŠ GM:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr "·Š×ŻŠēŠÕ ŅėåŽŌŻćī Ó挊Ņćī ßąėŪŠŌć ŌŪļ MIDI"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "½Õ ŅėŚŠąėįāŽžŅŠęģ Üć×ėŚć ŌŪļ General MIDI"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "²ėŚŠąėįāŽžŅŠęģ ßÕąčćī ŌŠįāć߯ćī ßąėŪŠŌć"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr ""
"SoundFont'ė ߊŌāąėÜŪöŅŠīęęŠ ŻÕŚŠāŽąėÜö Ó挊ŅėÜö ŚŠąāŠÜö, FluidSynth Ōė "
"Timidity"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "·ÜÕčŠŻė ąķÖėÜ AdLib/MIDI"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "²ėŚŠąėįāŽžŅŠęģ ö MIDI, ö AdLib ŌŪļ ÓÕŻÕąŠęėö ÓćŚć"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "Ć×ÜŠęŻÕŻŻÕ MIDI:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "½ŠŪ. MT-32:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr ""
"æŠŚŠ×ŅŠÕ Ó挊Ņćī ßąėŪŠŌć ߊ ×ÜŠžēŠŻŻö ŌŪļ ŅėŅŠŌć ŻŠ Roland MT-32/LAPC1/CM32l/"
"CM64"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "ĮŠßąŠžŌŻė Roland MT-32 (×ŠŃŠąŠŻöęģ ķÜćŪļęėī GM)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -989,16 +990,16 @@ msgstr ""
"°ŌׯŠēęÕ, ŚŠŪö ž ŅŠį ßŠŌŚŪīēŠŻŠ Roland-įćÜļčēŠŪģŻŠļ ÓćŚŠŅŠļ ßąėŪŠŌŠ ö Ņė "
"ÖŠŌŠÕęÕ ļÕ ŅėŚŠąėįāŽžŅŠęģ"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "ĮŠßąŠžŌŻė Roland MT-32 (ŃÕ× ķÜćŪļęėö GM)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "ĄķÖėÜ Roland GS (ŌŠ×ŅŽŪöęģ ÜŠßöŻÓ MT-32)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
@@ -1006,265 +1007,265 @@ msgstr ""
"°ŌׯŠēęÕ, ŚŠŪö ÖŠŌŠÕęÕ ŌŠ×ŅŽŪöęģ ÜŠßöŻÓ ŌŪļ ķÜćŪļęėö MT-32 ŻŠ ßąėŪŠŌ×Õ "
"Rolans GS"
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "½Õ ŅėŚŠąėįāŽžŅŠęģ Üć×ėŚć ŌŪļ MT-32"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "ĀķŚįā ö ŠÓćēŚŠ:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "°ÓćēŚŠ"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "ĮćŃāėāąė"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "°ŃŽÕ"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "ÅćāŚŠįęģ āėāąŠž:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "ĀķŚįā ö ŠÓćēŚŠ:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "°Óćē"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "ĮćŃ"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "°ŃŽÕ"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "æŠŚŠ×ŅŠęģ įćŃāėāąė ö ßąŠŁÓąŠŅŠęģ ÓŠŅŽąŚć"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "ÅćāŚŠįęģ āėāąŠž:"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "³ćēŻ. Üć×ėŚö:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "³ćēŻ. Üć×ėŚö:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "²ėŚŪ. ćįń"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "³ćēŻŠįęģ SFX:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "³ćēŻŠįęģ įßÕęėļŪģŻėå Ó挊Ņėå ķäÕŚāŠž"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "³ćēŻŠįęģ SFX:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "³ćēŻ. ŠÓćēŚö:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "³ćēŻ. ŠÓćēŚö:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "½ŠŪŠŌė FluidSynth"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "ČŪļå ŌŠ āķÜ:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "ČŪļå ŌŠ āķÜ:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr ""
"æŠŚŠ×ŅŠÕ čŪļå ŌŠ ŌŠŌŠāŚŽŅėå äŠŁŪŠž ŌŠŌ×ÕŻėå, ŅėŚŠąėįāŽžŅŠŻėå ćįöÜö ÓćŪģŻļÜö "
"ŠŃŽ ScummVM"
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "ČŪļå ŌŠ ßŪŠÓöŻŠž:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "ČŪļå ŌŠ ßŪŠÓöŻŠž:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "ĄŽ×ŻŠÕ"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "ĀķÜŠ"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "¼ŠŪļŅŠŪŚŠ GUI:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "°žāŠ×ŠåŠŅŠŻŻÕ:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "°žāŠ×ŠåŠŅŠŻŻÕ:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "ŗŪŠŅöčė"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "¼ŽŅŠ GUI:"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "¼ŽŅŠ ÓąŠäöēŻŠÓŠ öŻāķąäÕŁįć ScummVM"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr "æąŠŅļąŠęģ ŠŃŻŠžŪÕŻŻö:"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr "ĻŚ ēŠįāŠ ßąŠŅļąŠęģ ŠŃŻŠžŪÕŻŻö ScummVM"
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr "æąŠŅÕąėęģ ęļßÕą"
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr "²ŽŃŪŠŚŠ"
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr "²ŽŃŪŠŚŠ"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr "²ŽŃŪŠŚŠ:"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr "°ŚāėžŻŠÕ ŅŽŃŪŠēŻŠÕ įåŽŅöčēŠ"
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr "<ŻļÜŠ>"
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "ŗŠąėįāŠē:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr "¦Üļ ŚŠąėįāŠēŠ ž ÓķāėÜ ŅŽŃŪŠŚć"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr "ŗŠąėįāŠŻė ŠŃ'ńÜ"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr "°Ń'ńÜ, ׊Żļāė ׊åŠŅŠŻŻļÜö ÓćŪģŻļž ScummVM ŻŠ ÓķāėÜ ŅŽŃŪŠŚć"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr "°ßŽčŻļļ įöŻåąŠŻö׊ęėļ:"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr "ŗŠŪö ąŠŃöŪŠįļ ŠßŽčŻļļ įöŻåąŠŻö׊ęėļ × ÓķāėÜ ŅŽŃŪŠŚŠÜ"
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr "“ŠŪćēėęģ"
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr "°ŌŚąėŅŠÕ ŌėļŪŽÓ ŌŪļ ŻŠŪŠŌė ŌŠŪćēķŻŻļ ŌŠ ŅŽŃŪŠŚŠ"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr "°ŃŻŠŅöęģ"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr "°ŃŻŠžŪļÕ ŃļÓćēćī öŻäŠąÜŠęėī ßąŠ ŅŽŃŪŠŚŠ (öÜļ ŚŠąėįāŠēŠ ö ŠŃ'ńÜ)"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Download"
msgstr "·ŠÓąć×öęģ"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr "°ŌŚąėŅŠÕ ÜÕŻÕŌÖŠą ׊ӹć׊Ś"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr "·Šßćįęöęģ įÕąŅÕą"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr "·ŠßćįŚŠÕ ŪŠŚŠŪģŻė ŅķŃ-įÕąŅÕą"
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
msgid "Not running"
msgstr "½Õ ׊ßćčēŠŻė"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
msgid "/root/ Path:"
msgstr "ŗŠąŠŻńŅŠļ ŌėąķŚāŽąėļ:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
msgid "Specifies which directory the Files Manager can access"
msgstr "æŠŚŠ×ŅŠÕ čŪļå ŌŠ ŌėąķŚāŽąėö, ŚćŌė ŃćŌ×Õ ÜÕęģ ŌŽįāćß ¼ÕŻÕŌÖŠą äŠŁŪŠž"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "ŗŽąŠŻģ"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid "Server's port:"
msgstr "æŽąā įÕąŅÕąŠ:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
@@ -1272,68 +1273,68 @@ msgstr ""
"½ćÜŠą ߎąāŠ, ŅėŚŠąėįāŽžŅŠŻė įÕąŅÕąŠÜ\n"
"ĆįāŠŪļŅŠŻŻÕ ŌŽįāćßć ßąŠęćÕ āŽŪģŚö × ßŽąāŠÜ ߊ ×ÜŠžēŠŻŻö"
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "²ė ߊŅöŻŻė ßÕąŠ×Šßćįęöęģ ScummVM, ŚŠŃ ćÖėęģ ×ÜÕŻė."
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr ""
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
msgid "Failed to change cloud storage!"
msgstr "½Õ ŠāąėÜŠŪŠįļ ×ÜļŻöęģ ŅŽŃŪŠŚŠ!"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr "ĆÖŽ ŠŚāėžŻŠ öŻčŠÕ ŅŽŃŪŠēŻŠÕ įåŽŅöčēŠ."
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"ĀķÜŠ, ŠŃąŠŻŠļ ŅŠÜö, ŻÕ ߊŌāąėÜŪöŅŠÕ ŃļÓćēćī ÜŽŅć. ŗŠŪö Ņė ÖŠŌŠÕęÕ "
+"ŅėŚŠąėįāŽžŅŠęģ Óķāćī āķÜć, ŅŠÜ ŻÕŠŃåŽŌŻŠ įߊēŠāŚć ßÕąŠŚŪīēėęęŠ ŻŠ öŻčćī ÜŽŅć."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr "½Õ ÜŠÓć ßöįŠęģ ć ŠŃąŠŻćī ŌėąķŚāŽąėī. ŗŠŪö ŪŠįŚŠ, Š×ŻŠēęÕ öŻčćī."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "°ŃļąėęÕ ŌėąķŚāŽąėī ŌŪļ āķÜ GUI"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "°ŃļąėęÕ ŌėąķŚāŽąėī × ŌŠŌŠāŚŽŅėÜö äŠŁŪŠÜö"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "°ŃļąėęÕ ŌėąķŚāŽąėī × ßŪŠÓöŻŠÜö"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
msgid "Select directory for Files Manager /root/"
msgstr "°ŃļąėęÕ ŌėąķŚāŽąėī ŌŪļ ŚŽąŠŻļ ž ¼ÕŻÕŌÖŠąė äŠŁŪŠž"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"ĀķÜŠ, ŠŃąŠŻŠļ ŅŠÜö, ŻÕ ߊŌāąėÜŪöŅŠÕ ŃļÓćēćī ÜŽŅć. ŗŠŪö Ņė ÖŠŌŠÕęÕ "
-"ŅėŚŠąėįāŽžŅŠęģ Óķāćī āķÜć, ŅŠÜ ŻÕŠŃåŽŌŻŠ įߊēŠāŚć ßÕąŠŚŪīēėęęŠ ŻŠ öŻčćī ÜŽŅć."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr "%llu ŃŠŁāŠž"
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr "<׊ąŠ×>"
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
msgid "<never>"
msgstr "<ŻöŚŽŪö>"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
msgid "Stop server"
msgstr "ĮßėŻöęģ įÕąŅÕą"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr "ĮßėŻļÕ ŪŠŚŠŪģŻė ŅķŃ-įÕąŅÕą"
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1609,35 +1610,35 @@ msgstr "æąŠęļÓŻćęģ"
msgid "Clear value"
msgstr "°ēėįęöęģ ׯŠēķŻŻÕ"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "ĄćåŠŅöēŽŚ ŻÕ ߊŌāąėÜŪöŅŠÕ ž×ąŽŅÕŻģ ŠŌŪŠŌŚö '%s'"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "¼ÕŻī"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "æąŠßćįęöęģ"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "択׊"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "æąŠßćįęöęģ ąŠŌŽŚ"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "æŠÜėŪŚŠ ×ŠßćįŚć ÓćŪģŻö:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr "½Õ ÜŠÓć ×ŻŠŁįęö ąćåŠŅöēŽŚ ŌŪļ ׊ßćįŚć ŠŃąŠŻŠŁ ÓćŪģŻö"
@@ -2015,11 +2016,11 @@ msgstr "°žŌėń FM-Towns"
msgid "PC-98 Audio"
msgstr "°žŌėń PC-98"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "½ŠŪŠŌÖŅŠī ķÜćŪļāŠą MT-32"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "ĶÜćŪļāŠą MT-32"
@@ -2035,15 +2036,15 @@ msgstr "ĶÜćŪļāŠą IBM PCjr"
msgid "C64 Audio Emulator"
msgstr "ĶÜćŪļāŠą ÓćŚć C64"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
msgid "Saved games sync complete."
msgstr "ĮöŻåąŠŻö׊ęėļ ׊åŠŅŠŻŻļž ÓćŪģŻļž įŚŽŻēŠŻŠ."
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr "ĮöŻåąŠŻö׊ęėļ ׊åŠŅŠŻŻļž ÓćŪģŻļž ŃėŪŠ ßÕąŠßėŻÕŻŠ."
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
@@ -2051,7 +2052,7 @@ msgstr ""
"æŠÜėŪŚŠ įöŻåąŠŻö׊ęėö ׊åŠŅŠŻŻļž ÓćŪģŻļž.\n"
"æąŠŅÕąęÕ ŅŠčŠ ×ŪćēķŻŻÕ × ¦ŻāķąŻķāŠÜ."
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
@@ -2060,11 +2061,11 @@ msgstr ""
"·ŠÓąć×ŚŠ įŚŽŻēŠŻŠ.\n"
"½Õ ŠāąėÜŠŪŠįļ ׊ӹć×öęģ %u äŠŁŪŠž."
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
msgid "Download complete."
msgstr "·ŠÓąć×ŚŠ įŚŽŻēŠŻŠ."
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
msgid "Download failed."
msgstr "æŠÜėŪŚŠ ×ŠÓąć׌ö."
@@ -2173,43 +2174,53 @@ msgstr "æąŠŅļŌ×öęÕ āąėÜŠ ߊŪģęŠÜö ŻŠßąŠŅŠ ŌŪļ ßÕąŠŚŪīēķŻŻļ."
msgid "OpenGL"
msgstr "OpenGL"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "±Õ× ßŠŅÕŪöēķŻŻļ"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "°ŚŽŻŻė ąķÖėÜ"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "±Õ× ßŠŅÕŪöēķŻŻļ"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "ŗŠąķŚęėļ įćŠŌŻŽįöŻ ŃŠŚŽž ćŚŪīēŠŻŠ"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "ŗŠąķŚęėļ įćŠŌŻŽįöŻ ŃŠŚŽž ŅėŚŪīēŠŻŠ"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
#, fuzzy
msgid "Filtering enabled"
msgstr "æįāąėēŚö žŚŪīēŠŻė"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
#, fuzzy
msgid "Filtering disabled"
msgstr "æįāąėēŚö ŅėŚŪīēŠŻė"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "±Õ× ßŠŅÕŪöēķŻŻļ"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "±Õ× ßŠŅÕŪöēķŻŻļ"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "°ŚāėžŻė ÓąŠäöēŻė äöŪģāą:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "°ŚŽŻŻė ąķÖėÜ"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "ĀŠŃŪöęŠ ŚŪŠŅöč:"
@@ -3132,6 +3143,39 @@ msgstr "³ŠŪŽžŻŠÕ ÜÕŻ~ī~"
msgid "~W~ater Effect Enabled"
msgstr "~Ķ~äÕŚāė ŅŠŌė žŚŪīēŠŻė"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+
#: engines/mohawk/mohawk.cpp:61
msgid "The game is paused. Press any key to continue."
msgstr "³ćŪģŻļ įßėŻÕŻŠ. ½ŠęöįŻöęÕ ŪīŃćī ŚŻŽßŚć, ŚŠŃ ßąŠęļÓŻćęģ."
@@ -4269,6 +4313,9 @@ msgstr ""
"²ėŚŠąėįāŽžŅŠęģ MPEG-ŅöŌķŠ × DVD-ŅÕąįöö ׊ÜÕįā ŅöŌķŠ Żö׌ŠÓŠ ŠŌąŽ×ŻÕŻŻļ ž "
"䊹܊ęÕ AVI"
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr "²ė ߊŅöŻŻė ßÕąŠ×Šßćįęöęģ ScummVM, ŚŠŃ ćÖėęģ ×ÜÕŻė."
+
#~ msgid "OpenGL (No filtering)"
#~ msgstr "OpenGL (ŃÕ× äöŪģāąŠž)"
diff --git a/po/ca_ES.po b/po/ca_ES.po
index 1d208afefd..2e7341f0a2 100644
--- a/po/ca_ES.po
+++ b/po/ca_ES.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.6.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
"PO-Revision-Date: 2013-05-05 14:16+0100\n"
"Last-Translator: Jordi Vilalta Prat <jvprat@jvprat.com>\n"
"Language-Team: Catalan <scummvm-devel@lists.scummvm.org>\n"
@@ -15,6 +15,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Language-name: Catalan\n"
#: gui/about.cpp:94
#, c-format
@@ -54,7 +55,7 @@ msgstr "Amunt"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -79,7 +80,7 @@ msgstr "Escull"
msgid "Select directory where to download game data"
msgstr "Seleccioneu el directori amb les dades del joc"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "Seleccioneu el directori amb les dades del joc"
@@ -112,7 +113,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -124,7 +125,7 @@ msgstr "Sķ"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -134,7 +135,7 @@ msgstr "Sķ"
msgid "No"
msgstr "No"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM no ha pogut obrir el directori especificat!"
@@ -145,8 +146,8 @@ msgid ""
msgstr ""
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -229,8 +230,8 @@ msgstr ""
"Idioma del joc. Aixņ no convertirą la vostra versió Espanyola del joc a "
"Anglčs"
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<per defecte>"
@@ -253,11 +254,11 @@ msgstr "Platafor.:"
msgid "Engine"
msgstr "Motor"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "Grąfics"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "GFX"
@@ -270,7 +271,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "Canviar les opcions de grąfics"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "Ąudio"
@@ -283,11 +284,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "Canviar les opcions d'ąudio"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "Volum"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "Volum"
@@ -301,7 +302,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "Canviar les opcions de volum"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -314,7 +315,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "Canviar les opcions de MIDI"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -327,11 +328,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "Canviar les opcions de MT-32"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "Camins"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "Camins"
@@ -345,7 +346,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "Camķ joc:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "Camķ extra:"
@@ -354,62 +355,62 @@ msgstr "Camķ extra:"
msgid "Specifies path to additional data used by the game"
msgstr "Especifica el camķ de dades addicionals utilitzades pel joc"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "Camķ extra:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "Camķ de partides:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "Especifica on es desaran les partides"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "Partides:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "Cap"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "Per defecte"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "Seleccioneu el fitxer SoundFont"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "Seleccioneu el directori addicional del joc"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "Seleccioneu el directori de les partides desades"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
msgstr ""
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr ""
"Aquest identificador de joc ja estą en śs. Si us plau, trieu-ne un altre."
@@ -491,7 +492,7 @@ msgstr "Sinus"
msgid "Triangle"
msgstr "Triangle"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "Misc"
@@ -541,15 +542,15 @@ msgstr "Tanca"
msgid "Mouse click"
msgstr "Clic del ratolķ"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "Mostra el teclat"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "Assigna les tecles"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "Commuta la pantalla completa"
@@ -583,112 +584,112 @@ msgstr "Premeu la tecla a associar"
msgid "Choose an action to map"
msgstr "Sel·leccioneu una acció a assignar"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~T~anca"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "Surt de ScummVM"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "~Q~uant a..."
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "Quant a ScummVM"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~O~pcions..."
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "Canvia les opcions globals de ScummVM"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "~I~nicia"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "Iniciant el joc seleccionat"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~C~arrega..."
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "Carrega una partida pel joc seleccionat"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "~A~fegeix Joc..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr "Mantingueu premut Shift per a l'Addició Massiva"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "~E~dita Joc..."
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "Canvia les opcions del joc"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "~S~uprimeix Joc"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr ""
"Elimina un joc de la llista. Els fitxers de dades del joc es mantenen "
"intactes"
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "~A~fegeix Joc..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "~E~dita Joc..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "~S~uprimeix"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "Cerca a la llista de jocs"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "Cerca:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "Carrega partida:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "Carrega"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -696,41 +697,41 @@ msgstr ""
"Esteu segur que voleu executar el detector massiu de jocs? Aixņ pot afegir "
"una gran quantitat de jocs."
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr ""
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "Realment voleu suprimir la configuració d'aquest joc?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
#, fuzzy
msgid "Do you want to load saved game?"
msgstr "Voleu carregar o desar el joc?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr "Aquest joc no suporta la cąrrega de partides des del llanēador."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr ""
"ScummVM no ha pogut trobar cap motor capaē d'executar el joc seleccionat!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM no ha pogut trobar cap joc al directori especificat!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "Seleccioneu el joc:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "Addició Massiva..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr ""
@@ -776,146 +777,146 @@ msgstr "Commuta"
msgid "Fast replay"
msgstr "Mode rąpid"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "Mai"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "cada 5 minuts"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "cada 10 minuts"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "cada 15 minuts"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "cada 30 minuts"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "Cap"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "No s'han pogut aplicar alguns canvis de les opcions grąfiques:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "no s'ha pogut canviar el mode de vķdeo"
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "no s'ha pogut canviar l'ajust de la correcció d'aspecte"
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "no s'ha pogut canviar l'ajust de pantalla completa"
-#: gui/options.cpp:462
+#: gui/options.cpp:486
#, fuzzy
msgid "the filtering setting could not be changed"
msgstr "no s'ha pogut canviar l'ajust de pantalla completa"
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "Mode grąfic:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "Mode de pintat:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "Modes de tramat especials suportats per alguns jocs"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "Mode pantalla completa"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
#, fuzzy
msgid "Filter graphics"
msgstr "Grąfics"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr ""
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "Correcció de la relació d'aspecte"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "Corregeix la relació d'aspecte per jocs de 320x200"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "Disp. preferit:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "Disp. de mśsica:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr "Especifica el dispositiu de so o l'emulador de tarja de so preferit"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr "Especifica el dispositiu de so o l'emulador de tarja de so de sortida"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "Disp. preferit:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "Disp. de mśsica:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "Emulador AdLib:"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "AdLib s'utilitza per la mśsica de molts jocs"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "Freq. sortida:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -923,63 +924,63 @@ msgstr ""
"Valors més alts especifiquen millor qualitat de so perņ pot ser que la "
"vostra tarja de so no ho suporti"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "Dispositiu GM:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr ""
"Especifica el dispositiu de so per defecte per a la sortida General MIDI"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "No utilitzis mśsica General MIDI"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "Utilitza el primer dispositiu disponible"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "Fitxer SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr "Algunes targes de so, FluidSynth i Timidity suporten SoundFont"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "Mode combinat AdLib/MIDI"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "Utilitza MIDI i la generació de so AdLib alhora"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "Guany MIDI:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "Disposit. MT-32:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr ""
"Especifica el dispositiu de so per defecte per a la sortida de Roland MT-32/"
"LAPC1/CM32l/CM64"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "Roland MT-32 real (desactiva l'emulació GM)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -987,360 +988,360 @@ msgstr ""
"Marqueu si voleu utilitzar el vostre dispositiu hardware real de so "
"compatible amb Roland connectat al vostre ordinador"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "Roland MT-32 real (sense emulació GM)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
#, fuzzy
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "Mode Roland GS (desactiva el mapeig GM)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
msgstr ""
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "No utilitzis mśsica de Roland MT-32"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "Text i Veus:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "Veus"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "Subtķtols"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "Ambdós"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "Velocitat de subt.:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "Text i Veus:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "Veus"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "Subt"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "Ambdós"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "Mostra els subtķtols i reprodueix la veu"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "Veloc. de subt.:"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "Volum de mśsica:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "Volum de mśsica:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "Silenciar tot"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "Volum d'efectes:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "Volum dels sons d'efectes especials"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "Volum d'efectes:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "Volum de veus:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "Volum de veus:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "Configuració de FluidSynth"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "Camķ dels temes:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "Camķ temes:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr ""
"Especifica el camķ de les dades addicionals utilitzades per tots els jocs o "
"pel ScummVM"
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "Camķ dels connectors:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "Camķ de connectors:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "Misc"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "Tema:"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "Pintat GUI:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "Desat automątic:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "Auto-desat:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "Tecles"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "Idioma GUI:"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "Idioma de la interfķcie d'usuari de ScummVM"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr ""
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr ""
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr ""
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr ""
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr ""
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "Nom d'usuari:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr ""
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr ""
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr ""
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
#, fuzzy
msgid "Download"
msgstr "Avall"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr ""
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
#, fuzzy
msgid "Not running"
msgstr "Error al executar el joc:"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
#, fuzzy
msgid "/root/ Path:"
msgstr "Camķ extra:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
#, fuzzy
msgid "Specifies which directory the Files Manager can access"
msgstr "Especifica on es desaran les partides"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
#, fuzzy
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "Camķ extra:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
#, fuzzy
msgid "Server's port:"
msgstr "Servidor:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
msgstr ""
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Heu de reiniciar ScummVM perquč tots els canvis tinguin efecte."
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr ""
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
#, fuzzy
msgid "Failed to change cloud storage!"
msgstr "No s'ha pogut desar l'estat del joc"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr ""
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"El tema que heu seleccionat no suporta l'idioma actual. Si voleu utilitzar "
+"aquest tema primer haureu de canviar a un altre idioma."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr ""
"No es pot escriure al directori seleccionat. Si us plau, escolliu-ne un "
"altre."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "Seleccioneu el directori dels temes"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "Seleccioneu el directori dels fitxers extra"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "Seleccioneu el directori dels connectors"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
#, fuzzy
msgid "Select directory for Files Manager /root/"
msgstr "Seleccioneu el directori dels fitxers extra"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"El tema que heu seleccionat no suporta l'idioma actual. Si voleu utilitzar "
-"aquest tema primer haureu de canviar a un altre idioma."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr ""
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr ""
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
#, fuzzy
msgid "<never>"
msgstr "Mai"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
#, fuzzy
msgid "Stop server"
msgstr "Servidor:"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr ""
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1618,35 +1619,35 @@ msgstr ""
msgid "Clear value"
msgstr "Neteja el valor"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "El motor no suporta el nivell de depuració '%s'"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "Menś"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "Salta"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "Pausa"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "Salta la lķnia"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "Error al executar el joc:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr "No s'ha pogut trobar cap motor capaē d'executar el joc seleccionat"
@@ -2022,11 +2023,11 @@ msgstr ""
msgid "PC-98 Audio"
msgstr "Ąudio"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "Iniciant l'Emulador de MT-32"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "Emulador de MT-32"
@@ -2042,34 +2043,34 @@ msgstr "Emulador d'IBM PCjr"
msgid "C64 Audio Emulator"
msgstr "Emulador d'ąudio C64"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
#, fuzzy
msgid "Saved games sync complete."
msgstr "S'ha acabat la cerca!"
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr ""
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
msgstr ""
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
"Failed to download %u files."
msgstr ""
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
#, fuzzy
msgid "Download complete."
msgstr "S'ha acabat la cerca!"
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
#, fuzzy
msgid "Download failed."
msgstr "Carrega partida:"
@@ -2181,43 +2182,53 @@ msgstr ""
msgid "OpenGL"
msgstr "Obre"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "Normal (sense escalar)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "Mode de finestra"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normal (no escalat)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "S'ha activat la correcció de la relació d'aspecte"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "S'ha desactivat la correcció de la relació d'aspecte"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
#, fuzzy
msgid "Filtering enabled"
msgstr "Clicat activat"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
#, fuzzy
msgid "Filtering disabled"
msgstr "Clicat desactivat"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "Normal (sense escalar)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normal (no escalat)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "Filtre de grąfics actiu:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "Mode de finestra"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "Assignacions de teclat:"
@@ -3126,6 +3137,39 @@ msgstr "~M~enś Principal"
msgid "~W~ater Effect Enabled"
msgstr "~E~fecte de l'aigua activat"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+
#: engines/mohawk/mohawk.cpp:61
#, fuzzy
msgid "The game is paused. Press any key to continue."
@@ -4271,6 +4315,9 @@ msgstr ""
"Utilitza el conjunt alternatiu de cursors platejats, en lloc dels normals "
"daurats"
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr "Heu de reiniciar ScummVM perquč tots els canvis tinguin efecte."
+
#, fuzzy
#~ msgid "Specifies where Files Manager can access to"
#~ msgstr "Especifica on es desaran les partides"
diff --git a/po/cs_CZ.po b/po/cs_CZ.po
index 4aa8dc2d32..f01b44030f 100644
--- a/po/cs_CZ.po
+++ b/po/cs_CZ.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.7.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
"PO-Revision-Date: 2016-10-09 11:46+0200\n"
"Last-Translator: Zbynģk Schwarz <zbynek.schwarz@gmail.com>\n"
"Language-Team: \n"
@@ -19,6 +19,7 @@ msgstr ""
"X-Poedit-SourceCharset: iso-8859-2\n"
"X-Generator: Poedit 1.8.7.1\n"
"X-Poedit-Basepath: ..\n"
+"X-Language-name: Cesky\n"
#: gui/about.cpp:94
#, c-format
@@ -58,7 +59,7 @@ msgstr "Jķt nahoru"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -82,7 +83,7 @@ msgstr "Zvolit"
msgid "Select directory where to download game data"
msgstr "Vyberte adresįų kam data her stįhnout"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "Vyberte adresįų s daty hry"
@@ -117,7 +118,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -129,7 +130,7 @@ msgstr "Ano"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -139,7 +140,7 @@ msgstr "Ano"
msgid "No"
msgstr "Ne"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM nemohl tento adresįų otevųķt!"
@@ -152,8 +153,8 @@ msgstr ""
"nįzvem."
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -236,8 +237,8 @@ msgid ""
"English"
msgstr "Jazyk hry. Toto z va¹ķ ©panģlské verze neudģlį Anglickou"
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<vżchozķ>"
@@ -260,11 +261,11 @@ msgstr "Platforma:"
msgid "Engine"
msgstr "Jįdro"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "Obraz"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "GFX"
@@ -277,7 +278,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "Potlačit globįlnķ nastavenķ obrazu"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "Zvuk"
@@ -290,11 +291,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "Potlačit globįlnķ nastavenķ zvuku"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "Hlasitost"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "Hlasitost"
@@ -308,7 +309,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "Potlačit globįlnķ nastavenķ hlasitosti"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -321,7 +322,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "Potlačit globįlnķ nastavenķ MIDI"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -334,11 +335,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "Potlačit globįlnķ nastavenķ MT-32"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "Cesty"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "Cesty"
@@ -352,7 +353,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "Cesta Hry:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "Dodatečnį Cesta:"
@@ -361,56 +362,56 @@ msgstr "Dodatečnį Cesta:"
msgid "Specifies path to additional data used by the game"
msgstr "Stanovķ cestu pro dodatečnį data pou¾itį ve hųe"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "Dodatečnį Cesta:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "Cesta pro ulo¾enķ:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "Stanovuje, kam jsou umķstģny va¹e ulo¾ené hry"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "Cesta pro ulo¾enķ:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "®įdné"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "Vżchozķ"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "Vybrat SoundFont"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "Vyberte dodatečnż adresįų hry"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "Vyberte adresįų pro ulo¾ené hry"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
@@ -418,7 +419,7 @@ msgstr ""
"Funkce synchronizace ulo¾enżch her nefunguje s nestandardnķmi adresįųi. "
"Pokud chcete va¹e hry synchronizovat, je nutné pou¾ķt vżchozķ adresįų."
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "Toto ID hry je u¾ zabrané. Vyberte si, prosķm, jiné."
@@ -498,7 +499,7 @@ msgstr "Sinus"
msgid "Triangle"
msgstr "Trojśhelnķk"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "Rłzné"
@@ -548,15 +549,15 @@ msgstr "Zavųķt"
msgid "Mouse click"
msgstr "Kliknutķ my¹ķ"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "Zobrazit klįvesnici"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "Pųemapovat klįvesy"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "Pųepnout celou obrazovku"
@@ -590,110 +591,110 @@ msgstr "Zmįčknģte klįvesu pro pųiųazenķ"
msgid "Choose an action to map"
msgstr "Zvolte činnost k mapovįnķ"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~U~končit"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "Ukončit ScummVM"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "~O~ Programu..."
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "O ScummVM"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~V~olby..."
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "Zmģnit globįlnķ volby ScummVM"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "~S~pustit"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "Spustit zvolenou hru"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~N~ahrįt..."
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "Nahrįt ulo¾enou pozici pro zvolenou hru"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "~P~ųidat hru..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr "Podr¾te Shift pro Hromadné Pųidįnķ"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "~U~pravit Hru..."
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "Zmģnit volby hry"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "~O~dstranit Hru"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr "Odstranit hru ze seznamu. Hernķ data złstanou zachovįna"
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "~P~ųidat hru..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "~U~pravit hru..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "~O~dstranit hru"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "Hledat v seznamu her"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "Hledat:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "Nahrįt hru:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "Nahrįt"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -701,39 +702,39 @@ msgstr ""
"Opravdu chcete spustit hromadnou detekci her? Toto by mohlo potenciįlnģ "
"pųidat velkou spoustu her. "
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr "Tento adresįų prozatķm nejde pou¾ķt, je do nģj stahovįno!"
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "Opravdu chcete odstranit nastavenķ této hry?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr "Chcete načķst ulo¾enou pozici?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr "Tato hra nepodporuje spou¹tģnķ her ze spou¹tģče"
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr "ScummVM nemohl najķt ¾įdné jįdro schopné vybranou hru spustit!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM nemohl v zadaném adresįųi najķt ¾įdnou hru!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "Vybrat hru:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "Hromadné Pųidįnķ..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr "Nahrįt..."
@@ -776,146 +777,146 @@ msgstr "Pųepnout do hry"
msgid "Fast replay"
msgstr "Rychlé pųehrįvįnķ"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "Nikdy"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "Ka¾dżch 5 min"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "Ka¾dżch 10 min"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "Ka¾dżch 15 min"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "Ka¾dżch 30 min"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "®įdné"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "Nelze pou¾ķt nģkteré zmģny mo¾nostķ grafiky:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "re¾im obrazu nemohl bżt zmģnģn."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "nastavenķ pomģru stran nemohlo bżt zmģnģno"
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "nastavenķ celé obrazovky nemohlo bżt zmģnģno"
-#: gui/options.cpp:462
+#: gui/options.cpp:486
#, fuzzy
msgid "the filtering setting could not be changed"
msgstr "nastavenķ celé obrazovky nemohlo bżt zmģnģno"
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "Re¾im obrazu:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "Re¾im vykreslenķ:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "Speciįlnķ re¾imy chvģnķ podporované nģkterżmi hrami"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "Re¾im celé obrazovky"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
#, fuzzy
msgid "Filter graphics"
msgstr "Pou¾ķt barevné grafiky"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr ""
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "Korekce pomģru stran"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "Korigovat pomģr stran pro hry 320x200"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "Prioritnķ Zaųķzenķ:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "Hudebnķ zaųķzenķ"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr "Stanovķ prioritnķ zvukové zaųķzenķ nebo emulįtor zvukové karty"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr "Stanovķ vżstupnķ zvukové zaųķzenķ nebo emulįtor zvukové karty"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "Prioritnķ Zaų.:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "Hudebnķ zaųķzenķ"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "AdLib emulįtor"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "AdLib se pou¾ķvį pro hudbu v mnoha hrįch"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "Vżstup. frekvence:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -923,62 +924,62 @@ msgstr ""
"Vy¹¹ķ hodnota zpłsobķ lep¹ķ kvalitu zvuku, ale nemusķ bżt podporovįna Va¹i "
"zvukovou kartou"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "GM Zaųķzenķ:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr "Stanovķ vżchozķ zvukové zaųķzenķ pro vżstup General MIDI"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "Nepou¾ķvat hudbu General MIDI"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "Pou¾ķt prvnķ dostupné zaųķzenķ"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr ""
"SoundFont je podporovįn nģkterżmi zvukovżmi kartami, FluidSynth a Timidity"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "Smķ¹enż re¾im AdLib/MIDI"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "Pou¾ķt obģ zvukové generace MIDI a AdLib"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "Zesķlenķ MIDI:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "Zaųķzenķ MT-32:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr ""
"Stanovķ vżchozķ zvukové vżstupnķ zaųķzenķ pro Roland MT-32/LAPC1/CM32l/CM64"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "Opravdovż Roland MT-32 (vypne GM emulaci)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -986,16 +987,16 @@ msgstr ""
"Za¹krtnģte, pokud chcete pou¾ķt pravé hardwarové zaųķzenķ kompatibilnķ s "
"Roland, pųipojené k va¹emu počķtači"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "Opravdovż Roland MT-32 (¾įdnį GM emulace)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "Zaųķzenķ Roland GS (zapne mapovįnķ MT-32)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
@@ -1003,266 +1004,266 @@ msgstr ""
"Za¹krtnģte, pokud chcete povolit zįplaty mapovįnķ umo¾ņujķcķ emulovat MT-32 "
"na zaųķzenķ Roland GS"
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "Nepou¾ķvat hudbu Roland MT-32"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "Text a Ųeč"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "Ųeč"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "Titulky"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "Oba"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "Rychlost titulkł:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "Text a Ųeč:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "Ųeč"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "Titl"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "Oba"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "Zobrazit titulky a pųehrįvat ųeč"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "Rychlost titulkł"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "Hlasitost hudby"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "Hlasitost hudby"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "Ztlumit V¹e"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "Hlasitost zvukł"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "Hlasitost speciįlnķch zvukovżch efektł"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "Hlasitost zvukł"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "Hlasitost ųeči"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "Hlasitost ųeči"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "Nastavenķ FluidSynth"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "Cesta ke Vzhledu:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "Cesta ke Vzhledu:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr "Stanovķ cestu k dodatečnżm datłm pou¾ķvanį v¹emi hrami nebo ScummVM"
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "Cesta k Pluginłm:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "Cesta k Pluginłm:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "Rłzné"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "Vzhled:"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "GUI Vykreslovač:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "Autouklįdįnķ:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "Autouklįdįnķ:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "Klįvesy"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "Jazyk GUI"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "Jazyk GUI ScummVM"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr "Kontrola aktualizacķ:"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr "Jak často ScummVM kontroluje aktualizace"
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr "Zkontrolovat nynķ"
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr "Cloud"
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr "Cloud"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr "Ślo¾i¹tģ:"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr "Aktivnķ cloudové ślo¾i¹tģ"
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr "<¾įdné>"
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "U¾ivatelské jméno"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr "U¾ivatelskį jména kterį toto ślo¾i¹tģ vyu¾ķvajķ"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr "Vyu¾itż prostor:"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr "Prostor vyu¾itż ulo¾enżmi hrami ScummVM v tomto ślo¾i¹ti"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr "Datum poslednķ synchronizace:"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr "Kdy byla provedena poslednķ synchronizace ulo¾enżch her"
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr "Pųipojit"
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr ""
"Otevųķt dialogové okno prłvodce pro pųipojenķ k va¹emu śčtu cloudového "
"ślo¾i¹tģ"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr "Obnovit"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr ""
"Obnovit současné śdaje cloudového ślo¾i¹tģ (u¾ivatelské jméno a vyu¾itķ)"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Download"
msgstr "Stįhnout"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr "Otevųķt dialogové okno sprįvce stahovanķ"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr "Spustit server"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr "Spustit mķstnķ internetovż server"
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
msgid "Not running"
msgstr "Nespu¹tģno"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
msgid "/root/ Path:"
msgstr "Cesta /root/:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
msgid "Specifies which directory the Files Manager can access"
msgstr "Určuje do kterého adresįųe mį Sprįvce souborł pųķstup"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "Cesta /root/:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid "Server's port:"
msgstr "Port serveru:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
@@ -1270,68 +1271,68 @@ msgstr ""
"Kterż port server pou¾ķvį\n"
"Pųihlį¹enķ pomocķ serveru nenķ dostupné pųi pou¾itķ nestandardnķho portu"
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Pro pou¾itķ tģchto nastavenķ musķte restartovat ScummVM."
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr ""
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
msgid "Failed to change cloud storage!"
msgstr "Nelze zmģnit cloudové ślo¾i¹tģ!"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr "Jiné cloudové ślo¾i¹tģ ji¾ je aktivnķ."
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Vzhled, kterż jste zvolili, nepodporuje Vį¹ současnż jazyk. Pokud chcete "
+"tento vzhled pou¾ķt, musķte nejdųķve pųepnout na jinż jazyk."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr "Do zvoleného adresįųe nelze zapisovat. Vyberte, prosķm, jinż."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "Vyberte adresįų pro vhledy GUI"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "Vyberte adresįų pro dodatečné soubory"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "Vyberte adresįų pro zįsuvné moduly"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
msgid "Select directory for Files Manager /root/"
msgstr "Vyberte adresįų pro koųen Sprįvce souborł"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Vzhled, kterż jste zvolili, nepodporuje Vį¹ současnż jazyk. Pokud chcete "
-"tento vzhled pou¾ķt, musķte nejdųķve pųepnout na jinż jazyk."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr "%llu bajtł"
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr "<prįvģ nynķ>"
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
msgid "<never>"
msgstr "<nikdy>"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
msgid "Stop server"
msgstr "Zastavit server"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr "Zastavit mķstnķ internetovż server"
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1609,35 +1610,35 @@ msgstr "Pokračovat"
msgid "Clear value"
msgstr "Vyčistit hodnotu"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "Jįdro nepodporuje śroveņ ladģnķ '%s'"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "Menu"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "Pųeskočit"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "Pauza"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "Pųeskočit ųįdek"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "Chyba pųi spu¹tģnķ hry:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr "Nelze nalézt ¾įdné jįdro schopné vybranou hru spustit"
@@ -2011,11 +2012,11 @@ msgstr "Zvuk FM-Towns"
msgid "PC-98 Audio"
msgstr "Zvuk PC-98"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "Zavįdķm MT-32 Emulįtor"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "MT-32 Emulįtor"
@@ -2031,15 +2032,15 @@ msgstr "IBM PCjr Emulįtor"
msgid "C64 Audio Emulator"
msgstr "Emulįtor zvuku C64"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
msgid "Saved games sync complete."
msgstr "Synchronizace ulo¾enżch her dokončena."
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr "Synchronizace ulo¾enżch her byla zru¹ena."
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
@@ -2047,7 +2048,7 @@ msgstr ""
"Synchronizace ulo¾enżch her byla zru¹ena.\n"
"Zkontrolujte své internetové pųipojenķ."
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
@@ -2056,11 +2057,11 @@ msgstr ""
"Stahovįnķ dokončeno.\n"
"Ne¹lo stįhnout %u souborł."
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
msgid "Download complete."
msgstr "Stahovįnķ dokončeno."
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
msgid "Download failed."
msgstr "Sta¾enķ selhalo."
@@ -2169,43 +2170,53 @@ msgstr "Pro zapnutķ pųejeļte tųemi prsty doprava."
msgid "OpenGL"
msgstr "OpenGL"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "Normįlnķ (bez zmģny velikosti)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "Re¾im do okna"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normįlnķ (bez zmģny velikosti)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "Povolena korekce pomģru stran"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "Zakįzįna korekce pomģru stran"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
#, fuzzy
msgid "Filtering enabled"
msgstr "Kliknutķ Povoleno"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
#, fuzzy
msgid "Filtering disabled"
msgstr "Kliknutķ Zakįzįno"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "Normįlnķ (bez zmģny velikosti)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normįlnķ (bez zmģny velikosti)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "Aktivnķ grafickż filtr:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "Re¾im do okna"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "Mapa Klįves:"
@@ -3125,6 +3136,39 @@ msgstr "~H~lavnķ nabķdka"
msgid "~W~ater Effect Enabled"
msgstr "~E~fekt Vody Zapnut"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+
#: engines/mohawk/mohawk.cpp:61
msgid "The game is paused. Press any key to continue."
msgstr "Hra je pozastavena. Pro pokračovanķ stisknģte libovolnou klįvesu."
@@ -4245,6 +4289,9 @@ msgstr ""
"Pou¾ķt video MPEG pochįzejķcķ z DVD verze, namķsto videa AVI v nķzkém "
"rozli¹enķ."
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr "Pro pou¾itķ tģchto nastavenķ musķte restartovat ScummVM."
+
#~ msgid "OpenGL (No filtering)"
#~ msgstr "OpenGL (bez filtrovįnķ)"
diff --git a/po/da_DK.po b/po/da_DK.po
index 0fa8572a09..b5d42d33ae 100644
--- a/po/da_DK.po
+++ b/po/da_DK.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.3.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
"PO-Revision-Date: 2016-02-25 21:08+0100\n"
"Last-Translator: Steffen Nyeland <steffen@nyeland.dk>\n"
"Language-Team: Steffen Nyeland <steffen@nyeland.dk>\n"
@@ -17,6 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.6.6\n"
+"X-Language-name: Dansk\n"
#: gui/about.cpp:94
#, c-format
@@ -56,7 +57,7 @@ msgstr "Gå op"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -81,7 +82,7 @@ msgstr "Vęlg"
msgid "Select directory where to download game data"
msgstr "Vęlg bibliotek med spil data"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "Vęlg bibliotek med spil data"
@@ -114,7 +115,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -126,7 +127,7 @@ msgstr "Ja"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -136,7 +137,7 @@ msgstr "Ja"
msgid "No"
msgstr "Nej"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM kunne ikke åbne det angivne bibliotek!"
@@ -147,8 +148,8 @@ msgid ""
msgstr ""
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -231,8 +232,8 @@ msgstr ""
"Spillets sprog. Dette vil ikke ęndre din spanske version af spillet til "
"engelsk"
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<standard>"
@@ -255,11 +256,11 @@ msgstr "Platform:"
msgid "Engine"
msgstr "Motor"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "Grafik"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "GFX"
@@ -272,7 +273,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "Overstyr globale grafik indstillinger"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "Lyd"
@@ -285,11 +286,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "Overstyr globale lyd indstillinger"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "Lydstyrke"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "Lydstyrke"
@@ -303,7 +304,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "Overstyr globale lydstyrke indstillinger"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -316,7 +317,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "Overstyr globale MIDI indstillinger"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -329,11 +330,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "Overstyr globale MT-32 indstillinger"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "Stier"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "Stier"
@@ -347,7 +348,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "Spil sti:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "Ekstra sti:"
@@ -356,62 +357,62 @@ msgstr "Ekstra sti:"
msgid "Specifies path to additional data used by the game"
msgstr "Angiver sti til ekstra data der bruges i spillet"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "Ekstra sti:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "Gemme sti:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "Angiver hvor dine gemmer bliver lagt"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "Gemme sti:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "Ingen"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "Standard"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "Vęlg SoundFont"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "Vęlg ekstra spil bibliotek"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "Vęlg bibliotek til spil gemmer"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
msgstr ""
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "Dette spil ID er allerede i brug. Vęlg venligst et andet."
@@ -491,7 +492,7 @@ msgstr "Sinus"
msgid "Triangle"
msgstr "Triangulęr"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "Andet"
@@ -541,15 +542,15 @@ msgstr "Luk"
msgid "Mouse click"
msgstr "Muse klik"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "Vis tastatur"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "Kortlęg taster"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "Skift fuldskęrm"
@@ -583,110 +584,110 @@ msgstr "Tryk tasten for at tilknytte"
msgid "Choose an action to map"
msgstr "Vęlg en handling at kortlęgge"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~A~fslut"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "Slut ScummVM"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "~O~m..."
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "Om ScummVM"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~I~ndstillinger..."
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "Ęndre globale ScummVM indstillinger"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "~S~tart"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "Start det valgte spil"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "Ind~l~ęs..."
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "Indlęs gemmer for det valgte spil"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "~T~ilfųj spil..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr "Hold Skift for at tilfųje flere"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "~R~ediger spil..."
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "Ęndre spil indstillinger"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "~F~jern spil"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr "Fjerner spil fra listen. Spillets data filer forbliver uberųrt"
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "~T~ilfųj spil..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "~R~ediger spil..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "~F~jern spil"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "Sųg i spil liste"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "Sųg:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "Indlęs spil:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "Indlęs"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -694,40 +695,40 @@ msgstr ""
"Vil du virkelig kųre fler spils detektoren? Dette kunne potentielt tilfųje "
"et stort antal spil."
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr ""
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "Vil du virkelig fjerne denne spil konfiguration?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr "Vil du indlęse gemmer?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr "Dette spil understųtter ikke indlęsning af spil fra spiloversigten."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr ""
"ScummVM kunne ikke finde en motor, istand til at afvikle det valgte spil!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM kunne ikke finde noget spil i det angivne bibliotek!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "Vęlg spillet:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "Tilfųj flere..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr "Optag..."
@@ -770,146 +771,146 @@ msgstr "Skift til Spil"
msgid "Fast replay"
msgstr "Hurtig afspil"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "Aldrig"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "hvert 5. minut"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "hvert 10. minut"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "hvert 15. minut"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "hvert 30. minut"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "Ingen"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "Anvendelse af ęndringer for grafiske indstillinger fejlede:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "videotilstanden kunne ikke ęndres."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "billedformat indstillingen ikke kunne ęndres"
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "fuld skęrm indstillingen kunne ikke ęndres"
-#: gui/options.cpp:462
+#: gui/options.cpp:486
#, fuzzy
msgid "the filtering setting could not be changed"
msgstr "fuld skęrm indstillingen kunne ikke ęndres"
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "Grafik tilstand:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "Rendere tilstand:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "Speciel farvereduceringstilstand understųttet a nogle spil"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "Fuldskęrms tilstand"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
#, fuzzy
msgid "Filter graphics"
msgstr "Grafik"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr ""
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "Billedformat korrektion"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "Korrekt billedformat til 320x200 spil"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "Foretruk. enhed:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "Musik enhed:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr "Angiver foretukket lyd enhed eller lydkort emulator"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr "Angiver lyd udgangsenhed eller lydkorts emulator"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "Foretruk. enh.:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "Musik enhed:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "AdLib emulator:"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "AdLib bliver brugt til musik i mange spil"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "Udgangsfrekvens:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -917,60 +918,60 @@ msgstr ""
"Hųjere vęrdi angiver bedre lyd kvalitet, men understųttes måske ikke af dit "
"lydkort"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "GM enhed:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr "Angiver standard lyd enhed for Generel MIDI-udgang"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "Brug ikke Generel MIDI musik"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "Brug fųrste tilgęngelig enhed"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr "SoundFont er understųttet af nogle lydkort, FluidSynth og Timidity"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "Blandet AdLib/MIDI tilstand"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "Brug både MIDI og AdLib lyd generering"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "MIDI lydstyrke:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "MT-32 enhed:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr "Angiver standard lyd enhed for Roland MT-32/LAPC1/CM32I/CM64 udgang"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "Ęgte Roland MT-32 (undlad GM emulering)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -978,16 +979,16 @@ msgstr ""
"Kryds af hvis du vil bruge din rigtige hardware Roland-kompatible lyd enhed "
"tilsluttet til din computer"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "Ęgte Roland MT-32 (ingen GM emulering)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "Roland GS enhed (aktivér MT-32 tilknytninger)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
@@ -995,340 +996,340 @@ msgstr ""
"Kryds af hvis du vil aktivere patch tilknytninger, for at emulere en MT-32 "
"på en Roland GS enhed"
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "Brug ikke Roland MT-32 musik"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "Tekst og tale:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "Tale"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "Undertekster"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "Begge"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "Tekst hastighed:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "Tekst og tale:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "Tale"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "Tekst"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "Begge"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "Vis undertekster og afspil tale"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "Tekst hastighed:"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "Musik lydstyrke:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "Musik lydstyrke:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "Mute alle"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "SFX lydstyrke:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "Lydstyrke for specielle lydeffekter"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "SFX lydstyrke:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "Tale lydstyrke:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "Tale lydstyrke:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "FluidSynth indstillinger"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "Tema sti:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "Tema sti:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr "Angiver sti til ekstra data brugt af alle spil eller ScummVM"
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "Plugin sti:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "Plugin sti:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "Andet"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "Tema:"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "GUI renderer:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "Auto gemme:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "Auto gemme:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "Taster"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "Sprog:"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "Sprog for brugerfladen i ScummVM"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr ""
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr ""
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr ""
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr ""
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr ""
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "Bruger:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr ""
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr ""
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr ""
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
#, fuzzy
msgid "Download"
msgstr "Ned"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr ""
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
#, fuzzy
msgid "Not running"
msgstr "Fejl ved kųrsel af spil:"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
#, fuzzy
msgid "/root/ Path:"
msgstr "Ekstra sti:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
#, fuzzy
msgid "Specifies which directory the Files Manager can access"
msgstr "Angiver hvor dine gemmer bliver lagt"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
#, fuzzy
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "Ekstra sti:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
#, fuzzy
msgid "Server's port:"
msgstr "Server:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
msgstr ""
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Du skal genstarte ScummVM fųr dine ęndringer har effekt."
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr ""
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
#, fuzzy
msgid "Failed to change cloud storage!"
msgstr "Mislykkedes at gemme spil"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr ""
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Temaet du valgte understųtter ikke dit aktuelle sprog. Hvis du ųnsker at "
+"bruge dette tema, skal du skifte til et andet sprog fųrst."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr "Der kan ikke skrives til det valgte bibliotek. Vęlg venligst et andet."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "Vęlg bibliotek for GUI temaer"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "Vęlg bibliotek for ekstra filer"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "Vęlg bibliotek for plugins"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
#, fuzzy
msgid "Select directory for Files Manager /root/"
msgstr "Vęlg bibliotek for ekstra filer"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Temaet du valgte understųtter ikke dit aktuelle sprog. Hvis du ųnsker at "
-"bruge dette tema, skal du skifte til et andet sprog fųrst."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr ""
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr ""
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
#, fuzzy
msgid "<never>"
msgstr "Aldrig"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
#, fuzzy
msgid "Stop server"
msgstr "Server:"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr ""
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1600,35 +1601,35 @@ msgstr ""
msgid "Clear value"
msgstr "Slet vęrdi"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "Motor understųtter ikke fejlfindingsniveau '%s'"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "Menu"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "Spring over"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "Pause"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "Spring linje over"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "Fejl ved kųrsel af spil:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr "Kunne ikke finde nogen motor istand til at afvikle det valgte spil"
@@ -2004,11 +2005,11 @@ msgstr "FM Towns lyd"
msgid "PC-98 Audio"
msgstr "PC-98 lyd"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "Initialisere MT-32 emulator"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "MT-32 emulator"
@@ -2024,34 +2025,34 @@ msgstr "IBM PCjr emulator"
msgid "C64 Audio Emulator"
msgstr "C64 lyd emulator"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
#, fuzzy
msgid "Saved games sync complete."
msgstr "Skan gennemfųrt!"
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr ""
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
msgstr ""
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
"Failed to download %u files."
msgstr ""
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
#, fuzzy
msgid "Download complete."
msgstr "Skan gennemfųrt!"
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
#, fuzzy
msgid "Download failed."
msgstr "Indlęs fil"
@@ -2161,43 +2162,53 @@ msgstr "Fųr tre fingre til hųjre for at skifte."
msgid "OpenGL"
msgstr "OpenGL"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "Normal (ingen skalering)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "Vindue tilstand"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normal (ingen skalering)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "Aktivér billedformat korrektion"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "Deaktivér billedformat korrektion"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
#, fuzzy
msgid "Filtering enabled"
msgstr "Klik aktiveret"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
#, fuzzy
msgid "Filtering disabled"
msgstr "Klik deaktiveret"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "Normal (ingen skalering)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normal (ingen skalering)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "Aktive grafik filtre:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "Vindue tilstand"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "Tasteoversigt:"
@@ -3121,6 +3132,39 @@ msgstr "Hoved~m~enu"
msgid "~W~ater Effect Enabled"
msgstr "~V~andeffekter aktiveret"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+
#: engines/mohawk/mohawk.cpp:61
#, fuzzy
msgid "The game is paused. Press any key to continue."
@@ -4250,6 +4294,9 @@ msgstr "Brug hųj oplųsning MPEG-video"
msgid "Use MPEG video from the DVD version, instead of lower resolution AVI"
msgstr "Brug MPEG-video fra DVD-versionen, i stedet for lavere oplųsning AVI"
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr "Du skal genstarte ScummVM fųr dine ęndringer har effekt."
+
#~ msgid "OpenGL (No filtering)"
#~ msgstr "OpenGL (Ingen filtrering)"
diff --git a/po/de_DE.po b/po/de_DE.po
index 3d951a2ee2..747618dc83 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.10.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
-"PO-Revision-Date: 2016-10-22 17:05+0200\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
+"PO-Revision-Date: 2016-11-05 13:06+0100\n"
"Last-Translator: Lothar Serra Mari <rootfather@scummvm.org>\n"
"Language-Team: Simon Sawatzki <SimSaw@gmx.de>, Lothar Serra Mari "
"<rootfather@scummvm.org>\n"
@@ -18,6 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Poedit 1.8.11\n"
+"X-Language-name: Deutsch\n"
#: gui/about.cpp:94
#, c-format
@@ -58,7 +59,7 @@ msgstr "Pfad hoch"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -84,7 +85,7 @@ msgstr ""
"Wählen Sie das Verzeichnis, in welches die Spieldaten heruntergeladen werden "
"sollen"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "Verzeichnis mit Spieldateien auswählen"
@@ -119,7 +120,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -131,7 +132,7 @@ msgstr "Ja"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -141,7 +142,7 @@ msgstr "Ja"
msgid "No"
msgstr "Nein"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM konnte das gewählte Verzeichnis nicht öffnen!"
@@ -154,8 +155,8 @@ msgstr ""
"beinhaltet eine Datei mit dem gleichen Namen."
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -240,8 +241,8 @@ msgstr ""
"Sprache des Spiels. Diese Funktion wird nicht eine spanische Version des "
"Spiels in eine deutsche verwandeln."
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<Standard>"
@@ -264,11 +265,11 @@ msgstr "Plattform:"
msgid "Engine"
msgstr "Engine"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "Grafik"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "GFX"
@@ -281,7 +282,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "Globale Grafik-Einstellungen übergehen"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "Audio"
@@ -294,11 +295,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "Globale Audio-Einstellungen übergehen"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "Lautstärke"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "Lautst."
@@ -312,7 +313,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "Globale Lautstärke-Einstellungen übergehen"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -325,7 +326,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "Globale MIDI-Einstellungen übergehen"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -338,11 +339,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "Globale MT-32-Einstellungen übergehen"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "Pfade"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "Pfade"
@@ -356,7 +357,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "Spielpfad:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "Extras:"
@@ -365,56 +366,56 @@ msgstr "Extras:"
msgid "Specifies path to additional data used by the game"
msgstr "Legt das Verzeichnis für zusätzliche Spieldateien fest."
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "Extras:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "Spielstände:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "Legt fest, wo die Spielstände gespeichert werden."
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "Spielstände:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "Keiner"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "Standard"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "SoundFont auswählen"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "Verzeichnis mit zusätzlichen Dateien auswählen"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "Verzeichnis für Spielstände auswählen"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
@@ -423,7 +424,7 @@ msgstr ""
"Wenn SieIhre Spielstände synchronisieren möchten, verwenden Sie das Standard-"
"Verzeichnis."
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "Diese Spielkennung ist schon vergeben. Bitte eine andere wählen."
@@ -503,7 +504,7 @@ msgstr "Sinus"
msgid "Triangle"
msgstr "Dreieck"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "Sonstiges"
@@ -553,15 +554,15 @@ msgstr "Schließen"
msgid "Mouse click"
msgstr "Mausklick"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "Tastatur anzeigen"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "Tasten neu zuweisen"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "Vollbild umschalten"
@@ -595,112 +596,112 @@ msgstr "Taste drücken, um sie zuzuweisen"
msgid "Choose an action to map"
msgstr "Eine Aktion zum Zuweisen auswählen"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~B~eenden"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "ScummVM beenden"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "Übe~r~"
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "Über ScummVM"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~O~ptionen"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "Globale ScummVM-Einstellungen ändern"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "~S~tarten"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "Ausgewähltes Spiel starten"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~L~aden..."
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "Spielstand für ausgewähltes Spiel laden"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "Spiel ~h~inzufügen"
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr ""
"Umschalttaste (Shift) gedrückt halten, um Verzeichnisse nach Spielen zu "
"durchsuchen"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "Spielo~p~tionen"
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "Spieloptionen ändern"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "Spiel ~e~ntfernen"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr "Spiel aus der Liste entfernen. Die Spieldateien bleiben erhalten."
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "~H~inzufügen"
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "Spielo~p~tion"
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "~E~ntfernen"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "In Spieleliste suchen"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "Suchen:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "Spiel laden:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "Laden"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -708,42 +709,42 @@ msgstr ""
"Möchten Sie wirklich den PC nach Spielen durchsuchen? Möglicherweise wird "
"dabei eine größere Menge an Spielen hinzugefügt."
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr ""
"Dieses Verzeichnis kann noch nicht verwendet werden, da noch Dateien "
"heruntergeladen werden!"
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "Möchten Sie wirklich diese Spielkonfiguration entfernen?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr "Möchten Sie einen Spielstand laden?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr ""
"Für dieses Spiel wird das Laden aus der Spieleliste heraus nicht unterstützt."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr "ScummVM konnte keine Engine finden, um das Spiel zu starten!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM konnte im gewählten Verzeichnis kein Spiel finden!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "Spiel auswählen:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "Durchsuchen"
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr "Aufzeichnen"
@@ -786,147 +787,147 @@ msgstr "Wechsle"
msgid "Fast replay"
msgstr "Schneller Modus"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "nie"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "alle 5 Minuten"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "alle 10 Minuten"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "alle 15 Minuten"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "alle 30 Minuten"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "Kein SoundFont"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "Folgende Grafikoptionen konnten nicht geändert werden:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "Grafikmodus konnte nicht geändert werden."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr ""
"Einstellung für Seitenverhältniskorrektur konnte nicht geändert werden."
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "Vollbildeinstellung konnte nicht geändert werden."
-#: gui/options.cpp:462
+#: gui/options.cpp:486
msgid "the filtering setting could not be changed"
msgstr "Die Filtereinstellung konnte nicht geändert werden"
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "Grafikmodus:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "Render-Modus:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr ""
"Spezielle Farbmischungsmethoden werden von manchen Spielen unterstützt."
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "Vollbildmodus"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Filter graphics"
msgstr "Bilineare Filterung"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr "Verwende bilineare Filterung zur Grafik-Skalierung"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "Seitenverhältnis korrigieren"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "Seitenverhältnis für Spiele mit der Auflösung 320x200 korrigieren"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "Bevorzugtes Gerät:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "Musikgerät:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr ""
"Legt das bevorzugte Tonwiedergabe-Gerät oder den Soundkarten-Emulator fest."
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr "Legt das Musikwiedergabe-Gerät oder den Soundkarten-Emulator fest."
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "Standard-Gerät:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "Musikgerät:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "AdLib-Emulator"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "AdLib wird für die Musik in vielen Spielen verwendet."
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "Ausgabefrequenz:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -934,64 +935,64 @@ msgstr ""
"Höhere Werte bewirken eine bessere Soundqualität, werden aber möglicherweise "
"nicht von jeder Soundkarte unterstützt."
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "GM-Gerät:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr ""
"Legt das standardmäßige Musikwiedergabe-Gerät für General-MIDI-Ausgabe fest."
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "Keine General-MIDI-Musik"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "Erstes verfügbares Gerät"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr ""
"SoundFont wird von einigen Soundkarten, FluidSynth und Timidity unterstützt."
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "Gemischter AdLib/MIDI-Modus"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "Kombiniert MIDI-Musik mit AdLib-Soundeffekten"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "MIDI-Lautstärke:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "MT-32-Gerät:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr ""
"Legt das standardmäßige Tonwiedergabe-Gerät für die Ausgabe von Roland MT-32/"
"LAPC1/CM32l/CM64 fest."
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "Echte Roland MT-32 (GM-Emulation deaktiviert)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -999,16 +1000,16 @@ msgstr ""
"Wählen Sie dies aus, wenn Sie ein echtes Roland-kompatibles Soundgerät "
"verwenden"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "Echte Roland MT-32 (keine GM-Emulation)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "Roland-GS-Gerät (MT-32-Zuweisungen aktivieren)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
@@ -1016,270 +1017,270 @@ msgstr ""
"Wählen Sie dies aus, wenn Sie ausbessernde Instrumentzuweisungen aktivieren "
"möchten, um MT-32 auf einem Roland-GS-Gerät zu emulieren."
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "Keine Roland-MT-32-Musik"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "Sprache und Text:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "Sprache"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "Untertitel"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "Beides"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "Untertitel-Tempo:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "Text u. Sprache:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "Spr."
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "Text"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "S+T"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "Untertitel anzeigen und Sprachausgabe aktivieren"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "Text-Tempo:"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "Musiklautstärke:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "Musiklautstärke:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "Stumm"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "Effektlautstärke:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "Lautstärke spezieller Geräusch-Effekte"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "Effektlautst.:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "Sprachlautstärke:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "Sprachlautst.:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "FluidSynth-Einstellungen"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "Themen:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "Themen:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr ""
"Legt das Verzeichnis für zusätzliche Spieldateien für alle Spiele in ScummVM "
"fest."
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "Plugins:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "Plugins:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "Andere"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "Thema:"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "GUI-Renderer:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "Autom. Speichern:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "Autospeichern:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "Tasten"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "Sprache:"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "Sprache der ScummVM-Oberfläche"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr "Updates suchen:"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr "Wie oft nach Aktualisierungen von ScummVM suchen?"
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr "Jetzt prüfen"
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr "Cloud"
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr "Cloud"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr "Cloud-Speicher:"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr "Aktiver Cloud-Speicher"
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr "<keiner>"
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "Benutzername:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr "Benutzername, der von diesem Cloud-Speicher verwendet wird"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr "Belegter Speicher:"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr ""
"Von ScummVM-Spielständen beleger Speicherplatz auf diesem Cloud-Speicher"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr "Letzte Sync.:"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr "Zeitpunkt der letzten Spielstand-Synchronisierung"
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr "Verbinden"
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr ""
"Öffnet den Assistent, der Sie durch die Einrichtung Ihres Cloud-Speichers "
"führt."
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr "Aktualisieren"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr ""
"Aktualisiert die Informationen über diesen Cloud-Speicher (Benutzername und "
"Belegung)"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Download"
msgstr "Herunterladen"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr "Öffnet den Download-Manager"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr "Server starten"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr "Startet den lokalen Webserver"
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
msgid "Not running"
msgstr "Nicht gestartet"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
msgid "/root/ Path:"
msgstr "/root/-Pfad:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
msgid "Specifies which directory the Files Manager can access"
msgstr "Legt fest, auf welches Verzeichnis der Dateimanager zugreifen darf."
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "/root/-Pfad:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid "Server's port:"
msgstr "Server-Port:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
@@ -1288,73 +1289,73 @@ msgstr ""
"Authentifizierung mit dem Server ist nicht verfügbar, wenn ein anderer Port "
"verwendet wird."
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Sie müssen ScummVM neu starten, damit die Änderungen wirksam werden."
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr "Übernehmen"
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
msgid "Failed to change cloud storage!"
msgstr "Konnte den Cloud-Speicher nicht ändern!"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr "Ein anderer Cloud-Speicher arbeitet gerade."
-#: gui/options.cpp:1584
+# Nicht übersetzen, da diese Nachricht nur für nicht-lateinische Sprachen relevant ist.
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Das ausgewählte Thema unterstützt nicht die aktuelle Sprache. Wenn Sie "
+"dieses Thema benutzen wollen, müssen Sie erst zu einer anderen Sprache "
+"wechseln."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr ""
"In das gewählte Verzeichnis kann nicht geschrieben werden. Bitte ein anderes "
"auswählen."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "Verzeichnis für Oberflächen-Themen"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "Verzeichnis für zusätzliche Dateien auswählen"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "Verzeichnis für Erweiterungen auswählen"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
msgid "Select directory for Files Manager /root/"
msgstr ""
"Wählen Sie das Verzeichnis aus, welches als Stammverzeichnis ('root') dient"
-# Nicht übersetzen, da diese Nachricht nur für nicht-lateinische Sprachen relevant ist.
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Das ausgewählte Thema unterstützt nicht die aktuelle Sprache. Wenn Sie "
-"dieses Thema benutzen wollen, müssen Sie erst zu einer anderen Sprache "
-"wechseln."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr "%llu Bytes"
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr "<gerade eben>"
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
msgid "<never>"
msgstr "<nie>"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
msgid "Stop server"
msgstr "Server anhalten"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr "Lokalen Webserver anhalten"
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1635,35 +1636,35 @@ msgstr "Fortfahren"
msgid "Clear value"
msgstr "Wert löschen"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "Engine unterstützt den Debug-Level \"%s\" nicht."
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "Menü"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "Überspringen"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "Pause"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "Zeile überspringen"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "Fehler beim Ausführen des Spiels:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr "Konnte keine Spiel-Engine finden, die dieses Spiel starten kann."
@@ -2043,11 +2044,11 @@ msgstr "FM-Towns-Audio"
msgid "PC-98 Audio"
msgstr "PC-98-Audio"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "MT-32-Emulator wird gestartet"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "MT-32-Emulation"
@@ -2063,15 +2064,15 @@ msgstr "IBM-PCjr-Emulator"
msgid "C64 Audio Emulator"
msgstr "C64-Audio-Emulator"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
msgid "Saved games sync complete."
msgstr "Spielstände synchronisiert."
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr "Spielstand-Synchronisierung abgebrochen"
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
@@ -2079,7 +2080,7 @@ msgstr ""
"Spielstand-Synchronisierung fehlgeschlagen.\n"
"Überprüfen Sie Ihre Internetverbindung."
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
@@ -2088,11 +2089,11 @@ msgstr ""
"Download abgeschlossen.\n"
"%u Dateien konnten nicht heruntergeladen werden."
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
msgid "Download complete."
msgstr "Download abgeschlossen."
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
msgid "Download failed."
msgstr "Download fehlgeschlagen."
@@ -2201,41 +2202,51 @@ msgstr "Zum Umschalten mit drei Fingern nach rechts wischen."
msgid "OpenGL"
msgstr "OpenGL"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "Normal (keine Skalierung)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "Fenstermodus"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normal ohn.Skalieren"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr "Auflösung: %dx%d"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "Seitenverhältniskorrektur an"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "Seitenverhältniskorrektur aus"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
msgid "Filtering enabled"
msgstr "Bilineare Filterung aktiviert"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
msgid "Filtering disabled"
msgstr "Bilineare Filterung deaktiviert"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "Normal (keine Skalierung)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normal ohn.Skalieren"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "Aktiver Grafikfilter:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "Fenstermodus"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "Tasten-Layout:"
@@ -3166,6 +3177,52 @@ msgstr "Haupt~m~enü"
msgid "~W~ater Effect Enabled"
msgstr "~W~assereffekt aktiviert"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+"Ihnen fehlt eine Programmdatei von Riven. Die Windows-Programmdatei ist "
+"'riven.exe' oder 'rivendmo.exe'. "
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+"Die Installationsdatei 'arcriven.z' kann ebenfalls verwendet werden. "
+"Zusätzlich können Sie auch die Mac-Programmdatei 'Riven' verwenden."
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+"Die Datei 'extras.mhk' fehlt. Sie können auch die Installationsdatei "
+"'arcriven.z verwenden."
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+"Die weitere Erkundung über diesen Punkt hinaus ist nur in der Vollversion\n"
+"des Spiels möglich."
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+"An dieser Stelle würde die Riven-Demo\n"
+"Sie fragen, ob Sie einen Web-Browser\n"
+"öffnen möchten, um das Spiel direkt von\n"
+"Red Orb zu kaufen. ScummVM kann dies nicht.\n"
+"Die Webseite existiert nicht mehr."
+
#: engines/mohawk/mohawk.cpp:61
msgid "The game is paused. Press any key to continue."
msgstr "Das Spiel ist pausiert. Zum Weiterspielen beliebige Taste drücken."
@@ -4313,6 +4370,10 @@ msgid "Use MPEG video from the DVD version, instead of lower resolution AVI"
msgstr ""
"Verwende hochauflösende MPEG-Filme der DVD-Version anstelle der AVI-Filme"
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr ""
+#~ "Sie müssen ScummVM neu starten, damit die Änderungen wirksam werden."
+
#~ msgid "OpenGL (No filtering)"
#~ msgstr "OpenGL (ohne Filter)"
diff --git a/po/es_ES.po b/po/es_ES.po
index 79f444e884..1e1d3f0b24 100644
--- a/po/es_ES.po
+++ b/po/es_ES.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.4.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
"PO-Revision-Date: 2016-10-09 01:40+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -16,6 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.5\n"
+"X-Language-name: Espanol\n"
#: gui/about.cpp:94
#, c-format
@@ -55,7 +56,7 @@ msgstr "Arriba"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -79,7 +80,7 @@ msgstr "Aceptar"
msgid "Select directory where to download game data"
msgstr "Selecciona el directorio donde descargar los archivos de juego"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "Selecciona el directorio del juego"
@@ -114,7 +115,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -126,7 +127,7 @@ msgstr "Sķ"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -136,7 +137,7 @@ msgstr "Sķ"
msgid "No"
msgstr "No"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM no ha podido abrir el directorio."
@@ -149,8 +150,8 @@ msgstr ""
"un archivo con el mismo nombre."
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -235,8 +236,8 @@ msgstr ""
"Idioma del juego. No sirve para pasar al inglés la versión espańola de un "
"juego"
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<por defecto>"
@@ -259,11 +260,11 @@ msgstr "Plat.:"
msgid "Engine"
msgstr "Motor"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "Grįficos"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "Grįf."
@@ -276,7 +277,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "Opciones grįficas especķficas"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "Sonido"
@@ -289,11 +290,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "Opciones de sonido especķficas"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "Volumen"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "Volumen"
@@ -307,7 +308,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "Opciones de volumen especķficas"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -320,7 +321,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "Opciones de MIDI especķficas"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -333,11 +334,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "Opciones de MT-32 especķficas"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "Rutas"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "Rutas"
@@ -351,7 +352,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "Juego:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "Adicional:"
@@ -360,56 +361,56 @@ msgstr "Adicional:"
msgid "Specifies path to additional data used by the game"
msgstr "Especifica un directorio para datos adicionales del juego"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "Adicional:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "Partidas:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "Especifica dónde guardar tus partidas"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "Partidas:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "Ninguna"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "Por defecto"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "Selecciona un SoundFont"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "Selecciona el directorio adicional"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "Selecciona el directorio para partidas guardadas"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
@@ -417,7 +418,7 @@ msgstr ""
"Para que la sincronización de partidas guardadas funcione, es necesario "
"utilizar el directorio predeterminado."
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "Esta ID ya estį en uso. Elige otra."
@@ -497,7 +498,7 @@ msgstr "Seno"
msgid "Triangle"
msgstr "Triįngulo"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "Otras"
@@ -547,15 +548,15 @@ msgstr "Cerrar"
msgid "Mouse click"
msgstr "Clic de ratón"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "Mostrar el teclado"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "Asignar teclas"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "Activar/Desactivar pantalla completa"
@@ -589,110 +590,110 @@ msgstr "Pulsa una tecla para asignarla"
msgid "Choose an action to map"
msgstr "Elige una acción para asociarla"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~S~alir"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "Salir de ScummVM"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "Acerca ~d~e"
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "Acerca de ScummVM"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~O~pciones..."
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "Cambiar opciones generales de ScummVM"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "~J~ugar"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "Jugar al juego seleccionado"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~C~argar..."
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "Cargar partida del juego seleccionado"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "~A~ńadir juego..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr "Mantén pulsado Mayśs para ańadir varios juegos"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "~E~ditar juego..."
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "Cambiar opciones de juego"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "E~l~iminar juego"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr "Eliminar el juego de la lista. Los archivos no se borran"
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "~A~ńadir..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "~E~ditar..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "E~l~iminar"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "Buscar en la lista de juegos"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "Buscar:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "Cargar juego:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "Cargar"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -700,42 +701,42 @@ msgstr ""
"æSeguro que quieres ejecutar la detección masiva? Puede que se ańada un gran "
"nśmero de juegos."
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr ""
"Este directorio se estį utilizando para una descarga y todavķa no puede "
"usarse."
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "æSeguro que quieres eliminar la configuración de este juego?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr "æQuieres cargar la partida guardada?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr "Este juego no permite cargar partidas desde el lanzador."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr ""
"ScummVM no ha podido encontrar ningśn motor capaz de ejecutar el juego."
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM no ha encontrado ningśn juego en el directorio."
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "Elige el juego:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "Ańadir varios..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr "Grabar..."
@@ -778,149 +779,149 @@ msgstr "Volver al juego"
msgid "Fast replay"
msgstr "Repetición rįpida"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "Nunca"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "cada 5 minutos"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "cada 10 minutos"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "cada 15 minutos"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "cada 30 minutos"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "Ninguno"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "Fallo al aplicar algunos cambios en las opciones grįficas:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "no se ha podido cambiar el modo de vķdeo."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "no se ha podido cambiar el ajuste de corrección de aspecto"
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "no se ha podido cambiar el ajuste de pantalla completa"
-#: gui/options.cpp:462
+#: gui/options.cpp:486
#, fuzzy
msgid "the filtering setting could not be changed"
msgstr "no se ha podido cambiar el ajuste de pantalla completa"
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "Modo grįfico:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "Renderizado:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "Modos especiales de difuminado compatibles con algunos juegos"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "Pantalla completa"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
#, fuzzy
msgid "Filter graphics"
msgstr "Usar grįficos en color"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr ""
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "Corrección de aspecto"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "Corregir relación de aspecto en juegos 320x200"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "Disp. preferido:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "Disp. de mśsica:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr ""
"Especifica qué dispositivo de sonido o emulador de tarjeta de sonido "
"prefieres"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr ""
"Especifica el dispositivo de sonido o emulador de tarjeta de sonido de salida"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "Disp. preferido:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "Disp. de mśsica:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "Emul. de AdLib:"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "AdLib se usa para la mśsica en muchos juegos"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "Frec. de salida:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -928,64 +929,64 @@ msgstr ""
"Los valores mįs altos ofrecen mayor calidad, pero puede que tu tarjeta de "
"sonido no sea compatible"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "Dispositivo GM:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr "Especifica el dispositivo de salida General MIDI por defecto"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "No usar mśsica General MIDI"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "Utilizar el primer dispositivo disponible"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr ""
"SoundFont es compatible con algunas tarjetas de sonido, con FluidSynth y con "
"Timidity"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "Modo AdLib/MIDI"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "Usar tanto MIDI como AdLib en la generación de sonido"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "Ganancia MIDI:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "Disp. MT-32:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr ""
"Especifica el dispositivo de sonido para la salida Roland MT-32/LAPC1/CM32l/"
"CM64 por defecto"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "Roland MT-32 auténtica (desactivar emulación GM)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -993,16 +994,16 @@ msgstr ""
"Marcar si se quiere usar un dispositivo de sonido real conectado al "
"ordenador y compatible con Roland"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "Roland MT-32 real (sin emulación GM)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "Dispositivo Roland GS (activar conversión MT-32)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
@@ -1010,266 +1011,266 @@ msgstr ""
"Marca esta opción si quieres activar la conversión para emular una MT-32 en "
"un dispositivo Roland GS"
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "No usar mśsica Roland MT-32"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "Texto y voces:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "Voces"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "Subtķtulos"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "Ambos"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "Vel. de subtķtulos:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "Texto y voces:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "Voz"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "Subt"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "V&S"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "Reproducir voces y subtķtulos"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "Vel. de subt.:"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "Mśsica:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "Mśsica:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "Silenciar"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "Efectos:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "Volumen de los efectos de sonido"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "Efectos:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "Voces:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "Voces:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "Opciones de FluidSynth"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "Temas:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "Temas:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr "Especifica el directorio adicional usado por los juegos y ScummVM"
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "Plugins:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "Plugins:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "Otras"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "Tema:"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "Interfaz:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "Autoguardado:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "Autoguardado:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "Teclas"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "Idioma:"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "Idioma de la interfaz de ScummVM"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr "Buscar actualizaciones:"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr "Frecuencia con la que se buscan actualizaciones"
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr "Buscar ahora"
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr "Nube"
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr "Nube"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr "Almacenamiento:"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr "Almacenamiento activo"
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr "<ninguno>"
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "Usuario:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr "Nombre de usuario utilizado para este almacenamiento"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr "Espacio utilizado:"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr "Espacio utilizado para las partidas guardadas en este almacenamiento"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr "Śltima sincronización:"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr "Cuįndo se ha producido la śltima sincronización de partidas guardadas"
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr "Conectar"
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr ""
"Abrir el asistente de configuración para habilitar el almacenamiento en lķnea"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr "Refrescar"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr ""
"Refrescar la información del almacenamiento en lķnea (nombre de usuario y "
"espacio)"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Download"
msgstr "Descargar"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr "Abrir el gestor de descargas"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr "Habilitar servidor"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr "Habilitar el servidor local"
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
msgid "Not running"
msgstr "Detenido"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
msgid "/root/ Path:"
msgstr "Directorio /raķz/:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
msgid "Specifies which directory the Files Manager can access"
msgstr "Especifica los directorios accesibles para el gestor de archivos"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
msgctxt "lowres"
msgid "/root/ Path:"
msgstr " /raķz/:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid "Server's port:"
msgstr "Puerto del servidor:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
@@ -1277,68 +1278,68 @@ msgstr ""
"Puerto utilizado por el servidor\n"
"La autentificación solo es posible con el puerto predeterminado"
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Tienes que reiniciar ScummVM para aplicar los cambios."
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr ""
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
msgid "Failed to change cloud storage!"
msgstr "Fallo al cambiar el almacenamiento en lķnea"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr "Ya se ha habilitado otro almacenamiento en lķnea"
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"El tema seleccionado no es compatible con el idioma actual. Si quieres usar "
+"este tema debes cambiar a otro idioma primero."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr "No se puede escribir en el directorio elegido. Selecciona otro."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "Selecciona el directorio de temas"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "Selecciona el directorio adicional"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "Selecciona el directorio de plugins"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
msgid "Select directory for Files Manager /root/"
msgstr "Selecciona el directorio /raķz/ para el gestor de archivos"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"El tema seleccionado no es compatible con el idioma actual. Si quieres usar "
-"este tema debes cambiar a otro idioma primero."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr "%llu bytes"
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr "<ahora>"
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
msgid "<never>"
msgstr "<nunca>"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
msgid "Stop server"
msgstr "Detener servidor"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr "Detener el servidor local"
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1614,35 +1615,35 @@ msgstr "Aplicar"
msgid "Clear value"
msgstr "Eliminar valor"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "El motor no es compatible con el nivel de debug '%s'"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "Menś"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "Saltar"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "Pausar"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "Saltar frase"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "Error al ejecutar el juego:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr "No se ha podido encontrar ningśn motor capaz de ejecutar el juego"
@@ -2018,11 +2019,11 @@ msgstr "FM-Towns Audio"
msgid "PC-98 Audio"
msgstr "PC-98 Audio"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "Iniciando el emulador de MT-32"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "Emulador de MT-32"
@@ -2038,15 +2039,15 @@ msgstr "Emulador de IBM PCjr"
msgid "C64 Audio Emulator"
msgstr "Emulador de C64 Audio"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
msgid "Saved games sync complete."
msgstr "Se ha completado la sincronización."
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr "La sincronización se ha cancelado."
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
@@ -2054,7 +2055,7 @@ msgstr ""
"La sincronización ha fallado.\n"
"Comprueba tu conexión."
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
@@ -2063,11 +2064,11 @@ msgstr ""
"Descarga completada.\n"
"No se han podido descargar %u archivos."
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
msgid "Download complete."
msgstr "Descarga completada."
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
msgid "Download failed."
msgstr "La descarga ha fallado."
@@ -2176,43 +2177,53 @@ msgstr "Desliza tres dedos hacia la derecha para cambiar de modo."
msgid "OpenGL"
msgstr "OpenGL"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "Normal (sin reescalado)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "Modo ventana"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normal"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "Activar la corrección de aspecto"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "Desactivar la corrección de aspecto"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
#, fuzzy
msgid "Filtering enabled"
msgstr "Clic activado"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
#, fuzzy
msgid "Filtering disabled"
msgstr "Clic desactivado"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "Normal (sin reescalado)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normal"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "Filtro de grįficos activo:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "Modo ventana"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "Asignación de teclas:"
@@ -3134,6 +3145,39 @@ msgstr "Menś ~p~rincipal"
msgid "~W~ater Effect Enabled"
msgstr "Efecto ag~u~a activado"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+
#: engines/mohawk/mohawk.cpp:61
msgid "The game is paused. Press any key to continue."
msgstr "Juego pausado. Pulsa cualquier tecla para continuar."
@@ -4272,6 +4316,9 @@ msgid "Use MPEG video from the DVD version, instead of lower resolution AVI"
msgstr ""
"Usar los vķdeos MPEG de la versión DVD, en vez de los AVI de baja resolución"
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr "Tienes que reiniciar ScummVM para aplicar los cambios."
+
#~ msgid "OpenGL (No filtering)"
#~ msgstr "OpenGL (sin filtros)"
diff --git a/po/eu.po b/po/eu.po
index 8958e58782..9fdb54ca88 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.5.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
"PO-Revision-Date: 2011-12-15 14:53+0100\n"
"Last-Translator: Mikel Iturbe Urretxa <mikel@hamahiru.org>\n"
"Language-Team: Librezale <librezale@librezale.org>\n"
@@ -15,6 +15,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Language-name: Euskara\n"
#: gui/about.cpp:94
#, c-format
@@ -54,7 +55,7 @@ msgstr "Joan gora"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -79,7 +80,7 @@ msgstr "Aukeratu"
msgid "Select directory where to download game data"
msgstr "Jokoaren direktorioa aukeratu"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "Jokoaren direktorioa aukeratu"
@@ -112,7 +113,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -124,7 +125,7 @@ msgstr "Bai"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -134,7 +135,7 @@ msgstr "Bai"
msgid "No"
msgstr "Ez"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM-k ezin izan du zehazturiko direktorioa ireki!"
@@ -145,8 +146,8 @@ msgid ""
msgstr ""
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -228,8 +229,8 @@ msgid ""
msgstr ""
"Jokoaren hizkuntza. Honek ez du zure ingelesezko bertsioa frantsesera pasako"
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<lehenetsia>"
@@ -252,11 +253,11 @@ msgstr "Plataforma:"
msgid "Engine"
msgstr "Motorea"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "Grafikoak"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "GFX"
@@ -269,7 +270,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "Ezarpen grafiko globalak baliogabetu"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "Soinua"
@@ -282,11 +283,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "Soinu ezarpen globalak baliogabetu"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "Bolumena"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "Bolumena"
@@ -300,7 +301,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "Bolumen ezarpen globalak baliogabetu"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -313,7 +314,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "MIDI ezarpen globalak baliogabetu"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -326,11 +327,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "MT-32 ezarpen globalak baliogabetu"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "Bide-izenak"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "Bideak"
@@ -344,7 +345,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "Jokoa:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "Gehigarriak:"
@@ -353,62 +354,62 @@ msgstr "Gehigarriak:"
msgid "Specifies path to additional data used by the game"
msgstr "Jokoak erabiltzen duen datu gehigarrien bide-izena"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "Gehigarria:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "Partida gordeak:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "Zure gordetako partidak non gordeko diren zehazten du"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "Partida gordeak:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "Bat ere ez"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "Lehenetsia"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "SoundFont-a aukeratu"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "Direktorio gehigarria aukeratu"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "Partida gordeen direktorioa aukeratu"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
msgstr ""
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "ID hau jada erabilia izaten ari da. Mesedez, aukeratu beste bat."
@@ -488,7 +489,7 @@ msgstr "Sinua"
msgid "Triangle"
msgstr "Triangelua"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "Beste"
@@ -536,15 +537,15 @@ msgstr "Itxi"
msgid "Mouse click"
msgstr "Sagu-klika"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "Erakutsi teklatua"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "Esleitu teklak"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "Txandakatu pantaila osoa"
@@ -578,110 +579,110 @@ msgstr "Sakatu esleituko den tekla"
msgid "Choose an action to map"
msgstr "Aukeratu esleituko den ekintza"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~I~rten"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "Irten ScummVM-tik"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "Ho~n~i buruz..."
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "ScummVM-i buruz"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~A~ukerak"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "ScummVM-ren aukera globalak aldatu"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "~H~asi"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "Aukeraturiko jokora jolastu"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~K~argatu"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "Aukeraturiko jokorako partida gordea kargatu"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "~G~ehitu..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr "Shift mantendu sakaturik hainbat joko gehitzeko"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "~E~ditatu..."
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "Aldatu jokoaren aukerak"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "~K~endu jokoa"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr "Jokoa zerrendatik kendu. Jokoaren fitxategiak ez dira ezabatzen"
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "~G~ehitu..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "~E~ditatu..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "~K~endu"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "Bilatu joko-zerrendan"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "Bilatu:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "Jokoa kargatu:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "Kargatu"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -689,41 +690,41 @@ msgstr ""
"Joko detektatzaile masiboa exekutatu nahi al duzu? Honek joko kantitate "
"handia gehitu dezake."
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr ""
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "Benetan ezabatu nahi duzu joko-konfigurazio hau?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr "Gordetako jokoa kargatu?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr "Joko honek ez du uzten partidak abiarazletik kargatzen."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr ""
"ScummVM-k ezin izan du aukeraturiko jokoa exekutatzeko gai den motorerik "
"aurkitu!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM-k ezin izan du jokorik aurkitu zehazturiko direktorioan!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "Jokoa aukeratu:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "Gehitu hainbat..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr "Grabatu..."
@@ -768,146 +769,146 @@ msgstr "Aldatu jokora"
msgid "Fast replay"
msgstr "Errepikappen bizkorra"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "Inoiz ez"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "5 minuturo"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "10 minuturo"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "15 minuturo"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "30 minuturo"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "Bat ere ez"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "Ezin izan da grafikoen aukeretako batzuk aplikatu:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "ezin izan da bideo-modua aldatu."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "formatu-ratioaren ezarpena ezin izan da aldatu"
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "ezin izan da pantaila-osoaren ezarpena aldatu"
-#: gui/options.cpp:462
+#: gui/options.cpp:486
#, fuzzy
msgid "the filtering setting could not be changed"
msgstr "ezin izan da pantaila-osoaren ezarpena aldatu"
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "Modu grafikoa:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "Renderizazioa:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "Joko batzuk onarturiko lausotze-modu bereziak"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "Pantaila osoa"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
#, fuzzy
msgid "Filter graphics"
msgstr "Grafikoak"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr ""
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "Formatu-ratioaren zuzenketa"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "320x200 jokoentzako formatu-ratioa zuzendu"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "Gogoko gailua:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "Musika gailua:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr "Gogoko soinu txartel edo emuladorea zein den ezartzen du"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr "Irteerako soinu txartel edo emuladorea ezartzen du"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "Gail. gogokoa:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "Musika gailua:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "AdLib emuladorea:"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "AdLib musikarako hainbat jokotan erabiltzen da"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "Irteera maizt.:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -915,64 +916,64 @@ msgstr ""
"Balio altuagoek soinu kalitate hobea ezartzen dute, baina baliteke zure "
"soinu-txartela bateragarria ez izatea"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "GM gailua:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr "Defektuzko soinu txartela ezartzen du General MIDI irteerarako"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "Ez erabili General MIDI musika"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "Erabilgarri dagoen lehen gailua erabili"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr ""
"Zenbait soinu txartel bateragarriak dira SoundFont-ekin, FluidSynth eta "
"Timidity besteak beste"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "AdLib/MIDI modua"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "Soinua sortzerakoan MIDI eta AdLib erabili"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "MIDI irabazia:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "MT-32 gailua:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr ""
"Roland MT-32/LAPC1/CM32l/CM64 irteerarako defektuzko soinu txartela ezartzen "
"du"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "Benetako Roland MT-32 (GM emulazio gabe)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -980,16 +981,16 @@ msgstr ""
"Markatu ordenagailura konektaturiko Roland-ekin bateragarria den soinu-"
"gailua erabiltzeko"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "Benetako Roland MT-32 (GM emulazio gabe)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "Roland GS Gailua (gaitu MT-32 bihurketak)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
@@ -997,341 +998,341 @@ msgstr ""
"Markatu Roland GS gailu batean MT-32 bat emulatzea ahalbidetzen "
"dutenbihurketak gaitzeko"
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "Ez erabili Roland MT-32 musika"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "Testu eta ahotsa:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "Ahotsa"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "Azpitituluak"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "Biak"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "Azpitit. abiadura:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "Testu eta ahotsa:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "Ahots."
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "Azp."
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "Biak"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "Ahotsak erreproduzitu eta azpitituluak erakutsi"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "Azpit. abiadura:"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "Musika:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "Musika:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "Mututu dena"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "Efektuak:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "Soinu efektu berezien bolumena"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "Efektuak:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "Ahotsak:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "Ahotsak:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "FluidSynth Ezarpenak"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "Gaiak:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "Gaiak:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr ""
"Joko guztiek edo ScummVM-k darabilten datu gehigarrien bide-izena ezartzen du"
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "Pluginak:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "Pluginak:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "Beste"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "Gaia:"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "Interfazea:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "Autogordetzea:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "Autogordetzea:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "Teklak"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "Hizkuntza"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "ScummVM interfazearen hizkuntza"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr ""
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr ""
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr ""
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr ""
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr ""
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "Erabiltzaile-izena:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr ""
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr ""
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr ""
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
#, fuzzy
msgid "Download"
msgstr "Behera"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr ""
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
#, fuzzy
msgid "Not running"
msgstr "Jokoa exekutatzean errorea:"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
#, fuzzy
msgid "/root/ Path:"
msgstr "Gehigarriak:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
#, fuzzy
msgid "Specifies which directory the Files Manager can access"
msgstr "Zure gordetako partidak non gordeko diren zehazten du"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
#, fuzzy
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "Gehigarriak:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
#, fuzzy
msgid "Server's port:"
msgstr "Zerbitzaria:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
msgstr ""
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "ScummVM berrabiarazi behar duzu aldaketak indarrean jartzeko"
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr ""
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
#, fuzzy
msgid "Failed to change cloud storage!"
msgstr "Ezin izan da jokoa gorde"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr ""
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Aukeraturiko gaia ez da zure hizkuntzarekin bateragarria. Gai hau erabili "
+"nahi baduzu, aurretik beste hizkuntza batera pasa behar duzu."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr "Aukeraturiko direktorioan ezin da idatzi. Mesedez, aukeratu beste bat."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "Gaien direktorioa aukeratu"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "Fitxategi gehigarrien direktorioa aukeratu"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "Pluginen direktorioa aukeratu"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
#, fuzzy
msgid "Select directory for Files Manager /root/"
msgstr "Fitxategi gehigarrien direktorioa aukeratu"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Aukeraturiko gaia ez da zure hizkuntzarekin bateragarria. Gai hau erabili "
-"nahi baduzu, aurretik beste hizkuntza batera pasa behar duzu."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr ""
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr ""
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
#, fuzzy
msgid "<never>"
msgstr "Inoiz ez"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
#, fuzzy
msgid "Stop server"
msgstr "Zerbitzaria:"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr ""
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1602,35 +1603,35 @@ msgstr ""
msgid "Clear value"
msgstr "Balioa kendu:"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "Motoreak ez da '%s' debug mailarekin bateragarria"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "Menua"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "Saltatu"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "Gelditu"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "Lerroa saltatu"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "Jokoa exekutatzean errorea:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr "Ezin izan da aukeraturiko jokoa exekutatzeko gai den motorerik aurkitu"
@@ -2004,11 +2005,11 @@ msgstr "FM-Towns soinua"
msgid "PC-98 Audio"
msgstr "PC-98 Soinua"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "MT-32 emuladorea hasieratzen"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "MT-32 emuladorea"
@@ -2024,34 +2025,34 @@ msgstr "IBM PCjr emuladorea"
msgid "C64 Audio Emulator"
msgstr "C64 Audio emuladorea"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
#, fuzzy
msgid "Saved games sync complete."
msgstr "Bilaketa amaitua!"
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr ""
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
msgstr ""
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
"Failed to download %u files."
msgstr ""
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
#, fuzzy
msgid "Download complete."
msgstr "Bilaketa amaitua!"
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
#, fuzzy
msgid "Download failed."
msgstr "Kargatu fitxategia:"
@@ -2161,43 +2162,53 @@ msgstr "Pasatu hiru atzamar eskuinean gaitu/desgaitzeko."
msgid "OpenGL"
msgstr "OpenGL"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "Normala (eskalatu gabe)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "Leiho modua"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normala"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "Formatu-ratio zuzenketa gaituta"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "Formatu-ratio zuzenketa desgaituta"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
#, fuzzy
msgid "Filtering enabled"
msgstr "Klikatzea gaituta"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
#, fuzzy
msgid "Filtering disabled"
msgstr "Klikatzea desgaituta"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "Normala (eskalatu gabe)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normala"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "Filtro grafiko aktiboa:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "Leiho modua"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "Teklen esleipena:"
@@ -3121,6 +3132,39 @@ msgstr "Menu ~n~agusia"
msgid "~W~ater Effect Enabled"
msgstr "~U~r-efektua gaituta"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+
#: engines/mohawk/mohawk.cpp:61
#, fuzzy
msgid "The game is paused. Press any key to continue."
@@ -4253,6 +4297,9 @@ msgstr "Erabili bereizmen altuko MPEG bideoa"
msgid "Use MPEG video from the DVD version, instead of lower resolution AVI"
msgstr "Erabili DVD bertsioko MPEG bideoa, bereizmen baxuagoko AVI-a beharrean"
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr "ScummVM berrabiarazi behar duzu aldaketak indarrean jartzeko"
+
#~ msgid "OpenGL (No filtering)"
#~ msgstr "OpenGL (Iragazi gabe)"
diff --git a/po/fi_FI.po b/po/fi_FI.po
index 74d4439ee7..89aaf1cca3 100644
--- a/po/fi_FI.po
+++ b/po/fi_FI.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.6.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
"PO-Revision-Date: 2012-12-01 19:37+0200\n"
"Last-Translator: Toni Saarela <saarela@gmail.com>\n"
"Language-Team: Finnish\n"
@@ -16,6 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.5.4\n"
+"X-Language-name: Suomi\n"
#: gui/about.cpp:94
#, c-format
@@ -56,7 +57,7 @@ msgstr "Siirry ylös"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -81,7 +82,7 @@ msgstr "Valitse"
msgid "Select directory where to download game data"
msgstr "Valitse pelin kansio"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "Valitse pelin kansio"
@@ -114,7 +115,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -126,7 +127,7 @@ msgstr "Kyllä"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -136,7 +137,7 @@ msgstr "Kyllä"
msgid "No"
msgstr "Ei"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM ei voi avata kyseistä hakemistoa!"
@@ -147,8 +148,8 @@ msgid ""
msgstr ""
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -231,8 +232,8 @@ msgstr ""
"Pelin kieli. Tämä ei muuta esimerkiksi espanjankielistä versiota pelistä "
"englanninkieliseksi."
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<oletus>"
@@ -255,11 +256,11 @@ msgstr "Alusta:"
msgid "Engine"
msgstr "Moottori"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "Grafiikka"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "GFX"
@@ -272,7 +273,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "Ohita globaalit grafiikka-asetukset"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "Ääni"
@@ -285,11 +286,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "Ohita globaalit ääniasetukset"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "Voimakkuus"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "Voimakkuus"
@@ -303,7 +304,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "Ohita globaalit äänenvoimakkuusasetukset"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -316,7 +317,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "Ohita globaalit MIDI-asetukset"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -329,11 +330,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "Ohita globaalit MT-32 asetukset"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "Polut"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "Polut"
@@ -347,7 +348,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "Pelin polku:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "Lisäkansio:"
@@ -356,62 +357,62 @@ msgstr "Lisäkansio:"
msgid "Specifies path to additional data used by the game"
msgstr "Määrittää polun lisätiedostoihin joita peli mahdollisesti käyttää"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "Lisäkansio:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "Tallennuskansio:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "Määrittää polun pelitallennuksille"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "Tallennuskansio:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "Ei määritelty"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "Oletus"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "Valitse äänifontti"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "Valitse lisäkansio pelille"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "Valitse kansio pelitallennuksille"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
msgstr ""
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "Pelin tunnus on jo käytössä. Valitse jokin muu."
@@ -495,7 +496,7 @@ msgstr ""
msgid "Triangle"
msgstr ""
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "Muut"
@@ -544,15 +545,15 @@ msgstr "Sulje"
msgid "Mouse click"
msgstr "Hiiren klikkaus"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "Näytä näppäimistö"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "Määritä näppäimet uudelleen"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "Kokoruututilan vaihto"
@@ -586,110 +587,110 @@ msgstr "Paina haluamaasi nappia"
msgid "Choose an action to map"
msgstr "Valitse toiminto"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~L~opeta"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "Lopeta ScummVM"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "Tietoa..."
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "Tietoa ScummVM:stä"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~A~setukset"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "Muuta globaaleja ScummVM:n asetuksia"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "~P~elaa"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "Pelaa valittua peliä"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~L~ataa..."
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "Lataa pelitallennus valitulle pelille"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "~L~isää peli..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr "Pidä Shift-näppäintä pohjassa lisätäksesi useita pelejä kerralla"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "Muokkaa peliä..."
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "Muuta pelin asetuksia"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "Poista peli"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr "Poista peli listasta. Pelin tiedostoja ei poisteta levyltä"
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "Lisää peli..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "Muokkaa peliä..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "Poista peli..."
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "Etsi peliä listasta"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "Etsi:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "Lataa peli:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "Lataa"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -697,40 +698,40 @@ msgstr ""
"Haluatko varmasti lisätä pelejä alihakemistoineen? Tämä voi lisätä suuren "
"määrän pelejä."
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr ""
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "Haluatko varmasti poistaa pelin asetuksineen listalta?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
#, fuzzy
msgid "Do you want to load saved game?"
msgstr "Haluatko tallentaa vai ladata pelin?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr "Tämä peli ei tue pelitallennuksien lataamista pelin ulkopuolelta."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr "ScummVM ei löytänyt pelimoottoria joka tukee valittua peliä!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM ei löytänyt yhtään peliä kyseisestä hakemistosta!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "Valitse peli:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "Lisää monta..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr ""
@@ -779,148 +780,148 @@ msgstr "Vaihda"
msgid "Fast replay"
msgstr "Nopea moodi"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "Ei koskaan"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "5 minuutin välein"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "10 minuutin välein"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "15 minuutin välein"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "30 minuutin välein"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "Ei käytössä"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "Joitain grafiikka-asetuksia ei saatu asetettua:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "videotilaa ei voitu vaihtaa."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "kuvasuhdekorjausasetusta ei voitu muuttaa"
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "kokoruututilaa ei voitu muuttaa"
-#: gui/options.cpp:462
+#: gui/options.cpp:486
#, fuzzy
msgid "the filtering setting could not be changed"
msgstr "kokoruututilaa ei voitu muuttaa"
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "Grafiikkatila:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "Renderöintitila:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "Erityiset dithering asetukset joita jotkut pelit tukevat"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "Kokoruututila"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
#, fuzzy
msgid "Filter graphics"
msgstr "Grafiikka"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr ""
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "Kuvasuhteen korjaus"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "Oikea kuvasuhde 320x200 peleille"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "Ensisijainen laite:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "Musiikkilaite:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr ""
"Määrittää äänilaitteen tai äänikorttiemulaattorin jota ensisijaisesti tulisi "
"käyttää"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr "Määrittää äänikortin tai äänikorttia emuloivan ohjelmiston"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "Ensisijainen:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "Musiikkilaite:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "AdLib emulaattori:"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "AdLibiä käytetään monien pelien musiikeissa"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "Taajuus:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -928,61 +929,61 @@ msgstr ""
"Isommat taajuudet merkitsevät parempaa äänenlaatua, mutta äänikorttisi ei "
"ehkä tue niitä."
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "GM laite:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr "Määrittää oletuksena käytettävän äänilaitteen General MIDIlle"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "Älä käytä General MIDIä musiikissa"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "Käytä ensimmäistä laitetta"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "Äänifontti:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr ""
"Jotkut äänikortit tukevat äänifonttia (SoundFont), FluidSynth ja Timidity"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "Äänifontti:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "Yhdistetty AdLib/MIDI tila"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "Käytä sekä MIDIä että Adlibiä äänentuotantoon"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "MIDIn äänilisäys:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "MT-32 laite:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr "Määrittää oletusäänilaitteen Roland MT-32/LAPC1/CM32l/CM64:n käyttöön"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "Aito Roland MT-32 (ei GM emulointia)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -990,358 +991,358 @@ msgstr ""
"Valitse jos haluat käyttää aitoa Roland-yhteensopivaa laittetta joka on "
"kytketty tietokoneeseesi"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "Aito Roland MT-32 (ei GM emulointia)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
#, fuzzy
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "Aito Roland MT-32 (ei GM emulointia)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
msgstr ""
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "Älä käytä Roland MT-32 musiikkia"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "Tekstitys ja puhe:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "Puhe"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "Tekstitys"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "Molemmat"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "Tekstin nopeus:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "Tekstitys ja puhe:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "Puhe"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "Tekstit"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "Molemmat"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "Näytä tekstitys ja käytä puhetta"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "Tekstin nopeus:"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "Musiikki:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "Musiikki:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "Vaimenna"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "Ääniefektit:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "Erikoisefektit"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "Ääniefektit:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "Puhe:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "Puhe:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr ""
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "Teemojen polku:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "Teemojen polku:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr ""
"Määrittää polun, jossa on lisätiedostoja joita ScummVM tai kaikki pelit "
"käyttävät"
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "Pluginien sijainti:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "Pluginien sijainti:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "Muut"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "Teema"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "GUI renderöijä:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "Autom. tallennus:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "Autom. tallennus:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "Näppäimet"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "ScummVM:n kieli:"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "ScummVM käyttöliittymän kieli"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr ""
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr ""
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr ""
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr ""
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr ""
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "Käyttäjänimi:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr ""
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr ""
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr ""
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
#, fuzzy
msgid "Download"
msgstr "Alas"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr ""
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
#, fuzzy
msgid "Not running"
msgstr "Virhe ajettaessa peliä:"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
#, fuzzy
msgid "/root/ Path:"
msgstr "Lisäkansio:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
#, fuzzy
msgid "Specifies which directory the Files Manager can access"
msgstr "Määrittää polun pelitallennuksille"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
#, fuzzy
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "Lisäkansio:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
#, fuzzy
msgid "Server's port:"
msgstr "Palvelin:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
msgstr ""
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "ScummVM pitää käynnistää uudelleen jotta muutokset tulevat voimaan."
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr ""
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
#, fuzzy
msgid "Failed to change cloud storage!"
msgstr "Pelin tallentaminen epäonnistui."
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr ""
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Valitsemasi teema ei tue nykyistä valitsemaasi kieltä. Vaihda kieli ensin, "
+"ja yritä sitten uudelleen."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr "Valittuun hakemistoon ei voi kirjoittaa. Valitse toinen hakemisto."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "Valitse hakemisto käyttöliittymän teemoille"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "Valitse hakemisto lisätiedostoille"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "Valitse hakemisto plugineille"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
#, fuzzy
msgid "Select directory for Files Manager /root/"
msgstr "Valitse hakemisto lisätiedostoille"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Valitsemasi teema ei tue nykyistä valitsemaasi kieltä. Vaihda kieli ensin, "
-"ja yritä sitten uudelleen."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr ""
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr ""
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
#, fuzzy
msgid "<never>"
msgstr "Ei koskaan"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
#, fuzzy
msgid "Stop server"
msgstr "Palvelin:"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr ""
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1619,35 +1620,35 @@ msgstr ""
msgid "Clear value"
msgstr "Tyhjennä arvo"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "Pelimoottori ei tue debug tasoa '%s'"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "Valikko"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "Ohita"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "Tauko"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "Ohita rivi"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "Virhe ajettaessa peliä:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr "Pelimoottoria joka tukisi valittua peliä ei löytynyt"
@@ -2022,11 +2023,11 @@ msgstr ""
msgid "PC-98 Audio"
msgstr "Ääni"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "Alustetaan MT-32 emulaattoria"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "MT-32 emulaattori"
@@ -2042,34 +2043,34 @@ msgstr "IBM PCjr emulaattori"
msgid "C64 Audio Emulator"
msgstr "C64 Audio emulaattori"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
#, fuzzy
msgid "Saved games sync complete."
msgstr "Skannaus on valmis!"
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr ""
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
msgstr ""
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
"Failed to download %u files."
msgstr ""
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
#, fuzzy
msgid "Download complete."
msgstr "Skannaus on valmis!"
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
#, fuzzy
msgid "Download failed."
msgstr "Lataa peli:"
@@ -2182,43 +2183,53 @@ msgstr ""
msgid "OpenGL"
msgstr "Avaa"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "Normaali (ei skaalausta)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "Ikkunoitu tila"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normaali (ei skaalausta)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "Kuvasuhteen korjaus päällä"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "Kuvasuhteen korjaus pois päältä"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
#, fuzzy
msgid "Filtering enabled"
msgstr "Klikkaus päällä"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
#, fuzzy
msgid "Filtering disabled"
msgstr "Klikkaus pois päältä"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "Normaali (ei skaalausta)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normaali (ei skaalausta)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "Valittu grafiikkafiltteri:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "Ikkunoitu tila"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "Näppäinkartta:"
@@ -3128,6 +3139,39 @@ msgstr "Päävalikko"
msgid "~W~ater Effect Enabled"
msgstr "Vesiefekti päällä"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+
#: engines/mohawk/mohawk.cpp:61
#, fuzzy
msgid "The game is paused. Press any key to continue."
@@ -4259,6 +4303,9 @@ msgstr ""
msgid "Use MPEG video from the DVD version, instead of lower resolution AVI"
msgstr "Käytä vaihtoehtoisia hopeisia kursoreita normaalien kultaisten sijaan"
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr "ScummVM pitää käynnistää uudelleen jotta muutokset tulevat voimaan."
+
#, fuzzy
#~ msgid "Specifies where Files Manager can access to"
#~ msgstr "Määrittää polun pelitallennuksille"
diff --git a/po/fr_FR.po b/po/fr_FR.po
index 53c2ac35f8..95f258ae36 100644
--- a/po/fr_FR.po
+++ b/po/fr_FR.po
@@ -7,16 +7,17 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.8.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
-"PO-Revision-Date: 2016-09-05 21:34+0100\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
+"PO-Revision-Date: 2016-11-08 02:19+0000\n"
"Last-Translator: Thierry Crozat <criezy@scummvm.org>\n"
"Language-Team: French <scummvm-devel@lists.scummvm.org>\n"
-"Language: Francais\n"
+"Language: fr_FR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n>1;\n"
"X-Generator: Poedit 1.8.6\n"
+"X-Language-name: Francais\n"
#: gui/about.cpp:94
#, c-format
@@ -56,7 +57,7 @@ msgstr "Remonter"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -80,7 +81,7 @@ msgstr "Choisir"
msgid "Select directory where to download game data"
msgstr "Sélectionner le répertoire dans lequel télécharger les données du jeu"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "Sélectionner le répertoire contenant les données du jeu"
@@ -115,7 +116,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -127,7 +128,7 @@ msgstr "Oui"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -137,7 +138,7 @@ msgstr "Oui"
msgid "No"
msgstr "Non"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM n'a pas pu ouvrir le répertoire sélectionné."
@@ -150,8 +151,8 @@ msgstr ""
"mźme nom existe déją."
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -236,8 +237,8 @@ msgstr ""
"Langue du jeu. Cela ne traduira pas en anglais par magie votre version "
"espagnole du jeu."
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<defaut>"
@@ -260,11 +261,11 @@ msgstr "Systčme :"
msgid "Engine"
msgstr "Moteur"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "Graphique"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "GFX"
@@ -277,7 +278,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "Réglages spécifiques ą ce jeux"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "Audio"
@@ -290,11 +291,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "Réglages spécifiques ą ce jeux"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "Volume"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "Volume"
@@ -308,7 +309,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "Réglages spécifiques ą ce jeux"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -321,7 +322,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "Réglages spécifiques ą ce jeux"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -334,11 +335,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "Réglages spécifiques ą ce jeux"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "Chemins"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "Chemins"
@@ -352,7 +353,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "Chemin du Jeu :"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "Extra :"
@@ -361,56 +362,56 @@ msgstr "Extra :"
msgid "Specifies path to additional data used by the game"
msgstr "Définie un chemin vers des données suplémentaires utilisées par le jeu"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "Extra :"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "Sauvegardes :"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "Définie l'emplacement oł les fichiers de sauvegarde sont créés"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "Sauvegardes :"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "Aucun"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "Défaut"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "Choisir une banque de sons"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "Sélectionner un répertoire supplémentaire"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "Sélectionner le répertoire pour les sauvegardes"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
@@ -419,7 +420,7 @@ msgstr ""
"les répertoires par défaut. Si vous souhaitez synchroniser vos sauvegardes, "
"utilisez le répertoire par défaut."
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "Cet ID est déją utilisé par un autre jeu. Choisissez en un autre svp."
@@ -499,7 +500,7 @@ msgstr "Sinus"
msgid "Triangle"
msgstr "Triangle"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "Divers"
@@ -548,15 +549,15 @@ msgstr "Fermer"
msgid "Mouse click"
msgstr "Clic de souris"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "Afficher le clavier"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "Changer l'affectation des touches"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "Basculer en plein écran"
@@ -590,111 +591,111 @@ msgstr "Appuyez sur la touche ą associer"
msgid "Choose an action to map"
msgstr "Sélectionnez une action ą affecter"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~Q~uitter"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "Quitter ScummVM"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "Ą ~P~ropos..."
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "Ą propos de ScummVM"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~O~ptions..."
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "Change les options globales de ScummVM"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "~D~émarrer"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "Démarre le jeu sélectionné"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~C~harger"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "Charge une sauvegarde pour le jeu sélectionné"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "~A~jouter..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr ""
"Ajoute un jeu ą la Liste. Maintenez Shift enfoncée pour un Ajout Massif"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "~E~diter..."
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "Change les options du jeu"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "~S~upprimer"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr "Supprime le jeu de la liste. Les fichiers sont conservés"
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "~A~jouter..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "~E~diter..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "~S~upprimer"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "Recherche dans la liste de jeux"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "Filtre :"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "Charger le jeu :"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "Charger"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -702,42 +703,42 @@ msgstr ""
"Voulez-vous vraiment lancer la détection automatique des jeux ? Cela peut "
"potentiellement ajouter un grand nombre de jeux."
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr ""
"Ce répertoire est en cours de téléchargement et ne peut pas encore źtre "
"utilisé !"
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "Voulez-vous vraiment supprimer ce jeu ?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr "Voulez-vous charger le jeu ?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr ""
"Le chargement de sauvegarde depuis le lanceur n'est pas supporté pour ce jeu."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr "ScummVM n'a pas pu trouvé de moteur pour lancer le jeu sélectionné."
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM n'a pas trouvé de jeux dans le répertoire sélectionné."
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "Choisissez le jeu :"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "Ajout Massif..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr "Enregistrer..."
@@ -781,148 +782,148 @@ msgstr "Retourner au jeu"
msgid "Fast replay"
msgstr "Rejouer rapidement"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "Jamais"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "Toutes les 5 mins"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "Toutes les 10 mins"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "Toutes les 15 mins"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "Toutes les 30 mins"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "Aucune"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "Certaines options graphiques n'ont pu źtre changées :"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "le mode vidéo n'a pu źtre changé."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "la correction de rapport d'aspect n'a pu źtre changée."
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "le mode plein écran n'a pu źtre changé."
-#: gui/options.cpp:462
-#, fuzzy
+#: gui/options.cpp:486
msgid "the filtering setting could not be changed"
-msgstr "le mode plein écran n'a pu źtre changé."
+msgstr "le mode de filtrage n'a pu źtre changé."
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "Mode graphique :"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "Mode de rendu :"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "Mode spécial de tramage supporté par certains jeux"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "Plein écran"
-#: gui/options.cpp:811
-#, fuzzy
+#: gui/options.cpp:838
msgid "Filter graphics"
-msgstr "Utiliser les graphiques en couleurs"
+msgstr "Filtrer les graphiques"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr ""
+"Utiliser une interpolation bi-linéaire lors du changement d'échelle des "
+"graphiques"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "Correction du rapport d'aspect"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "Corrige le rapport d'aspect pour les jeu 320x200"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "Sortie Préféré :"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "Sortie Audio :"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr ""
"Spécifie le périphérique de sortie audio ou l'émulateur de carte audio "
"préféré"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr "Spécifie le périphérique de sortie audio ou l'émulateur de carte audio"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "Sortie Préféré :"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "Sortie Audio :"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "Émulateur AdLib :"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "AdLib est utilisé pour la musique dans de nombreux jeux"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "Fréquence :"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -930,64 +931,64 @@ msgstr ""
"Une valeur plus élevée donne une meilleure qualité audio mais peut ne pas "
"źtre supporté par votre carte son"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "Sortie GM :"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr "Spécifie le périphérique audio par défaut pour la sortie General MIDI"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "Ne pas utiliser la musique General MIDI"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "Utiliser le premier périphérique disponible"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "Banque de sons :"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr ""
"La banque de sons (SoundFont) est utilisée par certaines cartes audio, "
"FluidSynth et Timidity"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont :"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "Mode mixe AdLib/MIDI"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "Utiliser ą la fois MIDI et AdLib"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "Gain MIDI :"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "Sortie MT-32 :"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr ""
"Spécifie le périphérique audio par défaut pour la sortie Roland MT-32/LAPC1/"
"CM32l/CM64"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "Roland MT-32 exacte (désactive l'émulation GM)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -995,16 +996,16 @@ msgstr ""
"Vérifie si vous voulez utiliser un périphérique audio compatible Roland "
"connecté ą l'ordinateur"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "Roland MT-32 exacte (pas d'ému GM)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "Roland GS (active le mappage MT-32)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
@@ -1012,267 +1013,267 @@ msgstr ""
"Utilisez cette option si vous voulez activez le mappage ą la volée pour une "
"émulation MT-32 sur un appareil Roland GS."
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "Ne pas utiliser la musique Roland MT-32"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "Dialogue :"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "Voix"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "Sous-titres"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "Les deux"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "Vitesse des ST :"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "Dialogue :"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "Voix"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "Subs"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "V&S"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "Affiche les sous-titres et joue les dialogues audio"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "Vitesse des ST :"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "Volume Musique :"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "Musique :"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "Silence"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "Volume Bruitage :"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "Volume des effets spéciaux sonores"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "Bruitage :"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "Volume Dialogues :"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "Dialogues :"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "Paramčtres FluidSynth"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "Thčmes :"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "Thčmes :"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr ""
"Spécifie un chemin vers des données supplémentaires utilisées par tous les "
"jeux ou ScummVM"
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "Plugins :"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "Plugins :"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "Divers"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "Thčme :"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "Interface :"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "Sauvegarde auto :"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "Sauvegarde :"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "Touches"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "Langue :"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "Langue de l'interface graphique de ScummVM"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr "Vérif. mises ą jour :"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr "Fréquence des vérifications"
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr "Maintenant"
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr "Nuage"
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr "Nuage"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr "Stockage :"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr "Service de stockage actif"
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr "<aucun>"
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "Nom d'utilisateur :"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr "Nom d'utilisateur pour ce service"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr "Espace utilisé"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr "Espace utilisé par les sauvegardes de ScummVM sur ce stockage."
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr "Synchronisé :"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr "Quand la derničre synchronisation des sauvegardes ą eu lieu"
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr "Se connecter"
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr "Ouvre l'assistant de connexion au compte de stockage en ligne"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr "Rafraīchir"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr ""
"Rafraīchir les informations (nom d'utilisateur et espace utilisé) pour le "
"service de stockage actif"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Download"
msgstr "Télécharger"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr "Ouvrir le gestionnaire de téléchargement"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr "Démarrer serveur"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr "Démarre le serveur web local"
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
msgid "Not running"
msgstr "Arrźté"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
msgid "/root/ Path:"
msgstr "Chemin /racine/:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
msgid "Specifies which directory the Files Manager can access"
msgstr "Indique le répertoire que le gestionnaire de fichier peut accéder"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "/racine/:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid "Server's port:"
msgstr "Port :"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
@@ -1280,71 +1281,70 @@ msgstr ""
"Port utilisé par le serveur\n"
"Authentification avec le serveur n'est disponible qu'avec le port par défaut"
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr ""
-"Vous devez relancer ScummVM pour que le changement soit pris en compte."
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr "Appliquer"
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
msgid "Failed to change cloud storage!"
msgstr "Echec du changement de service de stockage !"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr "Un autre service de stockage est déją actif."
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Le thčme que vous avez sélectioné ne support pas la langue franēaise. Si "
+"vous voulez l'utiliser vous devez d'abord changer de langue."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr ""
"Le répertoire sélectionné est vérouillé en écriture. Sélectionnez un autre "
"répertoire."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "Sélectionner le répertoire des thčmes d'interface"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "Sélectionner le répertoire pour les fichiers suplémentaires"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "Sélectionner le répertoire des plugins"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
msgid "Select directory for Files Manager /root/"
msgstr "Indique le répertoire pour la /racine/ du Gestionnaire de Fichiers"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Le thčme que vous avez sélectioné ne support pas la langue franēaise. Si "
-"vous voulez l'utiliser vous devez d'abord changer de langue."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr "%llu bytes"
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr "<maintenant>"
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
msgid "<never>"
msgstr "<jamais>"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
msgid "Stop server"
msgstr "Arrźter serveur"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr "Arrźter le serveur"
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1623,35 +1623,35 @@ msgstr "Appliquer"
msgid "Clear value"
msgstr "Effacer la valeur"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "Le niveau de debug '%s' n'est pas supporté par ce moteur de jeu"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "Menu"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "Passer"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "Mettre en pause"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "Passer la phrase"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "Erreur lors de l'éxécution du jeu : "
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr "Impossible de trouver un moteur pour exécuter le jeu sélectionné"
@@ -1891,9 +1891,8 @@ msgid "Could not apply fullscreen setting."
msgstr "Impossible d'appliquer l'option plein écran."
#: engines/engine.cpp:373
-#, fuzzy
msgid "Could not apply filtering setting."
-msgstr "Impossible d'appliquer l'option plein écran."
+msgstr "Impossible d'appliquer l'option de filtrage."
#: engines/engine.cpp:473
msgid ""
@@ -2027,11 +2026,11 @@ msgstr "Audio FM Towns"
msgid "PC-98 Audio"
msgstr "Audio PC-98"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "Initialisation de l'Émulateur MT-32"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "Émulateur MT-32"
@@ -2047,15 +2046,15 @@ msgstr "Émulateur IBM PCjr"
msgid "C64 Audio Emulator"
msgstr "Émulateur C64 Audio"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
msgid "Saved games sync complete."
msgstr "Synchronisation des sauvegardes terminé."
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr "Synchronisation des sauvegardes annulée."
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
@@ -2063,7 +2062,7 @@ msgstr ""
"Erreur lors de la synchronisation des sauvegardes.\n"
"Vérifiez votre connexion internet."
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
@@ -2072,11 +2071,11 @@ msgstr ""
"Téléchargement terminé.\n"
"%u fichiers n'ont pu źtre téléchargés."
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
msgid "Download complete."
msgstr "Téléchargement terminé !"
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
msgid "Download failed."
msgstr "Erreur lors du téléchargement."
@@ -2185,43 +2184,51 @@ msgstr "Glissez trois doigts vers la droite pour changer de mode."
msgid "OpenGL"
msgstr "OpenGL"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "Normal (échelle d'origine)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "Mode Fenźtre"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normal"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr "Résolution : %dx%d"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "Activer la correction du rapport d'aspect"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "Désactiver la correction du rapport d'aspect"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
-#, fuzzy
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
msgid "Filtering enabled"
-msgstr "Clic Activé"
+msgstr "Filtrage Activé"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
-#, fuzzy
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
msgid "Filtering disabled"
-msgstr "Clic Désactivé"
+msgstr "Filtrage Désactivé"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "Normal (échelle d'origine)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normal"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "Mode graphique actif:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "Mode Fenźtre"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "Affectation des touches:"
@@ -3146,6 +3153,51 @@ msgstr "~M~enu Principal"
msgid "~W~ater Effect Enabled"
msgstr "~E~ffets de l'Eau Activés"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+"Il vous manque l'exécutable de Riven. L'exécutable pour Windows se nomme "
+"'rivent.exe' ou 'rivendmo.exe'."
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+"Utiliser le fichier archive 'arcriven.z' marche également. Vous pouvez "
+"également utiliser l'exécutable pour Mac qui se nomme 'Riven'."
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+"Il vous manque le fichier 'extras.mhk'. Utiliser le fichier archive "
+"'arcriven.z' marche également."
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr "L'exploration au delą de ce point nécessite d'avoir le jeu complet."
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+"A ce point la démo de Riven vous\n"
+"demanderais si vous voulez ouvrir un\n"
+"navigateur web pour vous amener sur\n"
+"la page de Red Orb et acheter le jeu.\n"
+"ScummVM ne peut pas faire ēa et le\n"
+"site n'existe plus."
+
#: engines/mohawk/mohawk.cpp:61
msgid "The game is paused. Press any key to continue."
msgstr "Jeu en pause. Appuyer sur une touche pour Reprendre."
@@ -4291,6 +4343,10 @@ msgstr ""
"Utiliser les vidéos MPEG du DVD ą la place des vidéos AVI de plus basse "
"résolution"
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr ""
+#~ "Vous devez relancer ScummVM pour que le changement soit pris en compte."
+
#~ msgid "OpenGL (No filtering)"
#~ msgstr "OpenGL (sans filtre)"
diff --git a/po/gl_ES.po b/po/gl_ES.po
index 15ad293d8c..c7c305104e 100644
--- a/po/gl_ES.po
+++ b/po/gl_ES.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.8.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
"PO-Revision-Date: 2016-10-09 13:57+0200\n"
"Last-Translator: Santiago G. Sanz <s.sanz@uvigo.es>\n"
"Language-Team: Santiago G. Sanz <s.sanz@uvigo.es>\n"
@@ -16,6 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.6\n"
+"X-Language-name: Galego\n"
#: gui/about.cpp:94
#, c-format
@@ -55,7 +56,7 @@ msgstr "Arriba"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -79,7 +80,7 @@ msgstr "Elixir"
msgid "Select directory where to download game data"
msgstr "Selecciona un directorio para descargar os datos de xogo"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "Selecciona un directorio con datos de xogo"
@@ -114,7 +115,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -126,7 +127,7 @@ msgstr "Si"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -136,7 +137,7 @@ msgstr "Si"
msgid "No"
msgstr "Non"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM non foi quen de abrir o directorio!"
@@ -149,8 +150,8 @@ msgstr ""
"ten un ficheiro co mesmo nome."
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -233,8 +234,8 @@ msgid ""
"English"
msgstr "Idioma do xogo. Non converterį a versión galega do xogo en inglesa"
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<por defecto>"
@@ -257,11 +258,11 @@ msgstr "Plataforma:"
msgid "Engine"
msgstr "Motor"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "Grįficos"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "Efectos grįficos"
@@ -274,7 +275,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "Anular a configuración dos grįficos"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "Son"
@@ -287,11 +288,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "Anular a configuración do son"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "Volume"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "Volume"
@@ -305,7 +306,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "Anular a configuración do volume"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -318,7 +319,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "Anular a configuración de MIDI"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -331,11 +332,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "Anular a configuración de MT-32"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "Camińos"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "Camińos"
@@ -349,7 +350,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "Camińo do xogo:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "Camińo adicional:"
@@ -358,56 +359,56 @@ msgstr "Camińo adicional:"
msgid "Specifies path to additional data used by the game"
msgstr "Especifica o camińo dos datos adicionais usados no xogo"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "Camińo adicional:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "Camińo de gardado:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "Especifica o lugar dos ficheiros de gardado"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "Camińo de gardado:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "Ningśn"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "Predefinido"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "Seleccionar SoundFont"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "Selecciona un directorio con datos adicionais"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "Selecciona un directorio para ficheiros de gardado"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
@@ -416,7 +417,7 @@ msgstr ""
"directorios non predeterminados. Para sincronizar as partidas gardadas, "
"emprega o directorio predeterminado."
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "Este ID de xogo xa estį en uso. Selecciona outro."
@@ -496,7 +497,7 @@ msgstr "Seno"
msgid "Triangle"
msgstr "Triįngulo"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "Misc."
@@ -547,15 +548,15 @@ msgstr "Pechar"
msgid "Mouse click"
msgstr "Premer co rato"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "Mostrar teclado"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "Asignar teclas"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "Activar/desactivar pantalla completa"
@@ -589,110 +590,110 @@ msgstr "Preme a tecla para asociala"
msgid "Choose an action to map"
msgstr "Elixe unha acción para asignala"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~S~aķr"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "Saķr de ScummVM"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "Ace~r~ca de..."
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "Acerca de ScummVM"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~O~pcións..."
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "Cambiar as opcións de ScummVM"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "~I~niciar"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "Iniciar o xogo seleccionado"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~C~argar..."
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "Cargar partida do xogo seleccionado"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "Eng~a~dir xogo..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr "Manter premido MAIŚS para engadir en masa"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "~E~ditar xogo..."
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "Cambiar as opcións do xogo"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "Elimina~r~ xogo"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr "Eliminar o xogo da lista. Os ficheiros de datos non se modifican"
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "Eng~a~dir xogo..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "~E~ditar xogo..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "Elimina~r~ xogo"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "Buscar na lista de xogos"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "Buscar:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "Cargar partida:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "Cargar"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -700,39 +701,39 @@ msgstr ""
"Queres executar o detector de xogos en masa? É posible que se engada un gran "
"nśmero de xogos."
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr "Aķnda non se pode empregar este directorio. A descarga non rematou!"
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "Seguro que queres eliminar esta configuración de xogo?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr "Queres cargar a partida gardada?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr "O xogo non permite cargar partidas dende o iniciador."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr "ScummVM non foi quen de atopar un motor para executar o xogo!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM non foi quen de atopar xogos no directorio!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "Elixe o xogo:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "Engadir en masa..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr "Gravar..."
@@ -775,146 +776,146 @@ msgstr "Cambiar ao xogo"
msgid "Fast replay"
msgstr "Repetición rįpida"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "Nunca"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "cada 5 min"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "cada 10 min"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "cada 15 min"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "cada 30 min"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "Ningunha"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "Erro ao aplicar os cambios na configuración dos grįficos:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "non se puido cambiar o modo de vķdeo."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "non se puido cambiar a proporción."
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "non se puido cambiar a configuración de pantalla completa."
-#: gui/options.cpp:462
+#: gui/options.cpp:486
#, fuzzy
msgid "the filtering setting could not be changed"
msgstr "non se puido cambiar a configuración de pantalla completa."
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "Grįficos:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "Procesamento:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "Modos de interpolación de cores compatibles con algśns xogos"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "Pantalla completa"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
#, fuzzy
msgid "Filter graphics"
msgstr "Empregar grįficos en cor"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr ""
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "Corrección de proporción"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "Corrixir a proporción para os xogos en 320x200"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "Dispositivo preferido:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "Dispositivo de mśsica:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr "Especifica o dispositivo ou emulador de tarxeta de son preferido"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr "Especifica o dispositivo ou emulador de tarxeta de son de saķda"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "Disp. preferido:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "Disp. mśsica:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "Emulador de AdLib:"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "Moitos xogos empregan AdLib para a mśsica"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "Taxa de saķda:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -922,80 +923,80 @@ msgstr ""
"A maior valor, maior calidade do son, mais talvez non sexa compatible coa "
"tarxeta"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "Dispositivo de GM:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr ""
"Especifica o dispositivo de son por defecto para a saķda de General MIDI"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "Non empregar mśsica en General MIDI"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "Empregar o primeiro dispositivo dispońible"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr ""
"SoundFont é compatible con algunhas tarxetas de son, FluidSynth e Timidity"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "Modo AdLib/MIDI mixto"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "Empregar xeración de son MIDI e mįis AdLib"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "Ganancia de MIDI:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "Dispositivo de MT-32:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr ""
"Especifica o dispositivo por defecto para a saķda de Roland MT-32/LAPC1/"
"CM32l/CM64"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "Roland MT-32 verdadeiro (sen emulación de GM)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
msgstr ""
"Marcar para empregar o hardware compatible con Roland conectado ao sistema"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "Roland MT-32 (sen emulación de GM)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "Dispositivo Roland GS (activar atribución MT-32)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
@@ -1003,270 +1004,270 @@ msgstr ""
"Marcar para activar a atribución de parches e emular MT-32 nun dispositivo "
"Roland GS"
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "Non empregar mśsica en Roland MT-32"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "Texto e voz:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "Voz"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "Subtķtulos"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "Ambos"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "Velocidade dos subtķtulos:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "Texto e voz:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "Voz"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "Subs"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "Ambos"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "Mostrar os subtķtulos e reproducir as voces"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "Velocidade subs:"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "Volume de mśsica:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "Volume mśsica:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "Silenciar todo"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "Volume de efectos:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "Volume dos efectos de son"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "Volume efectos:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "Volume de voz:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "Volume voz:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "Configuración de FluidSynth"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "Camińo do tema:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "Camińo tema:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr ""
"Especificar o camińo dos datos adicionais de todos os xogos ou de ScummVM"
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "Camińo dos complementos:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "Camińo complementos:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "Misc."
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "Tema:"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "Procesamento da interfaz:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "Autogardado:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "Autogardado:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "Teclas"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "Idioma de interfaz:"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "Idioma da interfaz de ScummVM"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr "Comprobación de actualizacións:"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr "Frecuencia de comprobación das actualizacións de ScummVM"
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr "Comprobar agora"
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr "Nube"
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr "Nube"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr "Almacenamento:"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr "Almacenamento na nube activo"
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr "<ningśn>"
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "Nome de usuario:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr "Nome de usuario empregado por este almacenamento"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr "Espazo empregado:"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr ""
"Espazo empregado polas partidas gardadas de ScummVM neste almacenamento."
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr "Śltima sincronización:"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr ""
"O momento da śltima sincronización das partidas gardadas neste almacenamento."
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr "Conectar"
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr ""
"Abre o diįlogo do asistente para conectar coa tśa conta de almacenamento na "
"nube."
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr "Actualizar"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr ""
"Actualiza a información do almacenamento na nube actual (nome de usuario e "
"espazo empregado)."
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Download"
msgstr "Descargar"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr "Abre o diįlogo do xestor de descargas."
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr "Executar servidor"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr "Executar servidor web local"
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
msgid "Not running"
msgstr "Non se estį a executar"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
msgid "/root/ Path:"
msgstr "Camińo de /root/:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
msgid "Specifies which directory the Files Manager can access"
msgstr "Especifica o directorio de acceso do xestor de ficheiros."
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "Camińo de /root/:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid "Server's port:"
msgstr "Porto do servidor:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
@@ -1274,68 +1275,68 @@ msgstr ""
"O porto empregado polo servidor.\n"
"Autorización non dispońible con portos non predeterminados."
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Debes reiniciar ScummVM para que os cambios teńan efecto."
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr ""
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
msgid "Failed to change cloud storage!"
msgstr "Erro ao cambiar o almacenamento na nube!"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr "Xa estį activo outro almacenamento na nube."
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"O tema seleccionado non é compatible co idioma actual. Para empregar o tema, "
+"deberįs cambiar antes o idioma da interfaz."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr "Non é posible escribir no directorio elixido. Selecciona outro."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "Seleccionar directorio para temas de interfaz"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "Seleccionar directorio para ficheiros adicionais"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "Seleccionar directorio para complementos"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
msgid "Select directory for Files Manager /root/"
msgstr "Seleccionar directorio para /root/ de xestor de ficheiros"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"O tema seleccionado non é compatible co idioma actual. Para empregar o tema, "
-"deberįs cambiar antes o idioma da interfaz."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr "%llu bytes"
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr "<agora mesmo>"
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
msgid "<never>"
msgstr "<nunca>"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
msgid "Stop server"
msgstr "Deter servidor"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr "Deter servidor web local"
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1611,35 +1612,35 @@ msgstr "Continuar"
msgid "Clear value"
msgstr "Limpar valor"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "O motor non é compatible co nivel de depuración %s"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "Menś"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "Omitir"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "Pausa"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "Omitir lińa"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "Erro de execución do xogo:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr "Non se puido atopar un motor para executar o xogo seleccionado"
@@ -2013,11 +2014,11 @@ msgstr "FM-Towns Audio"
msgid "PC-98 Audio"
msgstr "PC-98 Audio"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "Iniciando emulador de MT-32"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "Emulador de MT-32"
@@ -2033,15 +2034,15 @@ msgstr "Emulador de IBM PCjr"
msgid "C64 Audio Emulator"
msgstr "Emulador de C64 Audio"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
msgid "Saved games sync complete."
msgstr "Sincronización de partidas gardadas completada."
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr "Cancelouse a sincronización de partidas gardadas."
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
@@ -2049,7 +2050,7 @@ msgstr ""
"Erro ao sincronizar as partidas gardadas.\n"
"Comproba a tśa conexión į Internet."
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
@@ -2058,11 +2059,11 @@ msgstr ""
"Descarga completada.\n"
"Erro ao descargar %u ficheiros."
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
msgid "Download complete."
msgstr "Descarga completada."
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
msgid "Download failed."
msgstr "Erro ao descargar."
@@ -2171,43 +2172,53 @@ msgstr "Arrastra tres dedos į dereita para cambiar o estado."
msgid "OpenGL"
msgstr "OpenGL"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "Normal (sen escala)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "Modo en ventį"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normal (sen escala)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "Corrección de proporción activada"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "Corrección de proporción desactivada"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
#, fuzzy
msgid "Filtering enabled"
msgstr "Premer activado"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
#, fuzzy
msgid "Filtering disabled"
msgstr "Premer desactivado"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "Normal (sen escala)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normal (sen escala)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "Filtro de grįficos activo:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "Modo en ventį"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "Asignación de teclas:"
@@ -3128,6 +3139,39 @@ msgstr "Menś ~p~rincipal"
msgid "~W~ater Effect Enabled"
msgstr "Efecto de ~a~uga activado"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+
#: engines/mohawk/mohawk.cpp:61
msgid "The game is paused. Press any key to continue."
msgstr "Xogo en pausa. Pulsa calquera tecla para continuar."
@@ -4262,6 +4306,9 @@ msgid "Use MPEG video from the DVD version, instead of lower resolution AVI"
msgstr ""
"Emprega o vķdeo MPEG da versión en DVD, no canto da AVI de baixa resolución."
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr "Debes reiniciar ScummVM para que os cambios teńan efecto."
+
#~ msgid "OpenGL (No filtering)"
#~ msgstr "OpenGL (Sen filtraxe)"
diff --git a/po/hu_HU.po b/po/hu_HU.po
index b96bb22470..59774fb7fa 100644..100755
--- a/po/hu_HU.po
+++ b/po/hu_HU.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.3.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
-"PO-Revision-Date: 2016-10-17 07:44+0200\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
+"PO-Revision-Date: 2016-11-06 07:24+0200\n"
"Last-Translator: George Kormendi <grubycza@hotmail.com>\n"
"Language-Team: Hungarian\n"
"Language: Magyar\n"
@@ -17,6 +17,7 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Virtaal 0.7.1\n"
"X-Poedit-SourceCharset: iso-8859-1\n"
+"X-Language-name: Magyar\n"
#: gui/about.cpp:94
#, c-format
@@ -56,7 +57,7 @@ msgstr "Feljebb"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -80,7 +81,7 @@ msgstr "Vįlaszt"
msgid "Select directory where to download game data"
msgstr "Vįlassz mappįt, ahonnan letölthetõk a jįték adatok"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "Jįtékok helyének kivįlasztįsa"
@@ -115,7 +116,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -127,7 +128,7 @@ msgstr "Igen"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -137,7 +138,7 @@ msgstr "Igen"
msgid "No"
msgstr "Nem"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM nem tudja megnyitni a vįlasztott mappįt!"
@@ -150,8 +151,8 @@ msgstr ""
"ugyanazzal a névvel."
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -234,8 +235,8 @@ msgid ""
msgstr ""
"A jįték nyelve. Ne įllķtsd įt a pl. Spanyol nyelvū jįtékodat Angol nyelvre"
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<alapértelmezett>"
@@ -258,11 +259,11 @@ msgstr "Platform:"
msgid "Engine"
msgstr "Motor"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "Grafika"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "GFX"
@@ -275,7 +276,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "Globįlis grafikai beįllķtįsok felülbķrįlįsa"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "Audió"
@@ -288,11 +289,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "Globįlis audió beįllķtįsok felülbķrįlįsa"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "Hangerõ"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "Hangerõ"
@@ -306,7 +307,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "Globįlis hangerõbeįllķtįsok felülbķrįlįsa"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -319,7 +320,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "Globįlis MIDI beįllķtįsok felülbķrįlįsa"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -332,11 +333,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "Globįlis MT-32 beįllķtįsok felülbķrįlįsa"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "Mappįk"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "Mappįk"
@@ -350,7 +351,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "Jįték Mappa:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "Extra Mappa:"
@@ -359,56 +360,56 @@ msgstr "Extra Mappa:"
msgid "Specifies path to additional data used by the game"
msgstr "Mappa kivįlasztįs a jįtékok kiegészķtõ fįjljaihoz"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "Extra Mappa:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "Mentés Mappa:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "Jįtékmentések helyének meghatįrozįsa"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "Mentés Mappa:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "Nincs"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "Alapértelmezett"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "SoundFont kivįlasztįs"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "Vįlassz mappįt a jįték kiegészķtõkhöz"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "Vįlaszz jįtékmentéseknek mappįt"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
@@ -416,7 +417,7 @@ msgstr ""
"Mentés szinkronizįlįs nem mūködik nem alapértelmezett mappįkkal. Ha "
"szinkronizįlni akarod a mentéseid, hasznįld az alapértelmezett mappįt."
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "Ez a jįtékazonosķtó ID mįr foglalt, Vįlassz egy mįsikat."
@@ -496,7 +497,7 @@ msgstr "Szķnusz"
msgid "Triangle"
msgstr "Hįromszög"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "Vegyes"
@@ -545,15 +546,15 @@ msgstr "Bezįr"
msgid "Mouse click"
msgstr "Egérkattintįs"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "Billentyūzet beįllķtįsok"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "Billentyūk įtįllķtįsa"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "Teljesképernyõ kapcsoló"
@@ -587,110 +588,110 @@ msgstr "Nyomj egy billentyūt a tįrsķtįshoz"
msgid "Choose an action to map"
msgstr "Vįlassz mūveletet a kiosztįshoz"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "Kilépés"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "ScummVM bezįrįsa"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "Névjegy"
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "ScummVM névjegy"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~O~pciók..."
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "Globįlis ScummVM opciók cseréje"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "Indķtįs"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "A vįlasztott jįték indķtįsa"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~B~etölt..."
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "Kimentett jįtékįllįs betöltése"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "Jįték hozzįadįs"
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr "Tratsd lenyomva a Shift-et a Masszķv módhoz"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "Jįtékopciók"
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "Jįték beįllķtįsok megvįltoztatįsa"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "Jįték törlése"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr "Törli a jįték nevét a listįról. A jįtékfįjlok megmaradnak"
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "Jįték hozzįadįs"
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "Jįtékopciók"
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "Jįték törlése"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "Keresés a jįtéklistįban"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "Keresés:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "Jįték betöltése:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "Betöltés"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -698,40 +699,40 @@ msgstr ""
"Biztos hogy futtatod a Masszķv jįtékdetektort? Ez potenciįlisan sok jįtékot "
"hozzįad a listįhoz."
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr "Ez a mappa nem hasznįlható még, éppen letöltés van folyamatban!"
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "Biztosan törölni akarod ezt a jįtékkonfigurįciót?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr "Akarod hogy betöltésem a jįtékįllįst?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr "Ez a jįték nem tįmogatja a jįtékįllįs betöltést az indķtóból."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr ""
"ScummVM nem talįlt olyan jįtékmotort ami a vįlasztott jįtékot tįmogatja!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "A ScummVM nem talįlt egy jįtékot sem a vįlasztott mappįban!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "Vįlassztott jįték:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "Masszķv mód..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr "Felvétel..."
@@ -774,205 +775,205 @@ msgstr "Įtvįlt jįtékra"
msgid "Fast replay"
msgstr "Gyors visszajįtszįs"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "Soha"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "5 percenként"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "10 percenként"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "15 percenként"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "30 percenként"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "Nincs"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "Néhįny grafikus opció vįltoztatįsa sikertelen:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "a videómód nem vįltozott."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "a képméretarįny beįllķtįsok nem vįltoztak"
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "a teljesképernyõs beįllķtįs nem vįltozott"
-#: gui/options.cpp:462
+#: gui/options.cpp:486
msgid "the filtering setting could not be changed"
msgstr "a szūrési beįllķtįst nem lehet megvįltoztatni"
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "Grafikus mód:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "Kirajzolįs mód:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "Néhįny jįték tįmogatja a speciįlis įrnyalįsi módokat"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "Teljesképernyõs mód:"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Filter graphics"
msgstr "Grafika szūrése"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr "Lineįris szūrés hasznįlata a grafika įtméretezésénél"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "Képméretarįny korrekció"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "Helyes oldalarįny a 320x200 jįtékokhoz"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "Elsõdleges eszköz:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "Zene eszköz:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr "Elsõdleges hangeszköz vagy hang emulįtor beįllķtįsok"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr "Hangeszköz vagy hangkįrtya emulįtor beįllķtįsok"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "Elsõdleges eszk.:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "Zene eszköz:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "AdLib emulįtor:"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "AdLib meghajtót sok jįték hasznįlja zenéhez"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "Kimeneti rįta:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
msgstr ""
"Nagyobb értékek jobb hangminõséget adnak, de nem minden hangkįrtya tįmogatja"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "GM Eszköz:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr "Alapértelmezett hangeszköz General MIDI kimenethez"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "Ne hasznįlj General MIDI zenét"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "Elsõ elérhetõ eszköz hasznįlata"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr ""
"Néhįny hangkįrya, FluidSynth és Timidyti tįmogatja a SoundFont betöltését"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "Vegyes AdLib/MIDI mód"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "MIDI és AdLib hanggenerįtorok hasznįlata"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "MIDI erõsķtés:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "MT-32 Eszköz:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr "Roland MT-32/LAPC1/CM32l/CM64 alapértelmezett hangeszközök beįllķtįsa"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "Roland MT-32 Hardver (GM emulįció tiltva)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -980,16 +981,16 @@ msgstr ""
"Jelöld be, ha hardveres Roland-Kompatibilis hangeszköz van csatlakoztatva a "
"gépedhez és hasznįlni akarod"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "Roland MT-32 Hardver (GM emulįció nincs)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "Roland GS eszköz (MT-32 mapping engedélyezés)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
@@ -997,264 +998,264 @@ msgstr ""
"Ellenõrzés ha engedélyezni akarod az emulįlt MT-32 Folt leképezést a Roland "
"GS eszközön"
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "Ne hasznįlj Roland MT-32 zenét"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "Szöveg és beszéd:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "Csak beszéd"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "Csak felirat"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "Mind"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "Felirat sebesség:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "Felirat és beszéd:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "Besz"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "Text"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "Mind"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "Hang és feliratok megjelenķtése"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "Felirat sebesség:"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "Zene hangerõ:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "Zene hangerõ:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "Összes némķtįsa"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "SFX hangerõ:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "Speciįlis hangeffektusok hangereje"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "SFX hangerõ:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "Beszéd hangerõ:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "Beszéd hangerõ:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "FluidSynth Beįllķtįsa"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "Téma Mappa:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "Téma Mappa:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr "Minden jéték és ScummVM kiegészķtõ fįjljainak mappįja:"
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "Plugin Mappa:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "Plugin Mappa:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "Vegyes"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "Téma:"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "GUI Renderelõ:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "Automentés:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "Automentés:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "Billentyūk"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "GUI nyelve:"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "A ScummVM GUI nyelve"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr "Frissķtés ellenõrzés:"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr "Milyen gyakran ellenõrizze a ScummVM frissķtéseket"
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr "Ellenõrzés most"
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr "Felhõ"
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr "Felhõ"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr "Tįroló:"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr "Aktķv felhõ tįroló"
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr "<nincs>"
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "Felhasznįló:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr "Felhasznįlónév ehhez a tįrolóhoz"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr "Hasznįlt hely:"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr "ScummVM mentésekhez hasznįlt hely ezen a tįrolón"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr "Utolsó szinkron:"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr "Amikor az utolsó mentés szinkronizįlįs történt ezen a tįrolón"
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr "Csatlakozįs"
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr "Csatlakozįs varįzsló pįrbeszédablak megnyitįsa a felhõtįroló fiókodhoz"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr "Frissķtés"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr ""
"Jelenlegi felhõtįroló informįciók frissķtése (felhasznįlónév és hasznįlat)"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Download"
msgstr "Letöltés"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr "Letöltéskezelõ pįrbeszédablak megnyitįsa"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr "Szerver futtatįs"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr "Helyi webszerver futtatįsa"
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
msgid "Not running"
msgstr "Nem fut"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
msgid "/root/ Path:"
msgstr "/gyökér/ Śtvonal:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
msgid "Specifies which directory the Files Manager can access"
msgstr "Meghatįrozza, hogy melyik könyvtįrhoz férhet hozzį a Fįjlkezelõ"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "/gyökér/ Śtvonal:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid "Server's port:"
msgstr "Szerver portja:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
@@ -1262,68 +1263,68 @@ msgstr ""
"Melyik portot hasznįlja a szerver\n"
"Szerver engedély nem elérhetõ nem alapértelmezett porttal"
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Indķtsd śjra a ScummVM-et a vįltozįsok érvényesķtéséhez."
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr "Alkalmaz"
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
msgid "Failed to change cloud storage!"
msgstr "Felhõtįroló csere nem sikerült!"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr "Egy mįsik felhõtįroló mįr aktķv."
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"A kivįlasztott téma nem tįmogatja a nyelvedet. Ha hasznįlni akarod ezt a "
+"témįt, elõszõr vįlts įt egy mįsik nyelvre."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr "A kivįlasztott mappįba nem lehet ķrni, vįlassz egy mįsikat"
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "GUI téma mappa kivįlasztįsa"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "Mappa vįlasztįs az extra fįjloknak"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "Plugin mappa kivįlasztįsa"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
msgid "Select directory for Files Manager /root/"
msgstr "Vįlassz mappįt a Fįjlkezelõnek /gyökér/"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"A kivįlasztott téma nem tįmogatja a nyelvedet. Ha hasznįlni akarod ezt a "
-"témįt, elõszõr vįlts įt egy mįsik nyelvre."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr "%llu byte"
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr "<épp most>"
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
msgid "<never>"
msgstr "<soha>"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
msgid "Stop server"
msgstr "Szerver leįllķtįs"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr "Helyi webszerver leįllķtįsa"
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1599,35 +1600,35 @@ msgstr "Folyamatban"
msgid "Clear value"
msgstr "Érték törlése"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "A motor nem tįmogatja a '%s' debug szintet"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "Menü"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "Tovįbb"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "Szünet"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "Sor įtlépése"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "Hiba a jįték futtatįsakor:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr "Nem talįlható olyan jįtékmotor ami a vįlasztott jįtékot tįmogatja"
@@ -1997,11 +1998,11 @@ msgstr "FM-Towns Hang"
msgid "PC-98 Audio"
msgstr "PC-98 Hang"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "MT-32 Emulįtor inicializįlįsa"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "MT-32 Emulįtor"
@@ -2017,15 +2018,15 @@ msgstr "IBM PCjr Emulįtor"
msgid "C64 Audio Emulator"
msgstr "C64 Audio Emulįtor"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
msgid "Saved games sync complete."
msgstr "Mentés szinkronizįlįs kész."
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr "Mentés szinkronizįlįs megszakķtva."
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
@@ -2033,7 +2034,7 @@ msgstr ""
"Mentés szinkronizįlįs nem sikerült.\n"
"Ellenõrizd az internetkapcsolatot."
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
@@ -2042,11 +2043,11 @@ msgstr ""
"Letöltés befejezõdött.\n"
"%u fįjlt nem sikerült letölteni."
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
msgid "Download complete."
msgstr "Letöltés befejezõdött."
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
msgid "Download failed."
msgstr "Letöltés nem sikerült."
@@ -2155,41 +2156,51 @@ msgstr "Üsd hįrom śjjal hogy biztosan vįltson."
msgid "OpenGL"
msgstr "OpenGL"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "Normįl (nincs įtméretezés)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "Ablakos mód"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normįl (nincs įtméretezés)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr "Felbontįs: %dx%d"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "Méretarįny korrekció engedélyezve"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "Méretarįny korrekció letiltva"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
msgid "Filtering enabled"
msgstr "Szūrés engedélyezve"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
msgid "Filtering disabled"
msgstr "Szūrés letiltva"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "Normįl (nincs įtméretezés)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normįl (nincs įtméretezés)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "Aktķv grafikus szūrõk:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "Ablakos mód"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "Billentyūzet kiosztįs:"
@@ -3105,6 +3116,51 @@ msgstr "Fõ Menü ~u~"
msgid "~W~ater Effect Enabled"
msgstr "Vķzeffektus engedélyezve"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+"Hiįnyzik a Riven futtatható įllomįny. A Windows fįjlok neve 'riven.exe' vagy "
+"'rivendmo.exe'."
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+"Az 'arcriven.z' telepķtõ fįjl is hasznįlható. Ezen felül hasznįlható még a "
+"'Riven' Mac indķtófįjl."
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+"Hiįnyzik az 'extras.mhk'. A telepķtõ 'arcriven.z' fįjlja is hasznįlható még."
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+"Kutatįs ezen a ponton tśl csak a jįték teljes verziójįval\n"
+"elérhetõ."
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+"Ezen a ponton, a Riven Demo megkérdezi\n"
+"hogy a web böngészõddel nyissa-e meg\n"
+"a Red Orb įruhįzįt, hogy megvįsįrold\n"
+"a jįtékot. A ScummVM nem teszi ezt\n"
+"az oldal többé nem elérhetõ."
+
#: engines/mohawk/mohawk.cpp:61
msgid "The game is paused. Press any key to continue."
msgstr "A jįték szünetel. Nyomj egy gombot a folytatįshoz."
@@ -4230,6 +4286,9 @@ msgstr "Nagyfelbontįsś MPEG videó hasznįlat"
msgid "Use MPEG video from the DVD version, instead of lower resolution AVI"
msgstr "MPEG videót hasznįl DVD verziónįl, a kisebb felbontįsś AVI helyett"
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr "Indķtsd śjra a ScummVM-et a vįltozįsok érvényesķtéséhez."
+
#~ msgid "OpenGL (No filtering)"
#~ msgstr "OpenGL (Nincs szūrés)"
diff --git a/po/it_IT.po b/po/it_IT.po
index 98e7858757..77448a0132 100644
--- a/po/it_IT.po
+++ b/po/it_IT.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.3.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
"PO-Revision-Date: 2014-07-03 17:59-0600\n"
"Last-Translator: Matteo 'Maff' Angelino <matteo.maff at gmail dot com>\n"
"Language-Team: Italian\n"
@@ -15,6 +15,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Language-name: Italiano\n"
#: gui/about.cpp:94
#, c-format
@@ -54,7 +55,7 @@ msgstr "Su"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -79,7 +80,7 @@ msgstr "Scegli"
msgid "Select directory where to download game data"
msgstr "Seleziona la cartella contenente i file di gioco"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "Seleziona la cartella contenente i file di gioco"
@@ -112,7 +113,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -124,7 +125,7 @@ msgstr "Sģ"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -134,7 +135,7 @@ msgstr "Sģ"
msgid "No"
msgstr "No"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM non ha potuto aprire la cartella specificata!"
@@ -145,8 +146,8 @@ msgid ""
msgstr ""
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -228,8 +229,8 @@ msgid ""
msgstr ""
"Lingua del gioco. Un gioco inglese non potrą risultare tradotto in italiano"
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<predefinito>"
@@ -252,11 +253,11 @@ msgstr "Piattaf.:"
msgid "Engine"
msgstr "Motore"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "Grafica"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "Grafica"
@@ -269,7 +270,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "Ignora le impostazioni grafiche globali"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "Audio"
@@ -282,11 +283,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "Ignora le impostazioni audio globali"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "Volume"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "Volume"
@@ -300,7 +301,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "Ignora le impostazioni globali di volume"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -313,7 +314,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "Ignora le impostazioni MIDI globali"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -326,11 +327,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "Ignora le impostazioni MT-32 globali"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "Percorsi"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "Perc."
@@ -344,7 +345,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "Perc. gioco:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "Percorso extra:"
@@ -353,62 +354,62 @@ msgstr "Percorso extra:"
msgid "Specifies path to additional data used by the game"
msgstr "Specifica il percorso di ulteriori dati usati dal gioco"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "Perc. extra:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "Salvataggi:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "Specifica dove archiviare i salvataggi"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "Salvataggi:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "Nessuno"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "Predefinito"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "Seleziona SoundFont"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "Seleziona la cartella di gioco aggiuntiva"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "Seleziona la cartella dei salvataggi"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
msgstr ""
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "Questo ID di gioco č gią in uso. Si prega di sceglierne un'altro."
@@ -489,7 +490,7 @@ msgstr "Seno"
msgid "Triangle"
msgstr "Triangolo"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "Varie"
@@ -540,15 +541,15 @@ msgstr "Chiudi"
msgid "Mouse click"
msgstr "Clic del mouse"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "Mostra tastiera"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "Riprogramma tasti"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "Attiva / disattiva schermo intero"
@@ -582,110 +583,110 @@ msgstr "Premi il tasto da associare"
msgid "Choose an action to map"
msgstr "Scegli un'azione da mappare"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "C~h~iudi"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "Esci da ScummVM"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "~I~nfo..."
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "Informazioni su ScummVM"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~O~pzioni..."
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "Modifica le opzioni globali di ScummVM"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "~G~ioca"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "Esegue il gioco selezionato"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~C~arica..."
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "Carica un salvataggio del gioco selezionato"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "~A~ggiungi gioco..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr "Tieni premuto Shift per l'aggiunta in massa"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "~M~odifica gioco..."
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "Modifica le opzioni di gioco"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "~R~imuovi gioco"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr "Rimuove il gioco dalla lista. I file del gioco rimarranno intatti"
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "~A~gg. gioco..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "~M~odif. gioco..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "~R~im. gioco"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "Cerca nella lista dei giochi"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "Cerca:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "Carica gioco:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "Carica"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -693,43 +694,43 @@ msgstr ""
"Vuoi davvero eseguire il rilevatore di giochi in massa? Potrebbe aggiungere "
"un numero enorme di giochi."
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr ""
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "Sei sicuro di voler rimuovere questa configurazione di gioco?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr "Vuoi caricare il salvataggio?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr ""
"Questo gioco non supporta il caricamento di salvataggi dalla schermata di "
"avvio."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr ""
"ScummVM non ha potuto trovare un motore in grado di eseguire il gioco "
"selezionato!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM non ha potuto trovare nessun gioco nella cartella specificata!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "Scegli il gioco:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "Agg. in massa..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr ""
@@ -774,148 +775,148 @@ msgstr "Sposta"
msgid "Fast replay"
msgstr "Modalitą veloce"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "Mai"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "ogni 5 minuti"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "ogni 10 minuti"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "ogni 15 minuti"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "ogni 30 minuti"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "Nessuno"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "Impossibile applicare alcuni dei cambiamenti nelle opzioni grafiche."
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "impossibile modificare la modalitą video."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "impossibile modificare l'impostazione proporzioni"
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "impossibile modificare l'impostazione schermo intero"
-#: gui/options.cpp:462
+#: gui/options.cpp:486
#, fuzzy
msgid "the filtering setting could not be changed"
msgstr "impossibile modificare l'impostazione schermo intero"
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "Modalitą:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "Resa grafica:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "Modalitą di resa grafica speciali supportate da alcuni giochi"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "Modalitą a schermo intero"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
#, fuzzy
msgid "Filter graphics"
msgstr "Grafica"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr ""
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "Correzione proporzioni"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "Corregge le proporzioni dei giochi 320x200"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "Disp. preferito:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "Dispositivo audio:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr ""
"Specifica il dispositivo audio o l'emulatore della scheda audio preferiti"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr ""
"Specifica il dispositivo di output audio o l'emulatore della scheda audio"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "Disp. preferito:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "Disposit. audio:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "Emulatore AdLib:"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "AdLib č utilizzato per la musica in molti giochi"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "Frequenza:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -923,62 +924,62 @@ msgstr ""
"Valori pił alti restituiscono un suono di maggior qualitą, ma potrebbero non "
"essere supportati dalla tua scheda audio"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "Dispositivo GM:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr "Specifica il dispositivo audio predefinito per l'output General MIDI"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "Non utilizzare la musica General MIDI"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "Utilizza il primo dispositivo disponibile"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr "SoundFont č supportato da alcune schede audio, FluidSynth e Timidity"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "Modalitą mista AdLib/MIDI"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "Utilizza generazione di suono sia MIDI che AdLib"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "Guadagno MIDI:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "Disposit. MT-32:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr ""
"Specifica il dispositivo audio predefinito per l'output Roland MT-32/LAPC1/"
"CM32l/CM64"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "Roland MT-32 effettivo (disattiva emulazione GM)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -986,16 +987,16 @@ msgstr ""
"Seleziona se vuoi usare il dispositivo hardware audio compatibile con Roland "
"che č connesso al tuo computer"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "Roland MT-32 effettivo (disat.emul.GM)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "Dispositivo Roland GS (attiva mappature MT-32)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
@@ -1003,340 +1004,340 @@ msgstr ""
"Seleziona se vuoi attivare le mappature per emulare un MT-32 su un "
"dispositivo Roland GS"
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "Non utilizzare la musica Roland MT-32"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "Testo e voci:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "Voci"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "Sottotitoli"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "Entrambi"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "Velocitą testo:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "Testo e voci:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "Voci"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "Sub"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "Entr."
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "Mostra i sottotitoli e attiva le voci"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "Velocitą testo:"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "Volume musica:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "Volume musica:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "Disattiva audio"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "Volume effetti:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "Volume degli effetti sonori"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "Volume effetti:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "Volume voci:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "Volume voci:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "Impostazioni FluidSynth"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "Percorso tema:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "Perc. tema:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr "Specifica il percorso di ulteriori dati usati dai giochi o da ScummVM"
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "Percorso plugin:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "Perc. plugin:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "Varie"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "Tema:"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "Renderer GUI:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "Autosalva:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "Autosalva:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "Tasti"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "Lingua GUI:"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "Lingua dell'interfaccia grafica di ScummVM"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr ""
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr ""
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr ""
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr ""
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr ""
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "Nome utente:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr ""
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr ""
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr ""
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
#, fuzzy
msgid "Download"
msgstr "Gił"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr ""
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
#, fuzzy
msgid "Not running"
msgstr "Errore nell'esecuzione del gioco:"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
#, fuzzy
msgid "/root/ Path:"
msgstr "Percorso extra:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
#, fuzzy
msgid "Specifies which directory the Files Manager can access"
msgstr "Specifica dove archiviare i salvataggi"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
#, fuzzy
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "Percorso extra:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
#, fuzzy
msgid "Server's port:"
msgstr "Server:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
msgstr ""
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Devi riavviare ScummVM affinché le modifiche abbiano effetto."
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr ""
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
#, fuzzy
msgid "Failed to change cloud storage!"
msgstr "Impossibile salvare il gioco"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr ""
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Il tema che hai selezionato non supporta la lingua attuale. Se vuoi "
+"utilizzare questo tema devi prima cambiare la lingua."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr "La cartella scelta č in sola lettura. Si prega di sceglierne un'altra."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "Seleziona la cartella dei temi dell'interfaccia"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "Seleziona la cartella dei file aggiuntivi"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "Seleziona la cartella dei plugin"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
#, fuzzy
msgid "Select directory for Files Manager /root/"
msgstr "Seleziona la cartella dei file aggiuntivi"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Il tema che hai selezionato non supporta la lingua attuale. Se vuoi "
-"utilizzare questo tema devi prima cambiare la lingua."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr ""
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr ""
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
#, fuzzy
msgid "<never>"
msgstr "Mai"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
#, fuzzy
msgid "Stop server"
msgstr "Server:"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr ""
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1612,35 +1613,35 @@ msgstr ""
msgid "Clear value"
msgstr "Cancella"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "Il motore non supporta il livello di debug '%s'"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "Menu"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "Salta"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "Pausa"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "Salta battuta"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "Errore nell'esecuzione del gioco:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr ""
"Impossibile trovare un motore in grado di eseguire il gioco selezionato"
@@ -2020,11 +2021,11 @@ msgstr "Emulatore FM Towns"
msgid "PC-98 Audio"
msgstr "Audio"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "Avvio in corso dell'emulatore MT-32"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "Emulatore MT-32"
@@ -2040,34 +2041,34 @@ msgstr "Emulatore IBM PCjr"
msgid "C64 Audio Emulator"
msgstr "Emulatore audio C64"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
#, fuzzy
msgid "Saved games sync complete."
msgstr "Scansione completa!"
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr ""
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
msgstr ""
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
"Failed to download %u files."
msgstr ""
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
#, fuzzy
msgid "Download complete."
msgstr "Scansione completa!"
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
#, fuzzy
msgid "Download failed."
msgstr "Carica gioco:"
@@ -2178,43 +2179,53 @@ msgstr ""
msgid "OpenGL"
msgstr "OpenGL"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "Normale (nessun ridimensionamento)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "Modalitą finestra"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normale (no ridim.)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "Correzione proporzioni attivata"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "Correzione proporzioni disattivata"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
#, fuzzy
msgid "Filtering enabled"
msgstr "Clic attivato"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
#, fuzzy
msgid "Filtering disabled"
msgstr "Clic disattivato"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "Normale (nessun ridimensionamento)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normale (no ridim.)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "Filtro grafico attivo:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "Modalitą finestra"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "Mappa tasti:"
@@ -3125,6 +3136,39 @@ msgstr "~M~enu principale"
msgid "~W~ater Effect Enabled"
msgstr "~E~ffetto acqua attivo"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+
#: engines/mohawk/mohawk.cpp:61
#, fuzzy
msgid "The game is paused. Press any key to continue."
@@ -4268,6 +4312,9 @@ msgid "Use MPEG video from the DVD version, instead of lower resolution AVI"
msgstr ""
"Usa il set alternativo di cursori d'argento al posto di quelli normali d'oro"
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr "Devi riavviare ScummVM affinché le modifiche abbiano effetto."
+
#~ msgid "OpenGL (No filtering)"
#~ msgstr "OpenGL (senza filtri)"
diff --git a/po/nb_NO.po b/po/nb_NO.po
index 666b5ce7fe..7ebc23eb00 100644
--- a/po/nb_NO.po
+++ b/po/nb_NO.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.3.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
"PO-Revision-Date: 2016-10-05 23:47+0200\n"
"Last-Translator: Einar Johan Trųan Sųmåen <einarjohants@gmail.com>\n"
"Language-Team: somaen <einarjohants@gmail.com>\n"
@@ -18,6 +18,7 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SourceCharset: iso-8859-1\n"
"X-Generator: Poedit 1.8.9\n"
+"X-Language-name: Norsk (bokmaal)\n"
#: gui/about.cpp:94
#, c-format
@@ -57,7 +58,7 @@ msgstr "Oppover"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -81,7 +82,7 @@ msgstr "Velg"
msgid "Select directory where to download game data"
msgstr "Velg mappe for nedlasting av spilldata"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "Velg mappe med spilldata"
@@ -116,7 +117,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -128,7 +129,7 @@ msgstr "Ja"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -138,7 +139,7 @@ msgstr "Ja"
msgid "No"
msgstr "Nei"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM kunne ikke åpne den valgte mappa!"
@@ -151,8 +152,8 @@ msgstr ""
"samme navn."
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -237,8 +238,8 @@ msgstr ""
"Spillets språk. Dette vil ikke gjųre din spanske spillversjon om til engelsk "
"versjon"
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<standard>"
@@ -261,11 +262,11 @@ msgstr "Plattform:"
msgid "Engine"
msgstr "Motor"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "Grafikk"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "GFX"
@@ -278,7 +279,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "Overstyr globale grafikkinstillinger"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "Lyd"
@@ -291,11 +292,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "Overstyr globale lydinstillinger"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "Volum"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "Volum"
@@ -309,7 +310,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "Overstyr globale voluminstillinger"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -322,7 +323,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "Overstyr globale MIDI-instillinger"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -335,11 +336,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "Overstyr globale MT-32-instillinger"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "Sti"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "Sti"
@@ -353,7 +354,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "Spillsti:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "Ekstrasti:"
@@ -362,56 +363,56 @@ msgstr "Ekstrasti:"
msgid "Specifies path to additional data used by the game"
msgstr "Bestemmer sti til ytterligere data brukt av spillet"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "Ekstrasti:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "Lagringssti:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "Bestemmer sti til lagrede spill"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "Lagringssti:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "Ingen"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "Standard"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "Velg SoundFont"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "Velg mappe med ytterligere data"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "Velg mappe for lagrede spill"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
@@ -419,7 +420,7 @@ msgstr ""
"Syncing av lagrede spill fungerer ikke med ikke-standard mapper. Hvis du vil "
"at de lagrede spillene dine skal synce må du bruke standardmapper."
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "Denne spill-IDen er allerede i bruk. Vennligst velg en annen."
@@ -499,7 +500,7 @@ msgstr "Sinus"
msgid "Triangle"
msgstr "Trekant"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "Diverse"
@@ -548,15 +549,15 @@ msgstr "Lukk"
msgid "Mouse click"
msgstr "Musklikk"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "Vis tastatur"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "Omkoble taster"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "Veksle fullskjerm"
@@ -590,110 +591,110 @@ msgstr "Trykk tasten som skal kobles"
msgid "Choose an action to map"
msgstr "Velg en handling for kobling"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~A~vslutt"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "Avslutt ScummVM"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "~O~m..."
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "Om ScummVM"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~V~alg..."
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "Endre globale ScummVM-innstillinger"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "~S~tart"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "Start valgt spill"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~Å~pne..."
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "Åpne lagret spill for det valgte spillet"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "~L~egg til spill..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr "Hold Shift for å legge til flere"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "~R~ediger spill..."
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "Endre spillinstillinger"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "~F~jern spill"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr "Fjern spill fra listen. Spilldataene forblir intakte"
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "~L~egg til spill..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "~R~ediger spill..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "~F~jern spill"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "Sųk i spilliste"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "Sųk:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "Åpne spill:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "Åpne"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -701,40 +702,40 @@ msgstr ""
"Vil du virkelig kjųre flerspill-finneren? Dette kan potensielt legge til et "
"stort antall spill."
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr "Denne mappa kan ikke brukes ennå, den blir lastet ned til!"
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "Vil du virkelig fjerne denne spillkonfigurasjonen?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr "Vil du laste et lagret spill?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr "Dette spillet stųtter ikke lasting av spill fra oppstarteren."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr ""
"ScummVM kunne ikke finne noen motor som kunne kjųre det valgte spillet!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM kunne ikke finne noe spill i den valgte mappen!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "Velg spill:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "Legg til flere..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr ""
@@ -779,146 +780,146 @@ msgstr "Bytt til Spill"
msgid "Fast replay"
msgstr "Rask replay"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "Aldri"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "hvert 5. min"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "hvert 10. min"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "hvert 15. min"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "hvert 30. min"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "Ingen"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "Klarte ikke å aktivere enkelte av endringene i grafikkinstillinger:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "videomodusen kunne ikke endres."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "aspektrate-innstillingen kunne ikke endres"
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "fullskjermsinnstillingen kunne ikke endres"
-#: gui/options.cpp:462
+#: gui/options.cpp:486
#, fuzzy
msgid "the filtering setting could not be changed"
msgstr "fullskjermsinnstillingen kunne ikke endres"
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "Grafikkmodus:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "Tegnemodus:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "Spesiel dithering-modus stųttet av enkelte spill"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "Fullskjermsmodus"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
#, fuzzy
msgid "Filter graphics"
msgstr "Bruk fargegrafikk"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr ""
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "Aspekt-rate korrigering"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "Korriger aspekt-rate for 320x200-spill"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "Foretrukket enhet:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "Musikkenhet:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr "Velger foretrukket lydenhet eller lydkort-emulator"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr "Velger ut-lydenhet eller lydkortemulator"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "Foretrukket enh.:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "Musikkenhet:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "AdLib-emulator:"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "AdLib brukes til musikk i mange spill"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "Utrate:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -926,60 +927,60 @@ msgstr ""
"Hųyere verdier gir bedre lydkvalitet, men stųttes kanskje ikke av ditt "
"lydkort "
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "GM-enhet:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr "Velger standard lydenhet for General MIDI-utdata"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "Ikke bruk General MIDI-musikk"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "Bruk fųrste tilgjengelige enhet"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr "SoundFont stųttes ikke av enkelte lydkort, FluidSynth og Timidity"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "Mikset AdLib/MIDI-modus"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "Bruk både MIDI- og AdLib- lydgenerering"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "MIDI gain:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "MT-32 Enhet:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr "Velger standard lydenhet for Roland MT-32/LAPC1/CM32I/CM64-avspilling"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "Ekte Roland MT-32 (deaktiver GM-emulering)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -987,16 +988,16 @@ msgstr ""
"Velg hvis du har et ekte Roland-kompatible lydkort tilkoblet maskinen, og "
"vil bruke dette."
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "Ekte Roland MT-32 (deaktiver GM-emulering)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "Roland GS Modus (aktiver MT32-mapping)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
@@ -1004,263 +1005,263 @@ msgstr ""
"Aktiver hvis du vil slå på patch mappinger for å emulere en MT-32 eller "
"Roland GS enhet"
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "Ikke bruk Roland MT-32-musikk"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "Tekst og Tale:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "Tale"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "Undertekster"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "Begge"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "Teksthastighet:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "Tekst og Tale:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "Tale"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "Tekst"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "Begge"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "Vis undertekster, og spill av tale"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "Underteksthastighet:"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "Musikkvolum:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "Musikkvolum:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "Demp alle"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "Lydeffektvolum:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "Volum for spesielle lydeffekter"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "Lydeffektvolum:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "Talevolum:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "Talevolum:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "FluidSynth-instillinger"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "Temasti:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "Temasti:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr "Velger sti for ytterligere data brukt av alle spill eller ScummVM"
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "Pluginsti:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "Pluginsti:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "Div"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "Tema:"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "GUI-tegner:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "Autolagre:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "Autolagre:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "Taster"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "GUI-språk:"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "Språk i ScummVM-GUIet"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr "Oppdateringssjekk:"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr "Hvor ofte det skal sjekkes for ScummVM-oppdateringer"
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr "Sjekk nå"
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr "Sky"
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr "Sky"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr "Lagring:"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr "Aktiv skylagring"
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr "<ingen>"
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "Brukernavn:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr "Brukernavn for denne lagringsmåten"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr "Brukt plass:"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr "Plass brukt av ScummVM's lagrede spill på denne lagringsmåten"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr "Forrige synctidspunkt"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr "Når forrige sync av lagrede spill til denne lagringsmåten skjedde."
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr "Koble til"
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr "Åpne veiviserdialog for å koble til skylagringen din"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr "Oppfrisk"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr "Oppfrisk gjeldende skylagringsinformasjon (brukernavn og bruk)"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Download"
msgstr "Last ned"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr "Åpne nedlastingsbehandlerdialog"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr "Kjųr server"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr "Kjųr lokal webserver"
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
msgid "Not running"
msgstr "Kjųrer ikke"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
msgid "/root/ Path:"
msgstr "/root/ Sti:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
msgid "Specifies which directory the Files Manager can access"
msgstr "Angi mappe som filbehandleren skal ha tilgang til"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "/root/ Sti:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid "Server's port:"
msgstr "Serverport:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
@@ -1268,68 +1269,68 @@ msgstr ""
"Hvilken port som brukes av serveren\n"
"Autentisering med server stųttes ikke med ikke-standard port"
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Du må starte ScummVM på nytt for at endringene skal tre i kraft. "
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr ""
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
msgid "Failed to change cloud storage!"
msgstr "Klarte ikke å kontakte skylagring!"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr "En annen skylagring er allerede aktiv"
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Temaet du valgte stųtter ikke det aktive språket. Hvis du vil bruke dette "
+"temaet, må du bytte til et annet språk fųrst."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr "Den valgte mappen kan ikke skrives til. Vennligst velg en annen."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "Velg mappe for GUI-temaer"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "Velg mappe for ytterligere filer"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "Velg mappe for plugins"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
msgid "Select directory for Files Manager /root/"
msgstr "Velg mappe for filbehandler /root/"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Temaet du valgte stųtter ikke det aktive språket. Hvis du vil bruke dette "
-"temaet, må du bytte til et annet språk fųrst."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr "%llu bytes"
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr "<med en gang>"
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
msgid "<never>"
msgstr "<aldri>"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
msgid "Stop server"
msgstr "Stopp server"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr "Stopp lokal webserver"
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1605,35 +1606,35 @@ msgstr "Fortsett"
msgid "Clear value"
msgstr "Tųm verdi"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "Motoren stųtter ikke debug-nivå '%s'"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "Meny"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "Hopp over"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "Pause"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "Hopp over linje"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "Problem ved kjųring av spill:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr "Kunne ikke finne noen motor som kunne kjųre det valgte spillet"
@@ -2008,11 +2009,11 @@ msgstr "FM Towns Lyd"
msgid "PC-98 Audio"
msgstr "PC-98 Lyd"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "Initialiserer MT-32-Emulator"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "MT-32 Emulator"
@@ -2028,15 +2029,15 @@ msgstr "IBM PCjr Emulator"
msgid "C64 Audio Emulator"
msgstr "C64 Lydemulator"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
msgid "Saved games sync complete."
msgstr "Sync av lagrede spill fullfųrt"
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr "Syncing av lagrede spill avbrutt."
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
@@ -2044,7 +2045,7 @@ msgstr ""
"Sync av lagrede spill feilet.\n"
"Sjekk internettilkoblingen din."
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
@@ -2053,11 +2054,11 @@ msgstr ""
"Nedlasting fullfųrt.\n"
"Klarte ikke laste ned %u filer."
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
msgid "Download complete."
msgstr "Nedlasting fullfųrt"
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
msgid "Download failed."
msgstr "Nedlasting feilet"
@@ -2166,43 +2167,53 @@ msgstr "Sveip tre fingre til hųyre for å veksle"
msgid "OpenGL"
msgstr "OpenGL"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "Normal (ingen skalering)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "Vindusmodus"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normal (ingen skalering)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "Aspekt-rate korrigering aktivert"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "Aspekt-rate korrigering deaktivert"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
#, fuzzy
msgid "Filtering enabled"
msgstr "Klikking aktivert"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
#, fuzzy
msgid "Filtering disabled"
msgstr "Klikking deaktivert"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "Normal (ingen skalering)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normal (ingen skalering)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "Aktivt grafikkfilter:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "Vindusmodus"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "Tastkobling:"
@@ -3119,6 +3130,39 @@ msgstr "Hoved~m~eny"
msgid "~W~ater Effect Enabled"
msgstr "~V~anneffekt aktivert"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+
#: engines/mohawk/mohawk.cpp:61
msgid "The game is paused. Press any key to continue."
msgstr "Spillet er satt på pause. Trykk en tast for å fortsette."
@@ -4242,6 +4286,9 @@ msgstr ""
"Bruk MPEG-video fra DVD-versjonen istedenfor AVI-versjonen med lavere "
"opplųsning"
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr "Du må starte ScummVM på nytt for at endringene skal tre i kraft. "
+
#~ msgid "OpenGL (No filtering)"
#~ msgstr "OpenGL (Ingen filtrering)"
diff --git a/po/nl_NL.po b/po/nl_NL.po
index 4241e8fab1..2d46550c5b 100644
--- a/po/nl_NL.po
+++ b/po/nl_NL.po
@@ -7,17 +7,18 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.9.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
-"PO-Revision-Date: 2016-10-09 21:57+0100\n"
-"Last-Translator: Willem Jan Palenstijn <wjp@usecode.org>\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
+"PO-Revision-Date: 2016-10-26 16:06+0200\n"
+"Last-Translator: Ben Castricum <scummvm@bencastricum.nl>\n"
"Language-Team: Ben Castricum <scummvm@bencastricum.nl>\n"
"Language: Nederlands\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.5.5\n"
+"X-Generator: Poedit 1.8.11\n"
"X-Poedit-SourceCharset: iso-8859-1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Language-name: Nederlands\n"
#: gui/about.cpp:94
#, c-format
@@ -57,7 +58,7 @@ msgstr "Ga omhoog"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -81,7 +82,7 @@ msgstr "Selecteer"
msgid "Select directory where to download game data"
msgstr "Selecteer map voor de te downloaden speldata"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "Selecteer map met speldata"
@@ -114,7 +115,7 @@ msgstr "Uw verbinding lijkt beperkt. Wilt u echt bestanden ermee downloaden?"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -126,7 +127,7 @@ msgstr "Ja"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -136,7 +137,7 @@ msgstr "Ja"
msgid "No"
msgstr "Nee"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM kon de opgegeven map niet openen!"
@@ -149,8 +150,8 @@ msgstr ""
"met dezelfde naam."
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -235,8 +236,8 @@ msgstr ""
"De taal van het spel. Dit verandert een Engels spel niet naar een "
"Nederlandse."
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<standaard>"
@@ -259,11 +260,11 @@ msgstr "Platform:"
msgid "Engine"
msgstr "Engine"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "Beeld"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "GFX"
@@ -276,7 +277,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "Negeer algemene grafische instellingen"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "Geluid"
@@ -289,11 +290,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "Negeer algemene audio instellingen"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "Volume"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "Volume"
@@ -307,7 +308,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "Negeer algemene volume instellingen"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -320,7 +321,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "Negeer algemene MIDI instellingen"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -333,11 +334,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "Negeer algemene MT-32 instellingen"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "Paden"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "Paden"
@@ -351,7 +352,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "Spel Pad:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "Extra Pad:"
@@ -360,56 +361,56 @@ msgstr "Extra Pad:"
msgid "Specifies path to additional data used by the game"
msgstr "Specificeer pad naar additionele data voor het spel"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "Extra Pad:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "Bewaar Pad:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "Bepaalt waar opgeslagen spellen worden bewaard."
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "Bewaar Pad:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "Geen"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "Standaard"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "Selecteer SoundFont"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "Selecteer additionele speldatamap"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "Selecteer map voor opgeslagen spellen"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
@@ -418,7 +419,7 @@ msgstr ""
"mappen. Als u de opgeslagen spellen wilt synchroniseren, gebruik dan de "
"standaard map."
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "Dit spel-ID is al in gebruik. Kies a.u.b. een andere."
@@ -498,7 +499,7 @@ msgstr "Sinus"
msgid "Triangle"
msgstr "Driehoek"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "Misc"
@@ -548,15 +549,15 @@ msgstr "Sluiten"
msgid "Mouse click"
msgstr "Muisklik"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "Toon toetsenbord"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "Toetsen opnieuw koppelen"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "Volledig scherm in-/uitschakelen"
@@ -590,112 +591,112 @@ msgstr "Druk op de te associėren toets"
msgid "Choose an action to map"
msgstr "Selecteer een actie om te koppelen"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~S~toppen"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "Hiermee verlaat u ScummVM."
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "O~v~er..."
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "Geeft informatie over ScummVM."
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~O~pties..."
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "Algemene ScummVM opties"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "~S~tarten"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "Start het geselecteerde spel."
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~L~aad Spel..."
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "Laad een eerder opgeslagen spel voor het geselecteerde spel."
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "Spel ~T~oevoegen..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr ""
"Houd Shift ingedrukt voor het toevoegen van grote hoeveelheden spellen."
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "Spel ~B~ewerken..."
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "Verander spel opties"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "Spel ~V~erwijderen"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr ""
"Verwijder dit spel uit de lijst. De spel data bestanden blijven intact."
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "~T~oevoegen..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "~B~ewerken..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "~V~erwijderen"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "Zoek in lijst met spellen"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "Zoeken:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "Laad spel:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "Laden"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -703,41 +704,41 @@ msgstr ""
"Wilt u echt de mass game detector draaien? Dit voegt potentieel een groot "
"aantal spellen toe."
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr "Deze map kan nog niet gebruikt worden, er wordt al in gedownload!"
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "Wilt u echt deze spelconfiguratie verwijderen?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr "Wilt u het opgeslagen spel laden?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr "Dit spel ondersteunt het laden van spelen vanaf het startmenu niet."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr ""
"ScummVM heeft geen engine gevonden die in staat was het geselecteerde spel "
"te spelen!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM kon geen enkel spel vinden in de opgegeven map!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "Kies het spel:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "Mass Add..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr "Opnemen..."
@@ -784,146 +785,144 @@ msgstr "Schakel naar Spel"
msgid "Fast replay"
msgstr "Snelle herhaling"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "Nooit"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "elke 5 minuten"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "elke 10 minuten"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "elke 15 minuten"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "elke 30 minuten"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "Geen"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "Sommige grafische opties konden niet worden toegepast:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "de videomodus kon niet veranderd worden."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "de pixelverhoudinginstelling kon niet veranderd worden"
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "de volledig-scherminstelling kon niet veranderd worden"
-#: gui/options.cpp:462
-#, fuzzy
+#: gui/options.cpp:486
msgid "the filtering setting could not be changed"
-msgstr "de volledig-scherminstelling kon niet veranderd worden"
+msgstr "de filterinstelling kon niet veranderd worden"
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "Grafische modus:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "Render modus:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "Speciale ditheringmodi die door sommige games ondersteund worden."
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "Volledig-scherm modus"
-#: gui/options.cpp:811
-#, fuzzy
+#: gui/options.cpp:838
msgid "Filter graphics"
-msgstr "Gebruik kleurenafbeeldingen"
+msgstr "Filter afbeeldingen"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
-msgstr ""
+msgstr "Gebruik lineair filteren tijdens het schalen van afbeeldingen"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "Pixelverhoudingcorrectie"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "Corrigeer de pixelverhouding voor 320x200 spellen."
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "Voorkeursapparaat:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "Muziekapparaat:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr "Specificeert het voorkeurs geluidsapparaat of geluidskaartemulator"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr "Specificeert geluidsapparaat of geluidskaartemulator"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "Voorkeursapparaat:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "Muziekapparaat:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "AdLib emulator:"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "AdLib word in vele spelen voor muziek gebruikt"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "Output snelheid:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -931,63 +930,63 @@ msgstr ""
"Hogere waarden geven betere geluidskwaliteit maar worden mogelijk niet "
"ondersteund door uw geluidskaart."
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "GM Apparaat:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr "Specificeert het standaard geluidsapparaat voor General MIDI"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "Geen General MIDI muziek gebruiken"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "Gebruik eerst beschikbare apparaat"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr ""
"SoundFont wordt ondersteund door FluidSynth en Timidity en sommige "
"geluidskaarten."
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "Gemengde AdLib/MIDI modus"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "Gebruik zowel MIDI als AdLib geluid"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "MIDI gain:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "MT-32 Apparaat:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr ""
"Specificeert het standaard geluidsapparaat voor Roland MT-32/LAPC1/CM32l/CM64"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "Waarheidsgetrouwe Roland MT-32 (GM emulatie uitschakelen)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -995,16 +994,16 @@ msgstr ""
"Selecteer als u een hardware Roland-compatible geluidsapparaat gekoppeld aan "
"uw computer wilt gebruiken"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "Echte Roland MT-32 (geen GM emulatie)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "Roland GS Device (met MT-32 mappings)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
@@ -1012,265 +1011,265 @@ msgstr ""
"Selecteer dit als u patchmappings wilt om een MT-32 op een Roland GS "
"apparaat te emuleren."
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "Geen Roland MT-32 muziek gebruiken"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "Spraak en/of tekst:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "Spraak"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "Tekst"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "Beide"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "Snelheid tekst:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "Spraak en/of text:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "Sprk"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "Text"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "Beide"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "Toon tekst en speel spraak af"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "Snelheid text:"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "Muziek volume:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "Muziek volume:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "Alles Dempen"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "SFX volume:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "Volume voor speciale geluidseffecten"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "SFX volume:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "Spraak volume:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "Spraak volume:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "FluidSynth Instellingen"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "Thema Pad:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "Thema Pad:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr ""
"Specificeert het pad for aanvullende data voor ScummVM zelf of de spellen."
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "Plugins Pad:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "Plugins Pad:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "Misc"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "Thema:"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "GUI Renderer:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "Autosave:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "Autosave:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "Toetsen"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "GUI Taal:"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "Taal van de ScummVM GUI"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr "Update controle:"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr "Hoe vaak checken op ScummVM updates"
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr "Controleer nu"
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr "Cloud"
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr "Cloud"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr "Opslag:"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr "Actieve cloud opslag"
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr "<geen>"
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "Gebruikersnaam:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr "Gebruikersnaam gebruikt voor deze opslag"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr "Gebruikte ruimte:"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr "Ruimte in gebruikt door ScummVM's opgeslagen spellen op deze opslag"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr "Laatste synchronisatie:"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr "Wanneer de laatste synchronisatie voor deze opslag is geweest."
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr "Verbinden"
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr ""
"Open de Wizard dialoogvenster voor verbinden met uw cloud opslag account"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr "Ververs"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr "Ververs de huidige opslag informatie (gebruikersnaam en gebruik)"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Download"
msgstr "Download"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr "Open downloads manager dialoogvenster"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr "Start server"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr "Draai lokale webserver"
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
msgid "Not running"
msgstr "Draait niet"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
msgid "/root/ Path:"
msgstr "/root/ Pad:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
msgid "Specifies which directory the Files Manager can access"
msgstr "Bepaalt welke map de Bestanden Manager gebruiken mag"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "/root/ Pad:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid "Server's port:"
msgstr "Serverport:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
@@ -1278,69 +1277,69 @@ msgstr ""
"Welke port is gebruikt voor de server\n"
"Auth met server is niet beschikbaar met een niet standaard port"
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "U dient ScummVM opnieuw op te starten om de wijzigingen te activeren."
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr ""
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
msgid "Failed to change cloud storage!"
msgstr "Veranderen van cloud opslag mislukt!"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr "Er is al een andere cloud opslag actief."
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Het thema dat u heeft geselecteerd ondersteunt uw gekozen taal niet. Als u "
+"dit thema wilt gebruiken dient u eerst een andere taal te selecteren."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr ""
"Er kan niet worden geschreven in de gekozen map. Selecteer a.u.b. een andere."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "Selecteer map voor GUI themas"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "Selecteer map voor extra bestanden"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "Selecteer map voor plugins"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
msgid "Select directory for Files Manager /root/"
msgstr "Selecteer map voor Bestanden Manager /root/"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"De thema die u heeft geselecteerd ondersteund uw gekozen taal niet. Als u "
-"dit thema wilt gebruiken dient u eerst een andere taal te selecteren."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr "%llu bytes"
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr "<nu>"
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
msgid "<never>"
msgstr "<nooit>"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
msgid "Stop server"
msgstr "Stop server"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr "Stop lokale webserver"
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1591,7 +1590,7 @@ msgid ""
"\n"
"Would you like to enable this feature?"
msgstr ""
-"ScummVM ondersteund nu automatische updates.\n"
+"ScummVM ondersteunt nu automatische updates.\n"
"Hiervoor is wel internet toegang nodig.\n"
"\n"
"Wilt u deze functie inschakelen?"
@@ -1612,35 +1611,35 @@ msgstr "Ga verder"
msgid "Clear value"
msgstr "Veld leegmaken"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "Engine ondersteunt debug level '%s' niet"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "Menu"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "Overslaan"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "Pauze"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "Regel overslaan"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "Fout tijdens het starten van spel:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr ""
"Kon geen engine vinden die in staat was het geselecteerde spel te spelen"
@@ -1882,9 +1881,8 @@ msgid "Could not apply fullscreen setting."
msgstr "Kon volledig-scherminstelling niet toepassen."
#: engines/engine.cpp:373
-#, fuzzy
msgid "Could not apply filtering setting."
-msgstr "Kon volledig-scherminstelling niet toepassen."
+msgstr "Filterinstelling kon niet toegepast worden."
#: engines/engine.cpp:473
msgid ""
@@ -2019,11 +2017,11 @@ msgstr "FM-Towns Geluid"
msgid "PC-98 Audio"
msgstr "PC-98 Geluid"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "MT-32 Emulator initialiseren"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "MT-32 Emulator"
@@ -2039,15 +2037,15 @@ msgstr "IBM PCjr Emulator"
msgid "C64 Audio Emulator"
msgstr "C64 Audio Emulator"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
msgid "Saved games sync complete."
msgstr "Klaar met synchronisatie van opgeslagen spellen."
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr "Synchronisatie van opgeslagen spellen was geannuleerd."
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
@@ -2055,7 +2053,7 @@ msgstr ""
"Synchronisatie van opgeslagen spellen is mislukt.\n"
"Controleer a.u.b. uw Internet verbinding."
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
@@ -2064,11 +2062,11 @@ msgstr ""
"Download klaar.\n"
"%u bestanden konden niet gedownload worden."
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
msgid "Download complete."
msgstr "Download klaar."
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
msgid "Download failed."
msgstr "Download mislukt."
@@ -2177,43 +2175,51 @@ msgstr "Swipe drie vingers naar rechts om te schakelen."
msgid "OpenGL"
msgstr "OpenGL"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "Normaal (niet schalen)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "Venstermodus"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normaal (niet schalen)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "Pixelverhoudingcorrectie ingeschakeld"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "Pixelverhoudingcorrectie uitgeschakeld"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
-#, fuzzy
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
msgid "Filtering enabled"
-msgstr "Klikken Aangezet"
+msgstr "Filteren aangezet"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
-#, fuzzy
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
msgid "Filtering disabled"
-msgstr "Klikken Uitgeschakeld"
+msgstr "Filteren uitgeschakeld"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "Normaal (niet schalen)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normaal (niet schalen)"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "Actieve grafische filter:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "Venstermodus"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "Toetskoppeling:"
@@ -3058,7 +3064,7 @@ msgstr ""
"Het lijkt erop dat u een General MIDI apparaat gebruikt,\n"
"maar het spel ondersteunt alleen Roland MT32 MIDI.\n"
"We zullen proberen te Roland MT32 instrumenten te vertalen naar General MIDI "
-"instrumenten. Het is mogelijk dat somige tracks niet goed klinken."
+"instrumenten. Het is mogelijk dat sommige tracks niet goed klinken."
#: engines/kyra/saveload_eob.cpp:557
#, c-format
@@ -3137,6 +3143,39 @@ msgstr "~H~oofdmenu"
msgid "~W~ater Effect Enabled"
msgstr "~W~ater Effect Aangezet"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+
#: engines/mohawk/mohawk.cpp:61
msgid "The game is paused. Press any key to continue."
msgstr "Spel is gepauzeerd. Druk op een toets om verder te gaan."
@@ -4274,9 +4313,6 @@ msgstr ""
"Gebruik de MPEG video van de DVD versie, in plaats van de lagere resolutie "
"AVI"
-#~ msgid "OpenGL (No filtering)"
-#~ msgstr "OpenGL (geen filters)"
-
-#, fuzzy
-#~ msgid "Specifies where Files Manager can access to"
-#~ msgstr "Bepaalt waar opgeslagen spellen worden bewaard."
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr ""
+#~ "U dient ScummVM opnieuw op te starten om de wijzigingen te activeren."
diff --git a/po/nn_NO.po b/po/nn_NO.po
index 9b64e2dbdc..43eec94064 100644
--- a/po/nn_NO.po
+++ b/po/nn_NO.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.3.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
"PO-Revision-Date: 2016-02-26 00:37+0100\n"
"Last-Translator: Einar Johan Trøan SømÄen <einarjohants@gmail.com>\n"
"Language-Team: somaen <einarjohants@gmail.com>\n"
@@ -18,6 +18,7 @@ msgstr ""
"X-Poedit-SourceCharset: iso-8859-1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.8.7\n"
+"X-Language-name: Norsk (nynorsk)\n"
#: gui/about.cpp:94
#, c-format
@@ -57,7 +58,7 @@ msgstr "Oppover"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -82,7 +83,7 @@ msgstr "Vel"
msgid "Select directory where to download game data"
msgstr "Vel mappe med speldata"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "Vel mappe med speldata"
@@ -115,7 +116,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -127,7 +128,7 @@ msgstr "Ja"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -137,7 +138,7 @@ msgstr "Ja"
msgid "No"
msgstr "Nei"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM kunne ikkje åpne den velde mappa!"
@@ -148,8 +149,8 @@ msgid ""
msgstr ""
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -232,8 +233,8 @@ msgstr ""
"Spelets språk. Dette vil ikkje gjere den spanske versjonen av spelet til ein "
"engelsk versjon"
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<standard>"
@@ -256,11 +257,11 @@ msgstr "Plattform:"
msgid "Engine"
msgstr "Motor"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "Grafikk"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "GFX"
@@ -273,7 +274,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "Overstyr globale grafikkinstillingar"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "Lyd"
@@ -286,11 +287,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "Overstyr globale lydinstillingar"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "Volum"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "Volum"
@@ -304,7 +305,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "Overstyr globale voluminstillingar"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -317,7 +318,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "Overstyr globale MIDI-instillingar"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -330,11 +331,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "Overstyr globale MT-32-instillingar"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "Stiar"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "Stiar"
@@ -348,7 +349,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "Spelsti:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "Ekstrasti:"
@@ -357,62 +358,62 @@ msgstr "Ekstrasti:"
msgid "Specifies path to additional data used by the game"
msgstr "Veljer sti til tilleggsdata nytta av spelet"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "Ekstrasti:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "Lagringssti:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "Veljer kor lagra spel vert lagra"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "Lagringssti:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "Ingen"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "Standard"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "Vel SoundFont"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "Vel mappe med tileggsdata for spelet"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "Vel mappe for lagra spel"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
msgstr ""
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "Denne spel-IDen er allerede teken. Vęr vennleg og vel ein anna."
@@ -492,7 +493,7 @@ msgstr "Sinus"
msgid "Triangle"
msgstr "Triangel"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "Diverse"
@@ -541,15 +542,15 @@ msgstr "Steng"
msgid "Mouse click"
msgstr "Musklikk"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "Syn Tastatur"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "Omkople tastar"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "Veksle fullskjerm"
@@ -583,150 +584,150 @@ msgstr "Trykk tasten du vil kople"
msgid "Choose an action to map"
msgstr "Vel ei handling for kopling:"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~A~vslutt"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "Avslutt ScummVM"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "~O~m..."
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "Om ScummVM"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~V~al..."
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "Endre globale ScummVM-instillingar"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "~S~tart"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "Start det velde spelet"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~Å~pne..."
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "Åpne eit lagra spel for the velde spelet"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "~L~egg til spel..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr "Hold Shift nede for å legge til fleire"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "~R~ediger spel..."
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "Endre spelinstillingar"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "~F~jern spel"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr "Fjern spel frå lista. Speldataene forblir intakte"
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "~L~egg til spel..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "~R~ediger spel..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "~F~jern spel"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "Sųk i spelliste"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "Sųk:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "Åpne spel:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "Åpne"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
msgstr ""
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr ""
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "Vil du verkeleg fjerne denne spelkonfigurasjonen?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr "Vil du laste det lagra spelet?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr "Dette spelet stųttar ikkje åpning av lagra spel frå oppstartaren."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr ""
"ScummVM kunne ikkje finne nokon motor som var i stand til å kųyre det velde "
"spelet!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM kunne ikkje finne noko spel i den velde mappa!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "Vel spelet:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "Legg til fleire..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr ""
@@ -770,146 +771,146 @@ msgstr "Bytt til spel"
msgid "Fast replay"
msgstr ""
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "Aldri"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "kvart 5. min"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "kvart 10. min"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "kvart 15. min"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "kvart 30. min"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "Ingen"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "Klarte ikkje å aktivere nokre av grafikkvalendringane:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "Kunne ikkje endre videomodus."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "aspektrate-innstillinga kunne ikkje endrast"
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "Fullskjerminstillinga kunne ikkje endrast"
-#: gui/options.cpp:462
+#: gui/options.cpp:486
#, fuzzy
msgid "the filtering setting could not be changed"
msgstr "Fullskjerminstillinga kunne ikkje endrast"
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "Grafikkmodus:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "Teiknemodus:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "Spesielle dithering-modus som stųttast av nokre spel"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "Fullskjermsmodus"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
#, fuzzy
msgid "Filter graphics"
msgstr "Grafikk"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr ""
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "Aspekt-korrigering"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "Rett opp aspekt for 320x200 spel"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "Fųretrukken eining:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "Musikkeining:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr ""
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr ""
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr ""
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "Musikkeining:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "AdLib emulator:"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "AdLib nyttast til musikk i mange spel"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr ""
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -917,60 +918,60 @@ msgstr ""
"Hųgare verdier gir betre lydkvalitet, men stųttast kanskje ikkje av "
"lydkortet ditt"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "GM Eining:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr "Veljer standard lydeining for General MIDI avspeling"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "Ikkje nytt General MIDI musikk"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "Nytt fųrste tilgjengelege eining"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr "SoundFont stųttast av enkelte lydkort, FluidSynth og Timidity"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "Blanda AdLib/MIDI-modus"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "Nytt båe MIDI og AdLib lydskaping"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "MIDI gain:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "MT-32 Eining:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr "Veljer standard lydeining for Roland MT-32/LAPC1/CM32l/CM64 avspeling"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "Ekte Roland MT-32 (deaktiver GM-emulering)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -978,355 +979,355 @@ msgstr ""
"Vel om du vil nytte din Roland-kompatible lydeining som du har tilkopla "
"datamaskina di."
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "Ekte Roland MT-32 (ingen GS-emulering)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr ""
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
msgstr ""
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "Ikkje nytt Roland MT-32 musikk"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "Tekst og Tale:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "Tale"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "Teksting"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "Begge"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "Undertekstfart:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "Tekst og Tale:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "Tale"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "Tekst"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "Båe"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "Vis teksting og spel av tale"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "Undertekstfart:"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "Musikkvolum:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "Musikkvolum:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "Demp alle"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "Lydeffektvolum:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "Spesiallydeffekt volum"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "Lydeffektvolum:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "Talevolum:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "Talevolum:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "FluidSynth instillingar"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "Temasti:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "Temasti:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr ""
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "Pluginsti:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "Pluginsti:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "Div"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "Tema:"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "GUI-teiknar:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "Autolagre:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "Autolagre:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "Tastar"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "GUI-språk:"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "Språk i ScummVM-GUIet"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr ""
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr ""
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr ""
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr ""
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr ""
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "Brukarnamn:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr ""
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr ""
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr ""
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
#, fuzzy
msgid "Download"
msgstr "Ned"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr ""
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
#, fuzzy
msgid "Not running"
msgstr "Feil under kųyring av spel:"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
#, fuzzy
msgid "/root/ Path:"
msgstr "Ekstrasti:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
#, fuzzy
msgid "Specifies which directory the Files Manager can access"
msgstr "Veljer kor lagra spel vert lagra"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
#, fuzzy
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "Ekstrasti:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
#, fuzzy
msgid "Server's port:"
msgstr "Teinar:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
msgstr ""
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Du må starte ScummVM på nytt for at endringane skal tre i kraft."
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr ""
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
#, fuzzy
msgid "Failed to change cloud storage!"
msgstr "Klarte ikkje lagre spel"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr ""
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Temaet du har valt stųttar ikkje det aktive språket. Om du vil nytte dette "
+"temaet må du bytte til eit anna språk fųrst."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr "Den velde mappa kan ikkje skrivast til. Vennlegst vel ein annan."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "Vel ei mappe for GUI-tema:"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "Vel ei mappe for ekstra filer"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "Vel ei mappe for plugins"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
#, fuzzy
msgid "Select directory for Files Manager /root/"
msgstr "Vel ei mappe for ekstra filer"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Temaet du har valt stųttar ikkje det aktive språket. Om du vil nytte dette "
-"temaet må du bytte til eit anna språk fųrst."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr ""
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr ""
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
#, fuzzy
msgid "<never>"
msgstr "Aldri"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
#, fuzzy
msgid "Stop server"
msgstr "Teinar:"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr ""
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1598,35 +1599,35 @@ msgstr ""
msgid "Clear value"
msgstr "Tųm verdi"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "Motoren stųttar ikkje debug-nivå '%s'"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "Meny"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "Hopp over"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "Pause"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "Hopp over linje"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "Feil under kųyring av spel:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr "Kunne ikkje finne nokon motor som kunne kųyre det velde spelet."
@@ -1999,11 +2000,11 @@ msgstr "FM-Towns Lyd"
msgid "PC-98 Audio"
msgstr "PC-98 Lyd"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "Initialiserar MT-32 Emulator"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "MT-32 Emulator"
@@ -2019,34 +2020,34 @@ msgstr "IBM PCjr Emulator"
msgid "C64 Audio Emulator"
msgstr "C64 Lydemulator"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
#, fuzzy
msgid "Saved games sync complete."
msgstr "Sųk fullfųrt!"
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr ""
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
msgstr ""
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
"Failed to download %u files."
msgstr ""
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
#, fuzzy
msgid "Download complete."
msgstr "Sųk fullfųrt!"
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
#, fuzzy
msgid "Download failed."
msgstr "Last fil:"
@@ -2156,43 +2157,53 @@ msgstr "Sveip tre fingre til hųgre for å veksle"
msgid "OpenGL"
msgstr "OpenGL"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "Normal (ikkje skaler)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "Vindusmodus"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normal (ikkje skaler)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "Aspekt-korrigering aktivert"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "Aspekt-korrigering ikkje aktivert"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
#, fuzzy
msgid "Filtering enabled"
msgstr "Klikking aktivert"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
#, fuzzy
msgid "Filtering disabled"
msgstr "Klikking Deaktivert"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "Normal (ikkje skaler)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normal (ikkje skaler)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "Aktivt grafikkfilter:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "Vindusmodus"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "Tastkopling:"
@@ -3082,6 +3093,39 @@ msgstr "Hoved~m~eny"
msgid "~W~ater Effect Enabled"
msgstr "~V~anneffekt aktivert"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+
#: engines/mohawk/mohawk.cpp:61
#, fuzzy
msgid "The game is paused. Press any key to continue."
@@ -4189,6 +4233,9 @@ msgstr ""
"Nytt MPEG video frå DVD-versjonen, framfor AVI-versjonen med lågare "
"opplųysning"
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr "Du må starte ScummVM på nytt for at endringane skal tre i kraft."
+
#~ msgid "OpenGL (No filtering)"
#~ msgstr "OpenGL (Ingen filtrering)"
diff --git a/po/pl_PL.po b/po/pl_PL.po
index c03a1b13b0..eda45ed79e 100644
--- a/po/pl_PL.po
+++ b/po/pl_PL.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.3.0\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
"PO-Revision-Date: 2016-02-20 23:43+0100\n"
"Last-Translator: Micha³ Zi±bkowski <mziab@o2.pl>\n"
"Language-Team: Grajpopolsku.pl <grajpopolsku@gmail.com>\n"
@@ -21,6 +21,7 @@ msgstr ""
"X-Poedit-Basepath: .\n"
"X-Poedit-Language: Polish\n"
"X-Poedit-Country: POLAND\n"
+"X-Language-name: Polski\n"
#: gui/about.cpp:94
#, c-format
@@ -60,7 +61,7 @@ msgstr "W górź"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -85,7 +86,7 @@ msgstr "Wybierz"
msgid "Select directory where to download game data"
msgstr "Wybierz katalog z plikami gry"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "Wybierz katalog z plikami gry"
@@ -118,7 +119,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -130,7 +131,7 @@ msgstr "Tak"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -140,7 +141,7 @@ msgstr "Tak"
msgid "No"
msgstr "Nie"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM nie moæe otworzyę katalogu!"
@@ -151,8 +152,8 @@ msgid ""
msgstr ""
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -233,8 +234,8 @@ msgid ""
"English"
msgstr "Jźzyk gry. Nie zmieni to hiszpańskiej wersji gry w angielsk±."
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<domy¶lne>"
@@ -257,11 +258,11 @@ msgstr "Platforma:"
msgid "Engine"
msgstr "Silnik"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "Grafika"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "Grafika"
@@ -274,7 +275,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "Uæyj w³asnych ustawień grafiki"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "D¼wiźk"
@@ -287,11 +288,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "Uæyj w³asnych ustawień d¼wiźku"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "G³o¶no¶ę"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "G³o¶no¶ę"
@@ -305,7 +306,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "Uæyj w³asnych ustawień g³o¶no¶ci"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -318,7 +319,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "Uæyj w³asnych ustawień MIDI"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -331,11 +332,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "Uæyj w³asnych ustawień MT-32"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "¦cieæki"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "¦cieæki"
@@ -349,7 +350,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "¦cieæka gry:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "¦c. dodatków:"
@@ -358,62 +359,62 @@ msgstr "¦c. dodatków:"
msgid "Specifies path to additional data used by the game"
msgstr "Okre¶la ¶cieækź dodatkowych danych gry"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "¦c. dodatków:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "¦cieæka zapisów:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "Okre¶la gdzie zapisywaę stan gry"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "¦cieæka zapisów:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "Brak"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "Domy¶lnie"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "Wybierz SoundFont"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "Wybierz dodatkowy katalog gry"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "Wybierz katalog dla zapisów"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
msgstr ""
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "Identyfikator jest juæ zajźty. Wybierz inny."
@@ -493,7 +494,7 @@ msgstr "Sinus"
msgid "Triangle"
msgstr "Trójk±t"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "Róæne"
@@ -542,15 +543,15 @@ msgstr "Zamknij"
msgid "Mouse click"
msgstr "Klikniźcie"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "Wy¶wietl klawiaturź"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "Dostosuj klawisze"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "W³±cz/wy³±cz pe³ny ekran"
@@ -584,149 +585,149 @@ msgstr "Wci¶nij klawisz do przypisania"
msgid "Choose an action to map"
msgstr "Wybierz akcjź do przypisania"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~Z~akończ"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "Zakończ ScummVM"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "I~n~formacje..."
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "Ksi±æka ScummVM"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~O~pcje..."
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "Zmień ustawienia ScummVM"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "~S~tart"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "Rozpocznij wybran± grź"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~W~czytaj..."
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "Wczytaj zapis wybranej gry"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "~D~odaj grź..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr "Przytrzymaj Shift, by dodawaę zbiorowo"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "~E~dytuj grź..."
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "Zmień opcje gry"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "~U~suń grź"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr "Usuwa grź z listy. Pliki gry pozostaj± nietkniźte"
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "~D~odaj grź..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "~E~dytuj grź..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "~U~suń grź"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "Wyszukaj grź na li¶cie"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "Szukaj"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "Wczytaj grź:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "Wczytaj"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
msgstr ""
"Chcesz uruchomię masowy detektor gier? Moæe dodaę wiele tytu³ów do listy"
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr ""
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "Na pewno chcesz usun±ę tź grź z konfiguracji?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr "Chcesz wczytaę zapis stanu gry?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr "Ta gra nie wspiera wczytywania z launchera."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr "ScummVM nie znalaz³ silnika zdolnego uruchomię wybran± grź!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM nie znalaz³ æadnej gry w tym katalogu!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "Wybierz grź:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "Przeszukaj..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr "Nagraj..."
@@ -769,146 +770,146 @@ msgstr "Prze³±cz do gry"
msgid "Fast replay"
msgstr "Szybka powtórka"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "Nigdy"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "co 5 min"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "co 10 min"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "co 15 min"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "co 30 min"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "Brak"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "Nie uda³o siź zastosowaę czź¶ci zmian opcji grafiki:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "nie uda³o siź zmienię trybu wideo."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "nie uda³o siź zmienię formatu obrazu"
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "nie uda³o siź zmienię trybu pe³noekranowego"
-#: gui/options.cpp:462
+#: gui/options.cpp:486
#, fuzzy
msgid "the filtering setting could not be changed"
msgstr "nie uda³o siź zmienię trybu pe³noekranowego"
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "Tryb grafiki:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "Renderer:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "Specjalne tryby ditheringu wspierane przez niektóre gry"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "Pe³ny ekran"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
#, fuzzy
msgid "Filter graphics"
msgstr "Grafika"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr ""
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "Korekcja formatu obrazu"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "Korekcja formatu obrazu dla gier 320x200"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "Pref. urz±dzenie:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "Urz. muzyczne:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr "Okre¶la preferowane urz±dzenie d¼wiźkowe lub emulator karty d¼wiźkowej"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr "Okre¶la wyj¶ciowe urz±dzenie d¼wiźkowe lub emulator karty d¼wiźkowej"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "Pref. urz±dzenie:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "Urz. muzyczne:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "Emulator AdLib:"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "AdLib jest uæywany do muzyki w wielu grach"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "Czźst. wyj.:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -916,63 +917,63 @@ msgstr ""
"Wyæsze warto¶ci daj± lepsz± jako¶ę d¼wiźku, ale mog± byę nieobs³ugiwane "
"przez twoj± kartź d¼wiźkow±"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "Urz±dzenie GM:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr "Okre¶la domy¶lne urz±dzenie d¼wiźkowe dla wyj¶cia General MIDI"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "Nie uæywaj muzyki General MIDI"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "Uæyj pierwszego dostźpnego urz±dzenia"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr ""
"SoundFont jest wspierany przez niektóre karty d¼wiźkowe, FluidSynth i "
"Timidity"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "Tryb miksowanego AdLib/MIDI"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "Uæywaj obu generatorów d¼wiźku, MIDI i AdLib, jednocze¶nie"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "Wzm. MIDI:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "Urz±dzenie MT-32:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr ""
"Okre¶la domy¶lne urz±dzenie d¼wiźku dla wyj¶cia Roland MT-32/LAPC1/CM32l/CM64"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "Prawdziwy Roland MT-32 (wy³±cz emulacjź GM)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -980,16 +981,16 @@ msgstr ""
"Zaznacz, je¶li chcesz uæywaę swojej prawdziwej karty kompatybilnej z Roland "
"pod³±czonej do twojego komputera"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "Prawdziwy Roland MT-32 (brak emulacji GM)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "Roland w trybie GS (w³±cz mapowanie MT-32)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
@@ -997,340 +998,340 @@ msgstr ""
"Zaznacz, je¶li chcesz w³±czyę ³atki mapowania pozwalaj±ce na emulacjź MT-32 "
"na urz±dzeniu Roland GS"
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "Nie uæywaj muzyki Roland MT-32"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "Tekst i mowa:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "Mowa"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "Napisy"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "Oba"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "Prźd. napisów:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "Tekst i mowa:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "Mowa"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "Napisy"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "Oba"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "Wy¶wietlaj napisy i odtwarzaj mowź"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "Prźd. napisów:"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "G³o¶no¶ę muzyki:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "G³o¶no¶ę muzyki:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "Wycisz"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "G³. efekt. d¼w.:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "G³o¶no¶ę efektów d¼w."
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "G³. efekt. d¼w.:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "G³o¶no¶ę mowy:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "G³o¶no¶ę mowy:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "Ustawienia FluidSynth"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "¦cieæka stylu:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "¦cieæka stylu:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr "Okre¶la ¶cieækź dla dodatkowych danych dla wszystkich gier lub ScummVM"
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "¦cieæka wtyczek:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "¦cieæka wtyczek:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "Róæne"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "Styl:"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "Renderer interf.:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "Autozapis:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "Autozapis:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "Klawisze"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "Jźzyk interfejsu:"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "Jźzyk interfejsu ScummVM"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr ""
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr ""
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr ""
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr ""
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr ""
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "Nazwa uæytkownika:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr ""
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr ""
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr ""
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
#, fuzzy
msgid "Download"
msgstr "W dó³"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr ""
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
#, fuzzy
msgid "Not running"
msgstr "B³±d podczas uruchamiania gry:"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
#, fuzzy
msgid "/root/ Path:"
msgstr "¦c. dodatków:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
#, fuzzy
msgid "Specifies which directory the Files Manager can access"
msgstr "Okre¶la gdzie zapisywaę stan gry"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
#, fuzzy
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "¦c. dodatków:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
#, fuzzy
msgid "Server's port:"
msgstr "Serwer:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
msgstr ""
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Musisz zrestartowaę ScummVM, by zmiany zosta³y uwzglźdnione."
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr ""
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
#, fuzzy
msgid "Failed to change cloud storage!"
msgstr "Nie uda³o siź zapisaę stanu gry"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr ""
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Wybrany styl nie obs³uguje obecnego jźzyka. Je¶li chcesz go uæywaę, zmień "
+"najpierw swój jźzyk."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr "Ten katalog jest zabezpieczony przed zapisem. Wybierz inny."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "Wybierz katalog dla stylów GUI."
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "Wybierz katalog dla dodatkowych plików"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "Wybierz katalog dla wtyczek"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
#, fuzzy
msgid "Select directory for Files Manager /root/"
msgstr "Wybierz katalog dla dodatkowych plików"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Wybrany styl nie obs³uguje obecnego jźzyka. Je¶li chcesz go uæywaę, zmień "
-"najpierw swój jźzyk."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr ""
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr ""
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
#, fuzzy
msgid "<never>"
msgstr "Nigdy"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
#, fuzzy
msgid "Stop server"
msgstr "Serwer:"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr ""
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1602,35 +1603,35 @@ msgstr ""
msgid "Clear value"
msgstr "Wyczy¶ę"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "Silnik nie wspiera poziomu debugowania '%s'"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "Menu"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "Pomiń"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "Wstrzymaj"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "Pomiń liniź"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "B³±d podczas uruchamiania gry:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr "Nie uda³o siź znale¼ę silnika zdolnego do uruchomienia zaznaczonej gry"
@@ -2001,11 +2002,11 @@ msgstr "D¼wiźk FM-Towns"
msgid "PC-98 Audio"
msgstr "D¼wiźk PC-98"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "Inicjalizacja emulatora MT-32"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "Emulator MT-32"
@@ -2021,34 +2022,34 @@ msgstr "Emulator IBM PCjr"
msgid "C64 Audio Emulator"
msgstr "Emulator d¼wiźku C64"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
#, fuzzy
msgid "Saved games sync complete."
msgstr "Skanowanie zakończone!"
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr ""
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
msgstr ""
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
"Failed to download %u files."
msgstr ""
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
#, fuzzy
msgid "Download complete."
msgstr "Skanowanie zakończone!"
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
#, fuzzy
msgid "Download failed."
msgstr "Wczytaj plik"
@@ -2158,43 +2159,53 @@ msgstr "Przesuń trzema palcami, æeby zmienię."
msgid "OpenGL"
msgstr "OpenGL"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "Zwyk³y (bez skalowania)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "Okno"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Zwyk³y (bez skalowania)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "W³±czono korekcjź formatu obrazu"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "Wy³±czono korekcjź formatu obrazu"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
#, fuzzy
msgid "Filtering enabled"
msgstr "Klikanie w³±czone"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
#, fuzzy
msgid "Filtering disabled"
msgstr "Klikanie wy³±czone"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "Zwyk³y (bez skalowania)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Zwyk³y (bez skalowania)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "Aktywny filtr graficzny:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "Okno"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "Klawisze:"
@@ -3111,6 +3122,39 @@ msgstr "~M~enu g³ówne"
msgid "~W~ater Effect Enabled"
msgstr "~E~fekty wody w³±czone"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+
#: engines/mohawk/mohawk.cpp:61
#, fuzzy
msgid "The game is paused. Press any key to continue."
@@ -4241,6 +4285,9 @@ msgstr "Uæyj wideo MPEG w wysokiej rozdzielczo¶ci"
msgid "Use MPEG video from the DVD version, instead of lower resolution AVI"
msgstr "Uæyj wideo MPEG z wersji DVD zamiast AVI niæszej rozdzielczo¶ci"
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr "Musisz zrestartowaę ScummVM, by zmiany zosta³y uwzglźdnione."
+
#~ msgid "OpenGL (No filtering)"
#~ msgstr "OpenGL (bez filtrowania)"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index aadd15cfae..ef4cfd1655 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.3.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
"PO-Revision-Date: 2011-10-21 21:30-0300\n"
"Last-Translator: Saulo Benigno <saulobenigno@gmail.com>\n"
"Language-Team: ScummBR (www.scummbr.com) <scummbr@yahoo.com.br>\n"
@@ -19,6 +19,7 @@ msgstr ""
"X-Poedit-Language: Portuguese\n"
"X-Poedit-Country: BRAZIL\n"
"X-Poedit-SourceCharset: iso-8859-1\n"
+"X-Language-name: Portugues (Brasil)\n"
#: gui/about.cpp:94
#, c-format
@@ -59,7 +60,7 @@ msgstr "Acima"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -84,7 +85,7 @@ msgstr "Escolher"
msgid "Select directory where to download game data"
msgstr "Selecione a pasta com os arquivos do jogo"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "Selecione a pasta com os arquivos do jogo"
@@ -117,7 +118,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -129,7 +130,7 @@ msgstr "Sim"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -139,7 +140,7 @@ msgstr "Sim"
msgid "No"
msgstr "Nćo"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM nćo conseguiu abrir a pasta especificada!"
@@ -150,8 +151,8 @@ msgid ""
msgstr ""
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -232,8 +233,8 @@ msgid ""
"English"
msgstr "Idioma do jogo. Isto nćo irį passar seu jogo Inglźs para Portuguźs"
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<padrćo>"
@@ -257,11 +258,11 @@ msgstr "Sistema:"
msgid "Engine"
msgstr "Examinar"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "Grįficos"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "GFX"
@@ -274,7 +275,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "Sobrepor configuraēćo global de grįficos"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "Įudio"
@@ -287,11 +288,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "Sobrepor configuraēćo global de įudio"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "Volume"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "Volume"
@@ -305,7 +306,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "Sobrepor configuraēćo global de volume"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -318,7 +319,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "Sobrepor configuraēćo global de MIDI"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -331,11 +332,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "Sobrepor configuraēćo global de MT-32"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "Pastas"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "Pastas"
@@ -349,7 +350,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "Pasta do Jogo:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "Pasta de Extras"
@@ -358,62 +359,62 @@ msgstr "Pasta de Extras"
msgid "Specifies path to additional data used by the game"
msgstr "Especifique a pasta para dados utilizados no jogo"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "Pasta de Extras"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "Pasta para Salvar"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "Especifique onde guardar seus jogos salvos"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "Pasta para Salvar"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "Nenhum(a)"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "Padrćo"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "Selecione o SoundFont"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "Selecione a pasta adicional do jogo"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "Selecione a pasta para os jogos salvos"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
msgstr ""
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "Este código jį esta sendo utilizado. Por favor, escolha outro."
@@ -497,7 +498,7 @@ msgstr ""
msgid "Triangle"
msgstr ""
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "Outros"
@@ -546,15 +547,15 @@ msgstr "Fechar"
msgid "Mouse click"
msgstr "Clique do mouse"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "Mostrar teclado"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "Remapear teclas"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
#, fuzzy
msgid "Toggle fullscreen"
msgstr "Habilita Tela Cheia"
@@ -589,111 +590,111 @@ msgstr "Pressione a tecla para associar"
msgid "Choose an action to map"
msgstr "Selecione uma aēćo para mapear"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~S~air"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "Sair do ScummVM"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "So~b~re..."
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "Sobre o ScumnmVM"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~O~pēões"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "Alterar opēões globais do ScummVM"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "~I~niciar"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "Iniciar jogo selecionado"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~C~arregar"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "Carregar jogo salvo do jogo selecionado"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "~A~dicionar Jogo..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr "Segure Shift para Multi-Adiēćo"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "~E~ditar Jogo..."
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "Alterar opēões do jogo"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "~R~emover Jogo"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr ""
"Remover jogo da lista. Os arquivos de dados do jogo permanecem intactos"
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "~A~dicionar Jogo..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "~E~ditar Jogo..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "~R~emover Jogo"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "Pesquisar na lista de jogos"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "Pesquisar:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "Carregar jogo:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "Carregar"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -701,42 +702,42 @@ msgstr ""
"Vocź realmente deseja adicionar vįrios jogos ao mesmo tempo? Isso poderį "
"resultar em uma adiēćo gigantesca de jogos."
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr ""
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "Vocź deseja realmente remover a configuraēćo deste jogo?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
#, fuzzy
msgid "Do you want to load saved game?"
msgstr "Vocź deseja carregar ou salvar o jogo?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr "Este jogo nćo suporta abrir jogos a partir do menu principal."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr ""
"ScummVM nćo conseguiu encontrar qualquer programa capaz de rodar o jogo "
"selecionado!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM nćo encontrou nenhum jogo na pasta especificada!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "Escolha o jogo:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "Multi-Adiēćo..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr ""
@@ -785,146 +786,146 @@ msgstr "Trocar"
msgid "Fast replay"
msgstr "Modo rįpido"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "Nunca"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "a cada 5 mins"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "a cada 10 mins"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "a cada 15 mins"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "a cada 30 mins"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "Nenhum(a)"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "Falha ao aplicar algumas mudanēas nas opēões de grįfico:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "o modo de vķdeo nćo pōde ser alterado."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "a configuraēćo de proporēćo nćo pōde ser mudada"
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "a configuraēćo de tela cheia nćo pōde ser mudada"
-#: gui/options.cpp:462
+#: gui/options.cpp:486
#, fuzzy
msgid "the filtering setting could not be changed"
msgstr "a configuraēćo de tela cheia nćo pōde ser mudada"
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "Modo grįfico:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "Renderizaēćo"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "Modos especiais de dithering suportados por alguns jogos"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "Modo Tela Cheia"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
#, fuzzy
msgid "Filter graphics"
msgstr "Grįficos"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr ""
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "Correēćo de proporēćo"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "Correēćo de proporēćo para jogos 320x200"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "Dispositivo pref.:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "Disp. de mśsica:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr "Especifica o dispositivo de som preferido ou emulador de placa de som"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr "Especifica o dispositivo de saķda de som ou emulador de placa de som"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "Dispositivo pref.:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "Dispositivo de mśsica:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "Emulador AdLib:"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "AdLib é utilizado para mśsica em vįrios jogos"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "Taxa de saķda:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -932,62 +933,62 @@ msgstr ""
"Maior valor especifica melhor qualidade de som, mas pode nćo ser suportado "
"por sua placa de som"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "Dispositivo GM:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr "Especifique o dispositivo de som padrćo para a saķda General MIDI"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "Nćo usar mśsica General MIDI"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "Usar o primeiro dispositivo disponķvel"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr "SoundFont é suportado por algumas placas de som, FluidSynth e Timidity"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "Mixar AdLib/MIDI"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "Usar MIDI e AdLib juntos na geraēćo de som"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "Ganho MIDI:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "Dispositivo MT-32:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr ""
"Especifique o dispositivo de som padrćo para a saķda Roland MT-32/LAPC1/"
"CM32l/CM64"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "Roland MT-32 real (desligar emulaēćo GM)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -995,358 +996,358 @@ msgstr ""
"Verifique se vocź quer usar o seu dispositivo de hardware de som compatķvel "
"com Roland"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "Roland MT-32 real (sem emulaēćo GM)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
#, fuzzy
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "Roland MT-32 real (desligar emulaēćo GM)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
msgstr ""
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "Nćo usar mśsica Roland MT-32"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "Texto e Voz:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "Voz"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "Legendas"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "Ambos"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "Rapidez legendas:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "Texto e Voz:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "Voz"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "Legs"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "Ambos"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "Mostrar legenda e vozes (dublagem)"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "Velocidade das legendas:"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "Volume da Mśsica:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "Volume da Mśsica:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "Mudo"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "Volume dos Sons:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "Volume dos efeitos sonoros especiais"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "Volume dos Sons:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "Volume da Voz:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "Volume da Voz:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr ""
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "Pasta do Tema"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "Pasta do Tema"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr ""
"Especifica a pasta para os dados adicionais usados por todos os jogos ou "
"ScummVM"
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "Pasta de Plugins:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "Pasta de Plugins:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "Outros"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "Tema:"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "Renderizador GUI:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "Auto-Salvar:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "Auto-Salvar:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "Teclas"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "Idioma do GUI:"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "Linguagem do ScummVM GUI"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr ""
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr ""
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr ""
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr ""
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr ""
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "Nome de usuįrio:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr ""
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr ""
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr ""
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
#, fuzzy
msgid "Download"
msgstr "Baixo"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr ""
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
#, fuzzy
msgid "Not running"
msgstr "Erro ao executar o jogo:"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
#, fuzzy
msgid "/root/ Path:"
msgstr "Pasta de Extras"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
#, fuzzy
msgid "Specifies which directory the Files Manager can access"
msgstr "Especifique onde guardar seus jogos salvos"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
#, fuzzy
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "Pasta de Extras"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
#, fuzzy
msgid "Server's port:"
msgstr "Servidor:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
msgstr ""
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Vocź tem que reiniciar o ScummVM para funcionar."
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr ""
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
#, fuzzy
msgid "Failed to change cloud storage!"
msgstr "Falha ao salvar o jogo"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr ""
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"O tema que vocź selecionou nćo suporta seu idioma atual. Se vocź quiser usar "
+"este tema vocź precisa mudar para outro idioma."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr "O diretório escolhido nćo pode ser usado. Por favor, selecione outro."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "Selecione a pasta para os temas da Interface de Uso Grįfico"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "Selecione a pasta para os arquivos extras"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "Selecione a pasta para os plugins"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
#, fuzzy
msgid "Select directory for Files Manager /root/"
msgstr "Selecione a pasta para os arquivos extras"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"O tema que vocź selecionou nćo suporta seu idioma atual. Se vocź quiser usar "
-"este tema vocź precisa mudar para outro idioma."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr ""
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr ""
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
#, fuzzy
msgid "<never>"
msgstr "Nunca"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
#, fuzzy
msgid "Stop server"
msgstr "Servidor:"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr ""
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1629,35 +1630,35 @@ msgstr ""
msgid "Clear value"
msgstr "Limpar valor"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "Esse programa nćo suporta o nķvel de debug '%s'"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "Menu"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "Pular"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "Pausar"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "Pula linha"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "Erro ao executar o jogo:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr ""
"Nćo foi possķvel encontrar qualquer programa capaz de rodar o jogo "
@@ -2039,11 +2040,11 @@ msgstr "Emulador FM Towns"
msgid "PC-98 Audio"
msgstr "Įudio"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "Inicializando Emulador MT-32"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "Emulador MT-32"
@@ -2059,34 +2060,34 @@ msgstr "Emulador IBM PCjr"
msgid "C64 Audio Emulator"
msgstr "Emulador Som C64"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
#, fuzzy
msgid "Saved games sync complete."
msgstr "Busca completa!"
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr ""
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
msgstr ""
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
"Failed to download %u files."
msgstr ""
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
#, fuzzy
msgid "Download complete."
msgstr "Busca completa!"
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
#, fuzzy
msgid "Download failed."
msgstr "Carregar jogo:"
@@ -2199,43 +2200,53 @@ msgstr ""
msgid "OpenGL"
msgstr "Abrir"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "Normal (sem escala)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "Modo janela"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normal (sem escala)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "Correēćo de proporēćo habilitada"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "Correēćo de proporēćo desabilitada"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
#, fuzzy
msgid "Filtering enabled"
msgstr "Clicando Habilitado"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
#, fuzzy
msgid "Filtering disabled"
msgstr "Clicando Desabilitado"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "Normal (sem escala)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normal (sem escala)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "Ativa os filtros grįficos"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "Modo janela"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "Mapa de Teclas:"
@@ -3160,6 +3171,39 @@ msgstr "~M~enu Principal ScummVM"
msgid "~W~ater Effect Enabled"
msgstr "Modo ~E~feitos de įgua ativado"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+
#: engines/mohawk/mohawk.cpp:61
#, fuzzy
msgid "The game is paused. Press any key to continue."
@@ -4291,6 +4335,9 @@ msgstr ""
msgid "Use MPEG video from the DVD version, instead of lower resolution AVI"
msgstr ""
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr "Vocź tem que reiniciar o ScummVM para funcionar."
+
#, fuzzy
#~ msgid "Specifies where Files Manager can access to"
#~ msgstr "Especifique onde guardar seus jogos salvos"
diff --git a/po/ru_RU.po b/po/ru_RU.po
index 8486dd4642..ba31a8f410 100644
--- a/po/ru_RU.po
+++ b/po/ru_RU.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.8.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
-"PO-Revision-Date: 2016-10-07 19:14+0300\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
+"PO-Revision-Date: 2016-11-06 01:04+0200\n"
"Last-Translator: Eugene Sandulenko <sev@scummvm.org>\n"
"Language-Team: Russian\n"
"Language: Russian\n"
@@ -18,6 +18,7 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Poedit 1.8.9\n"
+"X-Language-name: Russian\n"
#: gui/about.cpp:94
#, c-format
@@ -57,7 +58,7 @@ msgstr "²ŅÕąå"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -81,7 +82,7 @@ msgstr "²ėŃąŠāģ"
msgid "Select directory where to download game data"
msgstr "²ėŃÕąŲāÕ ŌŲąÕŚāŽąŲī ŌŪļ įŚŠēŲŅŠŻŲļ ŌŠŻŻėå ŲÓąė"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "²ėŃÕąŲāÕ ŌŲąÕŚāŽąŲī į äŠŁŪŠÜŲ ŲÓąė"
@@ -116,7 +117,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -128,7 +129,7 @@ msgstr "“Š"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -138,7 +139,7 @@ msgstr "“Š"
msgid "No"
msgstr "½Õā"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM ŻÕ ÜŽÖÕā ŽāŚąėāģ ćŚŠ×ŠŻŻćī ŌŲąÕŚāŽąŲī!"
@@ -151,8 +152,8 @@ msgstr ""
"įŽŌÕąÖŲā äŠŁŪ į āŠŚŲÜ ÖÕ ŲÜÕŻÕÜ."
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -236,8 +237,8 @@ msgid ""
msgstr ""
"Ļ×ėŚ ŲÓąė. ø×ÜÕŻÕŻŲÕ ķāŽŁ ŻŠįāąŽŁŚŲ ŻÕ ßąÕŅąŠāŲā ŲÓąć ŻŠ ŠŻÓŪŲŁįŚŽÜ Ņ ąćįįŚćī"
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<ߎ ćÜŽŪēŠŻŲī>"
@@ -260,11 +261,11 @@ msgstr "æŪŠā䎹܊:"
msgid "Engine"
msgstr "“ŅŲÖŽŚ"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "³ąŠäŲŚŠ"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "³ąä"
@@ -277,7 +278,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "æÕąÕŚąėāģ ÓŪŽŃŠŪģŻėÕ ćįāŠŻŽŅŚŲ ÓąŠäŲŚŲ"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "°ćŌŲŽ"
@@ -290,11 +291,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "æÕąÕŚąėāģ ÓŪŽŃŠŪģŻėÕ ćįāŠŻŽŅŚŲ ŠćŌŲŽ"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "³ąŽÜŚŽįāģ"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "³ąŽÜŚ"
@@ -308,7 +309,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "æÕąÕŚąėāģ ÓŪŽŃŠŪģŻėÕ ćįāŠŻŽŅŚŲ ÓąŽÜŚŽįāŲ"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -321,7 +322,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "æÕąÕŚąėāģ ÓŪŽŃŠŪģŻėÕ ćįāŠŻŽŅŚŲ MIDI"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -334,11 +335,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "æÕąÕŚąėāģ ÓŪŽŃŠŪģŻėÕ ćįāŠŻŽŅŚŲ MT-32"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "æćāŲ"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "æćāŲ"
@@ -352,7 +353,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "³ŌÕ ŲÓąŠ:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "“Žß. ßćāģ:"
@@ -361,56 +362,56 @@ msgstr "“Žß. ßćāģ:"
msgid "Specifies path to additional data used by the game"
msgstr "ĆŚŠ×ėŅŠÕā ßćāģ Ś ŌŽßŽŪŻŲāÕŪģŻėÜ äŠŁŪŠÜ ŌŠŻŻėå ŌŪļ ŲÓąė"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "“Žß. ßćāģ:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "ĮŽåąŠŻÕŻŲļ ŲÓą:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "ĆŚŠ×ėŅŠÕā ßćāģ Ś įŽåąŠŻÕŻŲļÜ ŲÓąė"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "æćāģ įŽåą:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "½Õ ×ŠŌŠŻ"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "æŽ ćÜŽŪēŠŻŲī"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "²ėŃÕąŲāÕ SoundFont"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "²ėŃÕąŲāÕ ŌŽßŽŪŻŲāÕŪģŻćī ŌŲąÕŚāŽąŲī ŲÓąė"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "²ėŃÕąŲāÕ ŌŲąÕŚāŽąŲī ŌŪļ įŽåąŠŻÕŻŲŁ"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
@@ -419,7 +420,7 @@ msgstr ""
"µįŪŲ Ņė åŽāŲāÕ, ēāŽŃė ŅŠčŲ įŽåąŠŻÕŻŲļ ŲÓą įŲŻåąŽŻŲ×ŲąŽŅŠŪŲįģ, ŲįߎŪģ×ćŁāÕ "
"ŌŲąÕŚāŽąŲī ߎ ćÜŽŪēŠŻŲī."
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "ĶāŽā ID ŲÓąė ćÖÕ ŲįߎŪģ×ćÕāįļ. æŽÖŠŪćŁįāŠ, ŅėŃÕąŲāÕ ŌąćÓŽŁ."
@@ -499,7 +500,7 @@ msgstr "ĮŲŻćįŽŲŌŠ"
msgid "Triangle"
msgstr "ĀąÕćÓŽŪģŻŠļ"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "ĄŠ×ŻŽÕ"
@@ -549,15 +550,15 @@ msgstr "·ŠŚąėāģ"
msgid "Mouse click"
msgstr "ŗŪŲŚ Üėčģī"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "æŽŚŠ×Šāģ ŚŪŠŅŲŠāćąć"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "æÕąÕŻŠ×ŻŠēŲāģ ŚŪŠŅŲčŲ"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "æÕąÕŚŪīēÕŻŲÕ ŻŠ ŅÕįģ ķŚąŠŻ"
@@ -591,110 +592,110 @@ msgstr "½ŠÖÜŲāÕ ŚŪŠŅŲčć ŌŪļ ŻŠ×ŻŠēÕŻŲļ"
msgid "Choose an action to map"
msgstr "²ėŃÕąŲāÕ ŌÕŁįāŅŲÕ ŌŪļ ŻŠ×ŻŠēÕŻŲļ"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~²~ėåŽŌ"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "·ŠŅÕąčŲāģ ScummVM"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "¾ ß~ą~ŽÓąŠÜÜÕ..."
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "¾ ßąŽÓąŠÜÜÕ ScummVM"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~½~ŠįāąŽŁŚŲ..."
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "ø×ÜÕŻŲāģ ÓŪŽŃŠŪģŻėÕ ŻŠįāąŽŁŚŲ ScummVM"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "æ~ć~įŚ"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "·ŠßćįāŲāģ ŅėŃąŠŻŻćī ŲÓąć"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~·~ŠÓąć×Ųāģ..."
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "·ŠÓąć×Ųāģ įŽåąŻÕŻŲÕ ŌŪļ ŅėŃąŠŻŻŽŁ ŲÓąė"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "~“~ŽŃŠŅŲāģ ŲÓąć..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr "ĆŌÕąÖŲŅŠŁāÕ ŚŪŠŅŲčć Shift, ēāŽŃė ŌŽŃŠŅŲāģ ŻÕįŚŽŪģŚŽ ŲÓą"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "½~Š~įāąŽŁŚŲ ŲÓąė..."
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "ø×ÜÕŻŲāģ ŻŠįāąŽŁŚŲ ŲÓąė"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "~Ć~ŌŠŪŲāģ ŲÓąć"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr "ĆŌŠŪŲāģ ŲÓąć Ų× įßŲįŚŠ. ½Õ ćŌŠŪļÕā ŲÓąć į ŻŽįŲāÕŪļ"
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "~“~ŽŃ. ŲÓąć..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "½~Š~į. ŲÓąė..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "~Ć~ŌŠŪŲāģ ŲÓąć"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "æŽŲįŚ Ņ įßŲįŚÕ ŲÓą"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "æŽŲįŚ:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "·ŠÓąć×Ųāģ ŲÓąć:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "·ŠÓąć×Ųāģ"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -702,41 +703,41 @@ msgstr ""
"²ė ŌÕŁįāŅŲāÕŪģŻŽ åŽāŲāÕ ×ŠßćįāŲāģ ŌÕāÕŚāŽą ŅįÕå ŲÓą? ĶāŽ ßŽāÕŻęŲŠŪģŻŽ ÜŽÖÕā "
"ŌŽŃŠŅŲāģ ŃŽŪģčŽÕ ŚŽŪŲēÕįāŅŽ ŲÓą."
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr ""
"ĶāŠ ŌŲąÕŚāŽąŲļ ßŽŚŠ ŻÕ ÜŽÖÕā Ńėāģ ŲįߎŪģ×ŽŅŠŻŠ. ² ŻÕń įÕŁēŠį ׊ӹćÖŠīāįļ "
"ŌŠŻŻėÕ!"
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "²ė ŌÕŁįāŅŲāÕŪģŻŽ åŽāŲāÕ ćŌŠŪŲāģ ŻŠįāąŽŁŚŲ ŌŪļ ķāŽŁ ŲÓąė?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr "²ė åŽāŲāÕ ×ŠÓąć×Ųāģ ŲÓąć?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr "ĶāŠ ŲÓąŠ ŻÕ ߎŌŌÕąÖŲŅŠÕā ׊ӹć׌ć įŽåąŠŻÕŻŲŁ ēÕąÕ× ÓŪŠŅŻŽÕ ÜÕŻī."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr "ScummVM ŻÕ įÜŽÓ ŻŠŁāŲ ŌŅŲÖŽŚ ŌŪļ ׊ßćįŚŠ ŅėŃąŠŻŻŽŁ ŲÓąė!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM ŻÕ ÜŽÖÕā ŻŠŁāŲ ŲÓąć Ņ ćŚŠ×ŠŻŻŽŁ ŌŲąÕŚāŽąŲŲ!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "²ėŃÕąŲāÕ ŲÓąć:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "¼ŻŽÓŽ ŲÓą..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr "·ŠßŲįģ..."
@@ -779,147 +780,145 @@ msgstr "æÕąÕŚŪīēŲāģįļ Ņ ŲÓąć"
msgid "Fast replay"
msgstr "±ėįāąŽÕ ŅŽįßąŽŲ×ŅÕŌÕŻŲÕ"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "½ŲŚŽÓŌŠ"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "ŚŠÖŌėÕ 5 ÜŲŻćā"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "ŚŠÖŌėÕ 10 ÜŲŻćā"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "ŚŠÖŌėÕ 15 ÜŲŻćā"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "ŚŠÖŌėÕ 30 ÜŲŻćā"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 ڳę"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 ڳę"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 ڳę"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 ڳę"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 ڳę"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "½Õ ×ŠŌŠŻ"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "½Õ ćŌŠŪŽįģ ßąŲÜÕŻŲāģ Ų×ÜÕŻÕŻŲļ ŻÕŚŽāŽąėå ÓąŠäŲēÕįŚŲå ŻŠįāąŽÕŚ:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "ŅŲŌÕŽąÕÖŲÜ ŻÕ ÜŽÖÕā Ńėāģ Ų×ÜÕŻńŻ."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "ąÕÖŲÜ ŚŽąąÕŚāŲąŽŅŚŲ įŽŽāŻŽčÕŻŲļ įāŽąŽŻ ŻÕ ÜŽÖÕā Ńėāģ Ų×ÜÕŻńŻ"
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "ßŽŪŻŽķŚąŠŻŻėŁ ąÕÖŲÜ ŻÕ ÜŽÖÕā Ńėāģ Ų×ÜÕŻńŻ"
-#: gui/options.cpp:462
-#, fuzzy
+#: gui/options.cpp:486
msgid "the filtering setting could not be changed"
-msgstr "ßŽŪŻŽķŚąŠŻŻėŁ ąÕÖŲÜ ŻÕ ÜŽÖÕā Ńėāģ Ų×ÜÕŻńŻ"
+msgstr "ąÕÖŲÜ ÜŠįčāŠŃŲąŽŅŠŻŲļ ŻÕ ÜŽÖÕā Ńėāģ Ų×ÜÕŻńŻ"
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "³ąŠä. ąÕÖŲÜ:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "ĄÕÖŲÜ ąŠįāąŠ:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "ĮßÕęŲŠŪģŻėÕ ąÕÖŲÜė ąÕŻŌÕąŲŻÓŠ, ߎŌŌÕąÖŲŅŠÕÜėÕ ŻÕŚŽāŽąėÜŲ ŲÓąŠÜŲ"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "æŽŪŻŽķŚąŠŻŻėŁ ąÕÖŲÜ"
-#: gui/options.cpp:811
-#, fuzzy
+#: gui/options.cpp:838
msgid "Filter graphics"
-msgstr "øįߎŪģ×ŽŅŠāģ ęŅÕāŻćī ÓąŠäŲŚć"
+msgstr "¼ŠįčāŠŃŲąŽŅŠāģ ÓąŠäŲŚć"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
-msgstr ""
+msgstr "øįߎŪģ×ŽŅŠāģ ŪŲŻÕŁŻŽÕ ÜŠįčāŠŃŲąŽŅŠŻŲļ ŌŪļ ćŅÕŪŲēÕŻŲļ ąŠ×ąÕčÕŻŲļ"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "ŗŽąąÕŚęŲļ įŽŽāŻŽčÕŻŲļ įāŽąŽŻ"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "ŗŽąąÕŚāŲąŽŅŠāģ įŽŽāŻŽčÕŻŲÕ įāŽąŽŻ ŌŪļ ŲÓą į ąŠ×ąÕčÕŻŲÕÜ 320x200"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "æąÕŌߎēŲāŠÕÜŽÕ:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "·ŅćŚŽŅŽÕ ćįā-ŅŽ:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr ""
"ĆŚŠ×ėŅŠÕā ßąÕŌߎēŲāŠÕÜŽÕ ×ŅćŚŽŅŽÕ ćįāąŽŁįāŅŽ ŲŪŲ ķÜćŪļāŽą ×ŅćŚŽŅŽŁ ŚŠąāė"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr "ĆŚŠ×ėŅŠÕā ŅėåŽŌŻŽÕ ×ŅćŚŽŅŽÕ ćįāąŽŁįāŅŽ ŲŪŲ ķÜćŪļāŽą ×ŅćŚŽŅŽŁ ŚŠąāė"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "æąÕŌߎēŲāŠÕÜŽÕ:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "·ŅćŚŽŅŽÕ ćįā-ŅŽ:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "ĶÜćŪļāŽą AdLib:"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "·ŅćŚŽŅŠļ ŚŠąāŠ AdLib ŲįߎŪģ×ćÕāįļ ÜŻŽÓŲÜŲ ŲÓąŠÜŲ"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "ĒŠįāŽāŠ ×Ņ挊:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -927,64 +926,64 @@ msgstr ""
"±¾ŪģčŲÕ ×ŻŠēÕŻŲļ ×ŠŌŠīā ŪćēčÕÕ ŚŠēÕįāŅŽ ×Ņ挊, ŽŌŻŠŚŽ ŽŻŲ ÜŽÓćā ŻÕ "
"ߎŌŌÕąÖŲŅŠāģįļ ŅŠčÕŁ ×ŅćŚŽŅŽŁ ŚŠąāŽŁ"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "ĆįāąŽŁįāŅŽ GM:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr "ĆŚŠ×ėŅŠÕā ŅėåŽŌŻŽÕ ×ŅćŚŽŅŽÕ ćįāąŽŁįāŅŽ ŌŪļ MIDI"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "½Õ ŲįߎŪģ×ŽŅŠāģ Üć×ėŚć ŌŪļ General MIDI"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "øįߎŪģ×ŽŅŠāģ ßÕąŅŽÕ ŌŽįāć߯ŽÕ ćįāąŽŁįāŅŽ"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr ""
"SoundFont'ė ߎŌŌÕąÖŲŅŠīāįļ ŻÕŚŽāŽąėÜŲ ×Ņ挎ŅėÜŲ ŚŠąāŠÜŲ, FluidSynth Ų "
"Timidity"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "ĮÜÕ芯ŻėŁ ąÕÖŲÜ AdLib/MIDI"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "øįߎŪģ×ŽŅŠāģ Ų MIDI, Ų AdLib ŌŪļ ÓÕŻÕąŠęŲŲ ×Ņ挊"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "ĆįŲŪÕŻŲÕ MIDI:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "Ćįāą. MT-32:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr ""
"ĆŚŠ×ėŅŠÕā ×ŅćŚŽŅŽÕ ćįāąŽŁįāŅŽ ߎ ćÜŽŪēŠŻŲī ŌŪļ ŅėŅŽŌŠ ŻŠ Roland MT-32/LAPC1/"
"CM32l/CM64"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "½ŠįāŽļéŲŁ Roland MT-32 (׊߹ÕāŲāģ ķÜćŪļęŲī GM)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -992,16 +991,16 @@ msgstr ""
"¾āÜÕāģāÕ, ÕįŪŲ ć ŅŠį ßŽŌŚŪīēÕŻŽ Roland-įŽŅÜÕįāŲÜŽÕ ×ŅćŚŽŅŽÕ ćįāąŽŁįāŅŽ Ų Ņė "
"åŽāŲāÕ ÕÓŽ ŲįߎŪģ×ŽŅŠāģ"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "½ŠįāŽļéŲŁ Roland MT-32 (ŃÕ× ķÜćŪļęŲŲ GM)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "ĆįāąŽŁįāŅŽ Roland GS (ąŠ×ąÕčŲāģ ÜŠßßŲŻÓ MT-32)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
@@ -1009,265 +1008,265 @@ msgstr ""
"¾āÜÕāģāÕ, ÕįŪŲ åŽāŲāÕ ąŠ×ąÕčŲāģ ÜŠßßŲŻÓ ŌŪļ ķÜćŪļęŲŲ MT-32 ŻŠ ćįāąŽŁįāŅÕ "
"Roland GS"
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "½Õ ŲįߎŪģ×ŽŅŠāģ Üć×ėŚć ŌŪļ MT-32"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "ĀÕŚįā Ų Ž×ŅćēŚŠ:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "¾×ŅćēŚŠ"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "ĮćŃāŲāąė"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "¾ŃŠ"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "ĮŚŽąŽįāģ āŲāąŽŅ:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "ĀÕŚįā Ų Ž×ŅćēŚŠ:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "¾×Ņ"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "ĮćŃ"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "¾ŃŠ"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "æŽŚŠ×ėŅŠāģ įćŃāŲāąė Ų ŅŽįßąŽŲ×ŅŽŌŲāģ ąÕēģ"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "ĮŚŽąŽįāģ āŲāąŽŅ:"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "³ąŽÜŚ. Üć×ėŚŲ:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "³ąŽÜŚ. Üć×ėŚŲ:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "²ėŚŪ. Ņįń"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "³ąŽÜŚŽįāģ SFX:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "³ąŽÜŚŽįāģ įßÕęŲŠŪģŻėå ×Ņ挎Ņėå ķääÕŚāŽŅ"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "³ąŽÜŚ. SFX:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "³ąŽÜŚ. Ž×ŅćēŚŲ:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "³ąŽÜŚ. Ž×ŅćēŚŲ:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "½ŠįāąŽŁŚŲ FluidSynth"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "æćāģ Ś āÕÜŠÜ:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "³ŌÕ āÕÜė:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr ""
"ĆŚŠ×ėŅŠÕā ßćāģ Ś ŌŽßŽŪŻŲāÕŪģŻėÜ äŠŁŪŠÜ ŌŠŻŻėå, ŲįߎŪģ×ćÕÜėå ŅįÕÜŲ ŲÓąŠÜŲ "
"ŪŲŃŽ ScummVM"
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "æćāģ Ś ßŪŠÓŲŻŠÜ:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "æćāģ Ś ßŪŠÓŲŻŠÜ:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "ĄŠ×ŻŽÕ"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "ĀÕÜŠ:"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "ĄŲįŽŅŠŪŚŠ GUI:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "°ŅāŽįŽåąŠŻÕŻŲÕ:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "°ŅāŽįŽåą.:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "ŗŪŠŅŲčŲ"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "Ļ×ėŚ GUI:"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "Ļ×ėŚ ÓąŠäŲēÕįŚŽÓŽ ŲŻāÕąäÕŁįŠ ScummVM"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr "æąŽŅÕąļāģ ŽŃŻŽŅŪÕŻŲļ:"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr "ŗŠŚ ēŠįāŽ ßąŽŅÕąļāģ ŽŃŻŽŅŪÕŻŲļ ScummVM"
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr "æąŽŅÕąŲāģ įÕŁēŠį"
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr "¾ŃŪŠŚŽ"
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr "¾ŃŪŠŚŽ"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr "¾ŃŪŠŚŽ:"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr "°ŚāŲŅŻŽÕ ŽŃŪŠēŻŽÕ åąŠŻŲŪŲéÕ"
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr "<ŻÕā>"
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "æŽŪģ×ŽŅŠāÕŪģ:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr "øÜļ ߎŪģ×ŽŅŠāÕŪļ Ņ ķāŽÜ ŽŃŪŠŚÕ"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr "øįߎŪģ×ćÕÜėŁ ŽŃźńÜ"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr "¾ŃźńÜ, ׊ŻŲÜŠÕÜėŁ įŽåąŠŻÕŻŲļÜŲ ŲÓą ScummVM ŻŠ ķāŽÜ ŽŃŪŠŚÕ"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr "æŽįŪÕŌŻļļ įŲŻåąŽŻŲ׊ęŲļ:"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr "ŗŽÓŌŠ ßąŽŲ×ŅŽŌŲŪŠįģ ߎįŪÕŌŻļļ įŲŻåąŽŻŲ׊ęŲļ į ķāŲÜ ŽŃŪŠŚŽÜ"
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr "æŽŌŚŪīēŲāģ"
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr "¾āŚąėŅŠÕā ŌŲŠŪŽÓ ŌŪļ ćįāŠŻŽŅŚŲ ßŽŌŚŪīēÕŻŲļ Ś ŽŃŪŠŚć"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr "¾ŃŻŽŅŲāģ"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr "¾ŃŻŽŅŪļÕā āÕŚćéćī ŲŻäŽąÜŠęŲī ŽŃ ŽŃŪŠŚÕ (ŲÜļ ߎŪģ×ŽŅŠāÕŪļ Ų ŽŃźńÜ)"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Download"
msgstr "·ŠÓąć×Ųāģ"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr "¾āŚąėŅŠÕā ÜÕŻÕŌÖÕą ׊ӹć׎Ś"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr "·ŠßćįāŲāģ įÕąŅÕą"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr "·ŠßćįŚŠÕā ŪŽŚŠŪģŻėŁ ŅÕŃ-įÕąŅÕą"
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
msgid "Not running"
msgstr "½Õ ׊ßćéÕŻ"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
msgid "/root/ Path:"
msgstr "ŗŽąŻÕŅŠļ ŌŲąÕŚāŽąŲļ:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
msgid "Specifies which directory the Files Manager can access"
msgstr "ĆŚŠ×ėŅŠÕā ßćāģ Ś ŌŲąÕŚāŽąŲŲ, ŚćŌŠ ŃćŌÕā ŲÜÕāģ ŌŽįāćß ¼ÕŻÕŌÖÕą äŠŁŪŽŅ"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "ŗŽąÕŻģ:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid "Server's port:"
msgstr "æŽąā įÕąŅÕąŠ:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
@@ -1275,68 +1274,68 @@ msgstr ""
"½ŽÜÕą ߎąāŠ, ŲįߎŪģ×ćÕÜėŁ įÕąŅÕąŽÜ\n"
"ĆįāŠŻŽŅŪÕŻŲÕ ŌŽįāćߊ ąŠŃŽāŠÕā āŽŪģŚŽ į ߎąāŽÜ ߎ ćÜŽŪēŠŻŲī"
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "²ė ŌŽŪÖŻė ßÕąÕ׊ßćįāŲāģ ScummVM, ēāŽŃė ßąŲÜÕŻŲāģ Ų×ÜÕŻÕŻŲļ."
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr "æąŲÜÕŻŲāģ"
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
msgid "Failed to change cloud storage!"
msgstr "½Õ ćŌŠŪŽįģ įÜÕŻŲāģ ŽŃŪŠŚŽ!"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr "ĆÖÕ ŠŚāŲŅŻŽ ŌąćÓŽÕ ŽŃŪŠēŻŽÕ åąŠŻŲŪŲéÕ."
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"ĀÕÜŠ, ŅėŃąŠŻŻŠļ ŅŠÜŲ, ŻÕ ߎŌŌÕąÖŲŅŠÕā āÕŚćéŲŁ ļ×ėŚ. µįŪŲ Ņė åŽāŲāÕ "
+"ŲįߎŪģ×ŽŅŠāģ ķāć āÕÜć, ŅŠÜ ŻÕŽŃåŽŌŲÜŽ įŻŠēŠŪŠ ßÕąÕŚŪīēŲāģįļ ŻŠ ŌąćÓŽŁ ļ×ėŚ."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr "½Õ ÜŽÓć ßŲįŠāģ Ņ ŅėŃąŠŻŻćī ŌŲąÕŚāŽąŲī. æŽÖŠŪćŁįāŠ, 挊ÖŲāÕ ŌąćÓćī."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "²ėŃÕąŲāÕ ŌŲąÕŚāŽąŲī ŌŪļ āÕÜ GUI"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "²ėŃÕąŲāÕ ŌŲąÕŚāŽąŲī į ŌŽßŽŪŻŲāÕŪģŻėÜŲ äŠŁŪŠÜŲ"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "²ėŃÕąŲāÕ ŌŲąÕŚāŽąŲī į ßŪŠÓŲŻŠÜŲ"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
msgid "Select directory for Files Manager /root/"
msgstr "²ėŃÕąŲāÕ ŌŲąÕŚāŽąŲī ŌŪļ ŚŽąŻļ Ņ ¼ÕŻÕŌÖÕąÕ äŠŁŪŽŅ"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"ĀÕÜŠ, ŅėŃąŠŻŻŠļ ŅŠÜŲ, ŻÕ ߎŌŌÕąÖŲŅŠÕā āÕŚćéŲŁ ļ×ėŚ. µįŪŲ Ņė åŽāŲāÕ "
-"ŲįߎŪģ×ŽŅŠāģ ķāć āÕÜć, ŅŠÜ ŻÕŽŃåŽŌŲÜŽ įŻŠēŠŪŠ ßÕąÕŚŪīēŲāģįļ ŻŠ ŌąćÓŽŁ ļ×ėŚ."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr "%llu ŃŠŁā"
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr "<įÕŁēŠį>"
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
msgid "<never>"
msgstr "<ŻŲŚŽÓŌŠ>"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
msgid "Stop server"
msgstr "¾įāŠŻŽŅŲāģ įÕąŅÕą"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr "¾įāŠŻŠŅŪŲŅŠÕā ŪŽŚŠŪģŻėŁ ŅÕŃ-įÕąŅÕą"
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1612,35 +1611,35 @@ msgstr "æąŽŌŽŪÖŲāģ"
msgid "Clear value"
msgstr "¾ēŲįāŲāģ ׯŠēÕŻŲÕ"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "“ŅŲÖŽŚ ŻÕ ߎŌŌÕąÖŲŅŠÕā 湎ŅÕŻģ ŽāŪŠŌŚŲ '%s'"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "¼ÕŻī"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "æąŽßćįāŲāģ"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "æŠć׊"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "æąŽßćįāŲāģ įāąŽŚć"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "¾čŲŃŚŠ ×ŠßćįŚŠ ŲÓąė:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr "½Õ ÜŽÓć ŻŠŁāŲ ŌŅŲÖŽŚ ŌŪļ ׊ßćįŚŠ ŅėŃąŠŻŻŽŁ ŲÓąė"
@@ -1880,9 +1879,8 @@ msgid "Could not apply fullscreen setting."
msgstr "½Õ ÜŽÓć ßąŲÜÕŻŲāģ ßŽŪŻŽķŚąŠŻŻėŁ ąÕÖŲÜ."
#: engines/engine.cpp:373
-#, fuzzy
msgid "Could not apply filtering setting."
-msgstr "½Õ ÜŽÓć ßąŲÜÕŻŲāģ ßŽŪŻŽķŚąŠŻŻėŁ ąÕÖŲÜ."
+msgstr "½Õ ÜŽÓć ßąŲÜÕŻŲāģ ŻŠįāąŽŁŚŲ ÜŠįčāŠŃŲąŽŅŠŻŲļ."
#: engines/engine.cpp:473
msgid ""
@@ -2018,11 +2016,11 @@ msgstr "°ćŌŲŽ FM-Towns"
msgid "PC-98 Audio"
msgstr "°ćŌŲŽ PC-98"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "½ŠįāąŠŲŅŠī ķÜćŪļāŽą MT-32"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "ĶÜćŪļāŽą MT-32"
@@ -2038,15 +2036,15 @@ msgstr "ĶÜćŪļāŽą IBM PCjr"
msgid "C64 Audio Emulator"
msgstr "ĶÜćŪļāŽą ×Ņ挊 C64"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
msgid "Saved games sync complete."
msgstr "ĮŲŻåąŽŻŲ׊ęŲļ įŽåąŠŻÕŻŲŁ ŲÓą ׊ŅÕąčÕŻŠ."
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr "ĮŲŻåąŽŻŲ׊ęŲļ įŽåąŠŻÕŻŲŁ ŲÓą ŃėŪŠ ßąÕąŅŠŻŠ."
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
@@ -2054,7 +2052,7 @@ msgstr ""
"¾čŲŃŚŠ įŲŻåąŽŻŲ׊ęŲŲ įŽåąŠŻÕŻŲŁ ŲÓą.\n"
"æąŽŅÕąģāÕ ŅŠčÕ įŽÕŌŲŻÕŻŲÕ į øŻāÕąŻÕāŽÜ."
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
@@ -2063,11 +2061,11 @@ msgstr ""
"·ŠÓąć×ŚŠ ×ŠŅÕąčÕŻŠ.\n"
"½Õ ćŌŠŪŽįģ ׊ӹć×Ųāģ %u äŠŁŪŽŅ."
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
msgid "Download complete."
msgstr "·ŠÓąć×ŚŠ ×ŠŅÕąčÕŻŠ."
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
msgid "Download failed."
msgstr "¾čŲŃŚŠ ×ŠÓąć׌Ų."
@@ -2176,43 +2174,51 @@ msgstr "æąŽŅÕŌŲāÕ āąÕÜļ ߊŪģęŠÜŲ ŻŠßąŠŅŽ ŌŪļ ßÕąÕŚŪīēÕŻŲļ."
msgid "OpenGL"
msgstr "OpenGL"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "±Õ× ćŅÕŪŲēÕŻŲļ"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "¾ŚŽŻŻėŁ ąÕÖŲÜ"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "±Õ× ćŅÕŪŲēÕŻŲļ"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr "ĄŠ×ąÕčÕŻŲÕ: %dx%d"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "ŗŽąąÕŚęŲļ įŽŽāŻŽčÕŻŲļ įāŽąŽŻ ŅŚŪīēÕŻŠ"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "ŗŽąąÕŚęŲļ įŽŽāŻŽčÕŻŲļ įāŽąŽŻ ŅėŚŪīēÕŻŠ"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
-#, fuzzy
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
msgid "Filtering enabled"
-msgstr "ÉÕŪēŚŲ ŅŚŪīēÕŻė"
+msgstr "¼ŠįčāŠŃŲąŽŅŠŻŲÕ ŅŚŪīēÕŻŽ"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
-#, fuzzy
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
msgid "Filtering disabled"
-msgstr "ÉÕŪēŚŲ ŅėŚŪīēÕŻė"
+msgstr "¼ŠįčāŠŃŲąŽŅŠŻŲÕ ŅėŚŪīēÕŻŽ"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "±Õ× ćŅÕŪŲēÕŻŲļ"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "±Õ× ćŅÕŪŲēÕŻŲļ"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "°ŚāŲŅŻėŁ ÓąŠäŲēÕįŚŲŁ äŲŪģāą:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "¾ŚŽŻŻėŁ ąÕÖŲÜ"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "ĀŠŃŪŲęŠ ŚŪŠŅŲč:"
@@ -3133,6 +3139,50 @@ msgstr "³ŪŠŅŻŽÕ ÜÕŻ~ī~"
msgid "~W~ater Effect Enabled"
msgstr "~Ķ~ääÕŚāė ŅŽŌė ŅŚŪīēÕŻė"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+"²ŠÜ ŻÕ åŅŠāŠÕā ŲįßŽŪŻŲÜŽÓŽ äŠŁŪŠ Riven. Windows-äŠŁŪ ŻŠ×ėŅŠÕāįļ 'riven.exe', "
+"ŪŲŃŽ 'rivendmo.exe'."
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+"øįߎŪģ×ŽŅŠŻŲÕ äŠŁŪŠ 'arcriven.z' āŠŚÖÕ ŌŽįāŠāŽēŻŽ. ŗąŽÜÕ āŽÓŽ, Ņė ÜŽÖÕāÕ "
+"ŲįߎŪģ×ŽŅŠāģ ŲįßŽŪŻŲÜėŁ äŠŁŪ ŌŪļ ¼ŠŚŠ 'Riven'."
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+"½Õ åŅŠāŠÕā äŠŁŪŠ 'extras.mhk'. ²ÜÕįāŽ ŻÕÓŽ ÜŽÖŻŽ ŲįߎŪģ×ŽŅŠāģ äŠŁŪ 'arcriven."
+"z'."
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+"øįįŪÕŌŽŅŠŻŲÕ ŌŠŪÕÕ ŌŠŻŻŽÓŽ ßŽŪŽÖÕŻļ ŅŽ×ÜŽÖŻŽ āŽŪģŚŽ Ņ ßŽŪŻŽŁ ŅÕąįŲŲ ŲÓąė."
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+"² ķāŽŁ āŽēŚÕ ŌÕÜŽ Riven ߎ߹ŽįŲŪŠ Ńė ŅŠį\n"
+"ŽāŚąėāģ ŃąŠć×Õą Ų ßÕąÕŁāŲ Ņ ÜŠÓŠ×ŲŻ Red Orb.\n"
+"ScummVM ŻÕ ćÜÕŻā ķāŽ ŌÕŪŠāģ, ŌŠ Ų ÜŠÓŠ×ŲŻ\n"
+"ŃŽŪģčÕ ŻÕ įćéÕįāŅćÕā."
+
#: engines/mohawk/mohawk.cpp:61
msgid "The game is paused. Press any key to continue."
msgstr "øÓąŠ ŽįāŠŻŽŅŪÕŻŠ. ½ŠÖÜŲāÕ ŪīŃćī ŚŻŽßŚć, ēāŽŃė ßąŽŌŽŪÖŲāģ."
@@ -4270,5 +4320,8 @@ msgstr ""
"øįߎŪģ×ŽŅŠāģ MPEG-ŅŲŌÕŽ Ų× DVD-ŅÕąįŲŲ ŅÜÕįāŽ ŅŲŌÕŽ ŻŲ׌ŽÓŽ ąŠ×ąÕčÕŻŲļ Ņ "
"䎹܊āÕ AVI"
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr "²ė ŌŽŪÖŻė ßÕąÕ׊ßćįāŲāģ ScummVM, ēāŽŃė ßąŲÜÕŻŲāģ Ų×ÜÕŻÕŻŲļ."
+
#~ msgid "OpenGL (No filtering)"
#~ msgstr "OpenGL (ŃÕ× äŲŪģāąŽŅ)"
diff --git a/po/scummvm.pot b/po/scummvm.pot
index 89c50f7197..58948420b0 100644
--- a/po/scummvm.pot
+++ b/po/scummvm.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.10.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -55,7 +55,7 @@ msgstr ""
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -79,7 +79,7 @@ msgstr ""
msgid "Select directory where to download game data"
msgstr ""
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr ""
@@ -112,7 +112,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -124,7 +124,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -134,7 +134,7 @@ msgstr ""
msgid "No"
msgstr ""
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr ""
@@ -145,8 +145,8 @@ msgid ""
msgstr ""
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -225,8 +225,8 @@ msgid ""
"English"
msgstr ""
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr ""
@@ -249,11 +249,11 @@ msgstr ""
msgid "Engine"
msgstr ""
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr ""
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr ""
@@ -266,7 +266,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr ""
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr ""
@@ -279,11 +279,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr ""
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr ""
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr ""
@@ -297,7 +297,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr ""
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr ""
@@ -310,7 +310,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr ""
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr ""
@@ -323,11 +323,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr ""
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr ""
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr ""
@@ -341,7 +341,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr ""
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr ""
@@ -350,62 +350,62 @@ msgstr ""
msgid "Specifies path to additional data used by the game"
msgstr ""
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr ""
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr ""
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr ""
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr ""
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr ""
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr ""
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr ""
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr ""
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr ""
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
msgstr ""
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr ""
@@ -485,7 +485,7 @@ msgstr ""
msgid "Triangle"
msgstr ""
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr ""
@@ -533,15 +533,15 @@ msgstr ""
msgid "Mouse click"
msgstr ""
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr ""
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr ""
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr ""
@@ -575,148 +575,148 @@ msgstr ""
msgid "Choose an action to map"
msgstr ""
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr ""
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr ""
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr ""
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr ""
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr ""
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr ""
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr ""
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr ""
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr ""
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr ""
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr ""
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr ""
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr ""
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr ""
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr ""
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr ""
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr ""
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr ""
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr ""
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr ""
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr ""
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr ""
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr ""
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
msgstr ""
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr ""
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr ""
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr ""
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr ""
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr ""
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr ""
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr ""
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr ""
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr ""
@@ -759,545 +759,545 @@ msgstr ""
msgid "Fast replay"
msgstr ""
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr ""
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr ""
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr ""
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr ""
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr ""
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr ""
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr ""
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr ""
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr ""
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr ""
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr ""
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr ""
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr ""
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr ""
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr ""
-#: gui/options.cpp:462
+#: gui/options.cpp:486
msgid "the filtering setting could not be changed"
msgstr ""
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr ""
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr ""
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr ""
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr ""
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Filter graphics"
msgstr ""
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr ""
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr ""
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr ""
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr ""
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr ""
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr ""
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr ""
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr ""
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr ""
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr ""
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr ""
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr ""
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
msgstr ""
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr ""
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr ""
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr ""
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr ""
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr ""
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr ""
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr ""
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr ""
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr ""
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr ""
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr ""
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr ""
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr ""
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
msgstr ""
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr ""
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr ""
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
msgstr ""
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr ""
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr ""
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr ""
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr ""
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr ""
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr ""
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr ""
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr ""
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr ""
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr ""
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr ""
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr ""
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr ""
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr ""
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr ""
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr ""
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr ""
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr ""
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr ""
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr ""
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr ""
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr ""
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr ""
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr ""
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr ""
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr ""
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr ""
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr ""
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr ""
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr ""
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr ""
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr ""
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr ""
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr ""
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr ""
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr ""
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr ""
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr ""
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr ""
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr ""
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr ""
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr ""
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr ""
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Download"
msgstr ""
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr ""
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
msgid "Not running"
msgstr ""
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
msgid "/root/ Path:"
msgstr ""
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
msgid "Specifies which directory the Files Manager can access"
msgstr ""
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
msgctxt "lowres"
msgid "/root/ Path:"
msgstr ""
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid "Server's port:"
msgstr ""
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
msgstr ""
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
+#: gui/options.cpp:1462
+msgid "Apply"
msgstr ""
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
msgid "Failed to change cloud storage!"
msgstr ""
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr ""
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr ""
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr ""
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr ""
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr ""
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
msgid "Select directory for Files Manager /root/"
msgstr ""
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr ""
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr ""
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
msgid "<never>"
msgstr ""
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
msgid "Stop server"
msgstr ""
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr ""
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1565,35 +1565,35 @@ msgstr ""
msgid "Clear value"
msgstr ""
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr ""
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr ""
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr ""
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr ""
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr ""
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr ""
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr ""
@@ -1938,11 +1938,11 @@ msgstr ""
msgid "PC-98 Audio"
msgstr ""
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr ""
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr ""
@@ -1958,32 +1958,32 @@ msgstr ""
msgid "C64 Audio Emulator"
msgstr ""
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
msgid "Saved games sync complete."
msgstr ""
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr ""
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
msgstr ""
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
"Failed to download %u files."
msgstr ""
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
msgid "Download complete."
msgstr ""
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
msgid "Download failed."
msgstr ""
@@ -2092,39 +2092,49 @@ msgstr ""
msgid "OpenGL"
msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
msgid "Filtering enabled"
msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
msgid "Filtering disabled"
msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
-msgid "Active graphics filter:"
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr ""
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
+msgid "Active graphics filter:"
msgstr ""
#: backends/keymapper/remap-dialog.cpp:48
@@ -3001,6 +3011,39 @@ msgstr ""
msgid "~W~ater Effect Enabled"
msgstr ""
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+
#: engines/mohawk/mohawk.cpp:61
msgid "The game is paused. Press any key to continue."
msgstr ""
diff --git a/po/sv_SE.po b/po/sv_SE.po
index 459abc5572..cf3abd7217 100644
--- a/po/sv_SE.po
+++ b/po/sv_SE.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.5.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
"PO-Revision-Date: 2016-10-06 19:01+0200\n"
"Last-Translator: Hampus Flink <hampus.flink@gmail.com>\n"
"Language-Team: \n"
@@ -18,6 +18,7 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SourceCharset: iso-8859-1\n"
"X-Generator: Poedit 1.8.9\n"
+"X-Language-name: Svenska\n"
#: gui/about.cpp:94
#, c-format
@@ -57,7 +58,7 @@ msgstr "Uppåt"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -81,7 +82,7 @@ msgstr "Välj"
msgid "Select directory where to download game data"
msgstr "Välj katalogen där du vill ladda ner speldata"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "Välj katalog med speldata"
@@ -116,7 +117,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -128,7 +129,7 @@ msgstr "Ja"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -138,7 +139,7 @@ msgstr "Ja"
msgid "No"
msgstr "Nej"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM kunde inte öppna den valda katalogen!"
@@ -151,8 +152,8 @@ msgstr ""
"fil med samma namn."
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -237,8 +238,8 @@ msgstr ""
"Spelets språk. Den här inställningen omvandlar inte din spanska spelversion "
"till en engelsk"
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<standard>"
@@ -261,11 +262,11 @@ msgstr "Plattform:"
msgid "Engine"
msgstr "Motor"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "Grafik"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "GFX"
@@ -278,7 +279,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "Överskrid globala grafikinställningar"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "Ljud"
@@ -291,11 +292,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "Överskrid globala ljudinställningar"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "Volym"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "Volym"
@@ -309,7 +310,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "Överskrid globala volyminställningar"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -322,7 +323,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "Överskrid globala MIDI-inställningar"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -335,11 +336,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "Överskrid globala MT-32 inställningar"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "Sökvägar"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "Sökvägar"
@@ -353,7 +354,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "Sökv. spel:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "Sökv. extra:"
@@ -362,56 +363,56 @@ msgstr "Sökv. extra:"
msgid "Specifies path to additional data used by the game"
msgstr "Bestämmer sökvägen till ytterligare data som spelet använder"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "Sökv. extra:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "Sökv. sparat:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "Bestämmer var dina spardata lagras"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "Sökv. sparat:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "Ingen"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "Standard"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "Välj SoundFont"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "Välj en ytterligare spelkatalog"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "Välj katalog för spardata"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
@@ -419,7 +420,7 @@ msgstr ""
"Synkfunktionen för sparade data fungerar endast med standardkataloger. Om du "
"vill synka dina sparade data måste du använda standardkatalogen."
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "Detta ID-namn är upptaget. Var god välj ett annat."
@@ -499,7 +500,7 @@ msgstr "Sinus"
msgid "Triangle"
msgstr "Triangel"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "Diverse"
@@ -550,15 +551,15 @@ msgstr "Stäng"
msgid "Mouse click"
msgstr "Musklick"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "Visa tangentbord"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "Ställ in tangenter"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "Fullskärmsläge"
@@ -592,110 +593,110 @@ msgstr "Tryck på en tangent för att ställa in"
msgid "Choose an action to map"
msgstr "Välj en handling att ställa in"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~A~vsluta"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "Avsluta ScummVM"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "O~m~..."
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "Om ScummVM"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~I~nställningar..."
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "Redigera globala ScummVM-inställningar"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "~S~tarta"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "Starta det valda spelet"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~L~adda..."
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "Ladda spardata för det valda spelet"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "Lä~g~g till spel..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr "Håll ned Skift för masstillägg"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "R~e~digera spel..."
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "Redigera spelinställningarna"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "~R~adera spel"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr "Radera spelet från listan. Spelets datafiler påverkas inte."
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "Lä~g~g till spel..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "R~e~digera spel..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "~R~adera spel"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "Sök i spellistan"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "Sök:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "Ladda spel:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "Ladda"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -703,41 +704,41 @@ msgstr ""
"Vill du verkligen använda mass-speldetektorn? Processen kan potentiellt "
"lägga till ett enormt antal spel."
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr ""
"Den här katalogen kan inte användas än, eftersom något laddas ner i den!"
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "Vill du verkligen radera den här spelkonfigurationen?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr "Vill du ladda sparat spel?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr "Det här spelet stöder inte laddning av spardata från launchern."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr ""
"ScummVM kunde inte hitta en motor kapabel till att köra det valda spelet!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM kunde inte hitta några spel i den valda katalogen!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "Välj spel:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "Masstillägg..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr "Spela in..."
@@ -780,146 +781,146 @@ msgstr "Växla till spelet"
msgid "Fast replay"
msgstr "Snabb uppspelning"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "Aldrig"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "var 5:e minut"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "var 10:e minut"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "var 15:e minut"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "var 30:e minut"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "Ingen"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "Kunde inte verkställa några av grafikinställningarna:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "videoläget kunde inte ändras."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "inställningen för bildförhållandet kunde inte ändras."
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "fullskärmsinställningen kunde inte ändras."
-#: gui/options.cpp:462
+#: gui/options.cpp:486
#, fuzzy
msgid "the filtering setting could not be changed"
msgstr "fullskärmsinställningen kunde inte ändras."
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "Grafikläge:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "Renderingsläge:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "Speciella gitterlägen stödda av vissa spel"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "Fullskärmsläge"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
#, fuzzy
msgid "Filter graphics"
msgstr "Använd färggrafik"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr ""
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "Korrektion av bildförhållande"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "Korrigerar bildförhållanden för 320x200-spel"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "Föredragen enhet:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "Musikenhet:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr "Bestämmer din föredragna emulator för ljudenhet eller ljudkort"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr "Bestämmer emulator för ljudenhet eller ljudkort"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "Föredr. enhet:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "Musikenhet:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "AdLib-emulator:"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "AdLib används för musik i många spel"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "Ljudfrekvens:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -927,61 +928,61 @@ msgstr ""
"Ett högre värde betecknar bättre ljudkvalitet men stöds kanske inte av ditt "
"ljudkort"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "GM-enhet:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr "Bestämmer standardenheten för General MIDI-uppspelning"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "Använd inte General MIDI-musik"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "Använd första tillgängliga enhet"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr "SoundFont stöds endast av vissa ljudkort, FluidSynth och Timidity"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "Blandat AdLib/MIDI-läge"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "Använd både MIDI och AdLib för ljudgeneration"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "MIDI gain:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "MT-32 enhet:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr ""
"Bestämmer standardenheten för Roland MT-32/LAPC1/CM32I/CM64-uppspelning"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "Äkta Roland MT-32 (inaktivera GM-emulation)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -989,16 +990,16 @@ msgstr ""
"Aktivera om du vill använda din verkliga Roland-kompatibla och dator-"
"anslutna ljudenhet"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "Äkta Roland MT-32 (ingen GM-emulation)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "Roland GS-enhet (aktivera MT-32 mappings)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
@@ -1006,265 +1007,265 @@ msgstr ""
"Aktivera om du vill använda patch mapping för att emulera en MT-32 på en "
"Roland GS-enhet"
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "Använd inte Roland MT-32 musik"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "Undertext och tal:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "Tal"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "Undertexter"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "Båda"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "Texthastighet:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "Text och tal:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "Tal"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "Text"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "Båda"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "Visa undertexter och spela upp tal"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "Texthastighet:"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "Musikvolym:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "Musikvolym:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "Ljud av"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "SFX-volym:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "Volym för specialeffekter"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "SFX-volym:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "Talvolym:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "Talvolym:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "FluidSynth inställningar"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "Sökv. tema:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "Sökv. tema:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr ""
"Bestämmer sökväg till andra data som används av alla spel eller ScummVM"
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "Sökv. tillägg:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "Sökv. tillägg:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "Diverse"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "Tema:"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "GUI-rendering:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "Autospara:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "Autospara:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "Tangenter"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "GUI-språk:"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "Språk för ScummVM:s användargränssnitt"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr "Uppdateringskoll:"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr "Hur ofta ScummVM kollar efter uppdateringar"
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr "Kolla nu"
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr "Moln"
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr "Moln"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr "Lager:"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr "Aktivera molnlagring"
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr "<ingen>"
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "Anv. namn:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr "Användarnamn som används av detta lager"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr "Utnyttjat utrymme:"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr "Utrymme som används av ScummVM:s sparade data på det här lagret"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr "Senast synkad:"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr "När sparade data synkades senast för det här lagret"
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr "Anslut"
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr "Öppna anslutningsguiden för att ansluta ditt molnlagerkonto"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr "Uppdatera"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr ""
"Uppdaterar informationen om aktuellt molnlager (användarnamn och användning)"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Download"
msgstr "Nedladdning"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr "Öppna fönstret för nedladdningshantering"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr "Starta server"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr "Starta lokal webbserver"
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
msgid "Not running"
msgstr "Ej aktiv"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
msgid "/root/ Path:"
msgstr "/root/-sökväg:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
msgid "Specifies which directory the Files Manager can access"
msgstr "Bestämmer vilken katalog filhanteraren har åtkomst till"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "/root/-sökväg:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid "Server's port:"
msgstr "Serverport:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
@@ -1272,69 +1273,69 @@ msgstr ""
"Vilken port används av servern\n"
"Serverautorisering är endast tillgänglig med standardporten"
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Du måste starta om ScummVM för att ändringarna ska få effekt."
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr ""
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
msgid "Failed to change cloud storage!"
msgstr "Kunde inte ändra molnlager!"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr "Ett annat molnlager är redan aktivt."
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Temat du valde stöder inte ditt språk. Om du vill använda det här temat "
+"måste först byta till ett annat språk."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr ""
"Det går inte att skriva till den valda katalogen. Var god välj en annan."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "Välj katalog för GUI-teman"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "Välj katalog för extra filer"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "Välj katalog för tillägg"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
msgid "Select directory for Files Manager /root/"
msgstr "Välj katalog för filhanterarens /root/"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Temat du valde stöder inte ditt språk. Om du vill använda det här temat "
-"måste först byta till ett annat språk."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr "%llu bytes"
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr "<nu direkt>"
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
msgid "<never>"
msgstr "<aldrig>"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
msgid "Stop server"
msgstr "Stoppa server"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr "Stoppa lokal webbserver"
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1611,35 +1612,35 @@ msgstr "Fortsätt"
msgid "Clear value"
msgstr "Töm sökfältet"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "Motorn stöder inte debug-nivå '%s'"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "Meny"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "Skippa"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "Paus"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "Skippa rad"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "Fel under körning av spel:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr "Kunde inte hitta en motor kapabel till att köra det valda spelet"
@@ -2014,11 +2015,11 @@ msgstr "FM Towns-ljud"
msgid "PC-98 Audio"
msgstr "PC-98 ljud"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "Initialiserar MT-32 emulator"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "MT-32 emulator"
@@ -2034,15 +2035,15 @@ msgstr "IBM PCjr-emulator"
msgid "C64 Audio Emulator"
msgstr "C64 ljudemulator"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
msgid "Saved games sync complete."
msgstr "Synkningen av sparade speldata är färdig."
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr "Synkningen av sparade speldata avbröts."
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
@@ -2050,18 +2051,18 @@ msgstr ""
"Synkningen av sparade speldata misslyckades. Kontrollera din "
"internetanslutning."
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
"Failed to download %u files."
msgstr "Nedladdningen är färdig. Kunde inte ladda ner %u filer."
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
msgid "Download complete."
msgstr "Nedladdning färdig!"
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
msgid "Download failed."
msgstr "Nedladdningen misslyckades."
@@ -2170,43 +2171,53 @@ msgstr "Svep åt höger med tre fingrar för att byta läge."
msgid "OpenGL"
msgstr "OpenGL"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "Normalt (ingen skalning)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "Fönsterläge"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normalt (ingen skalning)"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "Korrektion av bildförhållande på"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "Korrektion av bildförhållande av"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
#, fuzzy
msgid "Filtering enabled"
msgstr "Klickning aktiverad"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
#, fuzzy
msgid "Filtering disabled"
msgstr "Klickning deaktiverad"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "Normalt (ingen skalning)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normalt (ingen skalning)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "Aktivt grafikfilter:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "Fönsterläge"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "Tangenter:"
@@ -3128,6 +3139,39 @@ msgstr "Huvud~m~eny"
msgid "~W~ater Effect Enabled"
msgstr "~V~atteneffekt aktiverad"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+
#: engines/mohawk/mohawk.cpp:61
msgid "The game is paused. Press any key to continue."
msgstr "Spelet pausat. Tryck på valfri tangent för att fortsätta."
@@ -4251,6 +4295,9 @@ msgid "Use MPEG video from the DVD version, instead of lower resolution AVI"
msgstr ""
"Använd högupplöst MPEG-video från DVD-versionen istället för lågupplöst AVI"
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr "Du måste starta om ScummVM för att ändringarna ska få effekt."
+
#~ msgid "OpenGL (No filtering)"
#~ msgstr "OpenGL (ingen filtrering)"
diff --git a/po/uk_UA.po b/po/uk_UA.po
index c8b108bdb2..720ced64cd 100644
--- a/po/uk_UA.po
+++ b/po/uk_UA.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.9.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
-"PO-Revision-Date: 2016-09-17 22:36+0200\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
+"PO-Revision-Date: 2016-11-06 01:03+0200\n"
"Last-Translator: Eugene Sandulenko <sev@scummvm.org>\n"
"Language-Team: Ukrainian\n"
"Language: Ukrainian\n"
@@ -18,6 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Language-name: Ukrainian\n"
#: gui/about.cpp:94
#, c-format
@@ -57,7 +58,7 @@ msgstr "²ÓŽąć"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -81,7 +82,7 @@ msgstr "²ŲŃąŠāŲ"
msgid "Select directory where to download game data"
msgstr "²ŲŃÕąöāģ ßŠßŚć ŚćŌŲ ×ŠŅŠŻāŠÖćŅŠāŲ äŠŁŪŲ ÓąŲ"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "²ŲŃÕąöāģ ߊߌć × äŠŁŪŠÜŲ ÓąŲ"
@@ -116,7 +117,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -128,7 +129,7 @@ msgstr "ĀŠŚ"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -138,7 +139,7 @@ msgstr "ĀŠŚ"
msgid "No"
msgstr "½ö"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM ŻÕ ÜŽÖÕ ŅöŌŚąŲāŲ ŅŚŠ×ŠŻć ߊߌć!"
@@ -151,8 +152,8 @@ msgstr ""
"ŻŠ×ŅŽī."
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -237,8 +238,8 @@ msgstr ""
"¼ŽŅŠ ÓąŲ. ·ÜöŻŠ ęģŽÓŽ ŻŠŪŠčāćŅŠŻŻļ ŻÕ ßÕąÕāŅŽąŲāģ Óąć ŠŻÓŪöŁįģŚŽī ŻŠ "
"挹Š÷ŻįģŚć"
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<׊ ćÜŽŅēŠŻŻļÜ>"
@@ -261,11 +262,11 @@ msgstr "æŪŠā䎹܊:"
msgid "Engine"
msgstr "“ŅŲÖŽŚ"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "³ąŠäöŚŠ"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "³ąä"
@@ -278,7 +279,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "æÕąÕŚąŲāŲ ÓŪŽŃŠŪģŻö ŻŠŪŠčāćŅŠŻŻļ ÓąŠäöŚŲ"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "°ćŌöŽ"
@@ -291,11 +292,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "æÕąÕŚąŲāŲ ÓŪŽŃŠŪģŻö ŻŠŪŠčāćŅŠŻŻļ ŠćŌöŽ"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "³ćēŻöįāģ"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "³ćēŻ."
@@ -309,7 +310,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "æÕąÕŚąŲāŲ ÓŪŽŃŠŪģŻö ŻŠŪŠčāćŅŠŻŻļ ÓćēŻŽįāö"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -322,7 +323,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "æÕąÕŚąŲāŲ ÓŪŽŃŠŪģŻö ŻŠŠčāćŅŠŻŻļ MIDI"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -335,11 +336,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "æÕąÕŚąŲāŲ ÓŪŽŃŠŪģŻö ŻŠŪŠčāćŅŠŻŻļ MT-32"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "ČŪļåŲ"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "ČŪļåŲ"
@@ -353,7 +354,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "ČŪļå ŌŽ ÓąŲ:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "“ŽŌŠāŚ. čŪļå:"
@@ -362,56 +363,56 @@ msgstr "“ŽŌŠāŚ. čŪļå:"
msgid "Specifies path to additional data used by the game"
msgstr "²ŚŠ×ćō čŪļå ŌŽ ŌŽŌŠāŚŽŅŲå 䊣ŪöŅ ŌŠŻŲå ŌŪļ ÓąŲ"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "“ŽŌ. čŪļå:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "ČŪļå ×ŃÕą.:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "²ŚŠ×ćō čŪļå ŌŽ ×ŃÕąÕÖÕŻŲå įāŠŻöŅ öÓŽą"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "ČŪļå ×ŃÕą.:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "½Õ ׊ŅŌŠŻŲŁ"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "·Š ćÜŽŅēŠŻŻļÜ"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "²ŲŃÕąöāģ SoundFont"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "²ŲŃÕąöāģ ŌŽŌŠāŚŽŅć ߊߌć ÓąŲ"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "²ŲŃÕąöāģ ߊߌć ŌŪļ ×ŃÕąÕÖÕŻŲå įāŠŻöŅ öÓŽą"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
@@ -419,7 +420,7 @@ msgstr ""
"·ŠßŲį įāŠŻöŅ öÓŽą ßąŠęīō āöŪģŚŲ × ßŠßŚŽī ׊ ׊܎ŅēÕŻŻļÜ. ĻŚéŽ ŅŲ åŽēÕāÕ, éŽŃ "
"ŅŠčö įāŠŻŲ öÓą įŲŻåąŽŻö×ćŅŠŪŲįļ, ŅŲŚŽąŲįāŽŅćŁāÕ ßŠßŚć ׊ ׊܎ŅēÕŻŻļÜ."
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "ĘÕŁ ID ÓąŲ ŅÖÕ ŅŲŚŽąŲįāŽŅćōāģįļ. ±ćŌģ ŪŠįŚŠ, ŅŲŃÕąöāģ öŻčŲŁ."
@@ -499,7 +500,7 @@ msgstr "ĮŲŻćįŽ÷ŌŠ"
msgid "Triangle"
msgstr "ĀąŲŚćāŻŲŚ"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "ĄöׯÕ"
@@ -549,15 +550,15 @@ msgstr "·ŠŚąŲāŲ"
msgid "Mouse click"
msgstr "ŗŪöŚ ÜŲ茎ī"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "æŽŚŠ×ŠāŲ ŚŪŠŅöŠāćąć"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "æÕąÕßąŲׯŠēŲāŲ ŚŪŠŅöčö"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "æÕąÕÜŚŻćāŲ ßŽŅŻŽÕŚąŠŻŻŲŁ ąÕÖŲÜ"
@@ -591,110 +592,110 @@ msgstr "½ŠāŲįŻöāģ ŚŪŠŅöčć ŌŪļ ßąŲׯŠēÕŻŻļ"
msgid "Choose an action to map"
msgstr "²ŲŃÕąöāģ Ōöī ŌŪļ ßąŲׯŠēÕŻŻļ"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~²~ŲåöŌ"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "²ŲåöŌ ×ö ScummVM"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "æąŽ ß~ą~ŽÓąŠÜć..."
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "æąŽ ScummVM"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~½~ŠŪŠčāćŅŠŻŻļ"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "·ÜöŻŲāŲ ÓŪŽŃŠŪģŻö ŻŠŪŠčāćŅŠŻŻļ ScummVM"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "·~Š~ßćįŚ"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "·ŠßćįāŲāŲ ŅŲŃąŠŻć Óąć"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~·~ŠŅŠŻāŠÖŲāŲ..."
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "·ŠŅŠŻāŠÖŲāŲ ×ŃÕąÕÖÕŻŲŁ įāŠŻ ŌŪļ ŅŲŃąŠŻŽ÷ ÓąŲ"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "~“~ŽŌŠāŲ Óąć..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr "ĆāąŲÜćŁāÕ ŚŪŠŅöčć Shift ŌŪļ āŽÓŽ, éŽŃ ŌŽŌŠāŲ ŌÕŚöŪģŚŠ öÓŽą"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "ĄÕŌŠ~Ó~ćŅŠāŲ Óąć"
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "·ÜöŻŲāŲ ŻŠŪŠčāćŅŠŻŻļ ÓąŲ"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "~²~ŲŌŠŪŲāŲ Óąć"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr "²ŲŌŠŪŲāŲ Óąć ×ö įßŲįŚć. ½Õ ŅŲŌŠŪļō Óąć × ÖŽąįāŚŽÓŽ ŌŲįŚć"
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "~“~ŽŌŠāŲ Óąć..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "ĄÕŌŠ~Ó~. Óąć..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "~²~ŲŌŠŪŲāŲ Óąć"
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "æŽčćŚ ć įßŲįŚć öÓŽą"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "æŽčćŚ:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "·ŠŅŠŻāŠÖŲāŲ Óąć:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "·ŠŅŠŻāŠÖŲāŲ"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -702,40 +703,40 @@ msgstr ""
"ĒŲ ŅŲ ŌöŁįŻŽ åŽēÕāÕ ×ŠßćįāŲāŲ ßŽčćŚ ćįöå öÓŽą? ĘÕ ßŽāÕŻęöŁŻŽ ÜŽÖÕ ŌŽŌŠāŲ "
"ŅÕŪŲŚć ŚöŪģŚöįāģ öÓŽą."
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr "Ęī ߊߌć éÕ ŻÕ ÜŽÖŻŠ ŅŲŚŽąŲįāŽŅćŅŠāŲ, Ņ ŻÕ÷ öŌÕ ×ŠŅŠŻāŠÖÕŻŻļ!"
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "²Ų ŌöŁįŻŽ åŽēÕāÕ ŅŲŌŠŪŲāŲ ŻŠŪŠčāćŅŠŻŻļ ŌŪļ ęöō÷ ÓąŲ?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr "²Ų åŽēÕāÕ ×ŠŅŠŻāŠÖŲāŲ ×ŃÕąÕÖÕŻŲŁ įāŠŻ ÓąŲ?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr ""
"Ęļ ÓąŠ ŻÕ ßöŌāąŲÜćō ×ŠŅŠŻāŠÖÕŻŻļ ×ŃÕąÕÖÕŻŲå įāŠŻöŅ öÓŽą ēÕąÕ× ÓŽŪŽŅŻÕ ÜÕŻī."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr "ScummVM ŻÕ ×ÜöÓ ×ŻŠŁāŲ ŌŅŲÖŽŚ ŌŪļ ׊ßćįŚć ŅŲŃąŠŻŽ÷ ÓąŲ!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM ŻÕ ÜŽÖÕ ×ŻŠŁāŲ Óąć ć ŅŚŠ×ŠŻöŁ ßŠßęö!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "²ŲŃÕąöāģ Óąć:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "“ŽŌ. ŃŠÓŠāŽ..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr "·ŠßŲį..."
@@ -778,146 +779,144 @@ msgstr "æÕąÕŚŪīēŲāŲįļ ŻŠ Óąć"
msgid "Fast replay"
msgstr "ČŅŲŌŚÕ ŅöŌāŅŽąÕŻŻļ"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "½öŚŽŪŲ"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "ŚŽÖŻö 5 åŅ"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "ŚŽÖŻö 10 åŅ"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "ŚŽÖŻö 15 åŅ"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "ŚŽÖŻö 30 åŅ"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 ڳę"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 ڳę"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 ڳę"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 ڳę"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 ڳę"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "½Õ ×ŠŌŠŻŲŁ"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "½Õ ŅŌŠŪŽįļ ׊įāŽįćŅŠāŲ ŌÕļŚö ×ö ×ÜöŻ ÓąŠäöēŻŲå ŻŠŪŠčāćŅŠŻģ:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "ŻÕ ŅŌŠŪŽįļ ×ÜöŻŲāŲ ÓąŠäöēŻŲŁ ąÕÖŲÜ."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "ŻÕ ŅŌŠŪŽįļ ×ÜöŻŲāŲ ąÕÖŲÜ ŚŽąÕŚęö÷ įßöŅŅöŌŻŽčÕŻŻļ įāŽąöŻ"
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "ŻÕ ŅŌŠŪŽįļ ×ÜöŻŲāŲ ąÕÖŲÜ ßŽŅŻŽÓŽ ÕŚąŠŻć"
-#: gui/options.cpp:462
-#, fuzzy
+#: gui/options.cpp:486
msgid "the filtering setting could not be changed"
-msgstr "ŻÕ ŅŌŠŪŽįļ ×ÜöŻŲāŲ ąÕÖŲÜ ßŽŅŻŽÓŽ ÕŚąŠŻć"
+msgstr "ŻÕ ŅŌŠŪŽįļ ×ÜöŻŲāŲ ąÕÖŲÜ äöŪģāąćŅŠŻŻļ"
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "³ąŠäöēŻ. ąÕÖŲÜ:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "ĄÕÖŲÜ ąŠįāąćŅ.:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "ĮßÕęöŠŪģŻö ąÕÖŲÜŲ ąŠįāąćŅŠŻŻļ, ļŚö ßöŌāąŲÜćīāģ ŌÕļŚö öÓąŲ"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "æŽŅŻŽÕŚąŠŻŻŲŁ ąÕÖŲÜ"
-#: gui/options.cpp:811
-#, fuzzy
+#: gui/options.cpp:838
msgid "Filter graphics"
-msgstr "²ŲŚŽąŲįāŽŅćŅŠāŲ ŚŽŪģŽąŽŅć ÓąŠäöŚć"
+msgstr "ÄöŪģąćŅŠŻŻļ ÓąŠäöŚŲ"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
-msgstr ""
+msgstr "²ŲŚŽąŲįāŽŅćŅŠāŲ ŪöŻöŁŻć äöŪģąŠęöļ ŌŪļ ×ŃöŪģčÕŻŻļ ÓąŠäöŚŲ"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "ŗŽąÕŚęöļ įßöŅŅöŌŻŽčÕŻŻļ įāŽąöŻ"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "ŗŽąŲÓćŅŠāŲ įßöŅŅöŌŻŽčÕŻŻļ įāŽąöŻ ŌŪļ öÓŽą × ÓąŠäöŚŽī 320x200"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "ĆßŽŌŽŃŠŻŲŁ ßąŲįāąöŁ:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "¼ć×Ųē. ßąŲįāąöŁ:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr "²ŚŠ×ćō ćßŽŌŽŃŠŻŲŁ ×Ņ挎ŅŲŁ ßąŲįāąöŁ ŠŃŽ ÕÜćŪļāŽą ×ŅćŚŽŅŽ÷ ŚŠąāŲ"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr "²ŚŠ×ćō ŅŲåöŌŻŲŁ ×Ņ挎ŅŲŁ ßąŲįāąöŁ ŠŃŽ ÕÜćŪļāŽą ×ŅćŚŽŅŽ÷ ŚŠąāŲ"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "ĆßŽŌŽŃ. ßąŲįāąöŁ:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "¼ć×ŲēŻŲŁ ßąŲįāąöŁ:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "µÜćŪļāŽą AdLib:"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "·ŅćŚŽŅŠ ŚŠąāŠ AdLib ŅŲŚŽąŲįāŽŅćōāģįļ ŃŠÓŠāģÜŠ öÓąŠÜŲ"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "²ŲåöŌŻŠ ēŠįāŽāŠ:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -925,63 +924,63 @@ msgstr ""
"²ÕŪŲŚö ׯŠēÕŻŻļ ×ŠŌŠīāģ ŚąŠéć ļŚöįāģ ×ŅćŚć, ßąŽāÕ ŅŽŻŲ ÜŽÖćāģ ŻÕ "
"ßöŌāąŲÜćŅŠāŲįļ ŅŠčŽī ×ŅćŚŽŅŽī ŚŠąāŽī"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "æąŲįāąöŁ GM:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr "²ŚŠ×ćō ŅŲåöŌŻŲŁ ×Ņ挎ŅŲŁ ßąŲįāąöŁ ŌŪļ General MIDI"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "½Õ ŅŲŚŽąŲįāŽŅćŅŠāŲ Üć×ŲŚć General MIDI"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "²ŲŚŽąŲįāŽŅćŅŠāŲ ßÕąčŲŁ ŻŠļŅŻŲŁ ßąŲįāąöŁ"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr ""
"SoundFont ßöŌāąŲÜćōāģįļ ŌÕļŚŲÜŲ ×Ņ挎ŅŲÜŲ ŚŠąāŠÜŲ, FluidSynth āŠ Timidity"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "·ÜöčŠŻŲŁ ąÕÖŲÜ AdLib/MIDI"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "²ŲŚŽąŲįāŽŅćŅŠāŲ ö MIDI ö AdLib ŌŪļ ÓÕŻÕąŠęö÷ ×ŅćŚć"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "æŽįŲŪÕŻŻļ MIDI:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "æąŲįāąöŁ MT-32:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr ""
"²ŚŠ×ćō ×Ņ挎ŅŲŁ ßąŲįāąöŁ ×Š ćÜŽŅēŠŻŻļÜ ŌŪļ ŅŲŅŽŌć ŻŠ Roland MT-32/LAPC1/"
"CM32l/CM64"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "ĮßąŠŅÖŻöŁ Roland MT-32 (ŅŲÜŚŻćāŲ ÕÜćŪļęŲī GM)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -989,16 +988,16 @@ msgstr ""
"²öŌÜöāģāÕ, ļŚéŽ ć ŅŠį ßöŌŚŪīēÕŻŽ Roland-įćÜöįŻŲŁ ×Ņ挎ŅŲŁ ßąŲįāąöŁ ö ŅŲ "
"åŽēÕāÕ ŁŽÓŽ ŅŲŚŽąŲįāŽŅćŅŠāŲ"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "ĮßąŠŅÖŻöŁ Roland MT-32 (ŅŲÜŚŻćāŲ ÕÜćŪļęŲī GM)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "ĄÕÖŲÜ Roland GS (ŅŅöÜŚŻćāŲ ÜŠßŪÕŻŻļ MT-32)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
@@ -1006,268 +1005,268 @@ msgstr ""
"²öŌÜöāģāÕ, ļŚéŽ åŽēÕāÕ ŅŚŪīēŲāŲ ŪŠāŚŲ ŌŪļ öįāąćÜÕŻāöŅ ŌŪļ ÕÜćŪļęö÷ MT-32 ŻŠ "
"Roland"
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "½Õ ŅŲŚŽąŲįāŽŅćŅŠāŲ Üć×ŲŚć ŌŪļ Roland MT-32"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "ĀÕŚįā ö Ž×ŅćēŚŠ:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "¾×ŅćēŚŠ"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "ĮćŃāŲāąŲ"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "²įÕ"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "ČŅŲŌ. įćŃāŲāąöŅ:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "ĀÕŚįā ö Ž×ŅćēŚŠ:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "¾×Ņ"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "ĮćŃ"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "²įÕ"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "æŽŚŠ×ćŅŠāŲ įćŃāŲāąŲ ö ŅöŌāŅŽąīŅŠāŲ ÜŽŅć"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "ČŅŲŌ. įćŃāŲāąöŅ:"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "³ćēŻöįāģ Üć×ŲŚŲ:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "³ćēŻöįāģ Üć×ŲŚŲ:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "²ŲÜŚŻćāŲ ŅįÕ"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "³ćēŻöįāģ ÕäÕŚāöŅ:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "³ćēŻöįāģ įßÕęöŠŪģŻŲå ×Ņ挎ŅŲå ÕäÕŚāöŅ"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "³ćēŻ. ÕäÕŚāöŅ:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "³ćēŻöįāģ Ž×ŅćēŚŲ:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "³ćēŻ. Ž×ŅćēŚŲ:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "½ŠŪŠčāćŅŠŻŻļ FluidSynth"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "ČŪļå ŌŽ āÕÜ:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "ČŪļå ŌŽ āÕÜ:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr ""
"²ŚŠ×ćō čŪļå ŌŽ ŌŽŌŠāŚŽŅŲå 䊣ŪöŅ ŌŠŻŲå, ļŚö ŅŲŚŽąŲįāŽŅćīāģįļ ćįöÜŠ öÓąŠÜŲ "
"ŠŃŽ ScummVM"
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "ČŪļå ŌŽ ŅāćŪŚöŅ:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "ČŪļå ŌŽ ŅāćŪŚöŅ:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "ĄöׯÕ"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "ĀÕÜŠ:"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "ĄŠįāÕą. GUI:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "°ŅāŽ×ŃÕąÕÖÕŻŻļ:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "°ŅāŽ×ŃÕąÕÖ.:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "ŗŪŠŅöčö"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "¼ŽŅŠ öŻāÕąä.:"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "¼ŽŅŠ ÓąŠäöēŻŽÓŽ öŻāÕąäÕŁįć ScummVM"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr "æÕąÕŅöąļāŲ ŽŻŽŅŪÕŻŻļ:"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr "ĻŚ ēŠįāŽ ßÕąÕŅöąļāŲ ŽŻŽŅŪÕŻŻļ ScummVM"
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr "æÕąÕŅöąŲāŲ ×ŠąŠ×"
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr "ÅÜŠąŠ"
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr "ÅÜŠąŠ"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr "ĮÕąÕŌŽŅŲéÕ:"
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr "°ŚāŲŅŻÕ åÜŠąŻÕ įÕąÕŌŽŅŲéÕ"
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr "<ŻÕÜŠō>"
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "ŗŽąŲįāćŅŠē:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr "ŗŽąŲįāćŅŠē ŌŪļ ęģŽÓŽ įÕąŌŽŅŲéŠ"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr "²ŲŚŽąŲįāŠŻŲŁ ŽŃ'ōÜ"
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr ""
"¾Ń'ōÜ, ŅŲŚŽąŲįāŠŻŲŁ ŌŪļ ×ŃÕąÕÖÕŻŲå įāŠŻöŅ öÓŽą ScummVM ŻŠ ęģŽÜć įÕąÕŌŽŅŲéö"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr "¾įāŠŻŻļ įŲŻåąŽŻŲ׊ęöļ:"
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr "ĒŠį, ŚŽŪŲ ŃćŪŽ ׹ŽŃŪÕŻŽ ŽįāŠŻŻī įŲŻåąŽŻŲ׊ęöī × ęŲÜ įÕąÕŌŽŅŲéÕÜ"
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr "·ŠŪćēŲāŲįģ"
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr ""
"ĄŽ×ߎēŠāŲ ŚąŽŚŲ ŌŪļ ׊ŪćēÕŻŻļ ŌŽ ŅŠčŽÓŽ ŽŃŪöŚŽŅŽÓŽ ׊įŽŃć ŻŠ åÜŠąŻŽÜć "
"įÕąÕŌŽŅŲéö"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr "æŽŻŽŅŲāŲ"
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr "æŽŻŽŅŲāŲ ßŽāŽēŻö ŌŠŻö åÜŠąŻŽÓŽ įÕąÕŌŽŅŲéŠ (öÜ'ļ ŚŽąŲįāćŅŠēŠ āŠ ŽŃ'ōÜ)"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Download"
msgstr "·ŠŅŠŻāŠÖŲāŲ"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr "²öŌŚąŲāŲ ŚÕąćŅŠŻŻļ ×ŠŅŠŻāŠÖÕŻŻļÜŲ"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr "·ŠßćįāŲāŲ įÕąŅÕą"
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr "·ŠßćįŚŠō ŪŽŚŅŠŪģŻŲŁ ŅÕŃ-įÕąŅÕą"
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
msgid "Not running"
msgstr "²ŲÜŚŻÕŻŽ"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
msgid "/root/ Path:"
msgstr "ČŪļå /root/:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
msgid "Specifies which directory the Files Manager can access"
msgstr "²ŚŠ×ćō čŪļå ŌŽ ļŚŽÓŽ ÜŽÖŻŠ ÜŠāŲ ŌŽįāćß ēÕąÕ× ŗÕąćŅŠŻŻļ äŠŁŪŠÜŲ"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "ŗŽąöŻŻŲŁ čŪļå:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid "Server's port:"
msgstr "æŽąā įÕąŅÕąŠ:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
@@ -1275,68 +1274,68 @@ msgstr ""
"æŽąā, ŚŽāŽąėŁ ŃćŌÕā ŲįߎŪģ×ŽŅŠŻ įÕąŅÕąŽÜ\n"
"°ćāÕŻāŲäŲŚŠęŲļ į įÕąŅÕąŽÜ ŌŽįāćßŻŠ āŽŪģŚŽ ŌŪļ ߎąāŠ ßŽ ćÜŽŪēŠŻŲī"
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "²Ų ߎŅŲŻŻö ßÕąÕ׊ßćįāŲāŲ ScummVM éŽŃ ׊įāŽįćŅŠāŲ ×ÜöŻŲ."
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr "·ŠįāŽįćŅŠāŲ"
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
msgid "Failed to change cloud storage!"
msgstr "½Õ ŅŌŠŪŽįļ ×ÜöŻŲāŲ ×ÜŠąŻÕ įÕąÕŌŽŅŲéÕ!"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr "“ąćÓŽÕ ŽŃŪŠŚŽ ćÖÕ ŠŚāŲŅŻŽ."
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"²ŲŃąŠŻŠ āÕÜŠ ŻÕ ßöŌāąŲÜćō ߎāŽēŻć ÜŽŅć. ĻŚéŽ ŅŲ åŽēÕāÕ ŅŲŚŽąŲįāŽŅćŅŠāŲ ęī "
+"āÕÜć, ߎāąöŃŻŽ Ņ ßÕąčć ēÕąÓć ×ÜöŻŲāŲ ÜŽŅć."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr "½Õ ÜŽÖć ßŲįŠāŲ ć ŅŲŃąŠŻć ߊߌć. ±ćŌģ ŪŠįŚŠ, ŅŚŠÖöāģ öŻčć."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "²ŲŃÕąöāģ ߊߌć ŌŪļ āÕÜ GUI"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "²ŲŃÕąöāģ ߊߌć × ŌŽŌŠāŚŽŅŲÜŲ äŠŁŪŠÜŲ"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "²ŲŃÕąöāģ ߊߌć ×ö ŅāćŪŚŠÜŲ"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
msgid "Select directory for Files Manager /root/"
msgstr "²ŲŃÕąöāģ ߊߌć /root/ ŌŪļ ŗÕąćŅŠŻŻļ äŠŁŪŠÜŲ"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"²ŲŃąŠŻŠ āÕÜŠ ŻÕ ßöŌāąŲÜćō ߎāŽēŻć ÜŽŅć. ĻŚéŽ ŅŲ åŽēÕāÕ ŅŲŚŽąŲįāŽŅćŅŠāŲ ęī "
-"āÕÜć, ߎāąöŃŻŽ Ņ ßÕąčć ēÕąÓć ×ÜöŻŲāŲ ÜŽŅć."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr "%llu ŃŠŁā"
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr "<׊ąŠ×>"
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
msgid "<never>"
msgstr "<ŻöŚŽŪŲ>"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
msgid "Stop server"
msgstr "²ŲÜŚŻćāŲ įÕąŅÕą"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr "²ŲÜŚŻćāŲ ŪŽŚŠŪģŻŲŁ ŅÕŃ-įÕąŅÕą"
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1612,35 +1611,35 @@ msgstr "æąŽŌŽŅÖŲāŲ"
msgid "Clear value"
msgstr "¾ēŲįāŲāŲ ×ŻŠēÕŻŻļ"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "“ŅŲÖŽŚ ŻÕ ßöŌāąŲÜćō ąöŅÕŻģ ŅöŌŪŠŌŚŲ '%s'"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "¼ÕŻī"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "æąŽßćįāŲāŲ"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "æŠć׊"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "æąŽßćįāŲāŲ ąļŌŽŚ"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "æŽÜŲŪŚŠ ×ŠßćįŚć ÓąŲ:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr "½Õ ÜŽÖć ×ŻŠŁāŲ ŌŅŲÖŽŚ ŌŪļ ׊ßćįŚć ŅŲŃąŠŻŽ÷ ÓąŲ"
@@ -1878,9 +1877,8 @@ msgid "Could not apply fullscreen setting."
msgstr "½Õ ŅŌŠŪŽįļ ׊įāŽįćŅŠāŲ ßŽŅŻŽÕŚąŠŻŻŲŁ ąÕÖŲÜ."
#: engines/engine.cpp:373
-#, fuzzy
msgid "Could not apply filtering setting."
-msgstr "½Õ ŅŌŠŪŽįļ ׊įāŽįćŅŠāŲ ßŽŅŻŽÕŚąŠŻŻŲŁ ąÕÖŲÜ."
+msgstr "½Õ ŅŌŠŪŽįļ ׊įāŽįćŅŠāŲ ąÕÖŲÜ äöŪģāąćŅŠŻŻļ."
#: engines/engine.cpp:473
msgid ""
@@ -2014,11 +2012,11 @@ msgstr "°ćŌöŽ FM-Towns"
msgid "PC-98 Audio"
msgstr "°ćŌöŽ PC-98"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "½ŠŪŠčāŽŅćī ÕÜćŪļāŽą MT-32"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "µÜćŪļāŽą MT-32"
@@ -2034,15 +2032,15 @@ msgstr "µÜćŪļāŽą IBM PCjr"
msgid "C64 Audio Emulator"
msgstr "C64 °ćŌöŽ µÜćŪļāŽą"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
msgid "Saved games sync complete."
msgstr "ĮŲŻåąŽŻŲ׊ęöī ×ŃÕąÕÖÕŻŲå įāŠŻöŅ ×ŠŚöŻēÕŻŽ!"
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr "ĮŲŻåąŽŻŲ׊ęöī ×ŃÕąÕÖÕŻŲå įāŠŻöŅ ßąŲßŲŻÕŻŽ."
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
@@ -2050,7 +2048,7 @@ msgstr ""
"æŽÜŲŪŚŠ įŲŻåąŽŻŲ׊ęö÷ ×ŃÕąÕÖÕŻŲå įāŠŻöŅ.\n"
"æÕąÕŅöąāÕ ŅŠčÕ ×'ōŌŻŠŻŻļ × öŻāÕąŻÕā."
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
@@ -2059,11 +2057,11 @@ msgstr ""
"·ŠŅŠŻāŠÖÕŻŻļ ׊ŚöŻēÕŻŽ.\n"
"½Õ ŅŌŠŪŽįļ ×ŠŅŠŻāŠÖŲāŲ %u 䊣ŪöŅ."
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
msgid "Download complete."
msgstr "·ŠŅŠŻāŠÖÕŻŻļ ׊ŚöŻēÕŻŽ."
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
msgid "Download failed."
msgstr "æŽÜŲŪŚŠ ×ŠŅŠŻāŠÖÕŻŻļ."
@@ -2172,43 +2170,51 @@ msgstr "æąŽŅÕŌöāģ āąģŽÜŠ ßŠŪģęļÜö ŻŠßąŠŅŽ ŌŪļ ßÕąÕŚŪīēÕŻŻļ."
msgid "OpenGL"
msgstr "OpenGL"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "±Õ× ×ŃöŪģčÕŻŻļ"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "²öŚŽŻŻŲŁ ąÕÖŲÜ"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "±Õ× ×ŃöŪģčÕŻŻļ"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr "ĄŽ×ÓŠŪćÖÕŻŻļ %dx%d"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "ŗŽąÕŚęöī įßöŅŅöŌŻŽčÕŻŻļ įāŽąöŻ ćŅöÜŚŻÕŻŽ"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "ŗŽąÕŚęöī įßöŅŅöŌŻŽčÕŻŻļ įāŽąöŻ ŅŲÜŚŻÕŻŽ"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
-#, fuzzy
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
msgid "Filtering enabled"
-msgstr "ŗŪöŚŲ ćŅöÜŚŻÕŻŽ"
+msgstr "ÄöŪģāąćŅŠŻŻļ ćŅöÜŚŻÕŻŽ"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
-#, fuzzy
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
msgid "Filtering disabled"
-msgstr "ŗŪöŚŲ ŅŲÜŚŻÕŻŽ"
+msgstr "ÄöŪģāąćŅŠŻŻļ ŅŲÜŚŻÕŻŽ"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "±Õ× ×ŃöŪģčÕŻŻļ"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "±Õ× ×ŃöŪģčÕŻŻļ"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "æŽāŽēŻŲŁ ÓąŠäöēŻŲŁ äöŪģāą:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "²öŚŽŻŻŲŁ ąÕÖŲÜ"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "¼ŠßŠ ŚŪŠŅöč:"
@@ -3131,6 +3137,50 @@ msgstr "³ŽŪŽŅŻÕ ÜÕŻī"
msgid "~W~ater Effect Enabled"
msgstr "µäÕŚāŲ ŅŽŌŲ ćŅöÜŚŻÕŻŽ"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+"Ć ŅŠÜ ŻÕÜŠō 䊣Ūć ŌŪļ ŅŲŚŽŻŠŻŻļ Riven. ÄŠŁŪ ŅŲŚŽŻŠŻŻļ ŌŪļ Windows ÜŠō "
+"ŻŠ×Ņć'riven.exe' ŠŃŽ 'rivendemo.exe'"
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+"²ŲŚŽąŲįāŠŻŻļ 䊣Ūć 'arcriven.z' āŠŚŽÖ ō ßąŲßćįāŲÜŲÜ. ĀŠŚŽÖ ŅŲ ÜŽÖÕāÕ "
+"ŅŲŚŽąŲįāŽŅćŅŠāŲäŠŁŪ 'Riven' ŌŪļ Mac."
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+"Ć ŅŠį ŻÕÜŠō 䊣Ūć 'extras.mhk'. ²ŲŚŽąŲįāŠŻŻļ 䊣Ūć 'arcriven.z' āŠŚŽÖ "
+"ŌŽįāŠāŻģŽ."
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr "“ŽįŪöŌćŅŠŻŻļ ߎ׊ ęöōī ÜÕÖŽī ŌŽįāćßŻÕ āöŪģŚŲ ׊ ßŽŅŻŽ÷ ŅÕąįö÷ ÓąŲ."
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+"½Š ęÕŁ ÜŽÜÕŻā ŌÕÜŽ Riven ŃŲ ×ŠßŲāŠŪŠ, ēŲ\n"
+"ŅŲ Ń åŽāöŪŲ ŅöŌŚąŲāŲ ŅÕŃ-ŽÓŪļŌŠē ö ßÕąÕŻÕįāŲ\n"
+"ŅŠį ć ÜŠÓŠ×ŲŻ Red Orb, ŠŃŲ ÜŠāŲ ÜŽÖŪŲŅöįāģ\n"
+"ŚćßŲāŲ Óąć. ScummVM ׊ąŠ× ęÕ ŻÕ ŅÜöō ąŽŃŲāŲ,\n"
+"ŽŚąöÜ āŽÓŽ, ęÕŁ ÜŠÓŠ×ŲŻ ŃöŪģčÕ ŻÕ ßąŠęīō."
+
#: engines/mohawk/mohawk.cpp:61
msgid "The game is paused. Press any key to continue."
msgstr "¦Óąć ßąŲ×ćßŲŻÕŻŽ. ½ŠāŲįŻöāģ ŃćŌģ-ļŚć ŚŪŠŅöčć ŌŪļ ßąŽŌŽŅÖÕŻŻļ."
@@ -4258,5 +4308,8 @@ msgstr ""
"²ŲŚŽąŲįāŽŅćŅŠāŲ ŅöŌÕŽ MPEG × DVD-ŅÕąįö÷, ׊Üöįāģ 䊣ŪöŅ AVI × ŻöÖēŽī "
"ąŽ×ŌöŪģŻŽī ×ŌŠāŻöįāī"
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr "²Ų ߎŅŲŻŻö ßÕąÕ׊ßćįāŲāŲ ScummVM éŽŃ ׊įāŽįćŅŠāŲ ×ÜöŻŲ."
+
#~ msgid "OpenGL (No filtering)"
#~ msgstr "OpenGL (ŃÕ× äöŪģāąöŅ)"
diff --git a/po/zh-Latn_CN.po b/po/zh-Latn_CN.po
index feb1e59e1b..ff9a1ce82c 100644
--- a/po/zh-Latn_CN.po
+++ b/po/zh-Latn_CN.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.9.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.scummvm.org\n"
-"POT-Creation-Date: 2016-10-12 23:37+0100\n"
+"POT-Creation-Date: 2016-11-05 12:43+0100\n"
"PO-Revision-Date: 2016-03-15 04:09-0700\n"
"Last-Translator: Chenbo Li <lichenbo1949@gmail.com>\n"
"Language-Team: Chenbo Li <lichenbo1949@gmail.com>\n"
@@ -16,6 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.7\n"
+"X-Language-name: Chinese Pinyin (Mandarin)\n"
#: gui/about.cpp:94
#, c-format
@@ -55,7 +56,7 @@ msgstr "ShangYiJi"
#: gui/browser.cpp:75 gui/chooser.cpp:46 gui/editgamedialog.cpp:292
#: gui/editrecorddialog.cpp:67 gui/filebrowser-dialog.cpp:64
#: gui/fluidsynth-dialog.cpp:152 gui/KeysDialog.cpp:43 gui/massadd.cpp:95
-#: gui/options.cpp:1376 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
+#: gui/options.cpp:1461 gui/predictivedialog.cpp:73 gui/recorderdialog.cpp:69
#: gui/recorderdialog.cpp:155 gui/remotebrowser.cpp:59
#: gui/saveload-dialog.cpp:383 gui/saveload-dialog.cpp:443
#: gui/saveload-dialog.cpp:717 gui/saveload-dialog.cpp:1111
@@ -80,7 +81,7 @@ msgstr "Xuanze"
msgid "Select directory where to download game data"
msgstr "Xuanze Youxi Shuju Mulu"
-#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:472 gui/launcher.cpp:173
+#: gui/downloaddialog.cpp:49 gui/editgamedialog.cpp:470 gui/launcher.cpp:197
msgid "Select directory with game data"
msgstr "Xuanze Youxi Shuju Mulu"
@@ -113,7 +114,7 @@ msgstr ""
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:152
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -125,7 +126,7 @@ msgstr "Shi"
#: gui/downloaddialog.cpp:118 gui/downloaddialog.cpp:153
#: gui/filebrowser-dialog.cpp:132 gui/fluidsynth-dialog.cpp:217
-#: gui/launcher.cpp:286 gui/launcher.cpp:394 gui/launcher.cpp:453
+#: gui/launcher.cpp:307 gui/launcher.cpp:415 gui/launcher.cpp:474
#: gui/storagewizarddialog.cpp:112
#: backends/events/symbiansdl/symbiansdl-events.cpp:186
#: backends/platform/wince/CEActionsPocket.cpp:326
@@ -135,7 +136,7 @@ msgstr "Shi"
msgid "No"
msgstr "Fou"
-#: gui/downloaddialog.cpp:136 gui/launcher.cpp:544
+#: gui/downloaddialog.cpp:136 gui/launcher.cpp:565
msgid "ScummVM couldn't open the specified directory!"
msgstr "ScummVM Wufa Dakai Zhiding Mulu!"
@@ -146,8 +147,8 @@ msgid ""
msgstr ""
#: gui/downloaddialog.cpp:146 gui/editgamedialog.cpp:293
-#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:501
-#: gui/launcher.cpp:505 gui/massadd.cpp:92 gui/options.cpp:1377
+#: gui/fluidsynth-dialog.cpp:153 gui/KeysDialog.cpp:42 gui/launcher.cpp:522
+#: gui/launcher.cpp:526 gui/massadd.cpp:92 gui/options.cpp:1463
#: gui/saveload-dialog.cpp:1112 engines/engine.cpp:477 engines/engine.cpp:488
#: backends/platform/wii/options.cpp:47
#: backends/platform/wince/CELauncherDialog.cpp:54
@@ -229,8 +230,8 @@ msgid ""
msgstr ""
"Youxi de Yuyan. CiXiang buhui jiang Yige XibanyaYu Banben Zhuancheng Yingwen"
-#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:114
-#: gui/options.cpp:785 gui/options.cpp:798 gui/options.cpp:1261
+#: gui/editgamedialog.cpp:151 gui/editgamedialog.cpp:165 gui/options.cpp:121
+#: gui/options.cpp:812 gui/options.cpp:825 gui/options.cpp:1356
#: audio/null.cpp:41
msgid "<default>"
msgstr "<Moren>"
@@ -253,11 +254,11 @@ msgstr "Pingtai:"
msgid "Engine"
msgstr "Yinqing"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "Graphics"
msgstr "Tuxiang"
-#: gui/editgamedialog.cpp:184 gui/options.cpp:1120 gui/options.cpp:1137
+#: gui/editgamedialog.cpp:184 gui/options.cpp:1147 gui/options.cpp:1232
msgid "GFX"
msgstr "GFX"
@@ -270,7 +271,7 @@ msgctxt "lowres"
msgid "Override global graphic settings"
msgstr "Fugai Quanju Tuxiang Shezhi"
-#: gui/editgamedialog.cpp:196 gui/options.cpp:1143
+#: gui/editgamedialog.cpp:196 gui/options.cpp:1238
msgid "Audio"
msgstr "Yinpin"
@@ -283,11 +284,11 @@ msgctxt "lowres"
msgid "Override global audio settings"
msgstr "Fugai QUanju Yinpin Shezhi"
-#: gui/editgamedialog.cpp:210 gui/options.cpp:1148
+#: gui/editgamedialog.cpp:210 gui/options.cpp:1243
msgid "Volume"
msgstr "Yinliang"
-#: gui/editgamedialog.cpp:212 gui/options.cpp:1150
+#: gui/editgamedialog.cpp:212 gui/options.cpp:1245
msgctxt "lowres"
msgid "Volume"
msgstr "YinLiang"
@@ -301,7 +302,7 @@ msgctxt "lowres"
msgid "Override global volume settings"
msgstr "Fugai Quanju YinLiang Shezhi"
-#: gui/editgamedialog.cpp:226 gui/options.cpp:1158
+#: gui/editgamedialog.cpp:226 gui/options.cpp:1253
msgid "MIDI"
msgstr "MIDI"
@@ -314,7 +315,7 @@ msgctxt "lowres"
msgid "Override global MIDI settings"
msgstr "Fugai Quanju MIDI Shezhi"
-#: gui/editgamedialog.cpp:241 gui/options.cpp:1168
+#: gui/editgamedialog.cpp:241 gui/options.cpp:1263
msgid "MT-32"
msgstr "MT-32"
@@ -327,11 +328,11 @@ msgctxt "lowres"
msgid "Override global MT-32 settings"
msgstr "Fugai Quanju MT-32 Shezhi"
-#: gui/editgamedialog.cpp:255 gui/options.cpp:1175
+#: gui/editgamedialog.cpp:255 gui/options.cpp:1270
msgid "Paths"
msgstr "Lujing"
-#: gui/editgamedialog.cpp:257 gui/options.cpp:1177
+#: gui/editgamedialog.cpp:257 gui/options.cpp:1272
msgctxt "lowres"
msgid "Paths"
msgstr "Lujing"
@@ -345,7 +346,7 @@ msgctxt "lowres"
msgid "Game Path:"
msgstr "Youxi Lujing:"
-#: gui/editgamedialog.cpp:271 gui/options.cpp:1201
+#: gui/editgamedialog.cpp:271 gui/options.cpp:1296
msgid "Extra Path:"
msgstr "Qita Lujing:"
@@ -354,62 +355,62 @@ msgstr "Qita Lujing:"
msgid "Specifies path to additional data used by the game"
msgstr "Zhiding Youxi Suoyong de Shuju de Cunfang Lujing"
-#: gui/editgamedialog.cpp:273 gui/options.cpp:1203
+#: gui/editgamedialog.cpp:273 gui/options.cpp:1298
msgctxt "lowres"
msgid "Extra Path:"
msgstr "Qita Lujing:"
-#: gui/editgamedialog.cpp:280 gui/options.cpp:1185
+#: gui/editgamedialog.cpp:280 gui/options.cpp:1280
msgid "Save Path:"
msgstr "Baocun Lujing:"
#: gui/editgamedialog.cpp:280 gui/editgamedialog.cpp:282
-#: gui/editgamedialog.cpp:283 gui/options.cpp:1185 gui/options.cpp:1187
-#: gui/options.cpp:1188
+#: gui/editgamedialog.cpp:283 gui/options.cpp:1280 gui/options.cpp:1282
+#: gui/options.cpp:1283
msgid "Specifies where your saved games are put"
msgstr "Zhiding Nin Jiang Youxi Baocun Zai le Nali"
-#: gui/editgamedialog.cpp:282 gui/options.cpp:1187
+#: gui/editgamedialog.cpp:282 gui/options.cpp:1282
msgctxt "lowres"
msgid "Save Path:"
msgstr "Baocun Lujing:"
-#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:400
-#: gui/editgamedialog.cpp:459 gui/editgamedialog.cpp:520 gui/options.cpp:1196
-#: gui/options.cpp:1204 gui/options.cpp:1213 gui/options.cpp:1414
-#: gui/options.cpp:1420 gui/options.cpp:1428 gui/options.cpp:1451
-#: gui/options.cpp:1467 gui/options.cpp:1473 gui/options.cpp:1480
-#: gui/options.cpp:1488 gui/options.cpp:1640 gui/options.cpp:1643
-#: gui/options.cpp:1650 gui/options.cpp:1660
+#: gui/editgamedialog.cpp:301 gui/editgamedialog.cpp:398
+#: gui/editgamedialog.cpp:457 gui/editgamedialog.cpp:518 gui/options.cpp:1291
+#: gui/options.cpp:1299 gui/options.cpp:1308 gui/options.cpp:1488
+#: gui/options.cpp:1494 gui/options.cpp:1502 gui/options.cpp:1525
+#: gui/options.cpp:1554 gui/options.cpp:1560 gui/options.cpp:1567
+#: gui/options.cpp:1575 gui/options.cpp:1758 gui/options.cpp:1761
+#: gui/options.cpp:1768 gui/options.cpp:1778
msgctxt "path"
msgid "None"
msgstr "Wu"
-#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:406
-#: gui/editgamedialog.cpp:524 gui/options.cpp:1408 gui/options.cpp:1461
-#: gui/options.cpp:1646 backends/platform/wii/options.cpp:56
+#: gui/editgamedialog.cpp:306 gui/editgamedialog.cpp:404
+#: gui/editgamedialog.cpp:522 gui/options.cpp:1482 gui/options.cpp:1548
+#: gui/options.cpp:1764 backends/platform/wii/options.cpp:56
msgid "Default"
msgstr "Moren"
-#: gui/editgamedialog.cpp:452 gui/options.cpp:1654
+#: gui/editgamedialog.cpp:450 gui/options.cpp:1772
msgid "Select SoundFont"
msgstr "Xuanze SoundFont"
-#: gui/editgamedialog.cpp:491
+#: gui/editgamedialog.cpp:489
msgid "Select additional game directory"
msgstr "Xuanze Qita Youxi Mulu"
-#: gui/editgamedialog.cpp:504 gui/options.cpp:1577
+#: gui/editgamedialog.cpp:502 gui/options.cpp:1695
msgid "Select directory for saved games"
msgstr "Xuanze Youxi Baocun Mulu"
-#: gui/editgamedialog.cpp:510
+#: gui/editgamedialog.cpp:508
msgid ""
"Saved games sync feature doesn't work with non-default directories. If you "
"want your saved games to sync, use default directory."
msgstr ""
-#: gui/editgamedialog.cpp:536
+#: gui/editgamedialog.cpp:534
msgid "This game ID is already taken. Please choose another one."
msgstr "Ci Youxi ID Yi Bei Zhanyong. Qing Xuanze Qita Mingcheng"
@@ -489,7 +490,7 @@ msgstr "Zhengxian"
msgid "Triangle"
msgstr "Sanjiaoxing"
-#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1221
+#: gui/fluidsynth-dialog.cpp:138 gui/options.cpp:1316
msgid "Misc"
msgstr "Zaxiang"
@@ -537,15 +538,15 @@ msgstr "Guanbi"
msgid "Mouse click"
msgstr "Shubiao Danji"
-#: gui/gui-manager.cpp:126 base/main.cpp:337
+#: gui/gui-manager.cpp:126 base/main.cpp:340
msgid "Display keyboard"
msgstr "Xianshi Jianpan"
-#: gui/gui-manager.cpp:130 base/main.cpp:341
+#: gui/gui-manager.cpp:130 base/main.cpp:344
msgid "Remap keys"
msgstr "Yingshe Jianwei"
-#: gui/gui-manager.cpp:133 base/main.cpp:344 engines/scumm/help.cpp:87
+#: gui/gui-manager.cpp:133 base/main.cpp:347 engines/scumm/help.cpp:87
msgid "Toggle fullscreen"
msgstr "Quanping Qiehuan"
@@ -579,110 +580,110 @@ msgstr "Anxia Anjian lai Guanlian"
msgid "Choose an action to map"
msgstr "Xuanze yao Yingshe de Xingwei"
-#: gui/launcher.cpp:117 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
+#: gui/launcher.cpp:141 engines/dialogs.cpp:111 engines/mohawk/dialogs.cpp:98
msgid "~Q~uit"
msgstr "~Q~Tuichu"
-#: gui/launcher.cpp:117 backends/platform/sdl/macosx/appmenu_osx.mm:106
+#: gui/launcher.cpp:141 backends/platform/sdl/macosx/appmenu_osx.mm:106
msgid "Quit ScummVM"
msgstr "Tuichu ScummVM"
-#: gui/launcher.cpp:118
+#: gui/launcher.cpp:142
msgid "A~b~out..."
msgstr "~b~Guanyu"
-#: gui/launcher.cpp:118 backends/platform/sdl/macosx/appmenu_osx.mm:80
+#: gui/launcher.cpp:142 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "About ScummVM"
msgstr "Guanyu ScummVM"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "~O~ptions..."
msgstr "~O~Xuanxiang"
-#: gui/launcher.cpp:119
+#: gui/launcher.cpp:143
msgid "Change global ScummVM options"
msgstr "Genggai ScummVM Quanju Shezhi"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "~S~tart"
msgstr "~S~Kaishi"
-#: gui/launcher.cpp:121
+#: gui/launcher.cpp:145
msgid "Start selected game"
msgstr "Kaishi Xuanze de Youxi"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "~L~oad..."
msgstr "~L~Jiazai"
-#: gui/launcher.cpp:124
+#: gui/launcher.cpp:148
msgid "Load saved game for selected game"
msgstr "Jiazai Xuanze Baocun de Youxi"
-#: gui/launcher.cpp:129
+#: gui/launcher.cpp:153
msgid "~A~dd Game..."
msgstr "~A~Tianjia Youxi ..."
-#: gui/launcher.cpp:129 gui/launcher.cpp:136
+#: gui/launcher.cpp:153 gui/launcher.cpp:160
msgid "Hold Shift for Mass Add"
msgstr "Anzhu Shift Lai Piliang Tianjia"
-#: gui/launcher.cpp:131
+#: gui/launcher.cpp:155
msgid "~E~dit Game..."
msgstr "~E~Bianji Youxi ..."
-#: gui/launcher.cpp:131 gui/launcher.cpp:138
+#: gui/launcher.cpp:155 gui/launcher.cpp:162
msgid "Change game options"
msgstr "Genggai Youxi Xuanxiang"
-#: gui/launcher.cpp:133
+#: gui/launcher.cpp:157
msgid "~R~emove Game"
msgstr "~R~Yichu Youxi"
-#: gui/launcher.cpp:133 gui/launcher.cpp:140
+#: gui/launcher.cpp:157 gui/launcher.cpp:164
msgid "Remove game from the list. The game data files stay intact"
msgstr "Cong Liebiao zhong YIchu Youxi. Baoliu Youxi Shuju Wenjian"
-#: gui/launcher.cpp:136
+#: gui/launcher.cpp:160
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr "~A~Tianjia Youxi ..."
-#: gui/launcher.cpp:138
+#: gui/launcher.cpp:162
msgctxt "lowres"
msgid "~E~dit Game..."
msgstr "~E~Bianji Youxi ..."
-#: gui/launcher.cpp:140
+#: gui/launcher.cpp:164
msgctxt "lowres"
msgid "~R~emove Game"
msgstr "~R~Yichu Youxi ..."
-#: gui/launcher.cpp:148
+#: gui/launcher.cpp:172
msgid "Search in game list"
msgstr "Zai Youxi Liebiao zhong Sousuo"
-#: gui/launcher.cpp:152 gui/launcher.cpp:750
+#: gui/launcher.cpp:176 gui/launcher.cpp:771
msgid "Search:"
msgstr "Sousuo:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
-#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:733
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115 engines/cruise/menu.cpp:214
+#: engines/mohawk/dialogs.cpp:103 engines/mohawk/riven.cpp:734
#: engines/pegasus/pegasus.cpp:353 engines/tsage/scenes.cpp:601
msgid "Load game:"
msgstr "Jiazai Youxi:"
-#: gui/launcher.cpp:176 engines/dialogs.cpp:115
+#: gui/launcher.cpp:200 engines/dialogs.cpp:115
#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:231
#: engines/cruise/menu.cpp:214 engines/mohawk/dialogs.cpp:103
-#: engines/mohawk/riven.cpp:733 engines/parallaction/saveload.cpp:194
+#: engines/mohawk/riven.cpp:734 engines/parallaction/saveload.cpp:194
#: engines/pegasus/pegasus.cpp:353 engines/scumm/dialogs.cpp:185
#: engines/tsage/scenes.cpp:601
msgid "Load"
msgstr "Jiazai"
-#: gui/launcher.cpp:285
+#: gui/launcher.cpp:306
msgid ""
"Do you really want to run the mass game detector? This could potentially add "
"a huge number of games."
@@ -690,39 +691,39 @@ msgstr ""
"Nin Queding yao Yunxing Youxi Piliang Jiance Ma? Zhe You Keneng Hui Zengjia "
"Daliang Youxi."
-#: gui/launcher.cpp:344
+#: gui/launcher.cpp:365
msgid "This directory cannot be used yet, it is being downloaded into!"
msgstr ""
-#: gui/launcher.cpp:394
+#: gui/launcher.cpp:415
msgid "Do you really want to remove this game configuration?"
msgstr "Nin Zhende Xiangyao Yichu Zhege Youxi Peizhi?"
-#: gui/launcher.cpp:452
+#: gui/launcher.cpp:473
msgid "Do you want to load saved game?"
msgstr "Nin Yao Zairu Baocun de Youxi ma?"
-#: gui/launcher.cpp:501
+#: gui/launcher.cpp:522
msgid "This game does not support loading games from the launcher."
msgstr "Ci Youxi Bu Zhichi cong Jiazaiqi Zhong Jiazai Youxi."
-#: gui/launcher.cpp:505
+#: gui/launcher.cpp:526
msgid "ScummVM could not find any engine capable of running the selected game!"
msgstr "ScummVM Wufa Zhaodao Keyi Yunxing Ci Youxi de Yinqing!"
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:577
msgid "ScummVM could not find any game in the specified directory!"
msgstr "ScummVM zai Zhiding Mulu Zhong Wufa Zhaodao Renhe Youxi!"
-#: gui/launcher.cpp:569
+#: gui/launcher.cpp:590
msgid "Pick the game:"
msgstr "Xuanze Youxi:"
-#: gui/launcher.cpp:687
+#: gui/launcher.cpp:708
msgid "Mass Add..."
msgstr "PiLiang Zengjia ..."
-#: gui/launcher.cpp:689
+#: gui/launcher.cpp:710
msgid "Record..."
msgstr "Luxiang ..."
@@ -765,146 +766,146 @@ msgstr "Qiehuan zhi Youxi"
msgid "Fast replay"
msgstr "Kuaisu Huitui"
-#: gui/options.cpp:112 common/updates.cpp:56
+#: gui/options.cpp:119 common/updates.cpp:56
msgid "Never"
msgstr "Yongbu"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 5 mins"
msgstr "Mei 5 Fenzhong"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 10 mins"
msgstr "Mei 10 Fenzhong"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 15 mins"
msgstr "Mei 15 Fenzhong"
-#: gui/options.cpp:112
+#: gui/options.cpp:119
msgid "every 30 mins"
msgstr "Mei 30 Fenzhong"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "8 kHz"
msgstr "8 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "11 kHz"
msgstr "11 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "22 kHz"
msgstr "22 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "44 kHz"
msgstr "44 kHz"
-#: gui/options.cpp:114
+#: gui/options.cpp:121
msgid "48 kHz"
msgstr "48 kHz"
-#: gui/options.cpp:291 gui/options.cpp:528 gui/options.cpp:629
-#: gui/options.cpp:699 gui/options.cpp:910
+#: gui/options.cpp:289 gui/options.cpp:552 gui/options.cpp:657
+#: gui/options.cpp:726 gui/options.cpp:937
msgctxt "soundfont"
msgid "None"
msgstr "Wu"
-#: gui/options.cpp:432
+#: gui/options.cpp:456
msgid "Failed to apply some of the graphic options changes:"
msgstr "Tuxing Xuanxiang Genggai Shibai:"
-#: gui/options.cpp:444
+#: gui/options.cpp:468
msgid "the video mode could not be changed."
msgstr "Shipin Moshi Wufa Genggai."
-#: gui/options.cpp:450
+#: gui/options.cpp:474
msgid "the aspect ratio setting could not be changed"
msgstr "Bili Xuanxiang Wufa Genggai"
-#: gui/options.cpp:456
+#: gui/options.cpp:480
msgid "the fullscreen setting could not be changed"
msgstr "Quanping Shezhi Wufa Genggai"
-#: gui/options.cpp:462
+#: gui/options.cpp:486
#, fuzzy
msgid "the filtering setting could not be changed"
msgstr "Quanping Shezhi Wufa Genggai"
-#: gui/options.cpp:782
+#: gui/options.cpp:809
msgid "Graphics mode:"
msgstr "Tuxing Moshi:"
-#: gui/options.cpp:796
+#: gui/options.cpp:823
msgid "Render mode:"
msgstr "Xuanran Moshi:"
-#: gui/options.cpp:796 gui/options.cpp:797
+#: gui/options.cpp:823 gui/options.cpp:824
msgid "Special dithering modes supported by some games"
msgstr "Youxi Zhichi Teshu de Doudong Moshi"
-#: gui/options.cpp:808
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2450
+#: gui/options.cpp:835 backends/graphics/openglsdl/openglsdl-graphics.cpp:615
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2460
msgid "Fullscreen mode"
msgstr "Quanping Moshi"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
#, fuzzy
msgid "Filter graphics"
msgstr "Tuxiang"
-#: gui/options.cpp:811
+#: gui/options.cpp:838
msgid "Use linear filtering when scaling graphics"
msgstr ""
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Aspect ratio correction"
msgstr "Bili Jiaozheng"
-#: gui/options.cpp:814
+#: gui/options.cpp:841
msgid "Correct aspect ratio for 320x200 games"
msgstr "320x200 Youxi Bili Jiaozheng"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Preferred Device:"
msgstr "Youxian Shebei:"
-#: gui/options.cpp:822
+#: gui/options.cpp:849
msgid "Music Device:"
msgstr "Yinyue Shebei:"
-#: gui/options.cpp:822 gui/options.cpp:824
+#: gui/options.cpp:849 gui/options.cpp:851
msgid "Specifies preferred sound device or sound card emulator"
msgstr "Zhiding Youxian Shengyin Shebei huo Shengka Moniqi"
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+#: gui/options.cpp:849 gui/options.cpp:851 gui/options.cpp:852
msgid "Specifies output sound device or sound card emulator"
msgstr "Zhiding Shuchu Shengyin Shebei huo Shengka Moniqi"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Preferred Dev.:"
msgstr "Youxian Shebei:"
-#: gui/options.cpp:824
+#: gui/options.cpp:851
msgctxt "lowres"
msgid "Music Device:"
msgstr "Yinyue Shebei:"
-#: gui/options.cpp:851
+#: gui/options.cpp:878
msgid "AdLib emulator:"
msgstr "AdLib Moniqi:"
-#: gui/options.cpp:851 gui/options.cpp:852
+#: gui/options.cpp:878 gui/options.cpp:879
msgid "AdLib is used for music in many games"
msgstr "AdLib bei Henduo Youxi Yonglai Bofang Yinyue"
-#: gui/options.cpp:862
+#: gui/options.cpp:889
msgid "Output rate:"
msgstr "Shuchu Malv:"
-#: gui/options.cpp:862 gui/options.cpp:863
+#: gui/options.cpp:889 gui/options.cpp:890
msgid ""
"Higher value specifies better sound quality but may be not supported by your "
"soundcard"
@@ -912,62 +913,62 @@ msgstr ""
"Genggao de Shuxing Hui Tisheng Yinyue Zhiliang dan Youkeneng Nin de Shengka "
"Buzhichi"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "GM Device:"
msgstr "GM Shebei:"
-#: gui/options.cpp:873
+#: gui/options.cpp:900
msgid "Specifies default sound device for General MIDI output"
msgstr "Zhiding Tongyong MIDI Shuchu Moren Shengyin Shebei"
-#: gui/options.cpp:884
+#: gui/options.cpp:911
msgid "Don't use General MIDI music"
msgstr "Buyao Shiyong Tongyong MIDI Yinyue"
-#: gui/options.cpp:895 gui/options.cpp:957
+#: gui/options.cpp:922 gui/options.cpp:984
msgid "Use first available device"
msgstr "Shiyong Diyige keyong de Shebei"
-#: gui/options.cpp:907
+#: gui/options.cpp:934
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:907 gui/options.cpp:909 gui/options.cpp:910
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
msgid "SoundFont is supported by some audio cards, FluidSynth and Timidity"
msgstr "Yixie Shengka Zhichi SoundFont, Biru FluidSynth He Timidity"
-#: gui/options.cpp:909
+#: gui/options.cpp:936
msgctxt "lowres"
msgid "SoundFont:"
msgstr "SoundFont:"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Mixed AdLib/MIDI mode"
msgstr "Hunhe AdLib/MIDI Moshi"
-#: gui/options.cpp:915
+#: gui/options.cpp:942
msgid "Use both MIDI and AdLib sound generation"
msgstr "TongShi Shiyong MIDI He AdLib Shengyin Shengcheng"
-#: gui/options.cpp:918
+#: gui/options.cpp:945
msgid "MIDI gain:"
msgstr "MIDI gain:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "MT-32 Device:"
msgstr "MT-32 Shebei:"
-#: gui/options.cpp:928
+#: gui/options.cpp:955
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
msgstr ""
"QIng Zhiding Yongyu Roland MT-32/LAPC1/CM32I/CM64 Shuchu de Moren Shengyin "
"Shebei"
-#: gui/options.cpp:933
+#: gui/options.cpp:960
msgid "True Roland MT-32 (disable GM emulation)"
msgstr "Zhen Roland MT-32 (Jinyong GM Moni)"
-#: gui/options.cpp:933 gui/options.cpp:935
+#: gui/options.cpp:960 gui/options.cpp:962
msgid ""
"Check if you want to use your real hardware Roland-compatible sound device "
"connected to your computer"
@@ -975,16 +976,16 @@ msgstr ""
"Jiancha Shifou Nin Xiang Shiyong Lianjie Dao Jisuanji de Zhenshi de Yingjian "
"Roland Jianrong Shengyin Shebei"
-#: gui/options.cpp:935
+#: gui/options.cpp:962
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
msgstr "Zhen Roland MT-32 Shebei (Wu GM Moni)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid "Roland GS Device (enable MT-32 mappings)"
msgstr "Roland GS Shebei (Qiyong MT-32 Yingshe)"
-#: gui/options.cpp:938
+#: gui/options.cpp:965
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
@@ -992,340 +993,340 @@ msgstr ""
"Jiancha Shifou Nin Xiang Qiyong patch Yingshe Lai Zai Roland GS Shebei "
"Shangmian Moni MT-32"
-#: gui/options.cpp:947
+#: gui/options.cpp:974
msgid "Don't use Roland MT-32 music"
msgstr "Buyao Shiyong Roland MT-32 Yinyue"
-#: gui/options.cpp:974
+#: gui/options.cpp:1001
msgid "Text and Speech:"
msgstr "Wenzi he Yuyin:"
-#: gui/options.cpp:978 gui/options.cpp:988
+#: gui/options.cpp:1005 gui/options.cpp:1015
msgid "Speech"
msgstr "Yuyin"
-#: gui/options.cpp:979 gui/options.cpp:989
+#: gui/options.cpp:1006 gui/options.cpp:1016
msgid "Subtitles"
msgstr "Zimu"
-#: gui/options.cpp:980
+#: gui/options.cpp:1007
msgid "Both"
msgstr "Liangzhe"
-#: gui/options.cpp:982
+#: gui/options.cpp:1009
msgid "Subtitle speed:"
msgstr "Zimu Sudu:"
-#: gui/options.cpp:984
+#: gui/options.cpp:1011
msgctxt "lowres"
msgid "Text and Speech:"
msgstr "Wenben he Yuyin:"
-#: gui/options.cpp:988
+#: gui/options.cpp:1015
msgid "Spch"
msgstr "Zimu"
-#: gui/options.cpp:989
+#: gui/options.cpp:1016
msgid "Subs"
msgstr "Yuyin"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgctxt "lowres"
msgid "Both"
msgstr "Dou"
-#: gui/options.cpp:990
+#: gui/options.cpp:1017
msgid "Show subtitles and play speech"
msgstr "Xianshi Zimu Bing Bofang Yuyin"
-#: gui/options.cpp:992
+#: gui/options.cpp:1019
msgctxt "lowres"
msgid "Subtitle speed:"
msgstr "Zimu Sudu"
-#: gui/options.cpp:1008
+#: gui/options.cpp:1035
msgid "Music volume:"
msgstr "Yinyue Yinliang:"
-#: gui/options.cpp:1010
+#: gui/options.cpp:1037
msgctxt "lowres"
msgid "Music volume:"
msgstr "Yinyue Yinliang:"
-#: gui/options.cpp:1017
+#: gui/options.cpp:1044
msgid "Mute All"
msgstr "Quanbu Jinyin"
-#: gui/options.cpp:1020
+#: gui/options.cpp:1047
msgid "SFX volume:"
msgstr "Yinxiao Yinliang:"
-#: gui/options.cpp:1020 gui/options.cpp:1022 gui/options.cpp:1023
+#: gui/options.cpp:1047 gui/options.cpp:1049 gui/options.cpp:1050
msgid "Special sound effects volume"
msgstr "Texiao Yinliang"
-#: gui/options.cpp:1022
+#: gui/options.cpp:1049
msgctxt "lowres"
msgid "SFX volume:"
msgstr "Yinxiao Yinliang:"
-#: gui/options.cpp:1030
+#: gui/options.cpp:1057
msgid "Speech volume:"
msgstr "Yuyin Yinliang:"
-#: gui/options.cpp:1032
+#: gui/options.cpp:1059
msgctxt "lowres"
msgid "Speech volume:"
msgstr "Yuyin Yinliang:"
-#: gui/options.cpp:1162
+#: gui/options.cpp:1257
msgid "FluidSynth Settings"
msgstr "FluidSynth Xuanxiang"
-#: gui/options.cpp:1193
+#: gui/options.cpp:1288
msgid "Theme Path:"
msgstr "Zhuti Lujing:"
-#: gui/options.cpp:1195
+#: gui/options.cpp:1290
msgctxt "lowres"
msgid "Theme Path:"
msgstr "Zhuti Lujing:"
-#: gui/options.cpp:1201 gui/options.cpp:1203 gui/options.cpp:1204
+#: gui/options.cpp:1296 gui/options.cpp:1298 gui/options.cpp:1299
msgid "Specifies path to additional data used by all games or ScummVM"
msgstr "Zhiding Suoyou Youxi huo ScummVM de Shuju Lujing"
-#: gui/options.cpp:1210
+#: gui/options.cpp:1305
msgid "Plugins Path:"
msgstr "Chajian Lujing:"
-#: gui/options.cpp:1212
+#: gui/options.cpp:1307
msgctxt "lowres"
msgid "Plugins Path:"
msgstr "Chajian Lujing:"
-#: gui/options.cpp:1223
+#: gui/options.cpp:1318
msgctxt "lowres"
msgid "Misc"
msgstr "Zaxiang"
-#: gui/options.cpp:1225
+#: gui/options.cpp:1320
msgid "Theme:"
msgstr "Zhuti:"
-#: gui/options.cpp:1229
+#: gui/options.cpp:1324
msgid "GUI Renderer:"
msgstr "Jiemian Xuanran:"
-#: gui/options.cpp:1241
+#: gui/options.cpp:1336
msgid "Autosave:"
msgstr "Zidong Baocun:"
-#: gui/options.cpp:1243
+#: gui/options.cpp:1338
msgctxt "lowres"
msgid "Autosave:"
msgstr "Zidong Baocun:"
-#: gui/options.cpp:1251
+#: gui/options.cpp:1346
msgid "Keys"
msgstr "Guanjianzi"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "GUI Language:"
msgstr "Jiemian Yuyan:"
-#: gui/options.cpp:1258
+#: gui/options.cpp:1353
msgid "Language of ScummVM GUI"
msgstr "ScummVM Jiemian Yuyan"
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "Update check:"
msgstr ""
-#: gui/options.cpp:1286
+#: gui/options.cpp:1381
msgid "How often to check ScummVM updates"
msgstr ""
-#: gui/options.cpp:1298
+#: gui/options.cpp:1393
msgid "Check now"
msgstr ""
-#: gui/options.cpp:1306
+#: gui/options.cpp:1401
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1308
+#: gui/options.cpp:1403
msgctxt "lowres"
msgid "Cloud"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Storage:"
msgstr ""
-#: gui/options.cpp:1319
+#: gui/options.cpp:1408
msgid "Active cloud storage"
msgstr ""
-#: gui/options.cpp:1326 gui/options.cpp:1877
+#: gui/options.cpp:1415 gui/options.cpp:1972
msgid "<none>"
msgstr ""
-#: gui/options.cpp:1330 backends/platform/wii/options.cpp:114
+#: gui/options.cpp:1419 backends/platform/wii/options.cpp:114
msgid "Username:"
msgstr "Yonghuming:"
-#: gui/options.cpp:1330
+#: gui/options.cpp:1419
msgid "Username used by this storage"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Used space:"
msgstr ""
-#: gui/options.cpp:1333
+#: gui/options.cpp:1422
msgid "Space used by ScummVM's saved games on this storage"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "Last sync time:"
msgstr ""
-#: gui/options.cpp:1336
+#: gui/options.cpp:1425
msgid "When the last saved games sync for this storage occured"
msgstr ""
-#: gui/options.cpp:1339 gui/storagewizarddialog.cpp:71
+#: gui/options.cpp:1428 gui/storagewizarddialog.cpp:71
msgid "Connect"
msgstr ""
-#: gui/options.cpp:1339
+#: gui/options.cpp:1428
msgid "Open wizard dialog to connect your cloud storage account"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh"
msgstr ""
-#: gui/options.cpp:1340
+#: gui/options.cpp:1429
msgid "Refresh current cloud storage information (username and usage)"
msgstr ""
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
#, fuzzy
msgid "Download"
msgstr "Xia"
-#: gui/options.cpp:1341
+#: gui/options.cpp:1430
msgid "Open downloads manager dialog"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run server"
msgstr ""
-#: gui/options.cpp:1343
+#: gui/options.cpp:1432
msgid "Run local webserver"
msgstr ""
-#: gui/options.cpp:1344 gui/options.cpp:1987
+#: gui/options.cpp:1433 gui/options.cpp:2082
#, fuzzy
msgid "Not running"
msgstr "Youxi Yunxing Cuowu:"
-#: gui/options.cpp:1348
+#: gui/options.cpp:1437
#, fuzzy
msgid "/root/ Path:"
msgstr "Qita Lujing:"
-#: gui/options.cpp:1348 gui/options.cpp:1350 gui/options.cpp:1351
+#: gui/options.cpp:1437 gui/options.cpp:1439 gui/options.cpp:1440
#, fuzzy
msgid "Specifies which directory the Files Manager can access"
msgstr "Zhiding Nin Jiang Youxi Baocun Zai le Nali"
-#: gui/options.cpp:1350
+#: gui/options.cpp:1439
#, fuzzy
msgctxt "lowres"
msgid "/root/ Path:"
msgstr "Qita Lujing:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
#, fuzzy
msgid "Server's port:"
msgstr "Fuwuqi:"
-#: gui/options.cpp:1360
+#: gui/options.cpp:1449
msgid ""
"Which port is used by the server\n"
"Auth with server is not available with non-default port"
msgstr ""
-#: gui/options.cpp:1520
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Nin Xuyao Chongqi ScummVM Lai Shi Genggai Shengxiao"
+#: gui/options.cpp:1462
+msgid "Apply"
+msgstr ""
-#: gui/options.cpp:1543
+#: gui/options.cpp:1628
#, fuzzy
msgid "Failed to change cloud storage!"
msgstr "Wufa baocun Youxi"
-#: gui/options.cpp:1546
+#: gui/options.cpp:1631
msgid "Another cloud storage is already active."
msgstr ""
-#: gui/options.cpp:1584
+#: gui/options.cpp:1667
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Nin Xuanze de Zhuti Bu Zhichi Xianzai de Yuyan. Qing Xian Qiehuan Dao Qita "
+"Yuyan."
+
+#: gui/options.cpp:1702
msgid "The chosen directory cannot be written to. Please select another one."
msgstr "Zhiding de Mulu Buneng Xieru. Qing Xuanze Qita de Mulu."
-#: gui/options.cpp:1593
+#: gui/options.cpp:1711
msgid "Select directory for GUI themes"
msgstr "Xuanze Jiemian Zhuti de Mulu"
-#: gui/options.cpp:1603
+#: gui/options.cpp:1721
msgid "Select directory for extra files"
msgstr "Xuanze QIta Wenjian Mulu"
-#: gui/options.cpp:1614
+#: gui/options.cpp:1732
msgid "Select directory for plugins"
msgstr "Xuanze Chajian Mulu"
-#: gui/options.cpp:1626
+#: gui/options.cpp:1744
#, fuzzy
msgid "Select directory for Files Manager /root/"
msgstr "Xuanze QIta Wenjian Mulu"
-#: gui/options.cpp:1688
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Nin Xuanze de Zhuti Bu Zhichi Xianzai de Yuyan. Qing Xian Qiehuan Dao Qita "
-"Yuyan."
-
-#: gui/options.cpp:1884
+#: gui/options.cpp:1979
#, c-format
msgid "%llu bytes"
msgstr ""
-#: gui/options.cpp:1892
+#: gui/options.cpp:1987
msgid "<right now>"
msgstr ""
-#: gui/options.cpp:1894
+#: gui/options.cpp:1989
#, fuzzy
msgid "<never>"
msgstr "Yongbu"
-#: gui/options.cpp:1978
+#: gui/options.cpp:2073
#, fuzzy
msgid "Stop server"
msgstr "Fuwuqi:"
-#: gui/options.cpp:1979
+#: gui/options.cpp:2074
msgid "Stop local webserver"
msgstr ""
-#: gui/options.cpp:2068
+#: gui/options.cpp:2163
msgid ""
"Request failed.\n"
"Check your Internet connection."
@@ -1596,35 +1597,35 @@ msgstr ""
msgid "Clear value"
msgstr "Qingchu Zhi"
-#: base/main.cpp:250
+#: base/main.cpp:253
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr "Yinqing Buzhichi Tiaoshi Jibie ā€˜%s’"
-#: base/main.cpp:324
+#: base/main.cpp:327
msgid "Menu"
msgstr "Caidan"
-#: base/main.cpp:327 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr "Tiaoguo"
-#: base/main.cpp:330 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:333 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr "Zanting"
-#: base/main.cpp:333
+#: base/main.cpp:336
msgid "Skip line"
msgstr "Tiaoguo Cihang"
-#: base/main.cpp:542
+#: base/main.cpp:547
msgid "Error running game:"
msgstr "Youxi Yunxing Cuowu:"
-#: base/main.cpp:589
+#: base/main.cpp:594
msgid "Could not find any engine capable of running the selected game"
msgstr "Wufa Zhaodao Shihe Yunxing Youxi de Yinqing"
@@ -1998,11 +1999,11 @@ msgstr "FM-Towns Yinpin"
msgid "PC-98 Audio"
msgstr "PC-98 Yinpin"
-#: audio/softsynth/mt32.cpp:196
+#: audio/softsynth/mt32.cpp:197
msgid "Initializing MT-32 Emulator"
msgstr "Chushihua MT-32 Moniqi"
-#: audio/softsynth/mt32.cpp:434
+#: audio/softsynth/mt32.cpp:435
msgid "MT-32 Emulator"
msgstr "MT-32 Moniqi"
@@ -2018,34 +2019,34 @@ msgstr "IBM PCjr Moniqi"
msgid "C64 Audio Emulator"
msgstr "C64 Yinpin Moniqi"
-#: backends/cloud/storage.cpp:210
+#: backends/cloud/storage.cpp:211
#, fuzzy
msgid "Saved games sync complete."
msgstr "Saomiao Wancheng!"
-#: backends/cloud/storage.cpp:221
+#: backends/cloud/storage.cpp:222
msgid "Saved games sync was cancelled."
msgstr ""
-#: backends/cloud/storage.cpp:223
+#: backends/cloud/storage.cpp:224
msgid ""
"Saved games sync failed.\n"
"Check your Internet connection."
msgstr ""
-#: backends/cloud/storage.cpp:327
+#: backends/cloud/storage.cpp:328
#, c-format
msgid ""
"Download complete.\n"
"Failed to download %u files."
msgstr ""
-#: backends/cloud/storage.cpp:329
+#: backends/cloud/storage.cpp:330
#, fuzzy
msgid "Download complete."
msgstr "Saomiao Wancheng!"
-#: backends/cloud/storage.cpp:339
+#: backends/cloud/storage.cpp:340
#, fuzzy
msgid "Download failed."
msgstr "Zairu Wenjian"
@@ -2155,43 +2156,53 @@ msgstr "Xiangyou Huadong San Gen Shouzhi Qiehuan"
msgid "OpenGL"
msgstr "OpenGL"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
-#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
-msgid "Normal (no scaling)"
-msgstr "Putong"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:617
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2462
+msgid "Windowed mode"
+msgstr "Chuangkou Moshi"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Putong"
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:710
+#, c-format
+msgid "Resolution: %dx%d"
+msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2329
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:731
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2338
msgid "Enabled aspect ratio correction"
msgstr "Qiyong Bili Jiaozheng"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2335
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:733
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2344
msgid "Disabled aspect ratio correction"
msgstr "Jinyong Bili Jiaozheng"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2353
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:753
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2362
#, fuzzy
msgid "Filtering enabled"
msgstr "Qidong Dianji"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2355
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:755
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2364
#, fuzzy
msgid "Filtering disabled"
msgstr "Jinyong Dianji"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2407
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:47
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:88
+#: backends/graphics/wincesdl/wincesdl-graphics.cpp:95
+msgid "Normal (no scaling)"
+msgstr "Putong"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:66
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Putong"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2417
msgid "Active graphics filter:"
msgstr "Huodong de Tuxing Guolvqi:"
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2452
-msgid "Windowed mode"
-msgstr "Chuangkou Moshi"
-
#: backends/keymapper/remap-dialog.cpp:48
msgid "Keymap:"
msgstr "Jianpan Yingshe:"
@@ -3109,6 +3120,39 @@ msgstr "~M~Zhucaidan"
msgid "~W~ater Effect Enabled"
msgstr "~W~Qiyong Shuimian Xiaoguo"
+#: engines/mohawk/riven.cpp:150
+msgid ""
+"You're missing a Riven executable. The Windows executable is 'riven.exe' or "
+"'rivendmo.exe'. "
+msgstr ""
+
+#: engines/mohawk/riven.cpp:151
+msgid ""
+"Using the 'arcriven.z' installer file also works. In addition, you can use "
+"the Mac 'Riven' executable."
+msgstr ""
+
+#: engines/mohawk/riven.cpp:162
+msgid ""
+"You're missing 'extras.mhk'. Using the 'arcriven.z' installer file also "
+"works."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:213
+msgid ""
+"Exploration beyond this point available only within the full version of\n"
+"the game."
+msgstr ""
+
+#: engines/mohawk/riven_external.cpp:655
+msgid ""
+"At this point, the Riven Demo would\n"
+"ask if you would like to open a web browser\n"
+"to bring you to the Red Orb store to buy\n"
+"the game. ScummVM cannot do that and\n"
+"the site no longer exists."
+msgstr ""
+
#: engines/mohawk/mohawk.cpp:61
#, fuzzy
msgid "The game is paused. Press any key to continue."
@@ -4223,6 +4267,9 @@ msgstr "Shiyong Gaofenbianlv MPEG shipin"
msgid "Use MPEG video from the DVD version, instead of lower resolution AVI"
msgstr "Cong DVD Banben Zhong shiyong MPEG shipin, erfei Difenbianlv AVI"
+#~ msgid "You have to restart ScummVM before your changes will take effect."
+#~ msgstr "Nin Xuyao Chongqi ScummVM Lai Shi Genggai Shengxiao"
+
#~ msgid "OpenGL (No filtering)"
#~ msgstr "OpenGL"