aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS6
-rw-r--r--README3
-rw-r--r--backends/events/dinguxsdl/dinguxsdl-events.cpp5
-rw-r--r--backends/events/gph/gph-events.cpp3
-rw-r--r--backends/events/linuxmotosdl/linuxmotosdl-events.cpp10
-rw-r--r--backends/events/maemosdl/maemosdl-events.cpp32
-rw-r--r--backends/events/ps3sdl/ps3sdl-events.cpp10
-rw-r--r--backends/events/samsungtvsdl/samsungtvsdl-events.cpp11
-rw-r--r--backends/graphics/openglsdl/openglsdl-graphics.cpp9
-rw-r--r--backends/mixer/sdl/sdl-mixer.cpp3
-rw-r--r--backends/mixer/sdl13/sdl13-mixer.cpp3
-rw-r--r--backends/platform/android/android.mk5
-rw-r--r--backends/platform/android/events.cpp2
-rw-r--r--backends/platform/dingux/dingux.mk1
-rw-r--r--backends/platform/gph/caanoo-bundle.mk2
-rw-r--r--backends/platform/gph/gp2x-bundle.mk2
-rw-r--r--backends/platform/gph/gp2xwiz-bundle.mk2
-rw-r--r--backends/platform/linuxmoto/linuxmoto.mk4
-rwxr-xr-xbackends/platform/maemo/debian/rules1
-rw-r--r--backends/platform/n64/n64.mk1
-rw-r--r--backends/platform/psp/README.PSP2
-rw-r--r--backends/platform/sdl/ps3/ps3.mk27
-rw-r--r--backends/platform/symbian/S60v3/ScummVM_A0000658_S60v3.mmp.in5
-rw-r--r--backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in5
-rw-r--r--backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg1
-rw-r--r--backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg1
-rw-r--r--backends/platform/symbian/UIQ3/ScummVM_A0000658_UIQ3.mmp.in8
-rw-r--r--backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in8
-rw-r--r--backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg1
-rw-r--r--backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg1
-rw-r--r--backends/platform/symbian/help/ScummVM.rtf63
-rw-r--r--backends/platform/symbian/mmp/scummvm_base.mmp.in5
-rw-r--r--backends/platform/tizen/form.cpp9
-rw-r--r--backends/platform/wii/osystem_events.cpp4
-rw-r--r--backends/platform/wii/wii.mk1
-rw-r--r--backends/vkeybd/packs/vkeybd_small.zipbin0 -> 87598 bytes
-rw-r--r--backends/vkeybd/packs/vkeybd_small/lowercase-symbols320x240.bmpbin0 -> 153654 bytes
-rw-r--r--backends/vkeybd/packs/vkeybd_small/lowercase320x240.bmpbin0 -> 153654 bytes
-rw-r--r--backends/vkeybd/packs/vkeybd_small/uppercase-symbols320x240.bmpbin0 -> 153654 bytes
-rw-r--r--backends/vkeybd/packs/vkeybd_small/uppercase320x240.bmpbin0 -> 153654 bytes
-rw-r--r--backends/vkeybd/packs/vkeybd_small/vkeybd_small.xml637
-rw-r--r--backends/vkeybd/virtual-keyboard.cpp12
-rw-r--r--base/internal_version.h2
-rw-r--r--common/EventMapper.cpp30
-rwxr-xr-xconfigure4
-rw-r--r--devtools/create_project/scripts/postbuild.cmd3
-rw-r--r--dists/android/AndroidManifest.xml2
-rw-r--r--dists/android/plugin-manifest.xml2
-rw-r--r--dists/android/res/values-television/margins.xml (renamed from dists/android/res-ouya/values-television/margins.xml)0
-rw-r--r--dists/gph/README-GPH2
-rw-r--r--dists/gph/scummvm.ini2
-rw-r--r--dists/iphone/Info.plist4
-rw-r--r--dists/irix/scummvm.spec2
-rw-r--r--dists/macosx/Info.plist6
-rw-r--r--dists/openpandora/PXML.xml8
-rw-r--r--dists/openpandora/README-OPENPANDORA2
-rw-r--r--dists/openpandora/README-PND.txt2
-rw-r--r--dists/openpandora/index.html4
-rw-r--r--dists/redhat/scummvm-tools.spec2
-rw-r--r--dists/redhat/scummvm.spec2
-rw-r--r--dists/scummvm.rc8
-rwxr-xr-xdists/slackware/scummvm.SlackBuild2
-rw-r--r--dists/wii/meta.xml2
-rw-r--r--dists/win32/scummvm.nsi4
-rw-r--r--doc/de/Liesmich104
-rw-r--r--doc/de/Neues90
-rw-r--r--engines/agos/midi.cpp4
-rw-r--r--engines/fullpipe/fullpipe.cpp1
-rw-r--r--engines/fullpipe/mgm.cpp719
-rw-r--r--engines/fullpipe/mgm.h95
-rw-r--r--engines/fullpipe/module.mk1
-rw-r--r--engines/fullpipe/motion.cpp694
-rw-r--r--engines/fullpipe/motion.h66
-rw-r--r--engines/fullpipe/scene.cpp12
-rw-r--r--engines/mads/game.cpp36
-rw-r--r--engines/mads/game.h6
-rw-r--r--engines/mads/messages.cpp6
-rw-r--r--engines/mads/nebular/dialogs_nebular.cpp289
-rw-r--r--engines/mads/nebular/dialogs_nebular.h44
-rw-r--r--engines/mads/nebular/game_nebular.cpp6
-rw-r--r--engines/mads/nebular/nebular_scenes1.cpp2
-rw-r--r--engines/mads/nebular/nebular_scenes8.cpp2
-rw-r--r--engines/mads/scene.cpp2
-rw-r--r--engines/mads/screen.cpp19
-rw-r--r--engines/mads/sprites.cpp2
-rw-r--r--engines/neverhood/graphics.cpp10
-rw-r--r--engines/neverhood/modules/module1600_sprites.cpp3
-rw-r--r--engines/neverhood/sprite.cpp14
-rw-r--r--engines/saga/detection_tables.h24
-rw-r--r--engines/tsage/ringworld/ringworld_scenes10.cpp2
-rw-r--r--engines/tsage/ringworld2/ringworld2_logic.h2
-rw-r--r--engines/tsage/ringworld2/ringworld2_scenes1.cpp2
-rw-r--r--engines/tsage/ringworld2/ringworld2_scenes3.cpp11
-rw-r--r--engines/tsage/sound.cpp5
-rw-r--r--engines/voyeur/configure.engine2
-rw-r--r--engines/voyeur/files_threads.cpp9
-rw-r--r--engines/voyeur/voyeur.cpp4
-rw-r--r--gui/themes/translations.datbin430660 -> 440610 bytes
-rw-r--r--po/be_BY.po126
-rw-r--r--po/de_DE.po50
-rw-r--r--po/gl_ES.po49
-rw-r--r--po/nb_NO.po82
-rw-r--r--po/nn_NO.po396
-rw-r--r--po/pl_PL.po42
-rw-r--r--po/ru_RU.po79
-rw-r--r--po/se_SE.po40
-rw-r--r--po/uk_UA.po52
-rw-r--r--ports.mk30
108 files changed, 2702 insertions, 1532 deletions
diff --git a/NEWS b/NEWS
index 5fbbaf2c3f..46b8ee19aa 100644
--- a/NEWS
+++ b/NEWS
@@ -1,13 +1,15 @@
For a more comprehensive changelog of the latest experimental code, see:
https://github.com/scummvm/scummvm/commits/
-1.7.0 (????-??-??)
+1.8.0 (????-??-??)
+
+1.7.0 (2014-07-??)
New Games:
- Added support for Chivalry is Not Dead.
- Added support for Return to Ringworld.
- Added support for The Neverhood.
- Added support for Mortville Manor.
- - Added support for Voyeur
+ - Added support for Voyeur.
General:
- Updated Munt MT-32 emulation code to version 1.3.0.
diff --git a/README b/README
index b50d4a14d0..39f6223548 100644
--- a/README
+++ b/README
@@ -1268,6 +1268,9 @@ other games.
instead, or a multiple thereof
Alt-Enter - Toggles full screen/windowed
Alt-s - Make a screenshot (SDL backend only)
+ Ctrl-F7 - Open virtual keyboard (if enabled)
+ This can also be triggered by a long press
+ of the middle mouse button or wheel.
SCUMM:
Ctrl 0-9 and Alt 0-9 - Load and save game state
diff --git a/backends/events/dinguxsdl/dinguxsdl-events.cpp b/backends/events/dinguxsdl/dinguxsdl-events.cpp
index 46089a4fcd..6f9f2a7748 100644
--- a/backends/events/dinguxsdl/dinguxsdl-events.cpp
+++ b/backends/events/dinguxsdl/dinguxsdl-events.cpp
@@ -144,8 +144,9 @@ bool DINGUXSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
return true;
} else if (ev.key.keysym.sym == BUT_SELECT) { // virtual keyboard
- ev.key.keysym.sym = SDLK_F7;
-
+#ifdef ENABLE_VKEYBD
+ event.type = Common::EVENT_VIRTUAL_KEYBOARD;
+#endif
} else if (ev.key.keysym.sym == BUT_START) { // F5, menu in some games
ev.key.keysym.sym = SDLK_F5;
diff --git a/backends/events/gph/gph-events.cpp b/backends/events/gph/gph-events.cpp
index 90b6a2a29d..88fc97d3d1 100644
--- a/backends/events/gph/gph-events.cpp
+++ b/backends/events/gph/gph-events.cpp
@@ -348,8 +348,7 @@ bool GPHEventSource::handleJoyButtonDown(SDL_Event &ev, Common::Event &event) {
event.type = Common::EVENT_KEYDOWN;
if (BUTTON_STATE_L == true) {
#ifdef ENABLE_VKEYBD
- event.kbd.keycode = Common::KEYCODE_F7;
- event.kbd.ascii = mapKey(SDLK_F7, ev.key.keysym.mod, 0);
+ event.type = Common::EVENT_VIRTUAL_KEYBOARD;
#else
event.kbd.keycode = Common::KEYCODE_0;
event.kbd.ascii = mapKey(SDLK_0, ev.key.keysym.mod, 0);
diff --git a/backends/events/linuxmotosdl/linuxmotosdl-events.cpp b/backends/events/linuxmotosdl/linuxmotosdl-events.cpp
index ce34662612..b0d443ff9f 100644
--- a/backends/events/linuxmotosdl/linuxmotosdl-events.cpp
+++ b/backends/events/linuxmotosdl/linuxmotosdl-events.cpp
@@ -73,7 +73,10 @@ bool LinuxmotoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
}
// VirtualKeyboard - Camera key
else if (ev.key.keysym.sym == SDLK_PAUSE) {
- ev.key.keysym.sym = SDLK_F7;
+#ifdef ENABLE_VKEYBD
+ event.type = Common::EVENT_VIRTUAL_KEYBOARD;
+ return true;
+#endif
}
// Enter - mod+fire key
else if (ev.key.keysym.sym == SDLK_b) {
@@ -117,7 +120,10 @@ bool LinuxmotoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
}
// VirtualKeyboard - Right Soft key
else if (ev.key.keysym.sym == SDLK_F11) {
- ev.key.keysym.sym = SDLK_F7;
+#ifdef ENABLE_VKEYBD
+ event.type = Common::EVENT_VIRTUAL_KEYBOARD;
+ return true;
+#endif
}
#endif
diff --git a/backends/events/maemosdl/maemosdl-events.cpp b/backends/events/maemosdl/maemosdl-events.cpp
index 5045363286..8b7514004a 100644
--- a/backends/events/maemosdl/maemosdl-events.cpp
+++ b/backends/events/maemosdl/maemosdl-events.cpp
@@ -86,12 +86,11 @@ bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
return true;
} else if (ev.key.keysym.sym == SDLK_F6) {
if (!model.hasHwKeyboard) {
- event.type = Common::EVENT_KEYDOWN;
- event.kbd.keycode = Common::KEYCODE_F7;
- event.kbd.ascii = Common::ASCII_F7;
- event.kbd.flags = 0;
- debug(9, "remapping to F7 down (virtual keyboard)");
+#ifdef ENABLE_VKEYBD
+ event.type = Common::EVENT_VIRTUAL_KEYBOARD;
+ debug(9, "remapping to virtual keyboard trigger");
return true;
+#endif
} else {
// handled in keyup
}
@@ -102,12 +101,11 @@ bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
return true;
} else if (ev.key.keysym.sym == SDLK_F8) {
if (ev.key.keysym.mod & KMOD_CTRL) {
- event.type = Common::EVENT_KEYDOWN;
- event.kbd.keycode = Common::KEYCODE_F7;
- event.kbd.ascii = Common::ASCII_F7;
- event.kbd.flags = 0;
- debug(9, "remapping to F7 down (virtual keyboard)");
+#ifdef ENABLE_VKEYBD
+ event.type = Common::EVENT_VIRTUAL_KEYBOARD;
+ debug(9, "remapping to virtual keyboard trigger");
return true;
+#endif
} else {
// handled in keyup
return true;
@@ -125,12 +123,7 @@ bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
return true;
} else if (ev.key.keysym.sym == SDLK_F6) {
if (!model.hasHwKeyboard) {
- event.type = Common::EVENT_KEYUP;
- event.kbd.keycode = Common::KEYCODE_F7;
- event.kbd.ascii = Common::ASCII_F7;
- event.kbd.flags = 0;
- debug(9, "remapping to F7 down (virtual keyboard)");
- return true;
+ // handled in keydown
} else {
bool currentState = ((OSystem_SDL *)g_system)->getGraphicsManager()->getFeatureState(OSystem::kFeatureFullscreenMode);
g_system->beginGFXTransaction();
@@ -146,12 +139,7 @@ bool MaemoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
return true;
} else if (ev.key.keysym.sym == SDLK_F8) {
if (ev.key.keysym.mod & KMOD_CTRL) {
- event.type = Common::EVENT_KEYUP;
- event.kbd.keycode = Common::KEYCODE_F7;
- event.kbd.ascii = Common::ASCII_F7;
- event.kbd.flags = 0;
- debug(9, "remapping to F7 up (virtual keyboard)");
- return true;
+ // handled in key down
} else {
toggleClickMode();
debug(9, "remapping to click toggle");
diff --git a/backends/events/ps3sdl/ps3sdl-events.cpp b/backends/events/ps3sdl/ps3sdl-events.cpp
index 1a854436f1..0f6e01857b 100644
--- a/backends/events/ps3sdl/ps3sdl-events.cpp
+++ b/backends/events/ps3sdl/ps3sdl-events.cpp
@@ -72,9 +72,9 @@ bool PS3SdlEventSource::handleJoyButtonDown(SDL_Event &ev, Common::Event &event)
event.kbd.ascii = mapKey(SDLK_F5, (SDLMod) ev.key.keysym.mod, 0);
break;
case BTN_SELECT: // Virtual keyboard
- event.type = Common::EVENT_KEYDOWN;
- event.kbd.keycode = Common::KEYCODE_F7;
- event.kbd.ascii = mapKey(SDLK_F7, (SDLMod) ev.key.keysym.mod, 0);
+#ifdef ENABLE_VKEYBD
+ event.type = Common::EVENT_VIRTUAL_KEYBOARD;
+#endif
break;
case BTN_SQUARE: // Escape
event.type = Common::EVENT_KEYDOWN;
@@ -110,9 +110,7 @@ bool PS3SdlEventSource::handleJoyButtonUp(SDL_Event &ev, Common::Event &event) {
event.kbd.ascii = mapKey(SDLK_F5, (SDLMod) ev.key.keysym.mod, 0);
break;
case BTN_SELECT: // Virtual keyboard
- event.type = Common::EVENT_KEYUP;
- event.kbd.keycode = Common::KEYCODE_F7;
- event.kbd.ascii = mapKey(SDLK_F7, (SDLMod) ev.key.keysym.mod, 0);
+ // Handled in key down
break;
case BTN_SQUARE: // Escape
event.type = Common::EVENT_KEYUP;
diff --git a/backends/events/samsungtvsdl/samsungtvsdl-events.cpp b/backends/events/samsungtvsdl/samsungtvsdl-events.cpp
index f5b919a060..61499b566d 100644
--- a/backends/events/samsungtvsdl/samsungtvsdl-events.cpp
+++ b/backends/events/samsungtvsdl/samsungtvsdl-events.cpp
@@ -38,10 +38,10 @@ bool SamsungTVSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
event.kbd.ascii = Common::ASCII_F5;
return true;
} else if (ev.key.keysym.sym == SDLK_F2 && ev.key.keysym.scancode == 21) {
- event.type = Common::EVENT_KEYDOWN;
- event.kbd.keycode = Common::KEYCODE_F7;
- event.kbd.ascii = Common::ASCII_F7;
+#ifdef ENABLE_VKEYBD
+ event.type = Common::EVENT_VIRTUAL_KEYBOARD;
return true;
+#endif
}
break;
}
@@ -54,11 +54,6 @@ bool SamsungTVSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
event.kbd.keycode = Common::KEYCODE_F5;
event.kbd.ascii = Common::ASCII_F5;
return true;
- } else if (ev.key.keysym.sym == SDLK_F2 && ev.key.keysym.scancode == 21) {
- event.type = Common::EVENT_KEYUP;
- event.kbd.keycode = Common::KEYCODE_F7;
- event.kbd.ascii = Common::ASCII_F7;
- return true;
}
break;
}
diff --git a/backends/graphics/openglsdl/openglsdl-graphics.cpp b/backends/graphics/openglsdl/openglsdl-graphics.cpp
index c3584daa86..c998f3d1f1 100644
--- a/backends/graphics/openglsdl/openglsdl-graphics.cpp
+++ b/backends/graphics/openglsdl/openglsdl-graphics.cpp
@@ -356,10 +356,11 @@ bool OpenGLSdlGraphicsManager::setupMode(uint width, uint height) {
setActualScreenSize(_hwScreen->w, _hwScreen->h);
}
- // Ignore resize events (from SDL) for a few frames. This avoids
- // bad resizes to a (former) resolution for which we haven't
- // processed an event yet.
- _ignoreResizeEvents = 10;
+ // Ignore resize events (from SDL) for a few frames, if this isn't
+ // caused by a notification from SDL. This avoids bad resizes to a
+ // (former) resolution for which we haven't processed an event yet.
+ if (!_gotResize)
+ _ignoreResizeEvents = 10;
return _hwScreen != nullptr;
}
diff --git a/backends/mixer/sdl/sdl-mixer.cpp b/backends/mixer/sdl/sdl-mixer.cpp
index 7c709e91a3..e3b15b8c59 100644
--- a/backends/mixer/sdl/sdl-mixer.cpp
+++ b/backends/mixer/sdl/sdl-mixer.cpp
@@ -33,9 +33,8 @@
#ifdef GP2X
#define SAMPLES_PER_SEC 11025
#else
-#define SAMPLES_PER_SEC 22050
+#define SAMPLES_PER_SEC 44100
#endif
-//#define SAMPLES_PER_SEC 44100
SdlMixerManager::SdlMixerManager()
:
diff --git a/backends/mixer/sdl13/sdl13-mixer.cpp b/backends/mixer/sdl13/sdl13-mixer.cpp
index f9894a6f91..dc38242bde 100644
--- a/backends/mixer/sdl13/sdl13-mixer.cpp
+++ b/backends/mixer/sdl13/sdl13-mixer.cpp
@@ -33,9 +33,8 @@
#ifdef GP2X
#define SAMPLES_PER_SEC 11025
#else
-#define SAMPLES_PER_SEC 22050
+#define SAMPLES_PER_SEC 44100
#endif
-//#define SAMPLES_PER_SEC 44100
Sdl13MixerManager::Sdl13MixerManager()
:
diff --git a/backends/platform/android/android.mk b/backends/platform/android/android.mk
index 1a40299dcd..69aa9d8303 100644
--- a/backends/platform/android/android.mk
+++ b/backends/platform/android/android.mk
@@ -26,13 +26,10 @@ PATH_RESOURCES = $(PATH_DIST)/res
PORT_DISTFILES = $(PATH_DIST)/README.Android
-# FIXME: OUYA specific.
-# "values-television" not present in vanilla Android.
-# $(PATH_RESOURCES)/../res-ouya/values-television/margins.xml \
-
RESOURCES = \
$(PATH_RESOURCES)/values/strings.xml \
$(PATH_RESOURCES)/values/margins.xml \
+ $(PATH_RESOURCES)/values-television/margins.xml \
$(PATH_RESOURCES)/layout/main.xml \
$(PATH_RESOURCES)/layout/splash.xml \
$(PATH_RESOURCES)/drawable/gradient.xml \
diff --git a/backends/platform/android/events.cpp b/backends/platform/android/events.cpp
index c60626ec36..8039981a92 100644
--- a/backends/platform/android/events.cpp
+++ b/backends/platform/android/events.cpp
@@ -263,7 +263,7 @@ void OSystem_Android::setupKeymapper() {
Action *act;
act = new Action(globalMap, "VIRT", "Display keyboard");
- act->addKeyEvent(KeyState(KEYCODE_F7, ASCII_F7, 0));
+ act->addKeyEvent(KeyState(KEYCODE_F7, ASCII_F7, KBD_CTRL));
mapper->addGlobalKeymap(globalMap);
diff --git a/backends/platform/dingux/dingux.mk b/backends/platform/dingux/dingux.mk
index e0aca42856..48a9347143 100644
--- a/backends/platform/dingux/dingux.mk
+++ b/backends/platform/dingux/dingux.mk
@@ -26,6 +26,7 @@ ifdef DYNAMIC_MODULES
$(STRIP) $(bundle_name)/plugins/*
endif
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip $(bundle_name)/
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip $(bundle_name)/
$(CP) $(srcdir)/backends/platform/dingux/scummvm.gpe $(bundle_name)/
$(CP) $(srcdir)/backends/platform/dingux/README.DINGUX $(bundle_name)/
$(CP) $(srcdir)/backends/platform/dingux/scummvm.png $(bundle_name)/
diff --git a/backends/platform/gph/caanoo-bundle.mk b/backends/platform/gph/caanoo-bundle.mk
index 2cf8e62b37..9362daeba3 100644
--- a/backends/platform/gph/caanoo-bundle.mk
+++ b/backends/platform/gph/caanoo-bundle.mk
@@ -24,6 +24,7 @@ caanoo-bundle: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(bundle_name)/scummvm/
$(INSTALL) -c -m 644 $(DIST_FILES_ENGINEDATA) $(bundle_name)/scummvm/engine-data
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip $(bundle_name)/scummvm/
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip $(bundle_name)/scummvm/
$(STRIP) $(EXECUTABLE) -o $(bundle_name)/scummvm/$(EXECUTABLE)
@@ -55,6 +56,7 @@ caanoo-bundle-debug: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(bundle_name)/scummvm/
$(INSTALL) -c -m 644 $(DIST_FILES_ENGINEDATA) $(bundle_name)/scummvm/engine-data
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip $(bundle_name)/scummvm/
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip $(bundle_name)/scummvm/
$(INSTALL) -c -m 777 $(srcdir)/$(EXECUTABLE) $(bundle_name)/scummvm/$(EXECUTABLE)
diff --git a/backends/platform/gph/gp2x-bundle.mk b/backends/platform/gph/gp2x-bundle.mk
index 9fcb379e04..d430ae6ebe 100644
--- a/backends/platform/gph/gp2x-bundle.mk
+++ b/backends/platform/gph/gp2x-bundle.mk
@@ -21,6 +21,7 @@ gp2x-bundle: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(bundle_name)
$(INSTALL) -c -m 644 $(DIST_FILES_ENGINEDATA) $(bundle_name)/engine-data
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip $(bundle_name)
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip $(bundle_name)
$(STRIP) $(EXECUTABLE) -o $(bundle_name)/$(EXECUTABLE)
@@ -52,6 +53,7 @@ gp2x-bundle-debug: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(bundle_name)
$(INSTALL) -c -m 644 $(DIST_FILES_ENGINEDATA) $(bundle_name)/engine-data
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip $(bundle_name)
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip $(bundle_name)
$(INSTALL) -c -m 777 $(srcdir)/$(EXECUTABLE) $(bundle_name)/$(EXECUTABLE)
diff --git a/backends/platform/gph/gp2xwiz-bundle.mk b/backends/platform/gph/gp2xwiz-bundle.mk
index 4f49850813..36a720aae6 100644
--- a/backends/platform/gph/gp2xwiz-bundle.mk
+++ b/backends/platform/gph/gp2xwiz-bundle.mk
@@ -23,6 +23,7 @@ gp2xwiz-bundle: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(bundle_name)/scummvm/
$(INSTALL) -c -m 644 $(DIST_FILES_ENGINEDATA) $(bundle_name)/scummvm/engine-data
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip $(bundle_name)/scummvm/
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip $(bundle_name)/scummvm/
$(STRIP) $(EXECUTABLE) -o $(bundle_name)/scummvm/$(EXECUTABLE)
@@ -57,6 +58,7 @@ gp2xwiz-bundle-debug: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(bundle_name)/scummvm/
$(INSTALL) -c -m 644 $(DIST_FILES_ENGINEDATA) $(bundle_name)/scummvm/engine-data
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip $(bundle_name)/scummvm/
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip $(bundle_name)/scummvm/
$(INSTALL) -c -m 777 $(srcdir)/$(EXECUTABLE) $(bundle_name)/scummvm/$(EXECUTABLE)
diff --git a/backends/platform/linuxmoto/linuxmoto.mk b/backends/platform/linuxmoto/linuxmoto.mk
index f64fadbccd..937fb4ef69 100644
--- a/backends/platform/linuxmoto/linuxmoto.mk
+++ b/backends/platform/linuxmoto/linuxmoto.mk
@@ -5,6 +5,7 @@ motoezx: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(DIST_FILES_ENGINEDATA) release/scummvm/
$(INSTALL) -c -m 644 $(DIST_FILES_DOCS) release/scummvm/
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip release/scummvm/
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip release/scummvm/
$(CP) $(srcdir)/dists/motoezx/* release/scummvm/
tar -C release -cvzf release/ScummVM-motoezx.pkg scummvm
$(RM) -r release/scummvm
@@ -16,6 +17,7 @@ motomagx-mpkg: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(DIST_FILES_ENGINEDATA) release/scummvm/
$(INSTALL) -c -m 644 $(DIST_FILES_DOCS) release/scummvm/
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip release/scummvm/
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip release/scummvm/
$(CP) $(srcdir)/dists/motomagx/mpkg/* release/scummvm/
tar -C release -cvzf release/ScummVM-motomagx.mpkg scummvm
$(RM) -r release/scummvm
@@ -26,6 +28,7 @@ motomagx-mgx: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(DIST_FILES_ENGINEDATA) release/scummvm/
$(INSTALL) -c -m 644 $(DIST_FILES_DOCS) release/scummvm/
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip release/scummvm/
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip release/scummvm/
$(CP) $(srcdir)/dists/motomagx/mgx/* release/scummvm/
tar -C release -cvf release/ScummVM-motomagx.mgx scummvm
$(RM) -r release/scummvm
@@ -38,6 +41,7 @@ motomagx-pep: $(EXECUTABLE)
$(INSTALL) -c -m 644 $(DIST_FILES_THEMES) $(DIST_FILES_ENGINEDATA) release/pep/app
$(INSTALL) -c -m 644 $(DIST_FILES_DOCS) release/pep/app
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip release/pep/app
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip release/pep/app
tar -C release/pep -czvf release/ScummVM-motomagx.pep app description.ini scummvm_big_usr.png scummvm_small_usr.png
$(RM) -r release/pep
diff --git a/backends/platform/maemo/debian/rules b/backends/platform/maemo/debian/rules
index c713403876..2aa7f339c9 100755
--- a/backends/platform/maemo/debian/rules
+++ b/backends/platform/maemo/debian/rules
@@ -46,6 +46,7 @@ install: build
install -m0644 dists/pred.dic debian/scummvm/opt/scummvm/share
install -m0644 gui/themes/scummclassic.zip gui/themes/scummmodern.zip debian/scummvm/opt/scummvm/share
install -m0644 backends/vkeybd/packs/vkeybd_default.zip debian/scummvm/opt/scummvm/share
+ install -m0644 backends/vkeybd/packs/vkeybd_small.zip debian/scummvm/opt/scummvm/share
# for optified version we can also add engine datafiles
install -m0644 dists/engine-data/drascula.dat dists/engine-data/hugo.dat dists/engine-data/kyra.dat dists/engine-data/lure.dat dists/engine-data/queen.tbl dists/engine-data/sky.cpt dists/engine-data/teenagent.dat dists/engine-data/tony.dat dists/engine-data/toon.dat debian/scummvm/opt/scummvm/share
diff --git a/backends/platform/n64/n64.mk b/backends/platform/n64/n64.mk
index 83ad405503..3198170788 100644
--- a/backends/platform/n64/n64.mk
+++ b/backends/platform/n64/n64.mk
@@ -20,6 +20,7 @@ ifdef DIST_FILES_ENGINEDATA
endif
$(CP) $(DIST_FILES_DOCS) $(bundle_name)/
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip $(bundle_name)/romfs
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip $(bundle_name)/romfs
genromfs -f $(bundle_name)/romfs.img -d $(bundle_name)/romfs -V scummvmn64
mips64-objcopy $(EXECUTABLE) $(bundle_name)/scummvm.elf -O binary
cat $(N64SDK)/hkz-libn64/bootcode $(bundle_name)/scummvm.elf $(bundle_name)/romfs.img > scummvm.v64
diff --git a/backends/platform/psp/README.PSP b/backends/platform/psp/README.PSP
index 18833d9f23..d92202bf4e 100644
--- a/backends/platform/psp/README.PSP
+++ b/backends/platform/psp/README.PSP
@@ -1,4 +1,4 @@
-ScummVM-PSP 1.7.0git README
+ScummVM-PSP 1.8.0git README
==============================================================================
Installation
diff --git a/backends/platform/sdl/ps3/ps3.mk b/backends/platform/sdl/ps3/ps3.mk
new file mode 100644
index 0000000000..a06409fc65
--- /dev/null
+++ b/backends/platform/sdl/ps3/ps3.mk
@@ -0,0 +1,27 @@
+ps3pkg: $(EXECUTABLE)
+ $(STRIP) $(EXECUTABLE)
+ sprxlinker $(EXECUTABLE)
+ mkdir -p ps3pkg/USRDIR/data/
+ mkdir -p ps3pkg/USRDIR/doc/
+ mkdir -p ps3pkg/USRDIR/saves/
+ make_self_npdrm "$(EXECUTABLE)" ps3pkg/USRDIR/EBOOT.BIN UP0001-SCUM12000_00-0000000000000000
+ cp $(DIST_FILES_THEMES) ps3pkg/USRDIR/data/
+ifdef DIST_FILES_ENGINEDATA
+ cp $(DIST_FILES_ENGINEDATA) ps3pkg/USRDIR/data/
+endif
+ cp $(DIST_FILES_DOCS) ps3pkg/USRDIR/doc/
+ cp $(srcdir)/dists/ps3/readme-ps3.md ps3pkg/USRDIR/doc/
+ cp $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip ps3pkg/USRDIR/data/
+ cp $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip ps3pkg/USRDIR/data/
+ cp $(srcdir)/dists/ps3/ICON0.PNG ps3pkg/
+ cp $(srcdir)/dists/ps3/PIC1.PNG ps3pkg/
+ sfo.py -f $(srcdir)/dists/ps3/sfo.xml ps3pkg/PARAM.SFO
+ pkg.py --contentid UP0001-SCUM12000_00-0000000000000000 ps3pkg/ scummvm-ps3.pkg
+
+ps3run: $(EXECUTABLE)
+ $(STRIP) $(EXECUTABLE)
+ sprxlinker $(EXECUTABLE)
+ make_self $(EXECUTABLE) $(EXECUTABLE).self
+ ps3load $(EXECUTABLE).self
+
+.PHONY: ps3pkg ps3run
diff --git a/backends/platform/symbian/S60v3/ScummVM_A0000658_S60v3.mmp.in b/backends/platform/symbian/S60v3/ScummVM_A0000658_S60v3.mmp.in
index cbb9679340..b33a10ecdd 100644
--- a/backends/platform/symbian/S60v3/ScummVM_A0000658_S60v3.mmp.in
+++ b/backends/platform/symbian/S60v3/ScummVM_A0000658_S60v3.mmp.in
@@ -1,8 +1,9 @@
/* ScummVM - Graphic Adventure Engine
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
- * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
+ * Copyright (C) 2003-2014 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
- * Copyright (C) 2005-2013 The ScummVM project
+ * Copyright (C) 2013-2014 Fedor Strizhniou Additional library porting, engine support, help files etc
+ * Copyright (C) 2005-2014 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
diff --git a/backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in b/backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in
index 899d10dbe3..0b4633e7bf 100644
--- a/backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in
+++ b/backends/platform/symbian/S60v3/ScummVM_S60v3.mmp.in
@@ -1,8 +1,9 @@
/* ScummVM - Graphic Adventure Engine
* Copyright (C) 2003-2005 Andreas 'Sprawl' Karlsson - Original EPOC port, ESDL
- * Copyright (C) 2003-2005 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
+ * Copyright (C) 2003-2014 Lars 'AnotherGuest' Persson - Original EPOC port, Audio System
* Copyright (C) 2005 Jurgen 'SumthinWicked' Braam - EPOC/CVS maintainer
- * Copyright (C) 2005-2013 The ScummVM project
+ * Copyright (C) 2013-2014 Fedor Strizhniou Additional library porting, engine support, help files etc
+ * Copyright (C) 2005-2014 The ScummVM project
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
diff --git a/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg
index 5f74bee1c7..2ba65c4571 100644
--- a/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg
+++ b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3.pkg
@@ -74,6 +74,7 @@
"..\..\..\..\dists\engine-data\toon.dat"-"c:\data\scummvm\toon.dat"
"..\..\..\..\dists\engine-data\wintermute.zip"-"c:\data\scummvm\wintermute.zip"
"..\..\..\vkeybd\packs\vkeybd_default.zip"-"c:\data\scummvm\vkeybd_default.zip"
+"..\..\..\vkeybd\packs\vkeybd_small.zip"-"c:\data\scummvm\vkeybd_small.zip"
"..\..\..\..\gui\themes\translations.dat"-"c:\data\scummvm\translations.dat"
"..\..\..\..\gui\themes\scummmodern.zip"-"c:\data\scummvm\scummmodern.zip"
diff --git a/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg
index 4ef085d600..2d2edf2803 100644
--- a/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg
+++ b/backends/platform/symbian/S60v3/scummvm-CVS-SymbianS60v3_split.pkg
@@ -82,6 +82,7 @@
"..\..\..\..\dists\engine-data\toon.dat"-"c:\data\scummvm\toon.dat"
"..\..\..\..\dists\engine-data\wintermute.zip"-"c:\data\scummvm\wintermute.zip"
"..\..\..\vkeybd\packs\vkeybd_default.zip"-"c:\data\scummvm\vkeybd_default.zip"
+"..\..\..\vkeybd\packs\vkeybd_small.zip"-"c:\data\scummvm\vkeybd_small.zip"
"..\..\..\..\gui\themes\translations.dat"-"c:\data\scummvm\translations.dat"
"..\..\..\..\gui\themes\scummmodern.zip"-"c:\data\scummvm\scummmodern.zip"
diff --git a/backends/platform/symbian/UIQ3/ScummVM_A0000658_UIQ3.mmp.in b/backends/platform/symbian/UIQ3/ScummVM_A0000658_UIQ3.mmp.in
index 7c9e9032d4..bb6c3ed9ec 100644
--- a/backends/platform/symbian/UIQ3/ScummVM_A0000658_UIQ3.mmp.in
+++ b/backends/platform/symbian/UIQ3/ScummVM_A0000658_UIQ3.mmp.in
@@ -92,11 +92,17 @@ STATICLIBRARY esdl.lib
// *** Include paths
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\engines
-USERINCLUDE ..\..\..\..\backends\fs ..\src ..\..\..\..\backends\platform\sdl ..\..\..\..\sound
+USERINCLUDE ..\..\..\..\backends\fs ..\src ..\..\..\..\backends\platform\sdl ..\..\..\..\audio
+SYSTEMINCLUDE \epoc32\include\freetype
+SYSTEMINCLUDE \epoc32\include\mpeg2dec
+SYSTEMINCLUDE \epoc32\include\jpeg
+SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
+SYSTEMINCLUDE \epoc32\include\theora
+SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h
diff --git a/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in b/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in
index ab2956af55..3681a2df29 100644
--- a/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in
+++ b/backends/platform/symbian/UIQ3/ScummVM_UIQ3.mmp.in
@@ -92,11 +92,17 @@ STATICLIBRARY esdl.lib
// *** Include paths
USERINCLUDE ..\..\..\.. ..\..\..\..\gui ..\..\..\..\engines
-USERINCLUDE ..\..\..\..\backends\fs ..\src ..\..\..\..\backends\platform\sdl ..\..\..\..\sound
+USERINCLUDE ..\..\..\..\backends\fs ..\src ..\..\..\..\backends\platform\sdl ..\..\..\..\audio
+SYSTEMINCLUDE \epoc32\include\freetype
+SYSTEMINCLUDE \epoc32\include\mpeg2dec
+SYSTEMINCLUDE \epoc32\include\jpeg
+SYSTEMINCLUDE \epoc32\include\png
SYSTEMINCLUDE \epoc32\include\ESDL
SYSTEMINCLUDE \epoc32\include\ZLIB // before \epoc32\include because symbian already has older version
SYSTEMINCLUDE \epoc32\include\libc
+SYSTEMINCLUDE \epoc32\include\theora
+SYSTEMINCLUDE \epoc32\include\tremor
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE ..\src // for portdefs.h
diff --git a/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg
index b4f1cfdd5c..5db65e8e5c 100644
--- a/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg
+++ b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3.pkg
@@ -64,6 +64,7 @@
"..\..\..\..\dists\engine-data\teenagent.dat"-"c:\shared\scummvm\teenagent.dat"
"..\..\..\..\dists\engine-data\toon.dat"-"c:\shared\scummvm\toon.dat"
"..\..\..\vkeybd\packs\vkeybd_default.zip"-"c:\shared\scummvm\vkeybd_default.zip"
+"..\..\..\vkeybd\packs\vkeybd_small.zip"-"c:\shared\scummvm\vkeybd_small.zip"
"..\..\..\..\gui\themes\translations.dat"-"c:\shared\scummvm\translations.dat"
"..\..\..\..\gui\themes\scummmodern.zip"-"c:\shared\scummvm\scummmodern.zip"
diff --git a/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg
index 722e23a1b8..d783bd51bd 100644
--- a/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg
+++ b/backends/platform/symbian/UIQ3/scummvm-CVS-SymbianUIQ3_split.pkg
@@ -72,6 +72,7 @@
"..\..\..\..\dists\engine-data\teenagent.dat"-"c:\shared\scummvm\teenagent.dat"
"..\..\..\..\dists\engine-data\toon.dat"-"c:\shared\scummvm\toon.dat"
"..\..\..\vkeybd\packs\vkeybd_default.zip"-"c:\shared\scummvm\vkeybd_default.zip"
+"..\..\..\vkeybd\packs\vkeybd_small.zip"-"c:\shared\scummvm\vkeybd_small.zip"
"..\..\..\..\gui\themes\translations.dat"-"c:\shared\scummvm\translations.dat"
"..\..\..\..\gui\themes\scummmodern.zip"-"c:\shared\scummvm\scummmodern.zip"
diff --git a/backends/platform/symbian/help/ScummVM.rtf b/backends/platform/symbian/help/ScummVM.rtf
index 352e2e8776..25254f5338 100644
--- a/backends/platform/symbian/help/ScummVM.rtf
+++ b/backends/platform/symbian/help/ScummVM.rtf
@@ -49,12 +49,13 @@ Synonyms;}{\*\cs33 \additive \super \sbasedon10 endnote reference;}{\s34\ql \fi-
{\listoverride\listid-129\listoverridecount0\ls2}{\listoverride\listid-119\listoverridecount0\ls3}{\listoverride\listid-125\listoverridecount0\ls4}{\listoverride\listid-120\listoverridecount0\ls5}{\listoverride\listid-129\listoverridecount0\ls6}
{\listoverride\listid-119\listoverridecount0\ls7}{\listoverride\listid-125\listoverridecount0\ls8}{\listoverride\listid-120\listoverridecount0\ls9}{\listoverride\listid-129\listoverridecount0\ls10}{\listoverride\listid-119\listoverridecount0\ls11}
{\listoverride\listid-125\listoverridecount0\ls12}{\listoverride\listid-120\listoverridecount0\ls13}{\listoverride\listid-129\listoverridecount0\ls14}{\listoverride\listid-119\listoverridecount0\ls15}{\listoverride\listid-125\listoverridecount0\ls16}
-{\listoverride\listid-120\listoverridecount0\ls17}{\listoverride\listid-129\listoverridecount0\ls18}{\listoverride\listid-119\listoverridecount0\ls19}{\listoverride\listid-125\listoverridecount0\ls20}{\listoverride\listid-2\listoverridecount1{\lfolevel
-\listoverrideformat{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent283{\leveltext\'01\u-3991 ?;}{\levelnumbers;}\f30\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-283\li283
-}}\ls21}{\listoverride\listid-2\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent283{\leveltext\'01\u-3991 ?;}{\levelnumbers;}\f30\chbrdr
-\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-283\li283 }}\ls22}}{\info{\author Fedor}{\operator Fedor}{\creatim\yr2013\mo11\dy30\hr23\min4}{\revtim\yr2014\mo5\dy28\hr12\min17}{\version97}{\edmins91}{\nofpages8}{\nofwords1514}{\nofchars8634}
-{\*\company DEV}{\nofcharsws0}{\vern8249}}\margl1701\margr850\margt1134\margb1134 \deftab708\widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0
-\dgvshow3\jcompress\viewkind4\viewscale100\nolnhtadjtbl \fet0{\*\template E:\\Documents and Settings\\Administrator\\Application Data\\Microsoft\\\'d8\'e0\'e1\'eb\'ee\'ed\'fb\\cshelp2000.dot}\sectd \linex0\sectdefaultcl {\*\pnseclvl1
+{\listoverride\listid-120\listoverridecount0\ls17}{\listoverride\listid-129\listoverridecount0\ls18}{\listoverride\listid-119\listoverridecount0\ls19}{\listoverride\listid-125\listoverridecount0\ls20}{\listoverride\listid-120\listoverridecount0\ls21}
+{\listoverride\listid-129\listoverridecount0\ls22}{\listoverride\listid-119\listoverridecount0\ls23}{\listoverride\listid-125\listoverridecount0\ls24}{\listoverride\listid-2\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc23\levelnfcn23
+\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent283{\leveltext\'01\u-3991 ?;}{\levelnumbers;}\f30\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-283\li283 }}\ls25}{\listoverride\listid-2
+\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent283{\leveltext\'01\u-3991 ?;}{\levelnumbers;}\f30\chbrdr\brdrnone\brdrcf1
+\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-283\li283 }}\ls26}}{\info{\author Fedor}{\operator Fedor}{\creatim\yr2013\mo11\dy30\hr23\min4}{\revtim\yr2014\mo7\dy2\hr12\min57}{\version98}{\edmins92}{\nofpages8}{\nofwords1514}{\nofchars8634}{\*\company DEV}
+{\nofcharsws0}{\vern8249}}\margl1701\margr850\margt1134\margb1134 \deftab708\widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3
+\jcompress\viewkind4\viewscale100\nolnhtadjtbl \fet0{\*\template E:\\Documents and Settings\\Administrator\\Application Data\\Microsoft\\\'d8\'e0\'e1\'eb\'ee\'ed\'fb\\cshelp2000.dot}\sectd \linex0\sectdefaultcl {\*\pnseclvl1
\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5
\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang
{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \s17\ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \i\f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {
@@ -66,8 +67,8 @@ Synonyms;}{\*\cs33 \additive \super \sbasedon10 endnote reference;}{\s34\ql \fi-
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\f28
\par }\pard\plain \s2\ql \li0\ri0\sb120\sa120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \brdrb\brdrs\brdrw30\brsp20 \tqr\tx9072\nooverflow\faroman\outlinelevel1\rin0\lin0\itap0 \b\f1\fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\b0\f28
About ScummVM Help
-\par {\pntext\pard\plain\s26 \f30\fs20\lang2057\langfe1033\langnp2057\langfenp1033 \loch\af30\dbch\af0\hich\f30 \'69\tab}}\pard\plain \s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl0\ls21\pnrnot0
-\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls21\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {About ScummVM Help
+\par {\pntext\pard\plain\s26 \f30\fs20\lang2057\langfe1033\langnp2057\langfenp1033 \loch\af30\dbch\af0\hich\f30 \'69\tab}}\pard\plain \s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl0\ls25\pnrnot0
+\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls25\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {About ScummVM Help
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\f28
\par }{
This help file based on ScummVM forum thread with some elaborations(in Anotherguest section) and text correction. If you wish add some text or translate you may download and modify source document from https://sourceforge.net/projects/scummvms60git/ and t
@@ -78,8 +79,8 @@ hen send me to fedor_qd@mail.ru
\par }{\f29
\par }\pard\plain \s2\ql \li0\ri0\sb120\sa120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \brdrb\brdrs\brdrw30\brsp20 \tqr\tx9072{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\outlinelevel1\rin0\lin0\itap0
\b\f1\fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\b0\f28 1st guide
-\par {\pntext\pard\plain\s26 \f30\fs20\lang2057\langfe1033\langnp2057\langfenp1033 \loch\af30\dbch\af0\hich\f30 \'69\tab}}\pard\plain \s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl0\ls21\pnrnot0
-\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls21\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {Controls, Virtual keyboard, Shortcuts, ScummVM, Tips, S60, UIQ, UIQ3, S80, s80, S90, s90
+\par {\pntext\pard\plain\s26 \f30\fs20\lang2057\langfe1033\langnp2057\langfenp1033 \loch\af30\dbch\af0\hich\f30 \'69\tab}}\pard\plain \s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl0\ls25\pnrnot0
+\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls25\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {Controls, Virtual keyboard, Shortcuts, ScummVM, Tips, S60, UIQ, UIQ3, S80, s80, S90, s90
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\f28
\par }{UIQ3 devices: To the top right (holding the phone portrait) you four icons, from the top they are
\par
@@ -120,21 +121,22 @@ hen send me to fedor_qd@mail.ru
\par
\par What are these Joystick, Keyboard and Cursor modes anyway?
\par }{\f28
-\par }{Joystick mode sends SDL joystick events to ScummVM which acts as a mouse control in ScummVM. Cursor mode sends keyboard arrows instead, so for example it can be used to navigate
-through directorylist (one hand use perhaps!?) or save games etc. Keyboard mode is only available for S60 and enables multi-tap to enter text characters in save dialogs. These modes are implemented at the underlying SDL level, so this determines the types
- of events that ScummVM receives from SDL.
+\par }{Joystick mode sends SDL joystick events to ScummVM which acts as a mouse control in ScummVM. Cursor mode sends keyboard arrows instead, so for examp
+le it can be used to navigate through directorylist (one hand use perhaps!?) or save games etc. Keyboard mode is only available for S60 and enables multi-tap to enter text characters in save dialogs. These modes are implemented at the underlying SDL level
+, so this determines the types of events that ScummVM receives from SDL.
\par What are these Shrinked, Zoomed and Upscaled modes anyway?
\par
-\par Shrink displays the game on your screen but in a shrinked way, either in Portrait or Landscape mode, so not all the pixels can be seen. Zoom mode uses the maximum resolution of your phone displaying a smaller part of the game zoomed at 1:1 pixels. For scr
-olling in S60 Zoom mode: 0+Cursor keys to scroll around, 0+Ok button to center view. Upscale tries to fill the larger screens on S80/S90 devices in a better way for low resolution games. Currently it uses a pixel interpolation upscaling routine.
+\par Shrink displays the game on your screen but in a shrinked way, either in Portrait or Landscape mode, so not all the pixels c
+an be seen. Zoom mode uses the maximum resolution of your phone displaying a smaller part of the game zoomed at 1:1 pixels. For scrolling in S60 Zoom mode: 0+Cursor keys to scroll around, 0+Ok button to center view. Upscale tries to fill the larger screen
+s on S80/S90 devices in a better way for low resolution games. Currently it uses a pixel interpolation upscaling routine.
\par
\par You can also use a bluetooth mouse with S60v3 devices to control your game. You need the bluetooth hid library from Hinkka http://koti.mbnet.fi/hinkka/Download.html to get it to work properly.
\par }{\f29
\par
\par }\pard\plain \s2\ql \li0\ri0\sb120\sa120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \brdrb\brdrs\brdrw30\brsp20 \tqr\tx9072{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\outlinelevel1\rin0\lin0\itap0
\b\f1\fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\b0\f28 2nd guide
-\par {\pntext\pard\plain\s26 \f30\fs20\lang2057\langfe1033\langnp2057\langfenp1033 \loch\af30\dbch\af0\hich\f30 \'69\tab}}\pard\plain \s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl0\ls21\pnrnot0
-\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls21\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {Controls, Virtual keyboard, Shortcuts, ScummVM, Tips, S60, s60
+\par {\pntext\pard\plain\s26 \f30\fs20\lang2057\langfe1033\langnp2057\langfenp1033 \loch\af30\dbch\af0\hich\f30 \'69\tab}}\pard\plain \s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl0\ls25\pnrnot0
+\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls25\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {Controls, Virtual keyboard, Shortcuts, ScummVM, Tips, S60, s60
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\f28
\par
\par }{More user-friendly guide for Nokia phones (based on N96 but should apply to most phones)
@@ -159,8 +161,9 @@ olling in S60 Zoom mode: 0+Cursor keys to scroll around, 0+Ok button to center v
\par }{1 - Change Input.
\par This is the option you'll probably use the most. There are three settings; A,C and J.
\par
-\par A - This is the "Text Input" mode. It allows you to type directl
-y into ScummVM as if you were using a keyboard. Type the same way you would when sending a text message off of your phone. Please note that the pointer is disabled when in this mode. Don't forget to exit Configuration Mode before typing!
+\par A -
+ This is the "Text Input" mode. It allows you to type directly into ScummVM as if you were using a keyboard. Type the same way you would when sending a text message off of your phone. Please note that the pointer is disabled when in this mode. Don't forge
+t to exit Configuration Mode before typing!
\par
\par C - This is the "Cursor" mode. This emulates the arrow keys of the keyboard. Some games require using this instead of the mouse (e.g. the destruction derby section towards the end of Full Throttle).
\par
@@ -175,8 +178,8 @@ y into ScummVM as if you were using a keyboard. Type the same way you would when
\par Only applies to Landscape mode, simply swaps the screen output between having the phone tilted on its left side or on its right side.
\par
\par 4 - Toggle Zoom On and Off
-\par Zooms in on a portion of the screen. Handy for when you are looking through a screen for items or having trouble reading subtitles. Use the navigation buttons for panning around the play area. Don't forget you'll have to exit out of Confi
-guration Mode before you can move the pointer again. Exiting Configuration Mode does not reset the zoom level.
+\par Zooms in on a portion of the screen. Handy for when you are looking through a screen for items or having trouble readin
+g subtitles. Use the navigation buttons for panning around the play area. Don't forget you'll have to exit out of Configuration Mode before you can move the pointer again. Exiting Configuration Mode does not reset the zoom level.
\par }{\f29
\par }{5 & 6 - Unused
\par
@@ -197,8 +200,8 @@ guration Mode before you can move the pointer again. Exiting Configuration Mode
\par
\par }\pard\plain \s2\ql \li0\ri0\sb120\sa120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \brdrb\brdrs\brdrw30\brsp20 \tqr\tx9072{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\outlinelevel1\rin0\lin0\itap0
\b\f1\fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\b0\f28 3rd guide
-\par {\pntext\pard\plain\s26 \f30\fs20\lang2057\langfe1033\langnp2057\langfenp1033 \loch\af30\dbch\af0\hich\f30 \'69\tab}}\pard\plain \s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl0\ls21\pnrnot0
-\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls21\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {Controls, Virtual keyboard, Shortcuts, ScummVM, Tips, S60, s60
+\par {\pntext\pard\plain\s26 \f30\fs20\lang2057\langfe1033\langnp2057\langfenp1033 \loch\af30\dbch\af0\hich\f30 \'69\tab}}\pard\plain \s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl0\ls25\pnrnot0
+\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls25\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {Controls, Virtual keyboard, Shortcuts, ScummVM, Tips, S60, s60
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {\f28
\par
\par }{ScummVM keys on Nokia e71 (most likely on any other qwerty-device, too), tested on version 0.14.0svn (Feb. 18 2009
@@ -252,8 +255,9 @@ guration Mode before you can move the pointer again. Exiting Configuration Mode
\par p -- punch (hand)
\par
\par AGI games (King's Quest, Police Quest etc.):
-\par The games work beautifully on the E71, but there's some stupid bugs (in input). I recall finding some debug keys and "last sentence" / "inventory" -keys in earlier version, but I can't find them any more. Also you can't turn on sirens in Police Quest, whi
-ch kinda makes it unplayable.
+\par The
+ games work beautifully on the E71, but there's some stupid bugs (in input). I recall finding some debug keys and "last sentence" / "inventory" -keys in earlier version, but I can't find them any more. Also you can't turn on sirens in Police Quest, which
+kinda makes it unplayable.
\par
\par There's good side and bad side to each input mode:
\par Keyboard (I use this primarily)
@@ -274,8 +278,8 @@ ch kinda makes it unplayable.
\par }{\f28
\par }\pard\plain \s2\ql \li0\ri0\sb120\sa120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \brdrb\brdrs\brdrw30\brsp20 \tqr\tx9072{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\outlinelevel1\rin0\lin0\itap0
\b\f1\fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {ScummVM1 engines list
-\par {\pntext\pard\plain\s26 \f30\fs20\lang2057\langfe1033\langnp2057\langfenp1033 \loch\af30\dbch\af0\hich\f30 \'69\tab}}\pard\plain \s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl0\ls22\pnrnot0
-\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls22\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {Supported engines
+\par {\pntext\pard\plain\s26 \f30\fs20\lang2057\langfe1033\langnp2057\langfenp1033 \loch\af30\dbch\af0\hich\f30 \'69\tab}}\pard\plain \s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl0\ls26\pnrnot0
+\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls26\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {Supported engines
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {agi
\par agos
\par \tab AGOS2
@@ -302,12 +306,13 @@ ch kinda makes it unplayable.
\par \tab SCUMM_7_8
\par touche
\par tucker
+\par voyeur
\par wintermute
\par
\par }\pard\plain \s2\ql \li0\ri0\sb120\sa120\keepn\widctlpar\brdrt\brdrs\brdrw30\brsp20 \brdrb\brdrs\brdrw30\brsp20 \tqr\tx9072{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\nooverflow\faroman\outlinelevel1\rin0\lin0\itap0
\b\f1\fs24\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {ScummVM2 engines list
-\par {\pntext\pard\plain\s26 \f30\fs20\lang2057\langfe1033\langnp2057\langfenp1033 \loch\af30\dbch\af0\hich\f30 \'69\tab}}\pard\plain \s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl0\ls22\pnrnot0
-\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls22\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {Supported engines
+\par {\pntext\pard\plain\s26 \f30\fs20\lang2057\langfe1033\langnp2057\langfenp1033 \loch\af30\dbch\af0\hich\f30 \'69\tab}}\pard\plain \s26\ql \fi-283\li283\ri0\sa120\widctlpar\brdrb\brdrs\brdrw15\brsp20 {\*\pn \pnlvlblt\ilvl0\ls26\pnrnot0
+\pnf30\pnstart1\pnindent283\pnhang{\pntxtb i}}\nooverflow\faroman\ls26\rin0\lin283\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {Supported engines
\par }\pard\plain \ql \li0\ri0\sa120\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \f1\fs20\lang2057\langfe1033\cgrid\langnp2057\langfenp1033 {avalanche
\par cge
\par composer
diff --git a/backends/platform/symbian/mmp/scummvm_base.mmp.in b/backends/platform/symbian/mmp/scummvm_base.mmp.in
index 37c68bf237..c3f12f6858 100644
--- a/backends/platform/symbian/mmp/scummvm_base.mmp.in
+++ b/backends/platform/symbian/mmp/scummvm_base.mmp.in
@@ -91,7 +91,8 @@ SOURCEPATH ..\..\..\..\image
// empty base file, will be updated by Perl build scripts
//STOP_AUTO_OBJECTS_IMAGE_//
-
+// add a few files manually, since they are not parsed from modules.mk files
+SOURCE codecs\mpeg.cpp
SOURCEPATH ..\..\..\..\gui
//START_AUTO_OBJECTS_GUI_//
@@ -130,8 +131,6 @@ SOURCEPATH ..\..\..\..\video
// add a few files manually, since they are not parsed from modules.mk files
SOURCE theora_decoder.cpp
SOURCE bink_decoder.cpp
-// add a few files manually, since they are not parsed from modules.mk files
-SOURCE codecs\mpeg.cpp
SOURCEPATH ..\..\..\..
SOURCE backends\events\default\default-events.cpp
diff --git a/backends/platform/tizen/form.cpp b/backends/platform/tizen/form.cpp
index 3f7b918102..568829dc96 100644
--- a/backends/platform/tizen/form.cpp
+++ b/backends/platform/tizen/form.cpp
@@ -338,7 +338,14 @@ void TizenAppForm::showKeypad() {
// display the soft keyboard
if (_state == kActiveState) {
_buttonState = kLeftButton;
- pushKey(Common::KEYCODE_F7);
+
+ Common::Event e;
+ e.type = Common::EVENT_VIRTUAL_KEYBOARD;
+ if (_eventQueueLock) {
+ _eventQueueLock->Acquire();
+ _eventQueue.push(e);
+ _eventQueueLock->Release();
+ }
}
}
diff --git a/backends/platform/wii/osystem_events.cpp b/backends/platform/wii/osystem_events.cpp
index 2da1d80917..0563639de3 100644
--- a/backends/platform/wii/osystem_events.cpp
+++ b/backends/platform/wii/osystem_events.cpp
@@ -357,8 +357,8 @@ bool OSystem_Wii::pollEvent(Common::Event &event) {
PAD_EVENT(PADS_Y, Common::KEYCODE_PERIOD, '.', flags);
PAD_EVENT(PADS_START, Common::KEYCODE_F5, Common::ASCII_F5, flags);
PAD_EVENT(PADS_UP, Common::KEYCODE_LSHIFT, 0, flags);
- PAD_EVENT(PADS_DOWN, Common::KEYCODE_F7, Common::ASCII_F7, flags);
- //PAD_EVENT(PADS_LEFT, Common::KEYCODE_F8, Common::ASCII_F8, 0);
+ PAD_EVENT(PADS_DOWN, Common::KEYCODE_F7, Common::ASCII_F7, Common::KBD_CTRL);
+ //PAD_EVENT(PADS_LEFT, Common::KEYCODE_F8, Common::ASCII_F8, Common::KBD_CTRL);
if ((bd | bu) & (PADS_A | PADS_B)) {
if (bd & PADS_A)
diff --git a/backends/platform/wii/wii.mk b/backends/platform/wii/wii.mk
index 99ef46338c..62a8900d9a 100644
--- a/backends/platform/wii/wii.mk
+++ b/backends/platform/wii/wii.mk
@@ -43,6 +43,7 @@ ifneq ($(DIST_FILES_ENGINEDATA),)
$(CP) $(DIST_FILES_ENGINEDATA) wiidist/scummvm/
endif
$(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip wiidist/scummvm/
+ $(CP) $(srcdir)/backends/vkeybd/packs/vkeybd_small.zip wiidist/scummvm/
wiiloaddist: wiidist
cd wiidist && zip -9r scummvm.zip scummvm/
diff --git a/backends/vkeybd/packs/vkeybd_small.zip b/backends/vkeybd/packs/vkeybd_small.zip
new file mode 100644
index 0000000000..d1c7fc75e5
--- /dev/null
+++ b/backends/vkeybd/packs/vkeybd_small.zip
Binary files differ
diff --git a/backends/vkeybd/packs/vkeybd_small/lowercase-symbols320x240.bmp b/backends/vkeybd/packs/vkeybd_small/lowercase-symbols320x240.bmp
new file mode 100644
index 0000000000..08d40a0373
--- /dev/null
+++ b/backends/vkeybd/packs/vkeybd_small/lowercase-symbols320x240.bmp
Binary files differ
diff --git a/backends/vkeybd/packs/vkeybd_small/lowercase320x240.bmp b/backends/vkeybd/packs/vkeybd_small/lowercase320x240.bmp
new file mode 100644
index 0000000000..25579234bb
--- /dev/null
+++ b/backends/vkeybd/packs/vkeybd_small/lowercase320x240.bmp
Binary files differ
diff --git a/backends/vkeybd/packs/vkeybd_small/uppercase-symbols320x240.bmp b/backends/vkeybd/packs/vkeybd_small/uppercase-symbols320x240.bmp
new file mode 100644
index 0000000000..76a7f51839
--- /dev/null
+++ b/backends/vkeybd/packs/vkeybd_small/uppercase-symbols320x240.bmp
Binary files differ
diff --git a/backends/vkeybd/packs/vkeybd_small/uppercase320x240.bmp b/backends/vkeybd/packs/vkeybd_small/uppercase320x240.bmp
new file mode 100644
index 0000000000..96ce1adbe4
--- /dev/null
+++ b/backends/vkeybd/packs/vkeybd_small/uppercase320x240.bmp
Binary files differ
diff --git a/backends/vkeybd/packs/vkeybd_small/vkeybd_small.xml b/backends/vkeybd/packs/vkeybd_small/vkeybd_small.xml
new file mode 100644
index 0000000000..20e91fe2fc
--- /dev/null
+++ b/backends/vkeybd/packs/vkeybd_small/vkeybd_small.xml
@@ -0,0 +1,637 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<keyboard initial_mode="lowercase" v_align="bottom" h_align="center">
+<!-- coords key = "start x, start y, end x, end y" -->
+ <!-- Lowercase -->
+ <mode name="lowercase" resolutions="320x240">
+ <layout resolution="320x240" bitmap="lowercase320x240.bmp" transparent_color="255,0,255">
+ <map>
+ <area shape="rect" coords="13,8,306,20" target="display_area" />
+ <area shape="rect" coords="9,26,25,42" target="esc" />
+ <area shape="rect" coords="50,25,67,43" target="f2" />
+ <area shape="rect" coords="29,24,46,43" target="f1" />
+ <area shape="rect" coords="71,26,88,44" target="f3" />
+ <area shape="rect" coords="90,25,107,43" target="f4" />
+ <area shape="rect" coords="111,26,128,44" target="f5" />
+ <area shape="rect" coords="132,26,149,44" target="f6" />
+ <area shape="rect" coords="153,25,170,44" target="f7" />
+ <area shape="rect" coords="173,26,190,44" target="f8" />
+ <area shape="rect" coords="194,24,211,43" target="f9" />
+ <area shape="rect" coords="215,26,231,44" target="f10" />
+ <area shape="rect" coords="235,26,253,43" target="f11" />
+ <area shape="rect" coords="255,26,272,45" target="f12" />
+ <area shape="rect" coords="276,27,310,43" target="del" />
+ <area shape="rect" coords="276,46,299,65" target="delete" />
+ <area shape="rect" coords="300,46,311,65" target="backspace" />
+ <area shape="rect" coords="8,68,32,85" target="tab" />
+ <area shape="rect" coords="36,68,53,85" target="q" />
+ <area shape="rect" coords="57,68,75,86" target="w" />
+ <area shape="rect" coords="78,67,94,85" target="e" />
+ <area shape="rect" coords="98,67,115,85" target="r" />
+ <area shape="rect" coords="119,67,136,85" target="t" />
+ <area shape="rect" coords="141,68,158,86" target="y" />
+ <area shape="rect" coords="161,67,179,86" target="u" />
+ <area shape="rect" coords="182,67,199,86" target="i" />
+ <area shape="rect" coords="202,67,220,85" target="o" />
+ <area shape="rect" coords="223,68,240,86" target="p" />
+ <area shape="rect" coords="44,88,63,107" target="a" />
+ <area shape="rect" coords="65,88,84,106" target="s" />
+ <area shape="rect" coords="86,89,104,107" target="d" />
+ <area shape="rect" coords="107,89,124,107" target="f" />
+ <area shape="rect" coords="128,89,145,107" target="g" />
+ <area shape="rect" coords="149,88,165,107" target="h" />
+ <area shape="rect" coords="169,89,186,107" target="j" />
+ <area shape="rect" coords="189,89,207,107" target="k" />
+ <area shape="rect" coords="210,89,228,107" target="l" />
+ <area shape="rect" coords="273,89,311,106" target="enter" />
+ <area shape="rect" coords="9,110,50,127" target="shift" />
+ <area shape="rect" coords="8,89,41,106" target="caps" />
+ <area shape="rect" coords="58,110,75,128" target="z" />
+ <area shape="rect" coords="79,110,96,128" target="x" />
+ <area shape="rect" coords="99,109,116,127" target="c" />
+ <area shape="rect" coords="120,110,138,128" target="v" />
+ <area shape="rect" coords="141,109,157,127" target="b" />
+ <area shape="rect" coords="162,110,179,128" target="n" />
+ <area shape="rect" coords="182,110,199,128" target="m" />
+ <area shape="rect" coords="271,109,311,128" target="symbols" />
+ <area shape="rect" coords="9,130,33,148" target="ctrl" />
+ <area shape="rect" coords="38,130,61,147" target="alt" />
+ <area shape="rect" coords="67,130,262,148" target="space" />
+ <area shape="rect" coords="8,47,26,64" target="|" />
+ <area shape="rect" coords="28,47,45,64" target="1" />
+ <area shape="rect" coords="50,47,67,65" target="2" />
+ <area shape="rect" coords="70,46,87,65" target="3" />
+ <area shape="rect" coords="91,46,108,64" target="4" />
+ <area shape="rect" coords="111,46,129,65" target="5" />
+ <area shape="rect" coords="132,47,149,65" target="6" />
+ <area shape="rect" coords="152,47,170,64" target="7" />
+ <area shape="rect" coords="174,46,191,63" target="8" />
+ <area shape="rect" coords="194,47,211,65" target="9" />
+ <area shape="rect" coords="215,46,232,64" target="0" />
+ <area shape="rect" coords="235,47,252,65" target="-" />
+ <area shape="rect" coords="255,46,272,65" target="=" />
+ <area shape="rect" coords="244,68,261,86" target="[" />
+ <area shape="rect" coords="264,67,282,86" target="]" />
+ <area shape="rect" coords="284,68,309,86" target="#" />
+ <area shape="rect" coords="231,88,249,106" target=";" />
+ <area shape="rect" coords="251,89,269,107" target="т€™" />
+ <area shape="rect" coords="202,110,219,128" target="," />
+ <area shape="rect" coords="223,110,241,128" target="." />
+ <area shape="rect" coords="243,110,261,128" target="/" />
+ <area shape="rect" coords="269,131,288,150" target="ok" />
+ <area shape="rect" coords="292,131,311,150" target="cancel" />
+ </map>
+ </layout>
+ <event name="esc" type="key" code="27" ascii="27" modifiers="" />
+ <event name="f1" type="key" code="282" ascii="315" modifiers="" />
+ <event name="f2" type="key" code="283" ascii="316" modifiers="" />
+ <event name="f3" type="key" code="284" ascii="317" modifiers="" />
+ <event name="f4" type="key" code="285" ascii="318" modifiers="" />
+ <event name="f5" type="key" code="286" ascii="319" modifiers="" />
+ <event name="f6" type="key" code="287" ascii="320" modifiers="" />
+ <event name="f7" type="key" code="288" ascii="321" modifiers="" />
+ <event name="f8" type="key" code="289" ascii="322" modifiers="" />
+ <event name="f9" type="key" code="290" ascii="323" modifiers="" />
+ <event name="f10" type="key" code="291" ascii="324" modifiers="" />
+ <event name="f11" type="key" code="292" ascii="325" modifiers="" />
+ <event name="f12" type="key" code="293" ascii="326" modifiers="" />
+ <event name="del" type="key" code="127" ascii="0" modifiers="" />
+ <event name="ctrl" type="modifier" modifiers="ctrl" />
+ <event name="alt" type="modifier" modifiers="alt" />
+ <event name="shift" type="modifier" modifiers="shift" />
+ <event name="caps" type="switch_mode" mode="uppercase" />
+ <event name="symbols" type="switch_mode" mode="lowercasesymbols" />
+ <event name="backspace" type="key" code="8" ascii="8" modifiers="" />
+ <event name="enter" type="key" code="13" ascii="13" modifiers="" />
+ <event name="|" type="key" code="124" ascii="124" modifiers="" />
+ <event name="-" type="key" code="45" ascii="45" modifiers="" />
+ <event name="=" type="key" code="61" ascii="61" modifiers="" />
+ <event name="[" type="key" code="91" ascii="91" modifiers="" />
+ <event name="]" type="key" code="93" ascii="93" modifiers="" />
+ <event name="#" type="key" code="35" ascii="35" modifiers="" />
+ <event name=";" type="key" code="59" ascii="59" modifiers="" />
+ <event name="'" type="key" code="39" ascii="39" modifiers="" />
+ <event name="," type="key" code="44" ascii="44" modifiers="" />
+ <event name="." type="key" code="46" ascii="46" modifiers="" />
+ <event name="/" type="key" code="47" ascii="47" modifiers="" />
+ <event name="space" type="key" code="32" ascii="32" modifiers="" />
+ <event name="tab" type="key" code="9" ascii="9" modifiers="" />
+ <event name="a" type="key" code="97" ascii="97" modifiers="" />
+ <event name="b" type="key" code="98" ascii="98" modifiers="" />
+ <event name="c" type="key" code="99" ascii="99" modifiers="" />
+ <event name="d" type="key" code="100" ascii="100" modifiers="" />
+ <event name="e" type="key" code="101" ascii="101" modifiers="" />
+ <event name="f" type="key" code="102" ascii="102" modifiers="" />
+ <event name="g" type="key" code="103" ascii="103" modifiers="" />
+ <event name="h" type="key" code="104" ascii="104" modifiers="" />
+ <event name="i" type="key" code="105" ascii="105" modifiers="" />
+ <event name="j" type="key" code="106" ascii="106" modifiers="" />
+ <event name="k" type="key" code="107" ascii="107" modifiers="" />
+ <event name="l" type="key" code="108" ascii="108" modifiers="" />
+ <event name="m" type="key" code="109" ascii="109" modifiers="" />
+ <event name="n" type="key" code="110" ascii="110" modifiers="" />
+ <event name="o" type="key" code="111" ascii="111" modifiers="" />
+ <event name="p" type="key" code="112" ascii="112" modifiers="" />
+ <event name="q" type="key" code="113" ascii="113" modifiers="" />
+ <event name="r" type="key" code="114" ascii="114" modifiers="" />
+ <event name="s" type="key" code="115" ascii="115" modifiers="" />
+ <event name="t" type="key" code="116" ascii="116" modifiers="" />
+ <event name="u" type="key" code="117" ascii="117" modifiers="" />
+ <event name="v" type="key" code="118" ascii="118" modifiers="" />
+ <event name="w" type="key" code="119" ascii="119" modifiers="" />
+ <event name="x" type="key" code="120" ascii="120" modifiers="" />
+ <event name="y" type="key" code="121" ascii="121" modifiers="" />
+ <event name="z" type="key" code="122" ascii="122" modifiers="" />
+ <event name="0" type="key" code="48" ascii="48" modifiers="" />
+ <event name="1" type="key" code="49" ascii="49" modifiers="" />
+ <event name="2" type="key" code="50" ascii="50" modifiers="" />
+ <event name="3" type="key" code="51" ascii="51" modifiers="" />
+ <event name="4" type="key" code="52" ascii="52" modifiers="" />
+ <event name="5" type="key" code="53" ascii="53" modifiers="" />
+ <event name="6" type="key" code="54" ascii="54" modifiers="" />
+ <event name="7" type="key" code="55" ascii="55" modifiers="" />
+ <event name="8" type="key" code="56" ascii="56" modifiers="" />
+ <event name="9" type="key" code="57" ascii="57" modifiers="" />
+ <event name="ok" type="submit" />
+ <event name="cancel" type="cancel" />
+ <event name="quit" type="submit" />
+ <event name="delete" type="delete" />
+ </mode>
+
+ <!-- Uppercase -->
+ <mode name="uppercase" resolutions="320x240">
+ <layout resolution="320x240" bitmap="uppercase320x240.bmp" transparent_color="255,0,255">
+ <map>
+ <area shape="rect" coords="13,8,306,20" target="display_area" />
+ <area shape="rect" coords="9,26,25,42" target="esc" />
+ <area shape="rect" coords="50,25,67,43" target="f2" />
+ <area shape="rect" coords="29,24,46,43" target="f1" />
+ <area shape="rect" coords="71,26,88,44" target="f3" />
+ <area shape="rect" coords="90,25,107,43" target="f4" />
+ <area shape="rect" coords="111,26,128,44" target="f5" />
+ <area shape="rect" coords="132,26,149,44" target="f6" />
+ <area shape="rect" coords="153,25,170,44" target="f7" />
+ <area shape="rect" coords="173,26,190,44" target="f8" />
+ <area shape="rect" coords="194,24,211,43" target="f9" />
+ <area shape="rect" coords="215,26,231,44" target="f10" />
+ <area shape="rect" coords="235,26,253,43" target="f11" />
+ <area shape="rect" coords="255,26,272,45" target="f12" />
+ <area shape="rect" coords="276,27,310,43" target="del" />
+ <area shape="rect" coords="276,46,299,65" target="delete" />
+ <area shape="rect" coords="300,46,311,65" target="backspace" />
+ <area shape="rect" coords="8,68,32,85" target="tab" />
+ <area shape="rect" coords="36,68,53,85" target="Q" />
+ <area shape="rect" coords="57,68,75,86" target="W" />
+ <area shape="rect" coords="78,67,94,85" target="E" />
+ <area shape="rect" coords="98,67,115,85" target="R" />
+ <area shape="rect" coords="119,67,136,85" target="T" />
+ <area shape="rect" coords="141,68,158,86" target="Y" />
+ <area shape="rect" coords="161,67,179,86" target="U" />
+ <area shape="rect" coords="182,67,199,86" target="I" />
+ <area shape="rect" coords="202,67,220,85" target="O" />
+ <area shape="rect" coords="223,68,240,86" target="P" />
+ <area shape="rect" coords="44,88,63,107" target="A" />
+ <area shape="rect" coords="65,88,84,106" target="S" />
+ <area shape="rect" coords="86,89,104,107" target="D" />
+ <area shape="rect" coords="107,89,124,107" target="F" />
+ <area shape="rect" coords="128,89,145,107" target="G" />
+ <area shape="rect" coords="149,88,165,107" target="H" />
+ <area shape="rect" coords="169,89,186,107" target="J" />
+ <area shape="rect" coords="189,89,207,107" target="K" />
+ <area shape="rect" coords="210,89,228,107" target="L" />
+ <area shape="rect" coords="273,89,311,106" target="enter" />
+ <area shape="rect" coords="9,110,50,127" target="shift" />
+ <area shape="rect" coords="8,89,41,106" target="caps" />
+ <area shape="rect" coords="58,110,75,128" target="Z" />
+ <area shape="rect" coords="79,110,96,128" target="X" />
+ <area shape="rect" coords="99,109,116,127" target="C" />
+ <area shape="rect" coords="120,110,138,128" target="V" />
+ <area shape="rect" coords="141,109,157,127" target="B" />
+ <area shape="rect" coords="162,110,179,128" target="N" />
+ <area shape="rect" coords="182,110,199,128" target="M" />
+ <area shape="rect" coords="271,109,311,128" target="symbols" />
+ <area shape="rect" coords="9,130,33,148" target="ctrl" />
+ <area shape="rect" coords="38,130,61,147" target="alt" />
+ <area shape="rect" coords="67,130,262,148" target="space" />
+ <area shape="rect" coords="8,47,26,64" target="|" />
+ <area shape="rect" coords="28,47,45,64" target="1" />
+ <area shape="rect" coords="50,47,67,65" target="2" />
+ <area shape="rect" coords="70,46,87,65" target="3" />
+ <area shape="rect" coords="91,46,108,64" target="4" />
+ <area shape="rect" coords="111,46,129,65" target="5" />
+ <area shape="rect" coords="132,47,149,65" target="6" />
+ <area shape="rect" coords="152,47,170,64" target="7" />
+ <area shape="rect" coords="174,46,191,63" target="8" />
+ <area shape="rect" coords="194,47,211,65" target="9" />
+ <area shape="rect" coords="215,46,232,64" target="0" />
+ <area shape="rect" coords="235,47,252,65" target="-" />
+ <area shape="rect" coords="255,46,272,65" target="=" />
+ <area shape="rect" coords="244,68,261,86" target="[" />
+ <area shape="rect" coords="264,67,282,86" target="]" />
+ <area shape="rect" coords="284,68,309,86" target="#" />
+ <area shape="rect" coords="231,88,249,106" target=";" />
+ <area shape="rect" coords="251,89,269,107" target="т€™" />
+ <area shape="rect" coords="202,110,219,128" target="," />
+ <area shape="rect" coords="223,110,241,128" target="." />
+ <area shape="rect" coords="243,110,261,128" target="/" />
+ <area shape="rect" coords="269,131,288,150" target="ok" />
+ <area shape="rect" coords="292,131,311,150" target="cancel" />
+ </map>
+ </layout>
+ <event name="esc" type="key" code="27" ascii="27" modifiers="" />
+ <event name="f1" type="key" code="282" ascii="315" modifiers="" />
+ <event name="f2" type="key" code="283" ascii="316" modifiers="" />
+ <event name="f3" type="key" code="284" ascii="317" modifiers="" />
+ <event name="f4" type="key" code="285" ascii="318" modifiers="" />
+ <event name="f5" type="key" code="286" ascii="319" modifiers="" />
+ <event name="f6" type="key" code="287" ascii="320" modifiers="" />
+ <event name="f7" type="key" code="288" ascii="321" modifiers="" />
+ <event name="f8" type="key" code="289" ascii="322" modifiers="" />
+ <event name="f9" type="key" code="290" ascii="323" modifiers="" />
+ <event name="f10" type="key" code="291" ascii="324" modifiers="" />
+ <event name="f11" type="key" code="292" ascii="325" modifiers="" />
+ <event name="f12" type="key" code="293" ascii="326" modifiers="" />
+ <event name="del" type="key" code="127" ascii="0" modifiers="" />
+ <event name="ctrl" type="modifier" modifiers="ctrl" />
+ <event name="alt" type="modifier" modifiers="alt" />
+ <event name="shift" type="modifier" modifiers="shift" />
+ <event name="caps" type="switch_mode" mode="lowercase" />
+ <event name="symbols" type="switch_mode" mode="uppercasesymbols" />
+ <event name="backspace" type="key" code="8" ascii="8" modifiers="" />
+ <event name="enter" type="key" code="13" ascii="13" modifiers="" />
+ <event name="|" type="key" code="124" ascii="124" modifiers="" />
+ <event name="-" type="key" code="45" ascii="45" modifiers="" />
+ <event name="=" type="key" code="61" ascii="61" modifiers="" />
+ <event name="[" type="key" code="91" ascii="91" modifiers="" />
+ <event name="]" type="key" code="93" ascii="93" modifiers="" />
+ <event name="#" type="key" code="35" ascii="35" modifiers="" />
+ <event name=";" type="key" code="59" ascii="59" modifiers="" />
+ <event name="'" type="key" code="39" ascii="39" modifiers="" />
+ <event name="," type="key" code="44" ascii="44" modifiers="" />
+ <event name="." type="key" code="46" ascii="46" modifiers="" />
+ <event name="/" type="key" code="47" ascii="47" modifiers="" />
+ <event name="space" type="key" code="32" ascii="32" modifiers="" />
+ <event name="tab" type="key" code="9" ascii="9" modifiers="" />
+ <event name="A" type="key" code="97" ascii="65" modifiers="shift" />
+ <event name="B" type="key" code="98" ascii="66" modifiers="shift" />
+ <event name="C" type="key" code="99" ascii="67" modifiers="shift" />
+ <event name="D" type="key" code="100" ascii="68" modifiers="shift" />
+ <event name="E" type="key" code="101" ascii="69" modifiers="shift" />
+ <event name="F" type="key" code="102" ascii="70" modifiers="shift" />
+ <event name="G" type="key" code="103" ascii="71" modifiers="shift" />
+ <event name="H" type="key" code="104" ascii="72" modifiers="shift" />
+ <event name="I" type="key" code="105" ascii="73" modifiers="shift" />
+ <event name="J" type="key" code="106" ascii="74" modifiers="shift" />
+ <event name="K" type="key" code="107" ascii="75" modifiers="shift" />
+ <event name="L" type="key" code="108" ascii="76" modifiers="shift" />
+ <event name="M" type="key" code="109" ascii="77" modifiers="shift" />
+ <event name="N" type="key" code="110" ascii="78" modifiers="shift" />
+ <event name="O" type="key" code="111" ascii="79" modifiers="shift" />
+ <event name="P" type="key" code="112" ascii="80" modifiers="shift" />
+ <event name="Q" type="key" code="113" ascii="81" modifiers="shift" />
+ <event name="R" type="key" code="114" ascii="82" modifiers="shift" />
+ <event name="S" type="key" code="115" ascii="83" modifiers="shift" />
+ <event name="T" type="key" code="116" ascii="84" modifiers="shift" />
+ <event name="U" type="key" code="117" ascii="85" modifiers="shift" />
+ <event name="V" type="key" code="118" ascii="86" modifiers="shift" />
+ <event name="W" type="key" code="119" ascii="87" modifiers="shift" />
+ <event name="X" type="key" code="120" ascii="88" modifiers="shift" />
+ <event name="Y" type="key" code="121" ascii="89" modifiers="shift" />
+ <event name="Z" type="key" code="122" ascii="90" modifiers="shift" />
+ <event name="0" type="key" code="48" ascii="48" modifiers="" />
+ <event name="1" type="key" code="49" ascii="49" modifiers="" />
+ <event name="2" type="key" code="50" ascii="50" modifiers="" />
+ <event name="3" type="key" code="51" ascii="51" modifiers="" />
+ <event name="4" type="key" code="52" ascii="52" modifiers="" />
+ <event name="5" type="key" code="53" ascii="53" modifiers="" />
+ <event name="6" type="key" code="54" ascii="54" modifiers="" />
+ <event name="7" type="key" code="55" ascii="55" modifiers="" />
+ <event name="8" type="key" code="56" ascii="56" modifiers="" />
+ <event name="9" type="key" code="57" ascii="57" modifiers="" />
+ <event name="ok" type="submit" />
+ <event name="cancel" type="cancel" />
+ <event name="quit" type="submit" />
+ <event name="delete" type="delete" />
+ </mode>
+
+ <!-- Lowercase Symbols -->
+ <mode name="lowercasesymbols" resolutions="320x240">
+ <layout resolution="320x240" bitmap="lowercase-symbols320x240.bmp" transparent_color="255,0,255">
+ <map>
+ <area shape="rect" coords="13,8,306,20" target="display_area" />
+ <area shape="rect" coords="9,26,25,42" target="esc" />
+ <area shape="rect" coords="50,25,67,43" target="f2" />
+ <area shape="rect" coords="29,24,46,43" target="f1" />
+ <area shape="rect" coords="71,26,88,44" target="f3" />
+ <area shape="rect" coords="90,25,107,43" target="f4" />
+ <area shape="rect" coords="111,26,128,44" target="f5" />
+ <area shape="rect" coords="132,26,149,44" target="f6" />
+ <area shape="rect" coords="153,25,170,44" target="f7" />
+ <area shape="rect" coords="173,26,190,44" target="f8" />
+ <area shape="rect" coords="194,24,211,43" target="f9" />
+ <area shape="rect" coords="215,26,231,44" target="f10" />
+ <area shape="rect" coords="235,26,253,43" target="f11" />
+ <area shape="rect" coords="255,26,272,45" target="f12" />
+ <area shape="rect" coords="276,27,310,43" target="del" />
+ <area shape="rect" coords="8,47,26,64" target="ТЌ" />
+ <area shape="rect" coords="28,47,45,64" target="!" />
+ <area shape="rect" coords="50,47,67,65" target="quote" />
+ <area shape="rect" coords="70,46,87,65" target="ТЃ" />
+ <area shape="rect" coords="91,46,108,64" target="$" />
+ <area shape="rect" coords="111,46,129,65" target="%" />
+ <area shape="rect" coords="132,47,149,65" target="^" />
+ <area shape="rect" coords="152,47,170,64" target="&amp;" />
+ <area shape="rect" coords="174,46,191,63" target="*" />
+ <area shape="rect" coords="194,47,211,65" target="(" />
+ <area shape="rect" coords="215,46,232,64" target=")" />
+ <area shape="rect" coords="235,47,252,65" target="_" />
+ <area shape="rect" coords="255,46,272,65" target="+" />
+ <area shape="rect" coords="276,46,299,65" target="delete" />
+ <area shape="rect" coords="300,46,311,65" target="backspace" />
+ <area shape="rect" coords="8,68,32,85" target="tab" />
+ <area shape="rect" coords="36,68,53,85" target="q" />
+ <area shape="rect" coords="57,68,75,86" target="w" />
+ <area shape="rect" coords="78,67,94,85" target="e" />
+ <area shape="rect" coords="98,67,115,85" target="r" />
+ <area shape="rect" coords="119,67,136,85" target="t" />
+ <area shape="rect" coords="141,68,158,86" target="y" />
+ <area shape="rect" coords="161,67,179,86" target="u" />
+ <area shape="rect" coords="182,67,199,86" target="i" />
+ <area shape="rect" coords="202,67,220,85" target="o" />
+ <area shape="rect" coords="223,68,240,86" target="p" />
+ <area shape="rect" coords="244,68,261,86" target="{" />
+ <area shape="rect" coords="264,67,282,86" target="}" />
+ <area shape="rect" coords="284,68,309,86" target="~" />
+ <area shape="rect" coords="8,89,41,106" target="caps" />
+ <area shape="rect" coords="44,88,63,107" target="a" />
+ <area shape="rect" coords="65,88,84,106" target="s" />
+ <area shape="rect" coords="86,89,104,107" target="d" />
+ <area shape="rect" coords="107,89,124,107" target="f" />
+ <area shape="rect" coords="128,89,145,107" target="g" />
+ <area shape="rect" coords="149,88,165,107" target="h" />
+ <area shape="rect" coords="169,89,186,107" target="j" />
+ <area shape="rect" coords="189,89,207,107" target="k" />
+ <area shape="rect" coords="210,89,228,107" target="l" />
+ <area shape="rect" coords="231,88,249,106" target=":" />
+ <area shape="rect" coords="251,89,269,107" target="@" />
+ <area shape="rect" coords="273,89,311,106" target="enter" />
+ <area shape="rect" coords="9,110,50,127" target="shift" />
+ <area shape="rect" coords="58,110,75,128" target="z" />
+ <area shape="rect" coords="79,110,96,128" target="x" />
+ <area shape="rect" coords="99,109,116,127" target="c" />
+ <area shape="rect" coords="120,110,138,128" target="v" />
+ <area shape="rect" coords="141,109,157,127" target="b" />
+ <area shape="rect" coords="162,110,179,128" target="n" />
+ <area shape="rect" coords="182,110,199,128" target="m" />
+ <area shape="rect" coords="202,110,219,128" target="&lt;" />
+ <area shape="rect" coords="223,110,241,128" target="&gt;" />
+ <area shape="rect" coords="243,110,261,128" target="?" />
+ <area shape="rect" coords="271,109,311,128" target="symbols" />
+ <area shape="rect" coords="9,130,33,148" target="ctrl" />
+ <area shape="rect" coords="38,130,61,147" target="alt" />
+ <area shape="rect" coords="67,130,262,148" target="space" />
+ <area shape="rect" coords="269,131,288,150" target="ok" />
+ <area shape="rect" coords="292,131,311,150" target="cancel" />
+ </map>
+ </layout>
+ <event name="esc" type="key" code="27" ascii="27" modifiers="" />
+ <event name="f1" type="key" code="282" ascii="315" modifiers="" />
+ <event name="f2" type="key" code="283" ascii="316" modifiers="" />
+ <event name="f3" type="key" code="284" ascii="317" modifiers="" />
+ <event name="f4" type="key" code="285" ascii="318" modifiers="" />
+ <event name="f5" type="key" code="286" ascii="319" modifiers="" />
+ <event name="f6" type="key" code="287" ascii="320" modifiers="" />
+ <event name="f7" type="key" code="288" ascii="321" modifiers="" />
+ <event name="f8" type="key" code="289" ascii="322" modifiers="" />
+ <event name="f9" type="key" code="290" ascii="323" modifiers="" />
+ <event name="f10" type="key" code="291" ascii="324" modifiers="" />
+ <event name="f11" type="key" code="292" ascii="325" modifiers="" />
+ <event name="f12" type="key" code="293" ascii="326" modifiers="" />
+ <event name="del" type="key" code="127" ascii="0" modifiers="" />
+ <event name="ctrl" type="modifier" modifiers="ctrl" />
+ <event name="alt" type="modifier" modifiers="alt" />
+ <event name="shift" type="modifier" modifiers="shift" />
+ <event name="symbols" type="switch_mode" mode="lowercase" />
+ <event name="caps" type="switch_mode" mode="uppercasesymbols" />
+ <event name="backspace" type="key" code="8" ascii="8" modifiers="" />
+ <event name="enter" type="key" code="13" ascii="13" modifiers="" />
+ <event name="quote" type="key" code="34" ascii="34" modifiers="" />
+ <event name="ТЃ" type="key" code="163" ascii="163" modifiers="" />
+ <event name="$" type="key" code="36" ascii="36" modifiers="" />
+ <event name="%" type="key" code="37" ascii="37" modifiers="" />
+ <event name="^" type="key" code="94" ascii="94" modifiers="" />
+ <event name="&amp;" type="key" code="38" ascii="38" modifiers="" />
+ <event name="*" type="key" code="42" ascii="42" modifiers="" />
+ <event name="(" type="key" code="40" ascii="40" modifiers="" />
+ <event name=")" type="key" code="41" ascii="41" modifiers="" />
+ <event name="_" type="key" code="95" ascii="95" modifiers="" />
+ <event name="+" type="key" code="43" ascii="43" modifiers="" />
+ <event name="ТЌ" type="key" code="172" ascii="172" modifiers="" />
+ <event name="!" type="key" code="33" ascii="33" modifiers="" />
+ <event name="{" type="key" code="123" ascii="123" modifiers="" />
+ <event name="}" type="key" code="125" ascii="125" modifiers="" />
+ <event name="~" type="key" code="126" ascii="126" modifiers="" />
+ <event name=":" type="key" code="58" ascii="58" modifiers="" />
+ <event name="@" type="key" code="64" ascii="64" modifiers="" />
+ <event name="&lt;" type="key" code="60" ascii="60" modifiers="" />
+ <event name="&gt;" type="key" code="62" ascii="62" modifiers="" />
+ <event name="?" type="key" code="63" ascii="63" modifiers="" />
+ <event name="space" type="key" code="32" ascii="32" modifiers="" />
+ <event name="tab" type="key" code="9" ascii="9" modifiers="" />
+ <event name="a" type="key" code="97" ascii="97" modifiers="" />
+ <event name="b" type="key" code="98" ascii="98" modifiers="" />
+ <event name="c" type="key" code="99" ascii="99" modifiers="" />
+ <event name="d" type="key" code="100" ascii="100" modifiers="" />
+ <event name="e" type="key" code="101" ascii="101" modifiers="" />
+ <event name="f" type="key" code="102" ascii="102" modifiers="" />
+ <event name="g" type="key" code="103" ascii="103" modifiers="" />
+ <event name="h" type="key" code="104" ascii="104" modifiers="" />
+ <event name="i" type="key" code="105" ascii="105" modifiers="" />
+ <event name="j" type="key" code="106" ascii="106" modifiers="" />
+ <event name="k" type="key" code="107" ascii="107" modifiers="" />
+ <event name="l" type="key" code="108" ascii="108" modifiers="" />
+ <event name="m" type="key" code="109" ascii="109" modifiers="" />
+ <event name="n" type="key" code="110" ascii="110" modifiers="" />
+ <event name="o" type="key" code="111" ascii="111" modifiers="" />
+ <event name="p" type="key" code="112" ascii="112" modifiers="" />
+ <event name="q" type="key" code="113" ascii="113" modifiers="" />
+ <event name="r" type="key" code="114" ascii="114" modifiers="" />
+ <event name="s" type="key" code="115" ascii="115" modifiers="" />
+ <event name="t" type="key" code="116" ascii="116" modifiers="" />
+ <event name="u" type="key" code="117" ascii="117" modifiers="" />
+ <event name="v" type="key" code="118" ascii="118" modifiers="" />
+ <event name="w" type="key" code="119" ascii="119" modifiers="" />
+ <event name="x" type="key" code="120" ascii="120" modifiers="" />
+ <event name="y" type="key" code="121" ascii="121" modifiers="" />
+ <event name="z" type="key" code="122" ascii="122" modifiers="" />
+ <event name="ok" type="submit" />
+ <event name="cancel" type="cancel" />
+ <event name="quit" type="submit" />
+ <event name="delete" type="delete" />
+ </mode>
+
+ <!-- Uppercase Symbols -->
+ <mode name="uppercasesymbols" resolutions="320x240">
+ <layout resolution="320x240" bitmap="uppercase-symbols320x240.bmp" transparent_color="255,0,255">
+ <map>
+ <area shape="rect" coords="13,8,306,20" target="display_area" />
+ <area shape="rect" coords="9,26,25,42" target="esc" />
+ <area shape="rect" coords="50,25,67,43" target="f2" />
+ <area shape="rect" coords="29,24,46,43" target="f1" />
+ <area shape="rect" coords="71,26,88,44" target="f3" />
+ <area shape="rect" coords="90,25,107,43" target="f4" />
+ <area shape="rect" coords="111,26,128,44" target="f5" />
+ <area shape="rect" coords="132,26,149,44" target="f6" />
+ <area shape="rect" coords="153,25,170,44" target="f7" />
+ <area shape="rect" coords="173,26,190,44" target="f8" />
+ <area shape="rect" coords="194,24,211,43" target="f9" />
+ <area shape="rect" coords="215,26,231,44" target="f10" />
+ <area shape="rect" coords="235,26,253,43" target="f11" />
+ <area shape="rect" coords="255,26,272,45" target="f12" />
+ <area shape="rect" coords="276,27,310,43" target="del" />
+ <area shape="rect" coords="8,47,26,64" target="ТЌ" />
+ <area shape="rect" coords="28,47,45,64" target="!" />
+ <area shape="rect" coords="50,47,67,65" target="quote" />
+ <area shape="rect" coords="70,46,87,65" target="ТЃ" />
+ <area shape="rect" coords="91,46,108,64" target="$" />
+ <area shape="rect" coords="111,46,129,65" target="%" />
+ <area shape="rect" coords="132,47,149,65" target="^" />
+ <area shape="rect" coords="152,47,170,64" target="&amp;" />
+ <area shape="rect" coords="174,46,191,63" target="*" />
+ <area shape="rect" coords="194,47,211,65" target="(" />
+ <area shape="rect" coords="215,46,232,64" target=")" />
+ <area shape="rect" coords="235,47,252,65" target="_" />
+ <area shape="rect" coords="255,46,272,65" target="+" />
+ <area shape="rect" coords="276,46,299,65" target="delete" />
+ <area shape="rect" coords="300,46,311,65" target="backspace" />
+ <area shape="rect" coords="8,68,32,85" target="tab" />
+ <area shape="rect" coords="36,68,53,85" target="Q" />
+ <area shape="rect" coords="57,68,75,86" target="W" />
+ <area shape="rect" coords="78,67,94,85" target="E" />
+ <area shape="rect" coords="98,67,115,85" target="R" />
+ <area shape="rect" coords="119,67,136,85" target="T" />
+ <area shape="rect" coords="141,68,158,86" target="Y" />
+ <area shape="rect" coords="161,67,179,86" target="U" />
+ <area shape="rect" coords="182,67,199,86" target="I" />
+ <area shape="rect" coords="202,67,220,85" target="O" />
+ <area shape="rect" coords="223,68,240,86" target="P" />
+ <area shape="rect" coords="244,68,261,86" target="{" />
+ <area shape="rect" coords="264,67,282,86" target="}" />
+ <area shape="rect" coords="284,68,309,86" target="~" />
+ <area shape="rect" coords="8,89,41,106" target="caps" />
+ <area shape="rect" coords="44,88,63,107" target="A" />
+ <area shape="rect" coords="65,88,84,106" target="S" />
+ <area shape="rect" coords="86,89,104,107" target="D" />
+ <area shape="rect" coords="107,89,124,107" target="F" />
+ <area shape="rect" coords="128,89,145,107" target="G" />
+ <area shape="rect" coords="149,88,165,107" target="H" />
+ <area shape="rect" coords="169,89,186,107" target="J" />
+ <area shape="rect" coords="189,89,207,107" target="K" />
+ <area shape="rect" coords="210,89,228,107" target="L" />
+ <area shape="rect" coords="231,88,249,106" target=":" />
+ <area shape="rect" coords="251,89,269,107" target="@" />
+ <area shape="rect" coords="273,89,311,106" target="enter" />
+ <area shape="rect" coords="9,110,50,127" target="shift" />
+ <area shape="rect" coords="58,110,75,128" target="z" />
+ <area shape="rect" coords="79,110,96,128" target="x" />
+ <area shape="rect" coords="99,109,116,127" target="c" />
+ <area shape="rect" coords="120,110,138,128" target="v" />
+ <area shape="rect" coords="141,109,157,127" target="b" />
+ <area shape="rect" coords="162,110,179,128" target="n" />
+ <area shape="rect" coords="182,110,199,128" target="m" />
+ <area shape="rect" coords="202,110,219,128" target="&lt;" />
+ <area shape="rect" coords="223,110,241,128" target="&gt;" />
+ <area shape="rect" coords="243,110,261,128" target="?" />
+ <area shape="rect" coords="271,109,311,128" target="symbols" />
+ <area shape="rect" coords="9,130,33,148" target="ctrl" />
+ <area shape="rect" coords="38,130,61,147" target="alt" />
+ <area shape="rect" coords="67,130,262,148" target="space" />
+ <area shape="rect" coords="269,131,288,150" target="ok" />
+ <area shape="rect" coords="292,131,311,150" target="cancel" />
+ </map>
+ </layout>
+ <event name="esc" type="key" code="27" ascii="27" modifiers="" />
+ <event name="f1" type="key" code="282" ascii="315" modifiers="" />
+ <event name="f2" type="key" code="283" ascii="316" modifiers="" />
+ <event name="f3" type="key" code="284" ascii="317" modifiers="" />
+ <event name="f4" type="key" code="285" ascii="318" modifiers="" />
+ <event name="f5" type="key" code="286" ascii="319" modifiers="" />
+ <event name="f6" type="key" code="287" ascii="320" modifiers="" />
+ <event name="f7" type="key" code="288" ascii="321" modifiers="" />
+ <event name="f8" type="key" code="289" ascii="322" modifiers="" />
+ <event name="f9" type="key" code="290" ascii="323" modifiers="" />
+ <event name="f10" type="key" code="291" ascii="324" modifiers="" />
+ <event name="f11" type="key" code="292" ascii="325" modifiers="" />
+ <event name="f12" type="key" code="293" ascii="326" modifiers="" />
+ <event name="del" type="key" code="127" ascii="0" modifiers="" />
+ <event name="ctrl" type="modifier" modifiers="ctrl" />
+ <event name="alt" type="modifier" modifiers="alt" />
+ <event name="shift" type="switch_mode" mode="shiftlowercase" />
+ <event name="caps" type="switch_mode" mode="lowercasesymbols" />
+ <event name="symbols" type="switch_mode" mode="uppercase" />
+ <event name="backspace" type="key" code="8" ascii="8" modifiers="" />
+ <event name="enter" type="key" code="13" ascii="13" modifiers="" />
+ <event name="quote" type="key" code="34" ascii="34" modifiers="" />
+ <event name="ТЃ" type="key" code="163" ascii="163" modifiers="" />
+ <event name="$" type="key" code="36" ascii="36" modifiers="" />
+ <event name="%" type="key" code="37" ascii="37" modifiers="" />
+ <event name="^" type="key" code="94" ascii="94" modifiers="" />
+ <event name="&amp;" type="key" code="38" ascii="38" modifiers="" />
+ <event name="*" type="key" code="42" ascii="42" modifiers="" />
+ <event name="(" type="key" code="40" ascii="40" modifiers="" />
+ <event name=")" type="key" code="41" ascii="41" modifiers="" />
+ <event name="_" type="key" code="95" ascii="95" modifiers="" />
+ <event name="+" type="key" code="43" ascii="43" modifiers="" />
+ <event name="ТЌ" type="key" code="172" ascii="172" modifiers="" />
+ <event name="!" type="key" code="33" ascii="33" modifiers="" />
+ <event name="{" type="key" code="123" ascii="123" modifiers="" />
+ <event name="}" type="key" code="125" ascii="125" modifiers="" />
+ <event name="~" type="key" code="126" ascii="126" modifiers="" />
+ <event name=":" type="key" code="58" ascii="58" modifiers="" />
+ <event name="@" type="key" code="64" ascii="64" modifiers="" />
+ <event name="&lt;" type="key" code="60" ascii="60" modifiers="" />
+ <event name="&gt;" type="key" code="62" ascii="62" modifiers="" />
+ <event name="?" type="key" code="63" ascii="63" modifiers="" />
+ <event name="space" type="key" code="32" ascii="32" modifiers="" />
+ <event name="tab" type="key" code="9" ascii="9" modifiers="" />
+ <event name="A" type="key" code="97" ascii="65" modifiers="shift" />
+ <event name="B" type="key" code="98" ascii="66" modifiers="shift" />
+ <event name="C" type="key" code="99" ascii="67" modifiers="shift" />
+ <event name="D" type="key" code="100" ascii="68" modifiers="shift" />
+ <event name="E" type="key" code="101" ascii="69" modifiers="shift" />
+ <event name="F" type="key" code="102" ascii="70" modifiers="shift" />
+ <event name="G" type="key" code="103" ascii="71" modifiers="shift" />
+ <event name="H" type="key" code="104" ascii="72" modifiers="shift" />
+ <event name="I" type="key" code="105" ascii="73" modifiers="shift" />
+ <event name="J" type="key" code="106" ascii="74" modifiers="shift" />
+ <event name="K" type="key" code="107" ascii="75" modifiers="shift" />
+ <event name="L" type="key" code="108" ascii="76" modifiers="shift" />
+ <event name="M" type="key" code="109" ascii="77" modifiers="shift" />
+ <event name="N" type="key" code="110" ascii="78" modifiers="shift" />
+ <event name="O" type="key" code="111" ascii="79" modifiers="shift" />
+ <event name="P" type="key" code="112" ascii="80" modifiers="shift" />
+ <event name="Q" type="key" code="113" ascii="81" modifiers="shift" />
+ <event name="R" type="key" code="114" ascii="82" modifiers="shift" />
+ <event name="S" type="key" code="115" ascii="83" modifiers="shift" />
+ <event name="T" type="key" code="116" ascii="84" modifiers="shift" />
+ <event name="U" type="key" code="117" ascii="85" modifiers="shift" />
+ <event name="V" type="key" code="118" ascii="86" modifiers="shift" />
+ <event name="W" type="key" code="119" ascii="87" modifiers="shift" />
+ <event name="X" type="key" code="120" ascii="88" modifiers="shift" />
+ <event name="Y" type="key" code="121" ascii="89" modifiers="shift" />
+ <event name="Z" type="key" code="122" ascii="90" modifiers="shift" />
+ <event name="0" type="key" code="48" ascii="48" modifiers="" />
+ <event name="1" type="key" code="49" ascii="49" modifiers="" />
+ <event name="2" type="key" code="50" ascii="50" modifiers="" />
+ <event name="3" type="key" code="51" ascii="51" modifiers="" />
+ <event name="4" type="key" code="52" ascii="52" modifiers="" />
+ <event name="5" type="key" code="53" ascii="53" modifiers="" />
+ <event name="6" type="key" code="54" ascii="54" modifiers="" />
+ <event name="7" type="key" code="55" ascii="55" modifiers="" />
+ <event name="8" type="key" code="56" ascii="56" modifiers="" />
+ <event name="9" type="key" code="57" ascii="57" modifiers="" />
+ <event name="ok" type="submit" />
+ <event name="cancel" type="cancel" />
+ <event name="quit" type="submit" />
+ <event name="delete" type="delete" />
+ </mode>
+</keyboard>
diff --git a/backends/vkeybd/virtual-keyboard.cpp b/backends/vkeybd/virtual-keyboard.cpp
index 678c751410..ce19e9d462 100644
--- a/backends/vkeybd/virtual-keyboard.cpp
+++ b/backends/vkeybd/virtual-keyboard.cpp
@@ -98,7 +98,7 @@ bool VirtualKeyboard::openPack(const String &packName, const FSNode &node) {
return false;
}
} else {
- warning("Could not find %s.xml file in %s.zip keyboard pack", packName.c_str(), packName.c_str());
+ warning("Could not find %s.xml file in %s.zip virtual keyboard pack", packName.c_str(), packName.c_str());
delete _fileArchive;
_fileArchive = 0;
return false;
@@ -132,15 +132,15 @@ bool VirtualKeyboard::loadKeyboardPack(const String &packName) {
_loaded = _parser->parse();
if (_loaded) {
- debug("Keyboard pack '%s' loaded successfully", packName.c_str());
+ debug("Virtual keyboard pack '%s' loaded successfully", packName.c_str());
} else {
- warning("Error parsing the keyboard pack '%s'", packName.c_str());
+ warning("Error parsing the virtual keyboard pack '%s'", packName.c_str());
delete _fileArchive;
_fileArchive = 0;
}
} else {
- warning("Keyboard pack not found");
+ warning("Virtual keyboard disabled due to missing pack file");
}
return _loaded;
@@ -205,7 +205,7 @@ void VirtualKeyboard::switchMode(Mode *newMode) {
void VirtualKeyboard::switchMode(const String &newMode) {
if (!_modes.contains(newMode)) {
- warning("Keyboard mode '%s' unknown", newMode.c_str());
+ warning("Virtual keyboard mode '%s' unknown", newMode.c_str());
} else {
switchMode(&_modes[newMode]);
}
@@ -227,7 +227,7 @@ void VirtualKeyboard::handleMouseUp(int16 x, int16 y) {
void VirtualKeyboard::show() {
if (!_loaded) {
- warning("Virtual keyboard not loaded");
+ debug(1, "VirtualKeyboard::show() - Virtual keyboard not loaded");
return;
} else {
_kbdGUI->checkScreenChanged();
diff --git a/base/internal_version.h b/base/internal_version.h
index 11f596df79..b6526c5c14 100644
--- a/base/internal_version.h
+++ b/base/internal_version.h
@@ -16,4 +16,4 @@
#define SCUMMVM_REVISION
#endif
-#define SCUMMVM_VERSION "1.7.0git" SCUMMVM_REVISION
+#define SCUMMVM_VERSION "1.8.0git" SCUMMVM_REVISION
diff --git a/common/EventMapper.cpp b/common/EventMapper.cpp
index 30896d7514..b92116cbe7 100644
--- a/common/EventMapper.cpp
+++ b/common/EventMapper.cpp
@@ -30,23 +30,45 @@ namespace Common {
List<Event> DefaultEventMapper::mapEvent(const Event &ev, EventSource *source) {
List<Event> events;
Event mappedEvent;
+#ifdef ENABLE_VKEYBD
+ // Trigger virtual keyboard on long press of more than 1 second
+ // of middle mouse button.
+ const uint32 vkeybdTime = 1000;
+
+ static bool vkeybd = false;
+ static uint32 vkeybdThen = 0;
+
+ if (ev.type == EVENT_MBUTTONDOWN) {
+ vkeybdThen = g_system->getMillis();
+ }
+
+ if (ev.type == EVENT_MBUTTONUP) {
+ if ((g_system->getMillis() - vkeybdThen) >= vkeybdTime) {
+ mappedEvent.type = EVENT_VIRTUAL_KEYBOARD;
+
+ // Avoid blocking event from engine.
+ addDelayedEvent(100, ev);
+ }
+ }
+#endif
+
if (ev.type == EVENT_KEYDOWN) {
if (ev.kbd.hasFlags(KBD_CTRL) && ev.kbd.keycode == KEYCODE_F5) {
mappedEvent.type = EVENT_MAINMENU;
}
#ifdef ENABLE_VKEYBD
- else if (ev.kbd.keycode == KEYCODE_F7 && ev.kbd.hasFlags(0)) {
+ else if (ev.kbd.hasFlags(KBD_CTRL) && ev.kbd.keycode == KEYCODE_F7) {
mappedEvent.type = EVENT_VIRTUAL_KEYBOARD;
- // Avoid blocking F7 events from engine.
+ // Avoid blocking CTRL-F7 events from engine.
addDelayedEvent(100, ev);
}
#endif
#ifdef ENABLE_KEYMAPPER
- else if (ev.kbd.keycode == KEYCODE_F8 && ev.kbd.hasFlags(0)) {
+ else if (ev.kbd.hasFlags(KBD_CTRL) && ev.kbd.keycode == KEYCODE_F8) {
mappedEvent.type = EVENT_KEYMAPPER_REMAP;
- // Avoid blocking F8 events from engine.
+ // Avoid blocking CTRL-F8 events from engine.
addDelayedEvent(100, ev);
}
#endif
diff --git a/configure b/configure
index 3f49565010..06359079e1 100755
--- a/configure
+++ b/configure
@@ -1844,7 +1844,7 @@ fi
echo $_global_constructors
echo_n "Checking for $_host_alias-strings... " >> "$TMPLOG"
-if test ! "x$(which $_host_alias-strings 2>/dev/null)" = "x"; then
+if `which $_host_alias-strings >/dev/null 2>&1`; then
_strings=$_host_alias-strings
echo yes >> "$TMPLOG"
else
@@ -2797,6 +2797,8 @@ if test -n "$_host"; then
_mt32emu=no
_timidity=no
_vkeybd=yes
+ _eventrec=no
+ _port_mk="backends/platform/sdl/ps3/ps3.mk"
;;
psp)
_backend="psp"
diff --git a/devtools/create_project/scripts/postbuild.cmd b/devtools/create_project/scripts/postbuild.cmd
index 8b70ec3dd8..fcbd8c534a 100644
--- a/devtools/create_project/scripts/postbuild.cmd
+++ b/devtools/create_project/scripts/postbuild.cmd
@@ -26,7 +26,8 @@ echo.
xcopy /F /Y "%~4/lib/%~3/SDL.dll" "%~2" 1>NUL 2>&1
xcopy /F /Y "%~4/lib/%~3/freetype6.dll" "%~2" 1>NUL 2>&1
xcopy /F /Y "%~1/backends/vkeybd/packs/vkeybd_default.zip" "%~2" 1>NUL 2>&1
-xcopy /F /Y "%~1/gui/themes/translations.dat" "%~2" 1>NUL 2>&1
+xcopy /F /Y "%~1/backends/vkeybd/packs/vkeybd_small.zip" "%~2" 1>NUL 2>&1
+xcopy /F /Y "%~1/gui/themes/translations.dat" "%~2" 1>NUL 2>&1
if "%~5"=="0" goto done
diff --git a/dists/android/AndroidManifest.xml b/dists/android/AndroidManifest.xml
index 16d1ee578b..db8a9adc54 100644
--- a/dists/android/AndroidManifest.xml
+++ b/dists/android/AndroidManifest.xml
@@ -4,7 +4,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.scummvm.scummvm"
android:versionCode="@ANDROID_VERSIONCODE@"
- android:versionName="1.7.0git"
+ android:versionName="1.8.0git"
android:installLocation="preferExternal"
android:sharedUserId="org.scummvm.scummvm">
diff --git a/dists/android/plugin-manifest.xml b/dists/android/plugin-manifest.xml
index f96cd4eb91..040d1ea57c 100644
--- a/dists/android/plugin-manifest.xml
+++ b/dists/android/plugin-manifest.xml
@@ -3,7 +3,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.scummvm.scummvm.plugin.@PLUGIN_NAME@"
android:versionCode="@PLUGIN_VERSION_CODE@"
- android:versionName="1.7.0git"
+ android:versionName="1.8.0git"
android:installLocation="preferExternal"
android:sharedUserId="org.scummvm.scummvm">
diff --git a/dists/android/res-ouya/values-television/margins.xml b/dists/android/res/values-television/margins.xml
index df586eea34..df586eea34 100644
--- a/dists/android/res-ouya/values-television/margins.xml
+++ b/dists/android/res/values-television/margins.xml
diff --git a/dists/gph/README-GPH b/dists/gph/README-GPH
index e3ce3e86b6..1c5e6d2898 100644
--- a/dists/gph/README-GPH
+++ b/dists/gph/README-GPH
@@ -1,4 +1,4 @@
-ScummVM 1.7.0git - GPH DEVICE SPECIFIC README
+ScummVM 1.8.0git - GPH DEVICE SPECIFIC README
------------------------------------------------------------------------
diff --git a/dists/gph/scummvm.ini b/dists/gph/scummvm.ini
index 36251c7c5c..1c57a3cf08 100644
--- a/dists/gph/scummvm.ini
+++ b/dists/gph/scummvm.ini
@@ -1,5 +1,5 @@
[info]
-name="ScummVM 1.7.0git"
+name="ScummVM 1.8.0git"
path="/scummvm/scummvm.gpe"
icon="/scummvm/scummvm.png"
title="/scummvm/scummvmb.png"
diff --git a/dists/iphone/Info.plist b/dists/iphone/Info.plist
index 6fdd7f2696..d630801504 100644
--- a/dists/iphone/Info.plist
+++ b/dists/iphone/Info.plist
@@ -15,11 +15,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>1.7.0git</string>
+ <string>1.8.0git</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1.7.0git</string>
+ <string>1.8.0git</string>
<key>CFBundleIconFile</key>
<string>icon.png</string>
<key>CFBundleIconFiles</key>
diff --git a/dists/irix/scummvm.spec b/dists/irix/scummvm.spec
index 66f7bda998..973f7aefae 100644
--- a/dists/irix/scummvm.spec
+++ b/dists/irix/scummvm.spec
@@ -1,5 +1,5 @@
product scummvm
- id "ScummVM 1.7.0git"
+ id "ScummVM 1.8.0git"
image sw
id "software"
version 18
diff --git a/dists/macosx/Info.plist b/dists/macosx/Info.plist
index 63813c06de..fff0e47668 100644
--- a/dists/macosx/Info.plist
+++ b/dists/macosx/Info.plist
@@ -28,7 +28,7 @@
<key>CFBundleExecutable</key>
<string>scummvm</string>
<key>CFBundleGetInfoString</key>
- <string>1.7.0git, Copyright 2001-2014 The ScummVM Team</string>
+ <string>1.8.0git, Copyright 2001-2014 The ScummVM Team</string>
<key>CFBundleIconFile</key>
<string>scummvm.icns</string>
<key>CFBundleIdentifier</key>
@@ -40,9 +40,9 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>1.7.0git</string>
+ <string>1.8.0git</string>
<key>CFBundleVersion</key>
- <string>1.7.0git</string>
+ <string>1.8.0git</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSHumanReadableCopyright</key>
diff --git a/dists/openpandora/PXML.xml b/dists/openpandora/PXML.xml
index 157a773677..877a7fd6b4 100644
--- a/dists/openpandora/PXML.xml
+++ b/dists/openpandora/PXML.xml
@@ -4,11 +4,11 @@
<package id="scummvm.djwillis.0001">
<author name="DJWillis" website="http://www.scummvm.org/"/>
<!-- version type can be alpha, beta or release, set to release in branch -->
- <version major="1" minor="7" release="0" build="1" type="release"/>
+ <version major="1" minor="8" release="0" build="1" type="release"/>
<!-- Both title and titles are needed -->
- <title lang="en_US">ScummVM 1.7.0git</title>
+ <title lang="en_US">ScummVM 1.8.0git</title>
<titles>
- <title lang="en_US">ScummVM 1.7.0git</title>
+ <title lang="en_US">ScummVM 1.8.0git</title>
</titles>
<descriptions>
<description lang="en_US">
@@ -25,7 +25,7 @@
<exec command="./runscummvm.sh"/>
<author name="DJWillis" website="http://www.scummvm.org/"/>
<!-- version type can be alpha, beta or release, set to release in branch -->
- <version major="1" minor="7" release="0" build="1" type="release"/>
+ <version major="1" minor="8" release="0" build="1" type="release"/>
<!-- Both title and titles are needed -->
<title lang="en_US">ScummVM</title>
<titles>
diff --git a/dists/openpandora/README-OPENPANDORA b/dists/openpandora/README-OPENPANDORA
index d9c4c9d0bb..70cff11858 100644
--- a/dists/openpandora/README-OPENPANDORA
+++ b/dists/openpandora/README-OPENPANDORA
@@ -1,4 +1,4 @@
-ScummVM 1.7.0git - OPENPANDORA SPECIFIC README
+ScummVM 1.8.0git - OPENPANDORA SPECIFIC README
------------------------------------------------------------------------
Please refer to the:
diff --git a/dists/openpandora/README-PND.txt b/dists/openpandora/README-PND.txt
index e7fee27f1b..9012c9116b 100644
--- a/dists/openpandora/README-PND.txt
+++ b/dists/openpandora/README-PND.txt
@@ -1,4 +1,4 @@
-ScummVM 1.7.0git - OPENPANDORA README - HOW TO INSTALL
+ScummVM 1.8.0git - OPENPANDORA README - HOW TO INSTALL
------------------------------------------------------------------------
Please refer to the:
diff --git a/dists/openpandora/index.html b/dists/openpandora/index.html
index b109e55df3..e664623bf8 100644
--- a/dists/openpandora/index.html
+++ b/dists/openpandora/index.html
@@ -5,7 +5,7 @@
</h3>
<h4>
- <p>ScummVM 1.7.0git: OpenPandora Specific Documentation</p>
+ <p>ScummVM 1.8.0git: OpenPandora Specific Documentation</p>
</h4>
<A href="docs/README-OPENPANDORA">ScummVM OpenPandora README</a><br/>
@@ -13,7 +13,7 @@
<A href="http://wiki.scummvm.org/index.php/OpenPandora">ScummVM OpenPandora WiKi</a><br/>
<h4>
- <p>ScummVM 1.7.0git: General Documentation</p>
+ <p>ScummVM 1.8.0git: General Documentation</p>
</h4>
<A href="http://www.scummvm.org/">ScummVM website</a><br/>
diff --git a/dists/redhat/scummvm-tools.spec b/dists/redhat/scummvm-tools.spec
index 50af873541..74e86089f1 100644
--- a/dists/redhat/scummvm-tools.spec
+++ b/dists/redhat/scummvm-tools.spec
@@ -7,7 +7,7 @@
# Prologue information
#------------------------------------------------------------------------------
Name : scummvm-tools
-Version : 1.7.0git
+Version : 1.8.0git
Release : 1
Summary : ScummVM-related tools
Group : Interpreters
diff --git a/dists/redhat/scummvm.spec b/dists/redhat/scummvm.spec
index 33622ffb9b..27706420ce 100644
--- a/dists/redhat/scummvm.spec
+++ b/dists/redhat/scummvm.spec
@@ -7,7 +7,7 @@
# Prologue information
#------------------------------------------------------------------------------
Name : scummvm
-Version : 1.7.0git
+Version : 1.8.0git
Release : 1
Summary : Graphic adventure game interpreter
Group : Interpreters
diff --git a/dists/scummvm.rc b/dists/scummvm.rc
index f0609c1a79..def6ee49f7 100644
--- a/dists/scummvm.rc
+++ b/dists/scummvm.rc
@@ -61,8 +61,8 @@ pred.dic FILE "dists/pred.dic"
#endif
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,7,0,0
- PRODUCTVERSION 1,7,0,0
+ FILEVERSION 1,8,0,0
+ PRODUCTVERSION 1,8,0,0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
#ifdef _DEBUG
FILEFLAGS VS_FF_DEBUG
@@ -79,13 +79,13 @@ BEGIN
BEGIN
VALUE "Comments", "Look! A three headed monkey (TM)! .. Nice use of the TM!\0"
VALUE "FileDescription", "http://www.scummvm.org/\0"
- VALUE "FileVersion", "1.7.0git\0"
+ VALUE "FileVersion", "1.8.0git\0"
VALUE "InternalName", "scummvm\0"
VALUE "LegalCopyright", "Copyright Љ 2001-2014 The ScummVM Team\0"
VALUE "LegalTrademarks", "'SCUMM', and all SCUMM games are a TM of LucasArts. Simon The Sorcerer is a TM of AdventureSoft. Beneath a Steel Sky and Broken Sword are a TM of Revolution. Flight of the Amazon Queen is a TM of John Passfield and Steve Stamatiadis. \0"
VALUE "OriginalFilename", "scummvm.exe\0"
VALUE "ProductName", "ScummVM\0"
- VALUE "ProductVersion", "1.7.0git\0"
+ VALUE "ProductVersion", "1.8.0git\0"
END
END
diff --git a/dists/slackware/scummvm.SlackBuild b/dists/slackware/scummvm.SlackBuild
index 215b502f2a..b1e1fe2c77 100755
--- a/dists/slackware/scummvm.SlackBuild
+++ b/dists/slackware/scummvm.SlackBuild
@@ -9,7 +9,7 @@ if [ "$TMP" = "" ]; then
fi
PKG=$TMP/package-scummvm
-VERSION=1.7.0git
+VERSION=1.8.0git
ARCH=i486
BUILD=1
diff --git a/dists/wii/meta.xml b/dists/wii/meta.xml
index ad4ec9cc7d..2dbd8da7fd 100644
--- a/dists/wii/meta.xml
+++ b/dists/wii/meta.xml
@@ -2,7 +2,7 @@
<app version="1">
<name>ScummVM</name>
<coder>The ScummVM Team</coder>
- <version>1.7.0git@REVISION@</version>
+ <version>1.8.0git@REVISION@</version>
<release_date>@TIMESTAMP@</release_date>
<short_description>Point &amp; Click Adventures</short_description>
<long_description>ScummVM is a program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed!
diff --git a/dists/win32/scummvm.nsi b/dists/win32/scummvm.nsi
index 602b9fd6c3..bdefad43da 100644
--- a/dists/win32/scummvm.nsi
+++ b/dists/win32/scummvm.nsi
@@ -72,7 +72,7 @@ Name ScummVM
# General Symbol Definitions
#########################################################################################
!define REGKEY "Software\$(^Name)\$(^Name)"
-!define VERSION "1.7.0git"
+!define VERSION "1.8.0git"
!define COMPANY "ScummVM Team"
!define URL "http://scummvm.org/"
!define DESCRIPTION "ScummVM Installer. Look! A three headed monkey (TM)!"
@@ -92,7 +92,7 @@ XPStyle on
#TargetMinimalOS 5.0 ; Minimal version of windows for installer: Windows 2000 or more recent
; (will build unicode installer with NSIS 2.50+)
-VIProductVersion 1.7.0.0
+VIProductVersion 1.8.0.0
VIAddVersionKey ProductName $(^Name)
VIAddVersionKey ProductVersion "${VERSION}"
VIAddVersionKey CompanyName "${COMPANY}"
diff --git a/doc/de/Liesmich b/doc/de/Liesmich
index 8e28c201c7..9190bb0852 100644
--- a/doc/de/Liesmich
+++ b/doc/de/Liesmich
@@ -33,7 +33,8 @@ Inhaltsverzeichnis:
* 3.17 Hinweise zu Winnie the Pooh
* 3.18 Hinweise zu Troll's Tale
* 3.19 Hinweise zu DraФi Historie
- * 3.20 Bekannte Probleme
+ * 3.20 Gleichzeitige Sprachausgabe und Untertitel in Sierra-SCI-Spielen
+ * 3.21 Bekannte Probleme
4.0) UnterstУМtzte Plattformen
5.0) ScummVM verwenden
* 5.1 Kommandozeilenoptionen
@@ -690,7 +691,7 @@ Alternativ kУЖnnen Sie das Tool т€žcompress_queenт€œ aus dem Tools-Paket verwend
um Ihre FOTAQ-Spieldatei neu т€žzusammenzubauenт€œ, um die Tabellendatei fУМr diese
spezielle Version miteinzubeziehen und somit die Laufzeit-AbhУЄngigkeit von der
Datei т€žqueen.tblт€œ zu lУЖsen. Dieses Tool kann auch die Sprachausgabe und
-Sound-Effekte mittels MP3, Ogg Vorbis oder FLAC komprimieren.
+GerУЄusch-Effekte mittels MP3, Ogg Vorbis oder FLAC komprimieren.
3.10) Hinweise zu Gobliiins:
@@ -875,7 +876,63 @@ Alle Spieldateien und die KomplettlУЖsung kУЖnnen von der folgenden Website
heruntergeladen werden: http://www.ucw.cz/draci-historie/index-en.html
-3.20) Bekannte Probleme:
+3.20) Gleichzeitige Sprachausgabe und Untertitel in Sierra-SCI-Spielen:
+----- -----------------------------------------------------------------
+Bestimmte CD-Versionen von Sierra-SCI-Spielen boten sowohl Sprachausgabe als
+auch Untertitel an. Bei einigen gab es die MУЖglichkeit, zwischen beidem hin- und
+herzuwechseln, aber in einigen FУЄllen war keine Option vorhanden, um beides
+gleichzeitig zu aktivieren. Mit ScummVM ist es mУЖglich, auf einen kombinierten
+Modus zurУМckzugreifen, in welchem Sprachausgabe und Untertitel zur selben Zeit
+wiedergegeben werden. Dieser Modus kann in ScummVMs Audio-Optionen deaktiviert
+und aktiviert werden, aber jedes Spiel hat eigene Optionen, um einen Wechsel
+zwischen Sprachausgabe und Text innerhalb des Spiels zu ermУЖglichen.
+
+In diesen CD-Spielen ist es mУЖglich, gleichzeitige Sprachausgabe und Untertitel
+anzeigen zu lassen:
+ EcoQuest 1 CD
+ Freddy Pharkas CD
+ King's Quest 6 CD
+ Laura Bow 2 CD
+ Leisure Suit Larry 6 CD
+ Space Quest 4 CD
+
+EcoQuest 1 CD:
+ Der Modus Sprachausgabe und Untertitel kann УМber die Spieloptionen oder auch
+ УМber ScummVMs Audio-Optionen deaktiviert und aktiviert werden.
+
+Freddy Pharkas CD:
+ Es gibt innerhalb des Spiels keine Option, um gleichzeitige Sprachausgabe
+ und Untertitel zu aktivieren. Dies ist nur УМber ScummVMs Audio-Optionen
+ mУЖglich. Bitte beachten Sie, dass einige gesprochene Teile in den
+ Untertiteln fehlen.
+
+King's Quest 6 CD:
+ Der Modus Sprachausgabe und Untertitel kann УМber die ModusschaltflУЄche in
+ den Spieloptionen (УМber die fУМr ScummVM zusУЄtzlich hinzugefУМgte Einstellung
+ т€žDualт€œ) oder auch УМber ScummVMs Audio-Optionen deaktiviert und aktiviert
+ werden.
+
+Laura Bow 2 CD:
+ Der Modus Sprachausgabe und Untertitel kann УМber die ModusschaltflУЄche in
+ den Spieloptionen (УМber die fУМr ScummVM zusУЄtzlich hinzugefУМgte Einstellung
+ т€žDualт€œ) oder auch УМber ScummVMs Audio-Optionen deaktiviert und aktiviert
+ werden.
+
+Leisure Suit Larry 6 CD:
+ Either speech only or speech and text can be selected. There is no
+ in-game option to toggle text only. Only ScummVM's audio options can
+ be used to enable the text only mode.
+ Es kann zwischen alleiniger Sprachausgabe und Sprachausgabe und Untertitel
+ gewУЄhlt werden. Es gibt innerhalb des Spiels keine Option, um alleinige
+ Untertitel zu aktivieren. Dies ist nur УМber ScummVMs Audio-Optionen mУЖglich.
+
+Space Quest 4 CD:
+ Der Modus Sprachausgabe und Untertitel kann УМber die SchaltflУЄche fУМr den
+ Anzeige-Modus in den Spieloptionen oder auch УМber ScummVMs Audio-Optionen
+ deaktiviert und aktiviert werden.
+
+
+3.21) Bekannte Probleme:
----- ------------------
Diese verУЖffentlichte Version hat die unten folgenden bekannten Probleme. Es ist
nicht notwendig, diese zu berichten, jedoch sind Patches, um diese zu beheben,
@@ -916,7 +973,7 @@ KompatibilitУЄtsseite der Website aufgefУМhrt ist, sehen Sie bitte im Abschnitt
Elvira II - The Jaws of Cerberus
- Keine Musik in der Atari-ST-Version
- - Keine Sound-Effekte in der PC-Version
+ - Keine GerУЄusch-Effekte in der PC-Version
- Palettenprobleme in der Atari-ST-Version
Inherit the Earth: Quest for the Orb
@@ -944,9 +1001,9 @@ KompatibilitУЄtsseite der Website aufgefУМhrt ist, sehen Sie bitte im Abschnitt
Originalspiel immer ausgeschaltet waren.
The Legend of Kyrandia:
- - Keine Musik oder Sound-Effekte in der Macintosh-Diskettenversion
+ - Keine Musik oder GerУЄusch-Effekte in der Macintosh-Diskettenversion
- Die Macintosh-CD-Version verwendet eingebundene DOS-Musik und
- DOS-Sound-Effekte.
+ DOS-GerУЄusch-Effekte.
Spiele von Humongous Entertainment:
- Nur die OriginaloberflУЄche kann zum Laden und Speichern verwendet werden.
@@ -1396,7 +1453,7 @@ zwischen SCUMM-Spielen und anderen Spielen.
Escape - Уœberspringt Zwischensequenzen.
- und + - MusiklautstУЄrke, leiser/lauter
m - Musik EIN/AUS
- s - Sound-Effekte EIN/AUS
+ s - GerУЄusch-Effekte EIN/AUS
b - HintergrundgerУЄusche EIN/AUS
[nur in Simon the Sorcerer 2 mУЖglich]
Pause - Spielpause
@@ -1415,7 +1472,7 @@ zwischen SCUMM-Spielen und anderen Spielen.
F12 - Hohes Tempo in Swampy Adventures EIN/AUS
- und + - MusiklautstУЄrke, leiser/lauter
m - Musik EIN/AUS
- s - Sound-Effekte EIN/AUS
+ s - GerУЄusch-Effekte EIN/AUS
Pause - Spielpause
Floyd - Es gibt noch Helden
@@ -1423,7 +1480,7 @@ zwischen SCUMM-Spielen und anderen Spielen.
Strg+f - Schneller Modus EIN/AUS
F7 - Wechselt Figuren.
F9 - Objektnamen-Anzeige EIN/AUS
- s - Sound-Effekte EIN/AUS
+ s - GerУЄusch-Effekte EIN/AUS
Pause - Spielpause
t - Wechselt zwischen Sprachausgabe allein und
Sprachausgabe und Untertiteln zusammen.
@@ -1745,9 +1802,9 @@ Wenn keine der oberen Einstellungen aktiviert ist, wird ScummVM Ihr GerУЄt im
General-MIDI-Modus initialisieren und GM-Emulation in Spielen mit
MT-32-Soundtrack verwenden.
-Einige Spiele beinhalten Sound-Effekte, die exklusiv fУМr den AdLib-Soundtrack
+Einige Spiele beinhalten GerУЄusch-Effekte, die exklusiv fУМr den AdLib-Soundtrack
vorgesehen sind. FУМr diese Spiele sollten Sie --multi-midi festlegen, um
-MIDI-Musik mit AdLib-Sound-Effekten zu kombinieren.
+MIDI-Musik mit AdLib-GerУЄusch-Effekten zu kombinieren.
7.6) Sound-Wiedergabe mittels MIDI-Sequenzer: [NUR IN UNIX]
@@ -2243,7 +2300,7 @@ folgende nicht standardmУЄУŸige SchlУМsselwУЖrter:
disable_dithering Bool Entfernung von Fehlerdiffusionsartefakten in
EGA-Spielen
- prefer_digitalsfx Bool Falls т€žtrueт€œ, werden digitale Sound-Effekte
+ prefer_digitalsfx Bool Falls т€žtrueт€œ, werden digitale GerУЄusch-Effekte
statt synthetisierter bevorzugt.
originalsaveload Bool Falls т€žtrueт€œ, werden die originalen MenУМs zum
Speichern und Laden statt der
@@ -2268,6 +2325,12 @@ SchlУМsselwУЖrter:
music_mute Bool Falls т€žtrueт€œ, wird Musik unterdrУМckt.
sfx_mute Bool Falls т€žtrueт€œ, werden GerУЄusche unterdrУМckt.
+Hopkins FBI verfУМgt zusУЄtzlich УМber folgendes nicht standardmУЄУŸiges
+SchlУМsselwort:
+
+ enable_gore Bool Falls т€žtrueт€œ, wird optionaler brutaler
+ Spielinhalt angezeigt.
+
Jones in the Fast Lane verfУМgt zusУЄtzlich УМber folgendes nicht standardmУЄУŸiges
SchlУМsselwort:
@@ -2309,6 +2372,10 @@ standardmУЄУŸige SchlУМsselwУЖrter:
music_mute Bool Falls т€žtrueт€œ, wird Musik unterdrУМckt.
sfx_mute Bool Falls т€žtrueт€œ, werden GerУЄusche unterdrУМckt.
+Soltys verfУМgt zusУЄtzlich УМber folgendes nicht standardmУЄУŸiges SchlУМsselwort:
+
+ enable_color_blind Bool Falls т€žtrueт€œ, werden die Farben des Spiels durch
+ GrautУЖne ersetzt.
The Legend of Kyrandia verfУМgt zusУЄtzlich УМber folgendes nicht standardmУЄУŸiges
SchlУМsselwort:
@@ -2332,6 +2399,19 @@ standardmУЄУŸige SchlУМsselwУЖrter:
helium_mode Bool Falls т€žtrueт€œ, klingen alle Spielfiguren so,
als hУЄtten sie Helium eingeatmet.
+The Neverhood verfУМgt zusУЄtzlich УМber folgende nicht standardmУЄУŸige
+SchlУМsselwУЖrter:
+
+ originalsaveload Bool Falls т€žtrueт€œ, werden die originalen MenУМs zum
+ Speichern und Laden statt der
+ erweiterten von ScummVM verwendet.
+ skiphallofrecordsscenes Bool
+ Falls т€žtrueт€œ, kann der Spieler die Szenenbuch-
+ Sequenz in der Chronikhalle УМberspringen.
+ scalemakingofvideos Bool Falls т€žtrueт€œ, werden die Making-Of-Videos
+ skaliert, sodass sie den gesamten Bildschirm
+ ausfУМllen.
+
The 7th Guest verfУМgt zusУЄtzlich УМber folgendes nicht standardmУЄУŸiges
SchlУМsselwort:
diff --git a/doc/de/Neues b/doc/de/Neues
index 11dbb9309a..d9b8e7d5c1 100644
--- a/doc/de/Neues
+++ b/doc/de/Neues
@@ -2,6 +2,70 @@ Umfangreichere У„nderungsaufzeichnungen des neusten experimentellen Codes finden
Sie auf Englisch unter:
https://github.com/scummvm/scummvm/commits/
+1.7.0 (14.07.2014)
+ Neue Spiele:
+ - UnterstУМtzung fУМr Chivalry is Not Dead hinzugefУМgt.
+ - UnterstУМtzung fУМr Return to Ringworld hinzugefУМgt.
+ - UnterstУМtzung fУМr The Neverhood hinzugefУМgt.
+ - UnterstУМtzung fУМr Mortville Manor hinzugefУМgt.
+ - UnterstУМtzung fУМr Voyeur hinzugefУМgt.
+
+ Allgemein:
+ - Munt-MT-32-Emulationscode zu Version 1.3.0 aktualisiert.
+ - Von unseren eigenen JPEG- und PNG-Dekodieren zu libjpeg(-turbo) und libpng
+ gewechselt, welche schneller sind und mehr Bilder verarbeiten kУЖnnen.
+ (HINWEIS: Der Wechsel zu libpng fand bereits in Version 1.6.0 statt, wurde
+ jedoch nicht in der Datei NEUES erwУЄhnt.)
+
+ AGOS:
+ - UnterstУМtzung fУМr Mausrad bei Inventar und Spielstandliste hinzugefУМgt.
+ - Anzeige der Interaktionsverben in Simon the Sorcerer 2 aktiviert.
+ - Fehler bei LoyalitУЄtseinstufung in englischer 4CD-Version von
+ Floyd - Es gibt noch Helden beseitigt. (Dies war offensichtlich ein Fehler
+ im ursprУМnglichen Spiel. Es ist zurzeit nicht bekannt, ob noch weitere
+ Versionen hiervon betroffen sind.)
+
+ Baphomets Fluch 1:
+ - UnterstУМtzung fУМr MPEG-2-Videos wiederhergestellt.
+
+ Baphomets Fluch 2:
+ - UnterstУМtzung fУМr MPEG-2-Videos wiederhergestellt.
+
+ CGE:
+ - Option fУМr einen т€žFarbenblindheitsmodusт€œ zum ScummVM-MenУМ hinzugefУМgt.
+
+ Gob:
+ - Video-QualitУЄt in Urban Runner verbessert.
+
+ Hopkins:
+ - Option fУМr einen Brutalo-Modus zu ScummVM-MenУМ hinzugefУМgt.
+ - Fehler beseitigt, durch welchen die Musik manchmal vorzeitig zu spielen
+ aufhУЖrte.
+
+ SCI:
+ - UnterstУМtzung fУМr die detailreicheren RAVE-Lippensynchronisationsdaten in
+ der Windows-Version von Kingт€™s Quest 6 hinzugefУМgt. Portraits wirken beim
+ Sprechen nun viel ausdrucksstarker.
+ - UnterstУМtzung fУМr gleichzeitige Sprachausgabe und Untertitel in den
+ CD-Versionen von Laura Bow 2 und Kingт€™s Quest 6 hinzugefУМgt (kann sowohl im
+ Spiel selbst УМber den neuen т€žDualт€œ-Audiostatus als auch УМber ScummVMs
+ Audio-Optionen aktiviert werden).
+ - MusikУМbergУЄnge korrigiert.
+ - Mehrere Skriptfehler in Camelot, Crazy Nick's, Hoyle 3, QFG1VGA, KQ5,
+ KQ6, LB2, LSL2, LSL5, Pharkas, PQ1VGA, SQ4 und SQ5 beseitigt.
+ - MIDI-Parser verbessert, sodass Musikereignisse genauer verarbeitet werden.
+
+SCUMM:
+ - Spielstandsbenennungsschema von HE-Spielen geУЄndert, sodass immer der
+ Zielname des Spiels enthalten ist.
+ - Fehler beseitigt, durch den man mehrere Trainer in Backyard Football hatte.
+ - AdLib-UnterstУМtzung fУМr Loom und Indiana Jones and the Last Crusade
+ verbessert. Dadurch klingen GerУЄusch-Effekte wie beispielsweise von der
+ Schreibmaschine und vom Wasserfall wie im Original.
+
+ Tinsel:
+ - Discworld 1 und 2 stУМrzen nicht mehr auf Big-Endian-Systemen ab.
+
1.6.0 (31.05.2013)
Neue Spiele:
- UnterstУМtzung fУМr 3 Skulls of the Toltecs hinzugefУМgt.
@@ -37,8 +101,8 @@ Sie auf Englisch unter:
Cine:
- Audio-UnterstУМtzung fУМr Amiga und AtariST-Versionen von Future Wars
verbessert. Musik wird nun langsam ausgeblendet anstatt abrupt zu stoppen.
- Die Balance-Regelung der Sound-Effekte funktioniert nun richtig, wenn sie
- vom Spiel verlangt wird.
+ Die Balance-Regelung der GerУЄusch-Effekte funktioniert nun richtig, wenn
+ sie vom Spiel verlangt wird.
CGE:
- Soltys enthУЄlt ein Puzzle, bei welchem man die ALT-Taste drУМcken muss,
@@ -127,7 +191,7 @@ Sie auf Englisch unter:
- Verschiedene Verbesserungen der grafischen BenutzeroberflУЄche.
Baphomets Fluch 1:
- - Falsche Soundeffekte in der DOS-/Windows-Demo korrigiert.
+ - Falsche GerУЄusch-Effekte in der DOS-/Windows-Demo korrigiert.
- UnterstУМtzung fУМr PlayStation-Videos hinzugefУМgt.
- Fehlende Untertitel zur Demo hinzugefУМgt.
@@ -196,9 +260,9 @@ Sie auf Englisch unter:
- Abfolgebedingung bei SCI1.1-PalettenУЄnderungen korrigiert. Dies behebt
einen Fehler in QFG1VGA, wenn man in Erana's Peace schlУЄft.
- Die Option, um zwischen digitalisierten und synthetisierten
- Soundeffekten auszuwУЄhlen, wurde bis auf Weiteres deaktiviert, bis eine
+ GerУЄusch-Effekten auszuwУЄhlen, wurde bis auf Weiteres deaktiviert, bis eine
anwenderfreundlichere BenutzeroberflУЄchen-Option mУЖglich ist.
- Digitale Soundeffekte werden vorerst immer bevorzugt.
+ Digitale GerУЄusch-Effekte werden vorerst immer bevorzugt.
- Fehler in einem Fall beseitigt, bei welchem bei Beginn eines neuen Liedes
nicht alle KanУЄle zurУМckgesetzt wurden und somit einige Noten falsch
klangen.
@@ -245,10 +309,10 @@ Sie auf Englisch unter:
SCI:
- Bessere Handhabung der Auswahl zwischen digitalen und synthetisierten
- Sound-Effekten hinzugefУМgt. Wenn das KontrollkУЄstchen т€žAdLib-/MIDI-Modusт€œ
- markiert ist, wird die Engine digitale Sound-Effekte bevorzugen, ansonsten
- werden stattdessen deren synthetisierten GegenstУМcke bevorzugt, wenn beide
- Versionen des gleichen Effekts existieren.
+ GerУЄusch-Effekten hinzugefУМgt. Wenn das KontrollkУЄstchen
+ т€žAdLib-/MIDI-Modusт€œ markiert ist, wird die Engine digitale GerУЄusch-Effekte
+ bevorzugen, ansonsten werden stattdessen deren synthetisierten GegenstУМcke
+ bevorzugt, wenn beide Versionen des gleichen Effekts existieren.
SCUMM:
- PC-Lautsprecher-UnterstУМtzung fУМr V5-Spiele integriert.
@@ -689,7 +753,7 @@ Sie auf Englisch unter:
SCUMM:
- UnterstУМtzung fУМr die PC-Engine-Version von Loom hinzugefУМgt.
- - UnterstУМtzung fУМr Musik und Klang-Effekte in der Amiga-Version von
+ - UnterstУМtzung fУМr Musik und GerУЄusch-Effekte in der Amiga-Version von
The Secret of Monkey Island hinzugefУМgt. (GSoC-Aufgabe)
- Einige weitere Fehler im Zusammenhang mit Amiga-Versionen von Spielen
beseitigt.
@@ -835,7 +899,7 @@ Sie auf Englisch unter:
zu entsprechen.
KYRA:
- - UnterstУМtzung fУМr auf PC-Lautsprecher basierende Musik und Klang-Effekte
+ - UnterstУМtzung fУМr auf PC-Lautsprecher basierende Musik und GerУЄusch-Effekte
hinzugefУМgt.
- UnterstУМtzung fУМr 16-Farben-Fehlerdiffusion in Kyrandia PC-9801
hinzugefУМgt.
@@ -978,7 +1042,7 @@ Sie auf Englisch unter:
- Teile von Digital iMUSE umgeschrieben, was einige Fehler beseitigt.
- Code fУМr interne Zeitplanung umgeschrieben, was einige
Geschwindigkeitsprobleme behebt, beispielsweise in COMI.
- - UnterstУМtzung fУМr Klang-Effekte in Amiga-Versionen von Zak McKracken
+ - UnterstУМtzung fУМr GerУЄusch-Effekte in Amiga-Versionen von Zak McKracken
verbessert.
- UnterstУМtzung fУМr AdLib-MIDI-Kombination in Monkey Island 1
(Diskettenversion) hinzugefУМgt.
@@ -1680,7 +1744,7 @@ Sie auf Englisch unter:
Spiele hinzugefУМgt.
- AdLib-UnterstУМtzung fУМr indy3ega und loom (EGA) hinzugefУМgt.
- MIDI-UnterstУМtzung fУМr loom (EGA), monkeyega und monkeyvga hinzugefУМgt.
- - UnterstУМtzung fУМr Klang-Effekte fУМr indy3/monkeyega/monkeyvga/pass
+ - UnterstУМtzung fУМr GerУЄusch-Effekte fУМr indy3/monkeyega/monkeyvga/pass
hinzugefУМgt.
- FM-TOWNS-Ziele fУМr Loom und Indy3 hinzugefУМgt.
- MenУМ im Spiel (aufrufbar mit F5) umgeschrieben, um einfachere Verwendung zu
diff --git a/engines/agos/midi.cpp b/engines/agos/midi.cpp
index 392ee08ea1..c26fbe3331 100644
--- a/engines/agos/midi.cpp
+++ b/engines/agos/midi.cpp
@@ -235,10 +235,6 @@ void MidiPlayer::startTrack(int track) {
_music.parser = parser; // That plugs the power cord into the wall
} else if (_music.parser) {
if (!_music.parser->setTrack(track)) {
- // The Roland MT32 music in Simon the Sorcerer 2
- // is missing the extra tracks in many scenes,
- // like the introduction sequence.
- stop();
return;
}
_currentTrack = (byte)track;
diff --git a/engines/fullpipe/fullpipe.cpp b/engines/fullpipe/fullpipe.cpp
index 0a176ca07d..bb0838395d 100644
--- a/engines/fullpipe/fullpipe.cpp
+++ b/engines/fullpipe/fullpipe.cpp
@@ -84,6 +84,7 @@ FullpipeEngine::FullpipeEngine(OSystem *syst, const ADGameDescription *gameDesc)
_currentCheatPos = 0;
_modalObject = 0;
+ _origFormat = 0;
_liftEnterMQ = 0;
_liftExitMQ = 0;
diff --git a/engines/fullpipe/mgm.cpp b/engines/fullpipe/mgm.cpp
new file mode 100644
index 0000000000..aacfd5452a
--- /dev/null
+++ b/engines/fullpipe/mgm.cpp
@@ -0,0 +1,719 @@
+/* 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 "fullpipe/fullpipe.h"
+
+#include "fullpipe/utils.h"
+#include "fullpipe/statics.h"
+#include "fullpipe/motion.h"
+#include "fullpipe/messages.h"
+
+namespace Fullpipe {
+
+void MGM::clear() {
+ _items.clear();
+}
+
+MessageQueue *MGM::genMQ(StaticANIObject *ani, int staticsIndex, int staticsId, int *resStatId, Common::Point **pointArr) {
+ int idx = getItemIndexById(ani->_id);
+
+ if (idx == -1)
+ return 0;
+
+ int stid = staticsId;
+
+ if (!staticsId) {
+ if (ani->_movement) {
+ stid = ani->_movement->_staticsObj2->_staticsId;
+ } else {
+ if (!ani->_statics)
+ return 0;
+
+ stid = ani->_statics->_staticsId;
+ }
+ }
+
+ if (stid == staticsIndex)
+ return new MessageQueue(g_fp->_globalMessageQueueList->compact());
+
+ int startidx = getStaticsIndexById(idx, stid);
+ int endidx = getStaticsIndexById(idx, staticsIndex);
+ int subidx = startidx + endidx * _items[idx]->statics.size();
+
+ if (!_items[idx]->subItems[subidx]->movement) {
+ clearMovements2(idx);
+ recalcOffsets(idx, startidx, endidx, 0, 1);
+ }
+
+ if (!_items[idx]->subItems[subidx]->movement)
+ return 0;
+
+ MessageQueue *mq = new MessageQueue(g_fp->_globalMessageQueueList->compact());
+ Common::Point point;
+ ExCommand *ex;
+
+ int i = 0;
+ do {
+ subidx = startidx + endidx * _items[idx]->statics.size();
+
+ _items[idx]->subItems[subidx]->movement->calcSomeXY(point, 0, -1);
+
+ if (pointArr) {
+ int sz;
+
+ if (_items[idx]->subItems[subidx]->movement->_currMovement)
+ sz = _items[idx]->subItems[subidx]->movement->_currMovement->_dynamicPhases.size();
+ else
+ sz = _items[idx]->subItems[subidx]->movement->_dynamicPhases.size();
+
+ ex = new ExCommand2(20, ani->_id, &pointArr[i], sz);
+
+ ex->_messageNum = _items[idx]->subItems[subidx]->movement->_id;
+ } else {
+ ex = new ExCommand(ani->_id, 1, _items[idx]->subItems[subidx]->movement->_id, 0, 0, 0, 1, 0, 0, 0);
+ }
+
+ ex->_keyCode = ani->_okeyCode;
+ ex->_field_3C = 1;
+ ex->_field_24 = 1;
+
+ mq->addExCommandToEnd(ex);
+
+ if (resStatId)
+ *resStatId = _items[idx]->subItems[subidx]->movement->_id;
+
+ startidx = _items[idx]->subItems[subidx]->staticsIndex;
+
+ uint step;
+
+ if (_items[idx]->subItems[subidx]->movement->_currMovement)
+ step = _items[idx]->subItems[subidx]->movement->_currMovement->_dynamicPhases.size();
+ else
+ step = _items[idx]->subItems[subidx]->movement->_dynamicPhases.size();
+
+ i += step;
+ } while (startidx != endidx);
+
+ return mq;
+}
+
+MGMItem::MGMItem() {
+ objId = 0;
+}
+
+MGMSubItem::MGMSubItem() {
+ movement = 0;
+ staticsIndex = 0;
+ field_8 = 0;
+ field_C = 0;
+ x = 0;
+ y = 0;
+}
+
+void MGM::addItem(int objId) {
+ if (getItemIndexById(objId) == -1) {
+ MGMItem *item = new MGMItem();
+
+ item->objId = objId;
+ _items.push_back(item);
+ }
+ rebuildTables(objId);
+}
+
+void MGM::rebuildTables(int objId) {
+ int idx = getItemIndexById(objId);
+
+ if (idx == -1)
+ return;
+
+ _items[idx]->subItems.clear();
+ _items[idx]->statics.clear();
+ _items[idx]->movements1.clear();
+ _items[idx]->movements2.clear();
+
+ StaticANIObject *obj = g_fp->_currentScene->getStaticANIObject1ById(objId, -1);
+
+ if (!obj)
+ return;
+
+ for (uint i = 0; i < obj->_staticsList.size(); i++)
+ _items[idx]->statics.push_back((Statics *)obj->_staticsList[i]);
+
+ for (uint i = 0; i < obj->_movements.size(); i++)
+ _items[idx]->movements1.push_back((Movement *)obj->_movements[i]);
+
+ _items[idx]->subItems.clear();
+}
+
+int MGM::getItemIndexById(int objId) {
+ for (uint i = 0; i < _items.size(); i++)
+ if (_items[i]->objId == objId)
+ return i;
+
+ return -1;
+}
+
+MessageQueue *MGM::genMovement(MGMInfo *mgminfo) {
+ if (!mgminfo->ani)
+ return 0;
+
+ Movement *mov = mgminfo->ani->_movement;
+
+ if (!mov && !mgminfo->ani->_statics)
+ return 0;
+
+ if (!(mgminfo->flags & 1)) {
+ if (mov)
+ mgminfo->staticsId1 = mov->_staticsObj2->_staticsId;
+ else
+ mgminfo->staticsId1 = mgminfo->ani->_statics->_staticsId;
+ }
+
+ Common::Point point;
+
+ if (!(mgminfo->flags & 0x10) || !(mgminfo->flags & 0x20)) {
+ int nx = mgminfo->ani->_ox;
+ int ny = mgminfo->ani->_oy;
+
+ if (mgminfo->ani->_movement) {
+ mgminfo->ani->calcNextStep(&point);
+
+ nx += point.x;
+ ny += point.y;
+ }
+
+ if (!(mgminfo->flags & 0x10))
+ mgminfo->x2 = nx;
+
+ if (!(mgminfo->flags & 0x20))
+ mgminfo->y2 = ny;
+ }
+
+ mov = mgminfo->ani->getMovementById(mgminfo->movementId);
+
+ if (!mov)
+ return 0;
+
+ int itemIdx = getItemIndexById(mgminfo->ani->_id);
+ int subIdx = getStaticsIndexById(itemIdx, mgminfo->staticsId1);
+ int st2idx = getStaticsIndexById(itemIdx, mov->_staticsObj1->_staticsId);
+ int st1idx = getStaticsIndexById(itemIdx, mov->_staticsObj2->_staticsId);
+ int subOffset = getStaticsIndexById(itemIdx, mgminfo->staticsId2);
+
+ clearMovements2(itemIdx);
+ recalcOffsets(itemIdx, subIdx, st2idx, 0, 1);
+ clearMovements2(itemIdx);
+ recalcOffsets(itemIdx, st1idx, subOffset, 0, 1);
+
+ MGMSubItem *sub1 = _items[itemIdx]->subItems[subIdx + st2idx * _items[itemIdx]->statics.size()];
+ MGMSubItem *sub2 = _items[itemIdx]->subItems[st1idx + subOffset * _items[itemIdx]->statics.size()];
+
+ if (subIdx != st2idx && !sub1->movement)
+ return 0;
+
+ if (st1idx != subOffset && !sub2->movement)
+ return 0;
+
+ int n1x = mgminfo->x1 - mgminfo->x2 - sub1->x - sub2->x;
+ int n1y = mgminfo->y1 - mgminfo->y2 - sub1->y - sub2->y;
+
+ Common::Point point1;
+
+ mov->calcSomeXY(point1, 0, -1);
+
+ int n2x = point1.x;
+ int n2y = point1.y;
+ int mult;
+ int len = -1;
+
+ if (mgminfo->flags & 0x40) {
+ mult = mgminfo->field_10;
+ len = -1;
+ n2x *= mult;
+ n2y *= mult;
+ } else {
+ calcLength(&point, mov, n1x, n1y, &mult, &len, 1);
+ n2x = point.x;
+ n2y = point.y;
+ }
+
+ if (!(mgminfo->flags & 2)) {
+ len = -1;
+ n2x = mult * point1.x;
+ n1x = mult * point1.x;
+ mgminfo->x1 = mgminfo->x2 + mult * point1.x + sub1->x + sub2->x;
+ }
+
+ if (!(mgminfo->flags & 4)) {
+ n2y = mult * point1.y;
+ n1y = mult * point1.y;
+ len = -1;
+ mgminfo->y1 = mgminfo->y2 + mult * point1.y + sub1->y + sub2->y;
+ }
+
+ int px = 0;
+ int py = 0;
+
+ if (sub1->movement) {
+ px = countPhases(itemIdx, subIdx, st2idx, 1);
+ py = countPhases(itemIdx, subIdx, st2idx, 2);
+ }
+
+ if (mult > 1) {
+ px += (mult - 1) * mov->countPhasesWithFlag(-1, 1);
+ py += (mult - 1) * mov->countPhasesWithFlag(-1, 2);
+ }
+
+ if (mult > 0) {
+ px += mov->countPhasesWithFlag(len, 1);
+ py += mov->countPhasesWithFlag(len, 2);
+ }
+
+ if (sub2->movement) {
+ px += countPhases(itemIdx, st1idx, subOffset, 1);
+ py += countPhases(itemIdx, st1idx, subOffset, 2);
+ }
+
+ int dx1 = n1x - n2x;
+ int dy1 = n1y - n2y;
+ int x1, y1;
+
+ if (px) {
+ x1 = (int)((double)dx1 / (double)px);
+ } else {
+ x1 = 0;
+ }
+
+ if (py) {
+ y1 = (int)((double)dy1 / (double)py);
+ } else {
+ y1 = 0;
+ }
+
+ Common::Point x2, y2;
+
+ y2.x = dx1 - px * x1;
+ y2.y = dy1 - py * y1;
+
+ if (n1x - n2x == px * x1)
+ x2.x = 0;
+ else
+ x2.x = (dx1 - px * x1) / abs(dx1 - px * x1);
+
+ if (dy1 == py * y1)
+ x2.y = 0;
+ else
+ x2.y = (dy1 - py * y1) / abs(dy1 - py * y1);
+
+ MessageQueue *mq = new MessageQueue(g_fp->_globalMessageQueueList->compact());
+ ExCommand2 *ex2;
+
+ for (int i = subIdx; i != st2idx;) {
+ MGMSubItem *s = _items[itemIdx]->subItems[i + subOffset * _items[itemIdx]->statics.size()];
+
+ ex2 = buildExCommand2(s->movement, mgminfo->ani->_id, x1, y1, &x2, &y2, -1);
+ ex2->_parId = mq->_id;
+ ex2->_keyCode = mgminfo->ani->_okeyCode;
+
+ mq->addExCommandToEnd(ex2);
+
+ i = s->staticsIndex;
+ }
+
+ for (int i = 0; i < mult; ++i) {
+ int plen;
+
+ if (i == mult - 1)
+ plen = len;
+ else
+ plen = -1;
+
+ ex2 = buildExCommand2(mov, mgminfo->ani->_id, x1, y1, &x2, &y2, plen);
+ ex2->_parId = mq->_id;
+ ex2->_keyCode = mgminfo->ani->_okeyCode;
+
+ mq->addExCommandToEnd(ex2);
+ }
+
+ for (int j = st1idx; j != subOffset;) {
+ MGMSubItem *s = _items[itemIdx]->subItems[j + subOffset * _items[itemIdx]->statics.size()];
+
+ ex2 = buildExCommand2(s->movement, mgminfo->ani->_id, x1, y1, &x2, &y2, -1);
+ ex2->_parId = mq->_id;
+ ex2->_keyCode = mgminfo->ani->_okeyCode;
+
+ mq->addExCommandToEnd(ex2);
+
+ j = s->staticsIndex;
+ }
+
+ ExCommand *ex = new ExCommand(mgminfo->ani->_id, 5, -1, mgminfo->x1, mgminfo->y1, 0, 1, 0, 0, 0);
+
+ ex->_field_14 = mgminfo->field_1C;
+ ex->_keyCode = mgminfo->ani->_okeyCode;
+ ex->_field_24 = 0;
+ ex->_excFlags |= 3;
+
+ mq->addExCommandToEnd(ex);
+
+ return mq;
+}
+
+int MGM::countPhases(int idx, int subIdx, int endIdx, int flag) {
+ int res = 0;
+
+ if (endIdx < 0)
+ return 0;
+
+ while (subIdx != endIdx) {
+ if (subIdx < 0)
+ break;
+
+ res += _items[idx]->subItems[subIdx + endIdx * _items[idx]->statics.size()]->movement->countPhasesWithFlag(-1, flag);
+
+ subIdx = _items[idx]->subItems[subIdx + 6 * endIdx * _items[idx]->statics.size()]->staticsIndex;
+ }
+
+ return res;
+}
+void MGM::updateAnimStatics(StaticANIObject *ani, int staticsId) {
+ if (getItemIndexById(ani->_id) == -1)
+ return;
+
+ if (ani->_movement) {
+ ani->queueMessageQueue(0);
+ ani->_movement->gotoLastFrame();
+ ani->_statics = ani->_movement->_staticsObj2;
+
+ int x = ani->_movement->_ox;
+ int y = ani->_movement->_oy;
+
+ ani->_movement = 0;
+
+ ani->setOXY(x, y);
+ }
+
+ if (ani->_statics) {
+ Common::Point point;
+
+ getPoint(&point, ani->_id, ani->_statics->_staticsId, staticsId);
+
+ ani->setOXY(ani->_ox + point.x, ani->_oy + point.y);
+
+ ani->_statics = ani->getStaticsById(staticsId);
+ }
+}
+
+Common::Point *MGM::getPoint(Common::Point *point, int objectId, int staticsId1, int staticsId2) {
+ int idx = getItemIndexById(objectId);
+
+ if (idx == -1) {
+ point->x = -1;
+ point->y = -1;
+ } else {
+ int st1idx = getStaticsIndexById(idx, staticsId1);
+ int st2idx = getStaticsIndexById(idx, staticsId2);
+
+ if (st1idx == st2idx) {
+ point->x = 0;
+ point->y = 0;
+ } else {
+ int subidx = st1idx + st2idx * _items[idx]->statics.size();
+
+ if (!_items[idx]->subItems[subidx]->movement) {
+ clearMovements2(idx);
+ recalcOffsets(idx, st1idx, st2idx, false, true);
+
+ if (!_items[idx]->subItems[subidx]->movement) {
+ clearMovements2(idx);
+ recalcOffsets(idx, st1idx, st2idx, true, false);
+ }
+ }
+
+ MGMSubItem *sub = _items[idx]->subItems[subidx];
+
+ if (sub->movement) {
+ point->x = sub->x;
+ point->y = sub->y;
+ } else {
+ point->x = 0;
+ point->y = 0;
+ }
+ }
+ }
+
+ return point;
+}
+
+int MGM::getStaticsIndexById(int idx, int16 id) {
+ if (!_items[idx]->statics.size())
+ return -1;
+
+ for (uint i = 0; i < _items[idx]->statics.size(); i++) {
+ if (_items[idx]->statics[i]->_staticsId == id)
+ return i;
+ }
+
+ return 0;
+}
+
+int MGM::getStaticsIndex(int idx, Statics *st) {
+ if (!_items[idx]->statics.size())
+ return -1;
+
+ for (uint i = 0; i < _items[idx]->statics.size(); i++) {
+ if (_items[idx]->statics[i] == st)
+ return i;
+ }
+
+ return 0;
+}
+
+void MGM::clearMovements2(int idx) {
+ _items[idx]->movements2.clear();
+}
+
+int MGM::recalcOffsets(int idx, int st1idx, int st2idx, bool flip, bool flop) {
+ MGMItem *item = _items[idx];
+ int subIdx = st1idx + st2idx * item->statics.size();
+
+ if (st1idx == st2idx) {
+ memset(&item->subItems[subIdx], 0, sizeof(item->subItems[subIdx]));
+ return 0;
+ }
+
+ if (item->subItems[subIdx])
+ return item->subItems[subIdx]->field_8;
+
+ Common::Point point;
+
+ for (uint i = 0; i < item->movements1.size(); i++) {
+ Movement *mov = item->movements1[i];
+
+ if (mov->_staticsObj1 == item->statics[st1idx]) {
+ if (!item->movements2[i] && (!flop || mov->_field_50)) {
+ item->movements2[i] = 1;
+
+ int stidx = getStaticsIndex(idx, item->movements1[i]->_staticsObj2);
+ int recalc = recalcOffsets(idx, stidx, st2idx, flip, flop);
+ int sz = mov->_currMovement ? mov->_currMovement->_dynamicPhases.size() : mov->_dynamicPhases.size();
+ int newsz = sz + item->subItems[stidx + 6 * st2idx * _items[idx]->statics.size()]->field_C;
+
+ if (recalc >= 0) {
+ if (!item->subItems[subIdx]->movement || item->subItems[subIdx]->field_8 > recalc + 1 ||
+ (item->subItems[subIdx]->field_8 == recalc + 1 && item->subItems[subIdx]->field_C > newsz)) {
+ item->subItems[subIdx]->movement = mov;
+ item->subItems[subIdx]->staticsIndex = stidx;
+ item->subItems[subIdx]->field_8 = recalc + 1;
+ item->subItems[subIdx]->field_C = newsz;
+
+ mov->calcSomeXY(point, 0, -1);
+
+ item->subItems[subIdx]->x = item->subItems[stidx + 6 * st2idx * _items[idx]->statics.size()]->x + point.x;
+ item->subItems[subIdx]->y = item->subItems[stidx + 6 * st2idx * _items[idx]->statics.size()]->y + point.y;
+ }
+ }
+ }
+ } else if (flip) {
+ if (mov->_staticsObj2 == item->statics[st1idx]) {
+ if (!item->movements2[i] && (!flop || mov->_field_50)) {
+ item->movements2[i] = 1;
+
+ int stidx = getStaticsIndex(idx, mov->_staticsObj1);
+ int recalc = recalcOffsets(idx, stidx, st2idx, flip, flop);
+
+ if (recalc >= 0) {
+ if (!item->subItems[subIdx]->movement || item->subItems[subIdx]->field_8 > recalc + 1) {
+ item->subItems[subIdx]->movement = mov;
+ item->subItems[subIdx]->staticsIndex = stidx;
+ item->subItems[subIdx]->field_8 = recalc + 1;
+
+ int sz = mov->_currMovement ? mov->_currMovement->_dynamicPhases.size() : mov->_dynamicPhases.size();
+
+ item->subItems[subIdx]->field_C = sz + item->subItems[stidx + 6 * st2idx * _items[idx]->statics.size()]->field_C;
+
+ mov->calcSomeXY(point, 0, -1);
+
+ item->subItems[subIdx]->x = item->subItems[stidx + 6 * st2idx * _items[idx]->statics.size()]->x - point.x;
+ item->subItems[subIdx]->y = item->subItems[stidx + 6 * st2idx * _items[idx]->statics.size()]->y - point.y;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if (item->subItems[subIdx]->movement)
+ return item->subItems[subIdx]->field_8;
+
+ return -1;
+}
+
+int MGM::refreshOffsets(int objectId, int idx1, int idx2) {
+ int idx = getItemIndexById(objectId);
+
+ if (idx != -1) {
+ int from = getStaticsIndexById(idx, idx1);
+ int to = getStaticsIndexById(idx, idx2);
+
+ MGMSubItem *sub = _items[idx]->subItems[from + to * _items[idx]->statics.size()];
+
+ if (sub->movement) {
+ idx = sub->field_8;
+ } else {
+ clearMovements2(idx);
+ idx = recalcOffsets(idx, from, to, 0, 1);
+ }
+ }
+
+ return idx;
+}
+
+Common::Point *MGM::calcLength(Common::Point *pRes, Movement *mov, int x, int y, int *mult, int *len, int flag) {
+ Common::Point point;
+
+ mov->calcSomeXY(point, 0, -1);
+ int p1x = point.x;
+ int p1y = point.y;
+
+ int newmult = 0;
+ int oldlen = *len;
+
+ if (abs(p1y) > abs(p1x)) {
+ if (mov->calcSomeXY(point, 0, -1)->y)
+ newmult = (int)((double)y / mov->calcSomeXY(point, 0, -1)->y);
+ } else if (mov->calcSomeXY(point, 0, -1)->x) {
+ newmult = (int)((double)x / mov->calcSomeXY(point, 0, -1)->x);
+ }
+
+ if (newmult < 0)
+ newmult = 0;
+
+ *mult = newmult;
+
+ int phase = 1;
+ int sz;
+
+ if (flag) {
+ if (abs(p1y) > abs(p1x)) {
+ while (abs(p1y * newmult + mov->calcSomeXY(point, 0, phase)->y) < abs(y)) {
+ sz = mov->_currMovement ? mov->_currMovement->_dynamicPhases.size() : mov->_dynamicPhases.size();
+
+ if (phase > sz)
+ break;
+
+ phase++;
+ }
+ } else {
+ while (abs(p1x * newmult + mov->calcSomeXY(point, 0, phase)->x) < abs(x)) {
+ sz = mov->_currMovement ? mov->_currMovement->_dynamicPhases.size() : mov->_dynamicPhases.size();
+
+ if (phase >= sz)
+ break;
+
+ phase++;
+ }
+ }
+
+ *len = phase - 1;
+ } else {
+ *len = -1;
+ }
+
+ int p2x = 0;
+ int p2y = 0;
+
+ if (!oldlen)
+ oldlen = -1;
+
+ if (oldlen > 0) {
+ ++*mult;
+
+ mov->calcSomeXY(point, 0, oldlen);
+ p2x = point.x;
+ p2y = point.y;
+
+ if (abs(p1y) > abs(p1x))
+ p2x = p1x;
+ else
+ p2y = p1y;
+ }
+
+ pRes->x = p2x + p1x * newmult;
+ pRes->y = p2y + p1y * newmult;
+
+ return pRes;
+}
+
+ExCommand2 *MGM::buildExCommand2(Movement *mov, int objId, int x1, int y1, Common::Point *x2, Common::Point *y2, int len) {
+ uint cnt;
+
+ if (mov->_currMovement)
+ cnt = mov->_currMovement->_dynamicPhases.size();
+ else
+ cnt = mov->_dynamicPhases.size();
+
+ if (len > 0 && cnt > (uint)len)
+ cnt = len;
+
+ Common::Point **points = (Common::Point **)malloc(sizeof(Common::Point *) * cnt);
+
+ for (uint i = 0; i < cnt; i++) {
+ int flags = mov->getDynamicPhaseByIndex(i)->getDynFlags();
+
+ points[i] = new Common::Point;
+
+ if (flags & 1) {
+ points[i]->x = x1 + x2->x;
+
+ y2->x -= x2->x;
+
+ if (!y2->x)
+ x2->x = 0;
+ }
+
+ if (flags & 2) {
+ points[i]->y = y1 + x2->y;
+
+ y2->y -= x2->y;
+
+ if (!y2->y)
+ x2->y = 0;
+ }
+ }
+
+ ExCommand2 *ex = new ExCommand2(20, objId, points, cnt);
+ ex->_excFlags = 2;
+ ex->_messageNum = mov->_id;
+ ex->_field_14 = len;
+ ex->_field_24 = 1;
+ ex->_keyCode = -1;
+
+ for (uint i = 0; i < cnt; i++)
+ delete points[i];
+
+ free(points);
+
+ return ex;
+}
+
+} // End of namespace Fullpipe
diff --git a/engines/fullpipe/mgm.h b/engines/fullpipe/mgm.h
new file mode 100644
index 0000000000..13195891da
--- /dev/null
+++ b/engines/fullpipe/mgm.h
@@ -0,0 +1,95 @@
+/* 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 FULLPIPE_MGM_H
+#define FULLPIPE_MGM_H
+
+namespace Fullpipe {
+
+class ExCommand2;
+class Movement;
+class Statics;
+
+struct MGMSubItem {
+ Movement *movement;
+ int staticsIndex;
+ int field_8;
+ int field_C;
+ int x;
+ int y;
+
+ MGMSubItem();
+};
+
+struct MGMItem {
+ int16 objId;
+ Common::Array<MGMSubItem *> subItems;
+ Common::Array<Statics *> statics;
+ Common::Array<Movement *> movements1;
+ Common::Array<int> movements2;
+
+ MGMItem();
+};
+
+struct MGMInfo {
+ StaticANIObject *ani;
+ int staticsId1;
+ int staticsId2;
+ int movementId;
+ int field_10;
+ int x1;
+ int y1;
+ int field_1C;
+ int x2;
+ int y2;
+ int flags;
+
+ MGMInfo() { memset(this, 0, sizeof(MGMInfo)); }
+};
+
+class MGM : public CObject {
+public:
+ Common::Array<MGMItem *> _items;
+
+public:
+ void clear();
+ void addItem(int objId);
+ void rebuildTables(int objId);
+ int getItemIndexById(int objId);
+
+ MessageQueue *genMovement(MGMInfo *mgminfo);
+ void updateAnimStatics(StaticANIObject *ani, int staticsId);
+ Common::Point *getPoint(Common::Point *point, int aniId, int staticsId1, int staticsId2);
+ int getStaticsIndexById(int idx, int16 id);
+ int getStaticsIndex(int idx, Statics *st);
+ void clearMovements2(int idx);
+ int recalcOffsets(int idx, int st1idx, int st2idx, bool flip, bool flop);
+ Common::Point *calcLength(Common::Point *point, Movement *mov, int x, int y, int *mult, int *len, int flag);
+ ExCommand2 *buildExCommand2(Movement *mov, int objId, int x1, int y1, Common::Point *x2, Common::Point *y2, int len);
+ MessageQueue *genMQ(StaticANIObject *ani, int staticsIndex, int staticsId, int *resStatId, Common::Point **pointArr);
+ int countPhases(int idx, int subIdx, int subOffset, int flag);
+ int refreshOffsets(int objectId, int idx1, int idx2);
+};
+
+} // End of namespace Fullpipe
+
+#endif /* FULLPIPE_MGM_H */
diff --git a/engines/fullpipe/module.mk b/engines/fullpipe/module.mk
index 3962fe64ba..96bd91fd39 100644
--- a/engines/fullpipe/module.mk
+++ b/engines/fullpipe/module.mk
@@ -15,6 +15,7 @@ MODULE_OBJS = \
lift.o \
messagehandlers.o \
messages.o \
+ mgm.o \
modal.o \
motion.o \
ngiarchive.o \
diff --git a/engines/fullpipe/motion.cpp b/engines/fullpipe/motion.cpp
index 2d2fdfa3bf..49cf88434e 100644
--- a/engines/fullpipe/motion.cpp
+++ b/engines/fullpipe/motion.cpp
@@ -22,15 +22,10 @@
#include "fullpipe/fullpipe.h"
-#include "common/file.h"
-#include "common/array.h"
-#include "common/list.h"
-
-#include "fullpipe/objects.h"
+#include "fullpipe/utils.h"
#include "fullpipe/statics.h"
#include "fullpipe/gameloader.h"
#include "fullpipe/motion.h"
-#include "fullpipe/messages.h"
namespace Fullpipe {
@@ -2779,693 +2774,6 @@ MovGraphNode *MovGraph::calcOffset(int ox, int oy) {
return res;
}
-void MGM::clear() {
- _items.clear();
-}
-
-MessageQueue *MGM::genMQ(StaticANIObject *ani, int staticsIndex, int staticsId, int *resStatId, Common::Point **pointArr) {
- int idx = getItemIndexById(ani->_id);
-
- if (idx == -1)
- return 0;
-
- int stid = staticsId;
-
- if (!staticsId) {
- if (ani->_movement) {
- stid = ani->_movement->_staticsObj2->_staticsId;
- } else {
- if (!ani->_statics)
- return 0;
-
- stid = ani->_statics->_staticsId;
- }
- }
-
- if (stid == staticsIndex)
- return new MessageQueue(g_fp->_globalMessageQueueList->compact());
-
- int startidx = getStaticsIndexById(idx, stid);
- int endidx = getStaticsIndexById(idx, staticsIndex);
- int subidx = startidx + endidx * _items[idx]->statics.size();
-
- if (!_items[idx]->subItems[subidx]->movement) {
- clearMovements2(idx);
- recalcOffsets(idx, startidx, endidx, 0, 1);
- }
-
- if (!_items[idx]->subItems[subidx]->movement)
- return 0;
-
- MessageQueue *mq = new MessageQueue(g_fp->_globalMessageQueueList->compact());
- Common::Point point;
- ExCommand *ex;
-
- int i = 0;
- do {
- subidx = startidx + endidx * _items[idx]->statics.size();
-
- _items[idx]->subItems[subidx]->movement->calcSomeXY(point, 0, -1);
-
- if (pointArr) {
- int sz;
-
- if (_items[idx]->subItems[subidx]->movement->_currMovement)
- sz = _items[idx]->subItems[subidx]->movement->_currMovement->_dynamicPhases.size();
- else
- sz = _items[idx]->subItems[subidx]->movement->_dynamicPhases.size();
-
- ex = new ExCommand2(20, ani->_id, &pointArr[i], sz);
-
- ex->_messageNum = _items[idx]->subItems[subidx]->movement->_id;
- } else {
- ex = new ExCommand(ani->_id, 1, _items[idx]->subItems[subidx]->movement->_id, 0, 0, 0, 1, 0, 0, 0);
- }
-
- ex->_keyCode = ani->_okeyCode;
- ex->_field_3C = 1;
- ex->_field_24 = 1;
-
- mq->addExCommandToEnd(ex);
-
- if (resStatId)
- *resStatId = _items[idx]->subItems[subidx]->movement->_id;
-
- startidx = _items[idx]->subItems[subidx]->staticsIndex;
-
- uint step;
-
- if (_items[idx]->subItems[subidx]->movement->_currMovement)
- step = _items[idx]->subItems[subidx]->movement->_currMovement->_dynamicPhases.size();
- else
- step = _items[idx]->subItems[subidx]->movement->_dynamicPhases.size();
-
- i += step;
- } while (startidx != endidx);
-
- return mq;
-}
-
-MGMItem::MGMItem() {
- objId = 0;
-}
-
-MGMSubItem::MGMSubItem() {
- movement = 0;
- staticsIndex = 0;
- field_8 = 0;
- field_C = 0;
- x = 0;
- y = 0;
-}
-
-void MGM::addItem(int objId) {
- if (getItemIndexById(objId) == -1) {
- MGMItem *item = new MGMItem();
-
- item->objId = objId;
- _items.push_back(item);
- }
- rebuildTables(objId);
-}
-
-void MGM::rebuildTables(int objId) {
- int idx = getItemIndexById(objId);
-
- if (idx == -1)
- return;
-
- _items[idx]->subItems.clear();
- _items[idx]->statics.clear();
- _items[idx]->movements1.clear();
- _items[idx]->movements2.clear();
-
- StaticANIObject *obj = g_fp->_currentScene->getStaticANIObject1ById(objId, -1);
-
- if (!obj)
- return;
-
- for (uint i = 0; i < obj->_staticsList.size(); i++)
- _items[idx]->statics.push_back((Statics *)obj->_staticsList[i]);
-
- for (uint i = 0; i < obj->_movements.size(); i++)
- _items[idx]->movements1.push_back((Movement *)obj->_movements[i]);
-
- _items[idx]->subItems.clear();
-}
-
-int MGM::getItemIndexById(int objId) {
- for (uint i = 0; i < _items.size(); i++)
- if (_items[i]->objId == objId)
- return i;
-
- return -1;
-}
-
-MessageQueue *MGM::genMovement(MGMInfo *mgminfo) {
- if (!mgminfo->ani)
- return 0;
-
- Movement *mov = mgminfo->ani->_movement;
-
- if (!mov && !mgminfo->ani->_statics)
- return 0;
-
- if (!(mgminfo->flags & 1)) {
- if (mov)
- mgminfo->staticsId1 = mov->_staticsObj2->_staticsId;
- else
- mgminfo->staticsId1 = mgminfo->ani->_statics->_staticsId;
- }
-
- Common::Point point;
-
- if (!(mgminfo->flags & 0x10) || !(mgminfo->flags & 0x20)) {
- int nx = mgminfo->ani->_ox;
- int ny = mgminfo->ani->_oy;
-
- if (mgminfo->ani->_movement) {
- mgminfo->ani->calcNextStep(&point);
-
- nx += point.x;
- ny += point.y;
- }
-
- if (!(mgminfo->flags & 0x10))
- mgminfo->x2 = nx;
-
- if (!(mgminfo->flags & 0x20))
- mgminfo->y2 = ny;
- }
-
- mov = mgminfo->ani->getMovementById(mgminfo->movementId);
-
- if (!mov)
- return 0;
-
- int itemIdx = getItemIndexById(mgminfo->ani->_id);
- int subIdx = getStaticsIndexById(itemIdx, mgminfo->staticsId1);
- int st2idx = getStaticsIndexById(itemIdx, mov->_staticsObj1->_staticsId);
- int st1idx = getStaticsIndexById(itemIdx, mov->_staticsObj2->_staticsId);
- int subOffset = getStaticsIndexById(itemIdx, mgminfo->staticsId2);
-
- clearMovements2(itemIdx);
- recalcOffsets(itemIdx, subIdx, st2idx, 0, 1);
- clearMovements2(itemIdx);
- recalcOffsets(itemIdx, st1idx, subOffset, 0, 1);
-
- MGMSubItem *sub1 = _items[itemIdx]->subItems[subIdx + st2idx * _items[itemIdx]->statics.size()];
- MGMSubItem *sub2 = _items[itemIdx]->subItems[st1idx + subOffset * _items[itemIdx]->statics.size()];
-
- if (subIdx != st2idx && !sub1->movement)
- return 0;
-
- if (st1idx != subOffset && !sub2->movement)
- return 0;
-
- int n1x = mgminfo->x1 - mgminfo->x2 - sub1->x - sub2->x;
- int n1y = mgminfo->y1 - mgminfo->y2 - sub1->y - sub2->y;
-
- Common::Point point1;
-
- mov->calcSomeXY(point1, 0, -1);
-
- int n2x = point1.x;
- int n2y = point1.y;
- int mult;
- int len = -1;
-
- if (mgminfo->flags & 0x40) {
- mult = mgminfo->field_10;
- len = -1;
- n2x *= mult;
- n2y *= mult;
- } else {
- calcLength(&point, mov, n1x, n1y, &mult, &len, 1);
- n2x = point.x;
- n2y = point.y;
- }
-
- if (!(mgminfo->flags & 2)) {
- len = -1;
- n2x = mult * point1.x;
- n1x = mult * point1.x;
- mgminfo->x1 = mgminfo->x2 + mult * point1.x + sub1->x + sub2->x;
- }
-
- if (!(mgminfo->flags & 4)) {
- n2y = mult * point1.y;
- n1y = mult * point1.y;
- len = -1;
- mgminfo->y1 = mgminfo->y2 + mult * point1.y + sub1->y + sub2->y;
- }
-
- int px = 0;
- int py = 0;
-
- if (sub1->movement) {
- px = countPhases(itemIdx, subIdx, st2idx, 1);
- py = countPhases(itemIdx, subIdx, st2idx, 2);
- }
-
- if (mult > 1) {
- px += (mult - 1) * mov->countPhasesWithFlag(-1, 1);
- py += (mult - 1) * mov->countPhasesWithFlag(-1, 2);
- }
-
- if (mult > 0) {
- px += mov->countPhasesWithFlag(len, 1);
- py += mov->countPhasesWithFlag(len, 2);
- }
-
- if (sub2->movement) {
- px += countPhases(itemIdx, st1idx, subOffset, 1);
- py += countPhases(itemIdx, st1idx, subOffset, 2);
- }
-
- int dx1 = n1x - n2x;
- int dy1 = n1y - n2y;
- int x1, y1;
-
- if (px) {
- x1 = (int)((double)dx1 / (double)px);
- } else {
- x1 = 0;
- }
-
- if (py) {
- y1 = (int)((double)dy1 / (double)py);
- } else {
- y1 = 0;
- }
-
- Common::Point x2, y2;
-
- y2.x = dx1 - px * x1;
- y2.y = dy1 - py * y1;
-
- if (n1x - n2x == px * x1)
- x2.x = 0;
- else
- x2.x = (dx1 - px * x1) / abs(dx1 - px * x1);
-
- if (dy1 == py * y1)
- x2.y = 0;
- else
- x2.y = (dy1 - py * y1) / abs(dy1 - py * y1);
-
- MessageQueue *mq = new MessageQueue(g_fp->_globalMessageQueueList->compact());
- ExCommand2 *ex2;
-
- for (int i = subIdx; i != st2idx;) {
- MGMSubItem *s = _items[itemIdx]->subItems[i + subOffset * _items[itemIdx]->statics.size()];
-
- ex2 = buildExCommand2(s->movement, mgminfo->ani->_id, x1, y1, &x2, &y2, -1);
- ex2->_parId = mq->_id;
- ex2->_keyCode = mgminfo->ani->_okeyCode;
-
- mq->addExCommandToEnd(ex2);
-
- i = s->staticsIndex;
- }
-
- for (int i = 0; i < mult; ++i) {
- int plen;
-
- if (i == mult - 1)
- plen = len;
- else
- plen = -1;
-
- ex2 = buildExCommand2(mov, mgminfo->ani->_id, x1, y1, &x2, &y2, plen);
- ex2->_parId = mq->_id;
- ex2->_keyCode = mgminfo->ani->_okeyCode;
-
- mq->addExCommandToEnd(ex2);
- }
-
- for (int j = st1idx; j != subOffset;) {
- MGMSubItem *s = _items[itemIdx]->subItems[j + subOffset * _items[itemIdx]->statics.size()];
-
- ex2 = buildExCommand2(s->movement, mgminfo->ani->_id, x1, y1, &x2, &y2, -1);
- ex2->_parId = mq->_id;
- ex2->_keyCode = mgminfo->ani->_okeyCode;
-
- mq->addExCommandToEnd(ex2);
-
- j = s->staticsIndex;
- }
-
- ExCommand *ex = new ExCommand(mgminfo->ani->_id, 5, -1, mgminfo->x1, mgminfo->y1, 0, 1, 0, 0, 0);
-
- ex->_field_14 = mgminfo->field_1C;
- ex->_keyCode = mgminfo->ani->_okeyCode;
- ex->_field_24 = 0;
- ex->_excFlags |= 3;
-
- mq->addExCommandToEnd(ex);
-
- return mq;
-}
-
-int MGM::countPhases(int idx, int subIdx, int endIdx, int flag) {
- int res = 0;
-
- if (endIdx < 0)
- return 0;
-
- while (subIdx != endIdx) {
- if (subIdx < 0)
- break;
-
- res += _items[idx]->subItems[subIdx + endIdx * _items[idx]->statics.size()]->movement->countPhasesWithFlag(-1, flag);
-
- subIdx = _items[idx]->subItems[subIdx + 6 * endIdx * _items[idx]->statics.size()]->staticsIndex;
- }
-
- return res;
-}
-void MGM::updateAnimStatics(StaticANIObject *ani, int staticsId) {
- if (getItemIndexById(ani->_id) == -1)
- return;
-
- if (ani->_movement) {
- ani->queueMessageQueue(0);
- ani->_movement->gotoLastFrame();
- ani->_statics = ani->_movement->_staticsObj2;
-
- int x = ani->_movement->_ox;
- int y = ani->_movement->_oy;
-
- ani->_movement = 0;
-
- ani->setOXY(x, y);
- }
-
- if (ani->_statics) {
- Common::Point point;
-
- getPoint(&point, ani->_id, ani->_statics->_staticsId, staticsId);
-
- ani->setOXY(ani->_ox + point.x, ani->_oy + point.y);
-
- ani->_statics = ani->getStaticsById(staticsId);
- }
-}
-
-Common::Point *MGM::getPoint(Common::Point *point, int objectId, int staticsId1, int staticsId2) {
- int idx = getItemIndexById(objectId);
-
- if (idx == -1) {
- point->x = -1;
- point->y = -1;
- } else {
- int st1idx = getStaticsIndexById(idx, staticsId1);
- int st2idx = getStaticsIndexById(idx, staticsId2);
-
- if (st1idx == st2idx) {
- point->x = 0;
- point->y = 0;
- } else {
- int subidx = st1idx + st2idx * _items[idx]->statics.size();
-
- if (!_items[idx]->subItems[subidx]->movement) {
- clearMovements2(idx);
- recalcOffsets(idx, st1idx, st2idx, false, true);
-
- if (!_items[idx]->subItems[subidx]->movement) {
- clearMovements2(idx);
- recalcOffsets(idx, st1idx, st2idx, true, false);
- }
- }
-
- MGMSubItem *sub = _items[idx]->subItems[subidx];
-
- if (sub->movement) {
- point->x = sub->x;
- point->y = sub->y;
- } else {
- point->x = 0;
- point->y = 0;
- }
- }
- }
-
- return point;
-}
-
-int MGM::getStaticsIndexById(int idx, int16 id) {
- if (!_items[idx]->statics.size())
- return -1;
-
- for (uint i = 0; i < _items[idx]->statics.size(); i++) {
- if (_items[idx]->statics[i]->_staticsId == id)
- return i;
- }
-
- return 0;
-}
-
-int MGM::getStaticsIndex(int idx, Statics *st) {
- if (!_items[idx]->statics.size())
- return -1;
-
- for (uint i = 0; i < _items[idx]->statics.size(); i++) {
- if (_items[idx]->statics[i] == st)
- return i;
- }
-
- return 0;
-}
-
-void MGM::clearMovements2(int idx) {
- _items[idx]->movements2.clear();
-}
-
-int MGM::recalcOffsets(int idx, int st1idx, int st2idx, bool flip, bool flop) {
- MGMItem *item = _items[idx];
- int subIdx = st1idx + st2idx * item->statics.size();
-
- if (st1idx == st2idx) {
- memset(&item->subItems[subIdx], 0, sizeof(item->subItems[subIdx]));
- return 0;
- }
-
- if (item->subItems[subIdx])
- return item->subItems[subIdx]->field_8;
-
- Common::Point point;
-
- for (uint i = 0; i < item->movements1.size(); i++) {
- Movement *mov = item->movements1[i];
-
- if (mov->_staticsObj1 == item->statics[st1idx]) {
- if (!item->movements2[i] && (!flop || mov->_field_50)) {
- item->movements2[i] = 1;
-
- int stidx = getStaticsIndex(idx, item->movements1[i]->_staticsObj2);
- int recalc = recalcOffsets(idx, stidx, st2idx, flip, flop);
- int sz = mov->_currMovement ? mov->_currMovement->_dynamicPhases.size() : mov->_dynamicPhases.size();
- int newsz = sz + item->subItems[stidx + 6 * st2idx * _items[idx]->statics.size()]->field_C;
-
- if (recalc >= 0) {
- if (!item->subItems[subIdx]->movement || item->subItems[subIdx]->field_8 > recalc + 1 ||
- (item->subItems[subIdx]->field_8 == recalc + 1 && item->subItems[subIdx]->field_C > newsz)) {
- item->subItems[subIdx]->movement = mov;
- item->subItems[subIdx]->staticsIndex = stidx;
- item->subItems[subIdx]->field_8 = recalc + 1;
- item->subItems[subIdx]->field_C = newsz;
-
- mov->calcSomeXY(point, 0, -1);
-
- item->subItems[subIdx]->x = item->subItems[stidx + 6 * st2idx * _items[idx]->statics.size()]->x + point.x;
- item->subItems[subIdx]->y = item->subItems[stidx + 6 * st2idx * _items[idx]->statics.size()]->y + point.y;
- }
- }
- }
- } else if (flip) {
- if (mov->_staticsObj2 == item->statics[st1idx]) {
- if (!item->movements2[i] && (!flop || mov->_field_50)) {
- item->movements2[i] = 1;
-
- int stidx = getStaticsIndex(idx, mov->_staticsObj1);
- int recalc = recalcOffsets(idx, stidx, st2idx, flip, flop);
-
- if (recalc >= 0) {
- if (!item->subItems[subIdx]->movement || item->subItems[subIdx]->field_8 > recalc + 1) {
- item->subItems[subIdx]->movement = mov;
- item->subItems[subIdx]->staticsIndex = stidx;
- item->subItems[subIdx]->field_8 = recalc + 1;
-
- int sz = mov->_currMovement ? mov->_currMovement->_dynamicPhases.size() : mov->_dynamicPhases.size();
-
- item->subItems[subIdx]->field_C = sz + item->subItems[stidx + 6 * st2idx * _items[idx]->statics.size()]->field_C;
-
- mov->calcSomeXY(point, 0, -1);
-
- item->subItems[subIdx]->x = item->subItems[stidx + 6 * st2idx * _items[idx]->statics.size()]->x - point.x;
- item->subItems[subIdx]->y = item->subItems[stidx + 6 * st2idx * _items[idx]->statics.size()]->y - point.y;
- }
- }
- }
- }
- }
- }
-
- if (item->subItems[subIdx]->movement)
- return item->subItems[subIdx]->field_8;
-
- return -1;
-}
-
-int MGM::refreshOffsets(int objectId, int idx1, int idx2) {
- int idx = getItemIndexById(objectId);
-
- if (idx != -1) {
- int from = getStaticsIndexById(idx, idx1);
- int to = getStaticsIndexById(idx, idx2);
-
- MGMSubItem *sub = _items[idx]->subItems[from + to * _items[idx]->statics.size()];
-
- if (sub->movement) {
- idx = sub->field_8;
- } else {
- clearMovements2(idx);
- idx = recalcOffsets(idx, from, to, 0, 1);
- }
- }
-
- return idx;
-}
-
-Common::Point *MGM::calcLength(Common::Point *pRes, Movement *mov, int x, int y, int *mult, int *len, int flag) {
- Common::Point point;
-
- mov->calcSomeXY(point, 0, -1);
- int p1x = point.x;
- int p1y = point.y;
-
- int newmult = 0;
- int oldlen = *len;
-
- if (abs(p1y) > abs(p1x)) {
- if (mov->calcSomeXY(point, 0, -1)->y)
- newmult = (int)((double)y / mov->calcSomeXY(point, 0, -1)->y);
- } else if (mov->calcSomeXY(point, 0, -1)->x) {
- newmult = (int)((double)x / mov->calcSomeXY(point, 0, -1)->x);
- }
-
- if (newmult < 0)
- newmult = 0;
-
- *mult = newmult;
-
- int phase = 1;
- int sz;
-
- if (flag) {
- if (abs(p1y) > abs(p1x)) {
- while (abs(p1y * newmult + mov->calcSomeXY(point, 0, phase)->y) < abs(y)) {
- sz = mov->_currMovement ? mov->_currMovement->_dynamicPhases.size() : mov->_dynamicPhases.size();
-
- if (phase > sz)
- break;
-
- phase++;
- }
- } else {
- while (abs(p1x * newmult + mov->calcSomeXY(point, 0, phase)->x) < abs(x)) {
- sz = mov->_currMovement ? mov->_currMovement->_dynamicPhases.size() : mov->_dynamicPhases.size();
-
- if (phase >= sz)
- break;
-
- phase++;
- }
- }
-
- *len = phase - 1;
- } else {
- *len = -1;
- }
-
- int p2x = 0;
- int p2y = 0;
-
- if (!oldlen)
- oldlen = -1;
-
- if (oldlen > 0) {
- ++*mult;
-
- mov->calcSomeXY(point, 0, oldlen);
- p2x = point.x;
- p2y = point.y;
-
- if (abs(p1y) > abs(p1x))
- p2x = p1x;
- else
- p2y = p1y;
- }
-
- pRes->x = p2x + p1x * newmult;
- pRes->y = p2y + p1y * newmult;
-
- return pRes;
-}
-
-ExCommand2 *MGM::buildExCommand2(Movement *mov, int objId, int x1, int y1, Common::Point *x2, Common::Point *y2, int len) {
- uint cnt;
-
- if (mov->_currMovement)
- cnt = mov->_currMovement->_dynamicPhases.size();
- else
- cnt = mov->_dynamicPhases.size();
-
- if (len > 0 && cnt > (uint)len)
- cnt = len;
-
- Common::Point **points = (Common::Point **)malloc(sizeof(Common::Point *) * cnt);
-
- for (uint i = 0; i < cnt; i++) {
- int flags = mov->getDynamicPhaseByIndex(i)->getDynFlags();
-
- points[i] = new Common::Point;
-
- if (flags & 1) {
- points[i]->x = x1 + x2->x;
-
- y2->x -= x2->x;
-
- if (!y2->x)
- x2->x = 0;
- }
-
- if (flags & 2) {
- points[i]->y = y1 + x2->y;
-
- y2->y -= x2->y;
-
- if (!y2->y)
- x2->y = 0;
- }
- }
-
- ExCommand2 *ex = new ExCommand2(20, objId, points, cnt);
- ex->_excFlags = 2;
- ex->_messageNum = mov->_id;
- ex->_field_14 = len;
- ex->_field_24 = 1;
- ex->_keyCode = -1;
-
- for (uint i = 0; i < cnt; i++)
- delete points[i];
-
- free(points);
-
- return ex;
-}
-
MovGraphLink::MovGraphLink() {
_distance = 0;
_angle = 0;
diff --git a/engines/fullpipe/motion.h b/engines/fullpipe/motion.h
index 3c0a05bbe7..c488039e22 100644
--- a/engines/fullpipe/motion.h
+++ b/engines/fullpipe/motion.h
@@ -23,14 +23,13 @@
#ifndef FULLPIPE_MOTION_H
#define FULLPIPE_MOTION_H
+#include "fullpipe/mgm.h"
+
namespace Fullpipe {
-class Statics;
-class Movement;
class MctlConnectionPoint;
class MovGraphLink;
class MessageQueue;
-class ExCommand2;
struct MovArr;
struct MovItem;
@@ -124,67 +123,6 @@ public:
MotionController *getMotionController(int num) { return _motionControllers[num]->_motionControllerObj; }
};
-struct MGMSubItem {
- Movement *movement;
- int staticsIndex;
- int field_8;
- int field_C;
- int x;
- int y;
-
- MGMSubItem();
-};
-
-struct MGMItem {
- int16 objId;
- Common::Array<MGMSubItem *> subItems;
- Common::Array<Statics *> statics;
- Common::Array<Movement *> movements1;
- Common::Array<int> movements2;
-
- MGMItem();
-};
-
-struct MGMInfo {
- StaticANIObject *ani;
- int staticsId1;
- int staticsId2;
- int movementId;
- int field_10;
- int x1;
- int y1;
- int field_1C;
- int x2;
- int y2;
- int flags;
-
- MGMInfo() { memset(this, 0, sizeof(MGMInfo)); }
-};
-
-class MGM : public CObject {
-public:
- Common::Array<MGMItem *> _items;
-
-public:
- void clear();
- void addItem(int objId);
- void rebuildTables(int objId);
- int getItemIndexById(int objId);
-
- MessageQueue *genMovement(MGMInfo *mgminfo);
- void updateAnimStatics(StaticANIObject *ani, int staticsId);
- Common::Point *getPoint(Common::Point *point, int aniId, int staticsId1, int staticsId2);
- int getStaticsIndexById(int idx, int16 id);
- int getStaticsIndex(int idx, Statics *st);
- void clearMovements2(int idx);
- int recalcOffsets(int idx, int st1idx, int st2idx, bool flip, bool flop);
- Common::Point *calcLength(Common::Point *point, Movement *mov, int x, int y, int *mult, int *len, int flag);
- ExCommand2 *buildExCommand2(Movement *mov, int objId, int x1, int y1, Common::Point *x2, Common::Point *y2, int len);
- MessageQueue *genMQ(StaticANIObject *ani, int staticsIndex, int staticsId, int *resStatId, Common::Point **pointArr);
- int countPhases(int idx, int subIdx, int subOffset, int flag);
- int refreshOffsets(int objectId, int idx1, int idx2);
-};
-
struct MctlLadderMovementVars {
int varUpGo;
int varDownGo;
diff --git a/engines/fullpipe/scene.cpp b/engines/fullpipe/scene.cpp
index 1247d9380e..8463b3ab40 100644
--- a/engines/fullpipe/scene.cpp
+++ b/engines/fullpipe/scene.cpp
@@ -654,7 +654,7 @@ void Scene::drawContent(int minPri, int maxPri, bool drawBg) {
g_fp->_globalPalette = _palette->_data;
}
- debug(8, "Scene::drawContent(>%d, <%d, %d)", minPri, maxPri, drawBg);
+ debug(1, "Scene::drawContent(>%d, <%d, %d)", minPri, maxPri, drawBg);
if (_picObjList.size() > 2) { // We need to z-sort them
objectList_sortByPriority(_picObjList, true);
@@ -666,11 +666,17 @@ void Scene::drawContent(int minPri, int maxPri, bool drawBg) {
if (maxPri == -1)
maxPri = 60000;
- debug(8, "-> Scene::drawContent(>%d, <%d, %d)", minPri, maxPri, drawBg);
+ debug(1, "-> Scene::drawContent(>%d, <%d, %d)", minPri, maxPri, drawBg);
Common::Point point;
- debug(8, "_bigPict: %d objlist: %d", _bigPictureArray1Count, _picObjList.size());
+ debug(1, "_bigPict: %d objlist: %d", _bigPictureArray1Count, _picObjList.size());
+
+ for (uint i = 0; i < _picObjList.size(); i++) {
+ debug(1, "%d: %d", i, ((PictureObject *)_picObjList[i])->_priority);
+ }
+
+
if (drawBg && _bigPictureArray1Count && _picObjList.size()) {
_bigPictureArray[0][0]->getDimensions(&point);
diff --git a/engines/mads/game.cpp b/engines/mads/game.cpp
index 8639f59418..b544eff2db 100644
--- a/engines/mads/game.cpp
+++ b/engines/mads/game.cpp
@@ -64,6 +64,7 @@ Game::Game(MADSEngine *vm)
_loadGameSlot = -1;
_lastSave = -1;
_saveFile = nullptr;
+ _saveThumb = nullptr;
_statusFlag = 0;
_sectionHandler = nullptr;
_sectionNumber = 1;
@@ -93,6 +94,11 @@ Game::Game(MADSEngine *vm)
}
Game::~Game() {
+ if (_saveThumb) {
+ _saveThumb->free();
+ delete _saveThumb;
+ }
+
delete _saveFile;
delete _surface;
delete _sectionHandler;
@@ -548,16 +554,14 @@ void Game::writeSavegameHeader(Common::OutSaveFile *out, MADSSavegameHeader &hea
out->write(header._saveName.c_str(), header._saveName.size());
out->writeByte('\0');
- // Get the active palette
- uint8 thumbPalette[256 * 3];
- g_system->getPaletteManager()->grabPalette(thumbPalette, 0, 256);
-
- // Create a thumbnail and save it
- Graphics::Surface *thumb = new Graphics::Surface();
- ::createThumbnail(thumb, _vm->_screen.getData(), MADS_SCREEN_WIDTH, MADS_SCREEN_HEIGHT, thumbPalette);
- Graphics::saveThumbnail(*out, *thumb);
- thumb->free();
- delete thumb;
+ // Handle the thumbnail. If there's already one set by the game, create one
+ if (!_saveThumb)
+ createThumbnail();
+ Graphics::saveThumbnail(*out, *_saveThumb);
+
+ _saveThumb->free();
+ delete _saveThumb;
+ _saveThumb = nullptr;
// Write out the save date/time
TimeDate td;
@@ -570,4 +574,16 @@ void Game::writeSavegameHeader(Common::OutSaveFile *out, MADSSavegameHeader &hea
out->writeUint32LE(_vm->_events->getFrameCounter());
}
+void Game::createThumbnail() {
+ if (_saveThumb) {
+ _saveThumb->free();
+ delete _saveThumb;
+ }
+
+ uint8 thumbPalette[PALETTE_SIZE];
+ _vm->_palette->grabPalette(thumbPalette, 0, PALETTE_COUNT);
+ _saveThumb = new Graphics::Surface();
+ ::createThumbnail(_saveThumb, _vm->_screen.getData(), MADS_SCREEN_WIDTH, MADS_SCREEN_HEIGHT, thumbPalette);
+}
+
} // End of namespace MADS
diff --git a/engines/mads/game.h b/engines/mads/game.h
index 08cd7e7843..1a61fc8ac8 100644
--- a/engines/mads/game.h
+++ b/engines/mads/game.h
@@ -82,6 +82,7 @@ protected:
int _lastSave;
Common::String _saveName;
Common::InSaveFile *_saveFile;
+ Graphics::Surface *_saveThumb;
/**
* Constructor
@@ -226,6 +227,11 @@ public:
* Read in a savegame header
*/
static bool readSavegameHeader(Common::InSaveFile *in, MADSSavegameHeader &header);
+
+ /**
+ * Creates a temporary thumbnail for use in saving games
+ */
+ void createThumbnail();
};
} // End of namespace MADS
diff --git a/engines/mads/messages.cpp b/engines/mads/messages.cpp
index 9b2d6f3114..d41696044b 100644
--- a/engines/mads/messages.cpp
+++ b/engines/mads/messages.cpp
@@ -546,10 +546,10 @@ void TextDisplayList::draw(MSurface *s) {
for (uint idx = 0; idx < size(); ++idx) {
TextDisplay &td = (*this)[idx];
if (td._active && (td._expire >= 0)) {
+ Common::Point destPos(td._bounds.left + _vm->_screen._offset.x,
+ td._bounds.top + _vm->_screen._offset.y);
td._font->setColors(0xFF, td._color1, td._color2, 0);
- td._font->writeString(s, td._msg,
- Common::Point(td._bounds.left, td._bounds.top),
- td._spacing, td._bounds.width());
+ td._font->writeString(s, td._msg, destPos, td._spacing, td._bounds.width());
}
}
}
diff --git a/engines/mads/nebular/dialogs_nebular.cpp b/engines/mads/nebular/dialogs_nebular.cpp
index 36858a4940..80ce6cdad4 100644
--- a/engines/mads/nebular/dialogs_nebular.cpp
+++ b/engines/mads/nebular/dialogs_nebular.cpp
@@ -23,6 +23,10 @@
#include "common/scummsys.h"
#include "common/config-manager.h"
#include "common/util.h"
+#include "common/translation.h"
+
+#include "gui/saveload.h"
+
#include "mads/mads.h"
#include "mads/screen.h"
#include "mads/msurface.h"
@@ -266,15 +270,30 @@ bool DialogsNebular::commandCheck(const char *idStr, Common::String &valStr,
void DialogsNebular::showDialog() {
switch (_pendingDialog) {
- case DIALOG_GAME_MENU:
- //GameMenuDialog::show();
- break;
case DIALOG_DIFFICULTY: {
-/*
DifficultyDialog *dlg = new DifficultyDialog(_vm);
dlg->show();
delete dlg;
-*/
+ break;
+ }
+ case DIALOG_GAME_MENU: {
+ GameMenuDialog *dlg = new GameMenuDialog(_vm);
+ dlg->show();
+ delete dlg;
+ break;
+ }
+ case DIALOG_SAVE: {
+ showScummVMSaveDialog();
+ break;
+ }
+ case DIALOG_RESTORE: {
+ showScummVMRestoreDialog();
+ break;
+ }
+ case DIALOG_OPTIONS: {
+ OptionsDialog *dlg = new OptionsDialog(_vm);
+ dlg->show();
+ delete dlg;
break;
}
default:
@@ -282,6 +301,42 @@ void DialogsNebular::showDialog() {
}
}
+void DialogsNebular::showScummVMSaveDialog() {
+ Nebular::GameNebular &game = *(Nebular::GameNebular *)_vm->_game;
+ Scene *scene = &(game._scene);
+ GUI::SaveLoadChooser *dialog = new GUI::SaveLoadChooser(_("Save game:"), _("Save"), true);
+
+ int slot = dialog->runModalWithCurrentTarget();
+ if (slot >= 0) {
+ Common::String desc = dialog->getResultString();
+
+ if (desc.empty()) {
+ // create our own description for the saved game, the user didn't enter it
+ desc = dialog->createDefaultSaveDescription(slot);
+ }
+
+ scene->_spriteSlots.reset();
+ _vm->_screen._offset.y = 0;
+ scene->loadScene(scene->_currentSceneId, game._aaName, true);
+ scene->_userInterface.noInventoryAnim();
+ game._scene.drawElements(kTransitionFadeIn, false);
+
+ game.saveGame(slot, desc);
+ }
+}
+
+void DialogsNebular::showScummVMRestoreDialog() {
+ Nebular::GameNebular &game = *(Nebular::GameNebular *)_vm->_game;
+ GUI::SaveLoadChooser *dialog = new GUI::SaveLoadChooser(_("Restore game:"), _("Restore"), false);
+
+ int slot = dialog->runModalWithCurrentTarget();
+ if (slot >= 0) {
+ game._loadGameSlot = slot;
+ game._scene._currentSceneId = -1;
+ game._currentSectionNumber = -1;
+ }
+}
+
/*------------------------------------------------------------------------*/
CopyProtectionDialog::CopyProtectionDialog(MADSEngine *vm, bool priorAnswerWrong) :
@@ -493,10 +548,10 @@ ScreenDialog::ScreenDialog(MADSEngine *vm) : _vm(vm) {
Game &game = *_vm->_game;
Scene &scene = game._scene;
- _v1 = 0;
- _v2 = 0;
- _v3 = false;
- _selectedLine = 0;
+ _tempLine = 0;
+ _movedFlag = false;
+ _redrawFlag = false;
+ _selectedLine = -1;
_dirFlag = false;
_textLineCount = 0;
_screenId = 920;
@@ -516,7 +571,7 @@ ScreenDialog::ScreenDialog(MADSEngine *vm) : _vm(vm) {
int currentSceneId = scene._currentSceneId;
int priorSceneId = scene._priorSceneId;
- if (_vm->_dialogs->_pendingDialog == DIALOG_DIFFICULTY) {
+ if (_vm->_dialogs->_pendingDialog) {
palFlag = true;
} else {
_vm->_palette->initPalette();
@@ -526,7 +581,7 @@ ScreenDialog::ScreenDialog(MADSEngine *vm) : _vm(vm) {
scene._priorSceneId = priorSceneId;
scene._currentSceneId = currentSceneId;
scene._nextSceneId = nextSceneId;
- scene._posAdjust.y = 22;
+ _vm->_screen._offset.y = 22;
_vm->_sound->pauseNewCommands();
_vm->_events->initVars();
game._kernelMode = KERNEL_ROOM_INIT;
@@ -544,7 +599,8 @@ ScreenDialog::ScreenDialog(MADSEngine *vm) : _vm(vm) {
}
_vm->_screen.empty();
- _vm->_screen.hLine(0, 0, MADS_SCREEN_WIDTH, 2);
+ _vm->_screen.hLine(0, 20, MADS_SCREEN_WIDTH, 2);
+ _vm->_screen.hLine(0, 179, MADS_SCREEN_WIDTH, 2);
game._fx = _vm->_screenFade == SCREEN_FADE_SMOOTH ? kTransitionFadeIn : kCenterVertTransition;
game._trigger = 0;
@@ -560,9 +616,13 @@ ScreenDialog::ScreenDialog(MADSEngine *vm) : _vm(vm) {
_lineIndex = -1;
}
+ScreenDialog::~ScreenDialog() {
+ _vm->_screen._offset.y = 0;
+}
+
void ScreenDialog::clearLines() {
Scene &scene = _vm->_game->_scene;
- _v2 = 0;
+ _movedFlag = false;
_lines.clear();
scene._spriteSlots.fullRefresh(true);
}
@@ -590,12 +650,10 @@ void ScreenDialog::setClickableLines() {
void ScreenDialog::addQuote(int id1, int id2, DialogTextAlign align,
const Common::Point &pt, Font *font) {
- Common::String msg = _vm->_game->getQuote(id1);
+ Common::String msg = _vm->_game->getQuote(id1).c_str(); // c_str() because we need a copy
- if (id2 > 0) {
- msg += " ";
+ if (id2 > 0)
msg += _vm->_game->getQuote(id2);
- }
addLine(msg, align, pt, font);
}
@@ -643,6 +701,10 @@ void ScreenDialog::addLine(const Common::String &msg, DialogTextAlign align,
int xOffset;
switch (align) {
+ case ALIGN_NONE:
+ // No adjustment
+ break;
+
case ALIGN_CENTER:
xOffset = (MADS_SCREEN_WIDTH / 2) - font->getWidth(msg, -1) / 2;
line->_pos.x += xOffset;
@@ -655,6 +717,10 @@ void ScreenDialog::addLine(const Common::String &msg, DialogTextAlign align,
xOffset = (MADS_SCREEN_WIDTH / 2) - font->getWidth(
Common::String(msgP, ch), line->_widthAdjust);
line->_pos.x += xOffset;
+
+ Common::String newMsg = msg.c_str();
+ newMsg.deleteChar(ch - msgP);
+ line->_msg = newMsg;
}
break;
}
@@ -672,7 +738,7 @@ void ScreenDialog::addLine(const Common::String &msg, DialogTextAlign align,
}
void ScreenDialog::initVars() {
- _v1 = -1;
+ _tempLine = -1;
_selectedLine = -1;
_lineIndex = 0;
_textLineCount = 0;
@@ -704,11 +770,17 @@ void ScreenDialog::chooseBackground() {
void ScreenDialog::setFrame(int frameNumber, int depth) {
Scene &scene = _vm->_game->_scene;
+ SpriteAsset *menuSprites = scene._sprites[_menuSpritesIndex];
+ MSprite *frame = menuSprites->getFrame(frameNumber - 1);
+
SpriteSlot &spriteSlot = scene._spriteSlots[scene._spriteSlots.add()];
spriteSlot._flags = IMG_UPDATE;
spriteSlot._seqIndex = 1;
spriteSlot._spritesIndex = _menuSpritesIndex;
spriteSlot._frameNumber = frameNumber;
+ spriteSlot._position = frame->_offset;
+ spriteSlot._depth = depth;
+ spriteSlot._scale = 100;
}
void ScreenDialog::show() {
@@ -716,13 +788,13 @@ void ScreenDialog::show() {
while (_selectedLine < 1 && !_vm->shouldQuit()) {
handleEvents();
- if (_v3) {
- if (!_v1)
- _v1 = -1;
+ if (_redrawFlag) {
+ if (!_tempLine)
+ _tempLine = -1;
refreshText();
scene.drawElements(_vm->_game->_fx, _vm->_game->_fx);
- _v3 = false;
+ _redrawFlag = false;
}
_vm->_events->waitForNextFrame();
@@ -734,7 +806,7 @@ void ScreenDialog::handleEvents() {
ScreenObjects &screenObjects = _vm->_game->_screenObjects;
EventsManager &events = *_vm->_events;
Nebular::DialogsNebular &dialogs = *(Nebular::DialogsNebular *)_vm->_dialogs;
- int v1 = _v1;
+ int tempLine = _tempLine;
// Mark all the lines as initially unselected
for (uint i = 0; i < _lines.size(); ++i)
@@ -746,7 +818,7 @@ void ScreenDialog::handleEvents() {
// Scan for objects in the dialog
int objIndex = screenObjects.scan(events.currentPos() - _vm->_screen._offset, LAYER_GUI);
- if (_v2) {
+ if (_movedFlag) {
int yp = events.currentPos().y - _vm->_screen._offset.y;
if (yp < screenObjects[1]._bounds.top) {
if (!events._mouseReleased)
@@ -762,7 +834,7 @@ void ScreenDialog::handleEvents() {
}
int line = -1;
- if (objIndex > 0 || events._mouseButtons) {
+ if (objIndex > 0 && (events._mouseStatus || events._mouseReleased)) {
line = screenObjects[objIndex]._descId;
if (dialogs._pendingDialog == DIALOG_SAVE || dialogs._pendingDialog == DIALOG_RESTORE) {
if (line > 7 && line <= 14) {
@@ -770,9 +842,9 @@ void ScreenDialog::handleEvents() {
line -= 7;
}
- int v2 = (line > 0 && line < 8) ? 1 : 0;
+ bool movedFlag = line > 0 && line < 8;
if (events._mouseMoved)
- _v2 = v2;
+ _movedFlag = movedFlag;
}
if (screenObjects[objIndex]._category == CAT_COMMAND) {
@@ -786,14 +858,14 @@ void ScreenDialog::handleEvents() {
line = -1;
if (events._mouseReleased) {
- if (!_v2 || line <= 18)
+ if (!_movedFlag || line <= 18)
_selectedLine = line;
- _v3 = true;
+ _redrawFlag = true;
}
- _v1 = line;
- if (v1 == line || _selectedLine >= 0)
- _v3 = true;
+ _tempLine = line;
+ if (tempLine != line || _selectedLine >= 0)
+ _redrawFlag = true;
}
void ScreenDialog::refreshText() {
@@ -861,13 +933,13 @@ void DifficultyDialog::show() {
switch (_selectedLine) {
case 1:
- game._difficulty = Nebular::DIFFICULTY_HARD;
+ game._difficulty = Nebular::DIFFICULTY_EASY;
break;
case 2:
game._difficulty = Nebular::DIFFICULTY_MEDIUM;
break;
case 3:
- game._difficulty = Nebular::DIFFICULTY_EASY;
+ game._difficulty = Nebular::DIFFICULTY_HARD;
break;
default:
_vm->quitGame();
@@ -878,14 +950,153 @@ void DifficultyDialog::show() {
GameMenuDialog::GameMenuDialog(MADSEngine *vm) : ScreenDialog(vm) {
setFrame(1, 2);
+ setLines();
+ setClickableLines();
}
-void GameMenuDialog::addLines() {
- initVars();
+void GameMenuDialog::setLines() {
Font *font = _vm->_font->getFont(FONT_CONVERSATION);
- int top = 78 - (font->getHeight() + 2) * 12;
- addQuote(10, 0, ALIGN_CENTER, Common::Point(0, top), font);
- // TODO
+
+ int yp = 64 - ((font->getHeight() + 1) * 4 + 6) / 2;
+
+ addQuote(10, 0, ALIGN_CENTER, Common::Point(0, yp), font);
+ yp += 6;
+
+ for (int id = 11; id <= 15; ++id) {
+ yp += font->getHeight();
+ addQuote(id, 0, ALIGN_CENTER, Common::Point(0, yp));
+ }
+}
+
+void GameMenuDialog::show() {
+ ScreenDialog::show();
+
+ switch (_selectedLine) {
+ case 1:
+ _vm->_dialogs->_pendingDialog = DIALOG_SAVE;
+ _vm->_dialogs->showDialog();
+ break;
+ case 2:
+ _vm->_dialogs->_pendingDialog = DIALOG_RESTORE;
+ _vm->_dialogs->showDialog();
+ break;
+ case 3:
+ _vm->_dialogs->_pendingDialog = DIALOG_OPTIONS;
+ _vm->_dialogs->showDialog();
+ break;
+ case 4:
+ // Resume game
+ break;
+ case 5:
+ default:
+ _vm->quitGame();
+ }
+}
+
+/*------------------------------------------------------------------------*/
+
+OptionsDialog::OptionsDialog(MADSEngine *vm) : ScreenDialog(vm) {
+ setFrame(2, 2);
+ setLines();
+ setClickableLines();
+}
+
+int OptionsDialog::getOptionQuote(int option) {
+ Nebular::GameNebular &game = *(Nebular::GameNebular *)_vm->_game;
+
+ // TODO: Hook the rest of the options to the current config
+ switch (option) {
+ case 17: // Music
+ return 24; // 24: ON, 25: OFF
+ case 18: // Sound
+ return 26; // 26: ON, 27: OFF
+ case 19: // Interface
+ return !_vm->_easyMouse ? 28 : 29; // 28: Standard, 29: Easy
+ case 20: // Inventory
+ return _vm->_invObjectsAnimated ? 30 : 31; // 30: Spinning, 31: Still
+ case 21: // Text window
+ return !_vm->_textWindowStill ? 32 : 33; // 32: Animated, 33: Still
+ case 22: // Screen fade
+ return 34 + _vm->_screenFade; // 34: Smooth, 35: Medium, 36: Fast
+ case 23: // Storyline
+ return (game._storyMode == STORYMODE_NAUGHTY) ? 37 : 38; // 37: Naughty, 38: Nice
+ default:
+ error("getOptionQuote: Unknown option");
+ }
+}
+
+void OptionsDialog::setLines() {
+ Font *font = _vm->_font->getFont(FONT_CONVERSATION);
+
+ int yp = 40 - ((font->getHeight() + 1) * 4 + 6) / 2;
+
+ addQuote(16, 0, ALIGN_CENTER, Common::Point(0, yp), font);
+ yp += 6;
+
+ for (int id = 17; id <= 23; ++id) {
+ yp += font->getHeight();
+ addQuote(id, getOptionQuote(id), ALIGN_AT_CENTER, Common::Point(0, yp));
+ }
+
+ yp += 28;
+ addQuote(1, 0, ALIGN_NONE, Common::Point(90, yp));
+ addQuote(2, 0, ALIGN_NONE, Common::Point(190, yp));
+}
+
+void OptionsDialog::show() {
+ Nebular::GameNebular &game = *(Nebular::GameNebular *)_vm->_game;
+ do {
+ _selectedLine = 0;
+ ScreenDialog::show();
+
+ switch (_selectedLine) {
+ case 1: // Music
+ warning("STUB: Music toggle");
+ break;
+ case 2: // Sound
+ warning("STUB: Sound toggle");
+ break;
+ case 3: // Interface
+ _vm->_easyMouse = !_vm->_easyMouse;
+ break;
+ case 4: // Inventory
+ _vm->_invObjectsAnimated = !_vm->_invObjectsAnimated;
+ break;
+ case 5: // Text window
+ _vm->_textWindowStill = !_vm->_textWindowStill;
+ break;
+ case 6: // Screen fade
+ if (_vm->_screenFade == SCREEN_FADE_FAST)
+ _vm->_screenFade = SCREEN_FADE_MEDIUM;
+ else if (_vm->_screenFade == SCREEN_FADE_MEDIUM)
+ _vm->_screenFade = SCREEN_FADE_SMOOTH;
+ else
+ _vm->_screenFade = SCREEN_FADE_FAST;
+ break;
+ case 7: // Storyline
+ game._storyMode = (game._storyMode == STORYMODE_NAUGHTY) ? STORYMODE_NICE : STORYMODE_NAUGHTY;
+ break;
+ default:
+ break;
+ }
+
+ // Reload menu
+ _lineIndex = -1;
+ clearLines();
+ setLines();
+ setClickableLines();
+ } while (_selectedLine <= 7);
+
+ switch (_selectedLine) {
+ case 8: // Done
+ // TODO: Copy from temporary config
+ break;
+ case 9: // Cancel
+ // TODO: Ignore all changes to temporary config
+ break;
+ default:
+ break;
+ }
}
} // End of namespace Nebular
diff --git a/engines/mads/nebular/dialogs_nebular.h b/engines/mads/nebular/dialogs_nebular.h
index a144ee9d83..44412797a1 100644
--- a/engines/mads/nebular/dialogs_nebular.h
+++ b/engines/mads/nebular/dialogs_nebular.h
@@ -46,6 +46,10 @@ private:
bool textNoun(Common::String &dest, int nounId, const Common::String &source);
bool commandCheck(const char *idStr, Common::String &valStr, const Common::String &command);
+
+ void showScummVMSaveDialog();
+ void showScummVMRestoreDialog();
+
public:
virtual void showDialog();
@@ -99,7 +103,7 @@ public:
virtual ~PictureDialog();
};
-enum DialogTextAlign { ALIGN_CENTER = -1, ALIGN_AT_CENTER = -2, ALIGN_RIGHT = -3 };
+enum DialogTextAlign { ALIGN_NONE = 0, ALIGN_CENTER = -1, ALIGN_AT_CENTER = -2, ALIGN_RIGHT = -3 };
enum DialogState { DLGSTATE_UNSELECTED = 0, DLGSTATE_SELECTED = 1, DLGSTATE_FOCUSED = 2 };
@@ -119,9 +123,9 @@ class ScreenDialog {
protected:
MADSEngine *_vm;
Common::Array<DialogLine> _lines;
- int _v1;
- int _v2;
- bool _v3;
+ int _tempLine;
+ bool _movedFlag;
+ bool _redrawFlag;
int _selectedLine;
bool _dirFlag;
int _screenId;
@@ -182,7 +186,7 @@ public:
/**
* Destructor
*/
- virtual ~ScreenDialog() {}
+ virtual ~ScreenDialog();
/**
* Show the dialog
@@ -193,7 +197,7 @@ public:
class DifficultyDialog : public ScreenDialog {
private:
/**
- * Set the lines for the dialog
+ * Set the lines for the dialog
*/
void setLines();
public:
@@ -208,12 +212,36 @@ public:
class GameMenuDialog : public ScreenDialog {
private:
/**
- * Add the lines for the Game Menu dialog
+ * Set the lines for the dialog
*/
- void addLines();
+ void setLines();
public:
GameMenuDialog(MADSEngine *vm);
+ /**
+ * Show the dialog
+ */
+ virtual void show();
+};
+
+class OptionsDialog : public ScreenDialog {
+private:
+ /**
+ * Set the lines for the dialog
+ */
+ void setLines();
+
+ /**
+ * Gets the quote to be shown for an option
+ */
+ int getOptionQuote(int option);
+public:
+ OptionsDialog(MADSEngine *vm);
+
+ /**
+ * Show the dialog
+ */
+ virtual void show();
};
} // End of namespace Nebular
diff --git a/engines/mads/nebular/game_nebular.cpp b/engines/mads/nebular/game_nebular.cpp
index d6d7a07e52..8fddf8b9c4 100644
--- a/engines/mads/nebular/game_nebular.cpp
+++ b/engines/mads/nebular/game_nebular.cpp
@@ -22,6 +22,7 @@
#include "common/scummsys.h"
#include "common/config-manager.h"
+#include "graphics/scaler.h"
#include "mads/mads.h"
#include "mads/game.h"
#include "mads/screen.h"
@@ -310,6 +311,11 @@ void GameNebular::setSectionHandler() {
void GameNebular::checkShowDialog() {
if (_vm->_dialogs->_pendingDialog && _player._stepEnabled && !_globals[kCopyProtectFailed]) {
_player.releasePlayerSprites();
+
+ // Make a thumbnail in case it's needed for making a savegame
+ _vm->_game->createThumbnail();
+
+ // Show the dialog
_vm->_dialogs->showDialog();
_vm->_dialogs->_pendingDialog = DIALOG_NONE;
}
diff --git a/engines/mads/nebular/nebular_scenes1.cpp b/engines/mads/nebular/nebular_scenes1.cpp
index a81f11b8a5..ab072c1d3c 100644
--- a/engines/mads/nebular/nebular_scenes1.cpp
+++ b/engines/mads/nebular/nebular_scenes1.cpp
@@ -1033,7 +1033,7 @@ void Scene102::actions() {
_action._inProgress = false;
return;
}
- } else if (_action.isAction(VERB_LOOK) || (_game._difficulty != DIFFICULTY_EASY)) {
+ } else if (_action.isAction(VERB_LOOK) || (_game._difficulty != DIFFICULTY_HARD)) {
_vm->_dialogs->show(10222);
_action._inProgress = false;
return;
diff --git a/engines/mads/nebular/nebular_scenes8.cpp b/engines/mads/nebular/nebular_scenes8.cpp
index 6039135794..14f36756de 100644
--- a/engines/mads/nebular/nebular_scenes8.cpp
+++ b/engines/mads/nebular/nebular_scenes8.cpp
@@ -1121,8 +1121,6 @@ void Scene804::actions() {
} else {
_action._inProgress = false;
- //saveGame("REX000.SAV");
-
_vm->_dialogs->show(80424);
_pullThrottleReally = true;
_scene->_kernelMessages.add(Common::Point(78, 75), 0x1110, 0, 0,
diff --git a/engines/mads/scene.cpp b/engines/mads/scene.cpp
index ffeed6cda8..639f297f86 100644
--- a/engines/mads/scene.cpp
+++ b/engines/mads/scene.cpp
@@ -346,7 +346,7 @@ void Scene::loop() {
// Handle drawing a game frame
doFrame();
- // TODO: Verify correctness of frame wait
+ // Wait for the next frame
_vm->_events->waitForNextFrame();
if (_vm->_dialogs->_pendingDialog != DIALOG_NONE && !_vm->_game->_trigger
diff --git a/engines/mads/screen.cpp b/engines/mads/screen.cpp
index 7e8710db56..ab5dff56ff 100644
--- a/engines/mads/screen.cpp
+++ b/engines/mads/screen.cpp
@@ -212,9 +212,11 @@ void DirtyAreas::copy(MSurface *srcSurface, MSurface *destSurface, const Common:
Common::Rect bounds(srcBounds.left + posAdjust.x, srcBounds.top + posAdjust.y,
srcBounds.right + posAdjust.x, srcBounds.bottom + posAdjust.y);
+ Common::Point destPos(bounds.left + _vm->_screen._offset.x,
+ bounds.top + _vm->_screen._offset.y);
if ((*this)[i]._active && bounds.isValidRect()) {
- srcSurface->copyTo(destSurface, bounds, Common::Point(bounds.left, bounds.top));
+ srcSurface->copyTo(destSurface, bounds, destPos);
}
}
}
@@ -628,21 +630,28 @@ void ScreenSurface::transition(ScreenTransition transitionType, bool surfaceFlag
case kTransitionBoxInBottomRight:
case kTransitionBoxInTopLeft:
case kTransitionBoxInTopRight:
- error("TODO: transition");
+ warning("TODO: box transition");
+ transition(kTransitionFadeIn, surfaceFlag);
break;
case kTransitionPanLeftToRight:
case kTransitionPanRightToLeft:
- error("TODO: transition");
+ warning("TODO: pan transition");
+ transition(kTransitionFadeIn, surfaceFlag);
+ break;
case kTransitionCircleIn1:
case kTransitionCircleIn2:
case kTransitionCircleIn3:
case kTransitionCircleIn4:
- error("TODO circle transition");
+ warning("TODO circle transition");
+ transition(kTransitionFadeIn, surfaceFlag);
+ break;
case kCenterVertTransition:
- error("TODO: center vert transition");
+ warning("TODO: center vert transition");
+ transition(kTransitionFadeIn, surfaceFlag);
+ break;
default:
// Quick transitions
diff --git a/engines/mads/sprites.cpp b/engines/mads/sprites.cpp
index cd358077b5..2bf13eeb5a 100644
--- a/engines/mads/sprites.cpp
+++ b/engines/mads/sprites.cpp
@@ -331,6 +331,8 @@ void SpriteSlots::drawSprites(MSurface *s) {
xp = slot._position.x - (sprite->w / 2) - scene._posAdjust.x;
yp = slot._position.y - sprite->h - scene._posAdjust.y + 1;
}
+ xp += _vm->_screen._offset.x;
+ yp += _vm->_screen._offset.y;
if (slot._depth > 1) {
// Draw the frame with depth processing
diff --git a/engines/neverhood/graphics.cpp b/engines/neverhood/graphics.cpp
index 939428ed19..89792d2659 100644
--- a/engines/neverhood/graphics.cpp
+++ b/engines/neverhood/graphics.cpp
@@ -114,7 +114,15 @@ void BaseSurface::drawMouseCursorResource(MouseCursorResource &mouseCursorResour
}
void BaseSurface::copyFrom(Graphics::Surface *sourceSurface, int16 x, int16 y, NDrawRect &sourceRect) {
- // Copy a rectangle from sourceSurface, no clipping is performed, 0 is the transparent color
+ // Copy a rectangle from sourceSurface, 0 is the transparent color
+ // Clipping is performed against the right/bottom border since x, y will always be >= 0
+
+ if (x + sourceRect.width > _surface->w)
+ sourceRect.width = _surface->w - x - 1;
+
+ if (y + sourceRect.height > _surface->h)
+ sourceRect.height = _surface->h - y - 1;
+
byte *source = (byte*)sourceSurface->getBasePtr(sourceRect.x, sourceRect.y);
byte *dest = (byte*)_surface->getBasePtr(x, y);
int height = sourceRect.height;
diff --git a/engines/neverhood/modules/module1600_sprites.cpp b/engines/neverhood/modules/module1600_sprites.cpp
index 09e3d0afe1..6a4de86517 100644
--- a/engines/neverhood/modules/module1600_sprites.cpp
+++ b/engines/neverhood/modules/module1600_sprites.cpp
@@ -30,6 +30,8 @@ AsCommonCar::AsCommonCar(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16
createSurface(200, 556, 328);
_x = x;
_y = y;
+ _destX = x;
+ _destY = y;
_inMainArea = false;
_exitDirection = 0;
@@ -48,6 +50,7 @@ AsCommonCar::AsCommonCar(NeverhoodEngine *vm, Scene *parentScene, int16 x, int16
_soundCounter = 0;
_pathPoints = NULL;
_currMoveDirection = 0;
+ _newMoveDirection = 0;
startAnimation(0xD4220027, 0, -1);
setDoDeltaX(getGlobalVar(V_CAR_DELTA_X));
diff --git a/engines/neverhood/sprite.cpp b/engines/neverhood/sprite.cpp
index a566b8ee3b..3611ce1ba2 100644
--- a/engines/neverhood/sprite.cpp
+++ b/engines/neverhood/sprite.cpp
@@ -31,8 +31,20 @@ Sprite::Sprite(NeverhoodEngine *vm, int objectPriority)
: Entity(vm, objectPriority), _x(0), _y(0), _spriteUpdateCb(NULL), _filterXCb(NULL), _filterYCb(NULL),
_dataResource(vm), _doDeltaX(false), _doDeltaY(false), _needRefresh(false), _flags(0), _surface(NULL) {
- SetMessageHandler(&Sprite::handleMessage);
+ _drawOffset.x = 0;
+ _drawOffset.y = 0;
+ _drawOffset.width = 0;
+ _drawOffset.height = 0;
+ _collisionBounds.x1 = 0;
+ _collisionBounds.y1 = 0;
+ _collisionBounds.x2 = 0;
+ _collisionBounds.y2 = 0;
+ _collisionBoundsOffset.x = 0;
+ _collisionBoundsOffset.y = 0;
+ _collisionBoundsOffset.width = 0;
+ _collisionBoundsOffset.height = 0;
+ SetMessageHandler(&Sprite::handleMessage);
}
Sprite::~Sprite() {
diff --git a/engines/saga/detection_tables.h b/engines/saga/detection_tables.h
index 72187a1a13..2f72e7a13c 100644
--- a/engines/saga/detection_tables.h
+++ b/engines/saga/detection_tables.h
@@ -595,6 +595,30 @@ static const SAGAGameDescription gameDescriptions[] = {
ITEPatch_Files,
},
+ // Inherit the earth - Chinese Disk version
+ {
+ {
+ "ite",
+ "Floppy",
+ {
+ {"ite.rsc", GAME_RESOURCEFILE, "8f4315a9bb10ec839253108a032c8b54", 8901704},
+ {"scripts.rsc", GAME_SCRIPTFILE, "516f7330f8410057b834424ea719d1ef", 281071},
+ { NULL, 0, NULL, 0}
+ },
+ Common::ZH_CNA,
+ Common::kPlatformDOS,
+ ADGF_NO_FLAGS,
+ GUIO1(GUIO_NOSPEECH)
+ },
+ GID_ITE,
+ GF_ITE_FLOPPY,
+ ITE_DEFAULT_SCENE,
+ &ITE_Resources,
+ ARRAYSIZE(ITE_GameFonts),
+ ITE_GameFonts,
+ ITEPatch_Files,
+ },
+
// ITE Amiga versions /////////////////////////////////////////////////////////////////////////////////////
// TODO: Add the Amiga versions here (not supported yet)
diff --git a/engines/tsage/ringworld/ringworld_scenes10.cpp b/engines/tsage/ringworld/ringworld_scenes10.cpp
index c4874c0f59..99c953217c 100644
--- a/engines/tsage/ringworld/ringworld_scenes10.cpp
+++ b/engines/tsage/ringworld/ringworld_scenes10.cpp
@@ -1004,7 +1004,7 @@ void Scene9450::postInit(SceneObjectList *OwnerList) {
_hotspot8.setDetails(110, 0, 199, 117, 9450, 7, 8);
_hotspot9.setDetails(101, 104, 130, 174, 9450, 9, 10);
_hotspot10.setDetails(110, 246, 149, 319, 9450, 11, 12);
- _hotspot11.setDetails(16, 34, 74, 62, 6450, 13, 14);
+ _hotspot11.setDetails(16, 34, 74, 62, 9450, 13, 14);
_hotspot12.setDetails(19, 108, 72, 134, 9450, 15, 16);
_hotspot13.setDetails(18, 215, 71, 237, 9450, 17, 18);
_hotspot14.setDetails(15, 288, 76, 314, 9450, 19, 20);
diff --git a/engines/tsage/ringworld2/ringworld2_logic.h b/engines/tsage/ringworld2/ringworld2_logic.h
index 31d801fa55..d95f279e27 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.h
+++ b/engines/tsage/ringworld2/ringworld2_logic.h
@@ -320,7 +320,7 @@ public:
int pixelToCellXY(Common::Point &pt);
virtual Common::String getClassName() { return "MazeUI"; }
- void synchronize(Serializer &s);
+ virtual void synchronize(Serializer &s);
virtual void reposition();
virtual void draw();
};
diff --git a/engines/tsage/ringworld2/ringworld2_scenes1.cpp b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
index 29646d1612..e2c22bd0b4 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes1.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes1.cpp
@@ -1919,7 +1919,7 @@ void Scene1200::process(Event &event) {
return;
}
} else if (event.eventType == EVENT_KEYPRESS) {
- if (_field414 == 0) {
+ if (_field414) {
event.handled = false;
return;
}
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index 3f32503fdf..0898cfd0b4 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -3668,11 +3668,12 @@ void Scene3500::postInit(SceneObjectList *OwnerList) {
_horizontalSpeedDisplay.setPosition(Common::Point(126, 108));
_horizontalSpeedDisplay.fixPriority(200);
+ _action1._turningFl = false;
+
+ _mazeUI.postInit();
_mazeUI.setDisplayBounds(Rect(160, 89, 299, 182));
_mazeUI.load(2);
_mazeUI.setMazePosition(_mazePosition);
-
- _action1._turningFl = false;
_mazeUI.draw();
_directionChangesEnabled = true;
@@ -3876,6 +3877,11 @@ void Scene3500::dispatch() {
Rect tmpRect;
Scene::dispatch();
+ // WORKAROUND: The _mazeUI wasn't originally added to the scene in postInit.
+ // This is only needed to fix old savegames
+ if (!R2_GLOBALS._sceneObjects->contains(&_mazeUI))
+ _mazeUI.draw();
+
if (((_shuttle._frame % 2) == 0) && (!_action1._turningFl)) {
_shuttle.setFrame(_shuttle.changeFrame());
_mazeDirection = _shuttle._frame;
@@ -4215,7 +4221,6 @@ void Scene3500::dispatch() {
_rotation->_idxChange = 0;
}
- _mazeUI.draw();
if (_exitCounter != 0)
++_exitCounter;
}
diff --git a/engines/tsage/sound.cpp b/engines/tsage/sound.cpp
index c5c38505a7..fee1bd752b 100644
--- a/engines/tsage/sound.cpp
+++ b/engines/tsage/sound.cpp
@@ -379,7 +379,6 @@ void SoundManager::updateSoundLoop(Sound *sound) {
}
void SoundManager::rethinkVoiceTypes() {
- Common::StackLock slock(sfManager()._serverSuspendedMutex);
sfRethinkVoiceTypes();
}
@@ -1442,8 +1441,6 @@ bool SoundManager::sfDoRemoveFromPlayList(Sound *sound) {
}
void SoundManager::sfDoUpdateVolume(Sound *sound) {
- Common::StackLock slock(sfManager()._serverSuspendedMutex);
-
for (int voiceIndex = 0; voiceIndex < SOUND_ARR_SIZE; ++voiceIndex) {
VoiceTypeStruct *vs = sfManager()._voiceTypeStructPtrs[voiceIndex];
if (!vs)
@@ -1707,8 +1704,6 @@ void Sound::pause(bool flag) {
}
void Sound::mute(bool flag) {
- Common::StackLock slock(g_globals->_soundManager._serverSuspendedMutex);
-
if (flag)
++_mutedCount;
else if (_mutedCount > 0)
diff --git a/engines/voyeur/configure.engine b/engines/voyeur/configure.engine
index 23891fccb7..c53530a9ed 100644
--- a/engines/voyeur/configure.engine
+++ b/engines/voyeur/configure.engine
@@ -1,4 +1,4 @@
# This file is included from the main "configure" script
# add_engine [name] [desc] [build-by-default] [subengines] [base games] [deps]
-add_engine voyeur "Voyeur" no
+add_engine voyeur "Voyeur" yes
diff --git a/engines/voyeur/files_threads.cpp b/engines/voyeur/files_threads.cpp
index b1960a23ac..0615c67ba0 100644
--- a/engines/voyeur/files_threads.cpp
+++ b/engines/voyeur/files_threads.cpp
@@ -1007,8 +1007,11 @@ int ThreadResource::doApt() {
if (_vm->_loadGameSlot != -1) {
// Load a savegame
- _vm->loadGame(_vm->_loadGameSlot);
+ int slot = _vm->_loadGameSlot;
_vm->_loadGameSlot = -1;
+ _vm->loadGame(slot);
+
+ _vm->_eventsManager->showCursor();
}
_vm->_eventsManager->getMouseInfo();
@@ -1596,7 +1599,9 @@ void ThreadResource::loadTheApt() {
_vm->_voy->_aptLoadMode = -1;
if (_vm->_voy->_aptLoadMode != -1) {
- doAptAnim(1);
+ if (_vm->_loadGameSlot != -1)
+ doAptAnim(1);
+
_vm->_bVoy->getBoltGroup(_vm->_playStampGroupId);
_vm->_voy->_aptLoadMode = -1;
_vm->_graphicsManager->_backgroundPage = _vm->_bVoy->boltEntry(
diff --git a/engines/voyeur/voyeur.cpp b/engines/voyeur/voyeur.cpp
index 681f431635..dad634c9bb 100644
--- a/engines/voyeur/voyeur.cpp
+++ b/engines/voyeur/voyeur.cpp
@@ -556,6 +556,7 @@ void VoyeurEngine::playAVideoDuration(int videoId, int duration) {
PictureResource *pic = NULL;
if (videoId == 42) {
+ _bVoy->getBoltGroup(0xE00);
_eventsManager->_videoDead = 0;
pic = _bVoy->boltEntry(0xE00 + _eventsManager->_videoDead)._picResource;
}
@@ -602,6 +603,9 @@ void VoyeurEngine::playAVideoDuration(int videoId, int duration) {
pic->_imgData = imgData;
_voy->_eventFlags &= ~EVTFLAG_8;
}
+
+ if (videoId == 42)
+ _bVoy->freeBoltGroup(0xE00);
}
void VoyeurEngine::playAudio(int audioId) {
diff --git a/gui/themes/translations.dat b/gui/themes/translations.dat
index 1a7b49852d..d55544ba42 100644
--- a/gui/themes/translations.dat
+++ b/gui/themes/translations.dat
Binary files differ
diff --git a/po/be_BY.po b/po/be_BY.po
index 692985edde..b98198e411 100644
--- a/po/be_BY.po
+++ b/po/be_BY.po
@@ -1,14 +1,14 @@
# Belarusian translation for ScummVM.
# Copyright (C) 2010-2014 ScummVM Team
# This file is distributed under the same license as the ScummVM package.
-# Ivan Lukyanov <greencis@mail.ru>, 2013.
+# Ivan Lukyanov <greencis@mail.ru>, 2013-2014.
#
msgid ""
msgstr ""
-"Project-Id-Version: ScummVM 1.6.0git\n"
+"Project-Id-Version: ScummVM 1.7.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
"POT-Creation-Date: 2014-06-07 23:06+0100\n"
-"PO-Revision-Date: 2013-04-28 18:53+0300\n"
+"PO-Revision-Date: 2014-07-02 17:22+0300\n"
"Last-Translator: Ivan Lukyanov <greencis@mail.ru>\n"
"Language-Team: Ivan Lukyanov <greencis@mail.ru>\n"
"Language: Belarusian\n"
@@ -38,7 +38,7 @@ msgstr "Паказваць схаваныя файлы"
#: gui/browser.cpp:68
msgid "Show files marked with the hidden attribute"
-msgstr "Паказваць файлы са схаваным атрыбутам"
+msgstr "Паказваць файлы з атрыбутам \"схаваць\""
#: gui/browser.cpp:72
msgid "Go up"
@@ -184,7 +184,8 @@ msgid ""
"Language of the game. This will not turn your Spanish game version into "
"English"
msgstr ""
-"Мова гульні. Змена гэтай налады не ператворыць ангельскую гульню ў рускую"
+"Мова гульні. Змена гэтай налады не ператворыць рускую версію гульні ў "
+"беларускую"
#: gui/launcher.cpp:212 gui/launcher.cpp:226 gui/options.cpp:87
#: gui/options.cpp:737 gui/options.cpp:750 gui/options.cpp:1210
@@ -426,7 +427,7 @@ msgstr "В~ы~даліць гульню"
#: gui/launcher.cpp:642 gui/launcher.cpp:649
msgid "Remove game from the list. The game data files stay intact"
-msgstr "Выдаліць гульню са спісу. Не выдаляе гульню з жорсткага дыска"
+msgstr "Выдаліць гульню са спісу. Не выдаляе гульню з носьбіта"
#: gui/launcher.cpp:645
msgctxt "lowres"
@@ -509,9 +510,8 @@ msgid "Do you really want to remove this game configuration?"
msgstr "Вы сапраўды жадаеце выдаліць налады для гэтай гульні?"
#: gui/launcher.cpp:999
-#, fuzzy
msgid "Do you want to load savegame?"
-msgstr "Вы жадаеце загрузіць або захаваць гульню?"
+msgstr "Вы жадаеце загрузіць гульню?"
#: gui/launcher.cpp:1048
msgid "This game does not support loading games from the launcher."
@@ -523,7 +523,7 @@ msgstr "ScummVM не змог знайсці рухавічок для запуску абранай гульні!"
#: gui/massadd.cpp:79 gui/massadd.cpp:82
msgid "... progress ..."
-msgstr "...шукаю..."
+msgstr "... шукаю ..."
#: gui/massadd.cpp:259
msgid "Scan complete!"
@@ -629,11 +629,11 @@ msgstr "Карэкцыя суадносін бакоў"
#: gui/options.cpp:763
msgid "Correct aspect ratio for 320x200 games"
-msgstr "Карэктаваць суадносіны бакоў для гульняў з рэзалюцыяй 320x200"
+msgstr "Карэктаваць суадносіны бакоў для гульняў з адрозненнем 320x200"
#: gui/options.cpp:771
msgid "Preferred Device:"
-msgstr "Упадабанае:"
+msgstr "Упадабаная прылада:"
#: gui/options.cpp:771
msgid "Music Device:"
@@ -650,7 +650,7 @@ msgstr "Зазначае выходную гукавую прыладу ці эмулятар гукавой карты"
#: gui/options.cpp:773
msgctxt "lowres"
msgid "Preferred Dev.:"
-msgstr "Упадабанае:"
+msgstr "Упадабаная:"
#: gui/options.cpp:773
msgctxt "lowres"
@@ -749,18 +749,19 @@ msgstr ""
#: gui/options.cpp:888
msgctxt "lowres"
msgid "True Roland MT-32 (no GM emulation)"
-msgstr "Сапраўдны Roland MT-32 (без GM)"
+msgstr "Сапраўдны Roland MT-32 (без эмуляцыі GM)"
#: gui/options.cpp:891
-#, fuzzy
msgid "Roland GS Device (enable MT-32 mappings)"
-msgstr "Рэжым Roland GS (забараніць раскладку GM)"
+msgstr "Рэжым Roland GS (дазволіць мапінг MT-32)"
#: gui/options.cpp:891
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
msgstr ""
+"Адзначце, калі жадаеце дазволіць мапінг для эмуляцыі MT-32 на прыладзе "
+"Rolans GS"
#: gui/options.cpp:900
msgid "Don't use Roland MT-32 music"
@@ -1025,23 +1026,20 @@ msgid "Disabled GFX"
msgstr "Без графікі"
#: gui/ThemeEngine.cpp:348
-#, fuzzy
msgid "Standard Renderer"
-msgstr "Стандартны растарызатар (16bpp)"
+msgstr "Стандартны растарызатар"
#: gui/ThemeEngine.cpp:348 engines/scumm/dialogs.cpp:659
msgid "Standard"
msgstr "Стандартны"
#: gui/ThemeEngine.cpp:350
-#, fuzzy
msgid "Antialiased Renderer"
-msgstr "Растарызатар са згладжваннем (16bpp)"
+msgstr "Растарызатар са згладжваннем"
#: gui/ThemeEngine.cpp:350
-#, fuzzy
msgid "Antialiased"
-msgstr "Растарызатар са згладжваннем (16bpp)"
+msgstr "Са згладжваннем"
#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333
msgid "Clear value"
@@ -1053,7 +1051,7 @@ msgstr "Рэверберацыя"
#: gui/fluidsynth-dialog.cpp:70 gui/fluidsynth-dialog.cpp:102
msgid "Active"
-msgstr "(Актыўная)"
+msgstr "Актыўна"
#: gui/fluidsynth-dialog.cpp:72
msgid "Room:"
@@ -1061,11 +1059,11 @@ msgstr "Пакой:"
#: gui/fluidsynth-dialog.cpp:79
msgid "Damp:"
-msgstr "Дэмпфаванне:"
+msgstr "Вільготнасць:"
#: gui/fluidsynth-dialog.cpp:86
msgid "Width:"
-msgstr "Даўжыня:"
+msgstr "Шырыня:"
#: gui/fluidsynth-dialog.cpp:93 gui/fluidsynth-dialog.cpp:111
msgid "Level:"
@@ -1093,11 +1091,11 @@ msgstr "Тып:"
#: gui/fluidsynth-dialog.cpp:135
msgid "Sine"
-msgstr "Сінус"
+msgstr "Сінусоіда"
#: gui/fluidsynth-dialog.cpp:136
msgid "Triangle"
-msgstr "Трохкутнік"
+msgstr "Трохкутная"
#: gui/fluidsynth-dialog.cpp:140
msgid "Interpolation:"
@@ -1231,7 +1229,7 @@ msgstr "Невядомая памылка"
#: engines/advancedDetector.cpp:317
#, c-format
msgid "The game in '%s' seems to be unknown."
-msgstr "Здаецца, што гульня '%s' яшчэ невядома."
+msgstr "Здаецца, што гульня '%s' яшчэ невядомая."
#: engines/advancedDetector.cpp:318
msgid "Please, report the following data to the ScummVM team along with name"
@@ -1264,16 +1262,16 @@ msgstr "~Д~апамога"
#: engines/dialogs.cpp:102
msgid "~A~bout"
-msgstr "~П~ра праграму"
+msgstr "П~р~а праграму"
#: engines/dialogs.cpp:105 engines/dialogs.cpp:181
msgid "~R~eturn to Launcher"
-msgstr "~Г~алоўнае меню"
+msgstr "Г~а~лоўнае меню"
#: engines/dialogs.cpp:107 engines/dialogs.cpp:183
msgctxt "lowres"
msgid "~R~eturn to Launcher"
-msgstr "~Г~алоўнае меню"
+msgstr "Г~а~лоўнае меню"
#: engines/dialogs.cpp:116 engines/agi/saveload.cpp:803
#: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336
@@ -1300,9 +1298,9 @@ msgid ""
"the README for basic information, and for instructions on how to obtain "
"further assistance."
msgstr ""
-"Прабачце, але гэты рухавічок пакуль не падае дапамогі ў гульні. Калі ласка, "
-"звярніцеся да файла README за базавай інфармацыяй, а таксама інструкцыямі "
-"пра тое, як атрымаць далейшую дапамогу."
+"Прабачце, але гэты рухавічок пакуль не падае дапамогі ўнутры гульні. Калі "
+"ласка, звярніцеся да файла README за базавай інфармацыяй, а таксама "
+"інструкцыямі пра тое, як атрымаць далейшую дапамогу."
#: engines/dialogs.cpp:234 engines/pegasus/pegasus.cpp:393
#, c-format
@@ -1369,7 +1367,7 @@ msgstr ""
"Дыск гэтай гульні ўтрымоўвае гукавыя дарожкі. Іх\n"
"неабходна перапісаць з дыска з дапамогай\n"
"адпаведнай праграмы для капіявання\n"
-"аўдыёдыскаў, і толькі пасля гэтага ў гульні\n"
+"аўдыё дыскаў, і толькі пасля гэтага ў гульні\n"
"з'явіцца музыка. Падрабязнасці можна знайсці ў\n"
"файле README."
@@ -1513,7 +1511,7 @@ msgstr "Windows MIDI"
#: backends/platform/ds/arm9/source/dsoptions.cpp:56
#: engines/scumm/dialogs.cpp:291
msgid "~C~lose"
-msgstr "~З~акрыць"
+msgstr "~З~ачыніць"
#: backends/platform/ds/arm9/source/dsoptions.cpp:57
msgid "ScummVM Main Menu"
@@ -1521,11 +1519,11 @@ msgstr "Галоўнае меню ScummVM"
#: backends/platform/ds/arm9/source/dsoptions.cpp:63
msgid "~L~eft handed mode"
-msgstr "Леварукі рэжым"
+msgstr "~Л~еварукі рэжым"
#: backends/platform/ds/arm9/source/dsoptions.cpp:64
msgid "~I~ndy fight controls"
-msgstr "Кіраванне баямі ў Indy"
+msgstr "~К~іраванне баямі ў Indy"
#: backends/platform/ds/arm9/source/dsoptions.cpp:65
msgid "Show mouse cursor"
@@ -1645,7 +1643,7 @@ msgstr "Акно"
#: backends/platform/sdl/macosx/appmenu_osx.mm:114
msgid "Minimize"
-msgstr "Прыбраць у Dock"
+msgstr "Згарнуць"
#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:46
msgid "Normal (no scaling)"
@@ -1673,13 +1671,12 @@ msgid "Windowed mode"
msgstr "Аконны рэжым"
#: backends/graphics/opengl/opengl-graphics.cpp:118
-#, fuzzy
msgid "OpenGL"
-msgstr "Адкрыць"
+msgstr "OpenGL"
#: backends/graphics/opengl/opengl-graphics.cpp:119
msgid "OpenGL (No filtering)"
-msgstr ""
+msgstr "OpenGL (без фільтраў)"
#: backends/platform/symbian/src/SymbianActions.cpp:38
#: backends/platform/wince/CEActionsSmartphone.cpp:39
@@ -2095,7 +2092,7 @@ msgstr "Выкарыстоўваць арыгінальныя экраны запісу/чытанні гульні"
#: engines/sci/detection.cpp:395 engines/toltecs/detection.cpp:187
msgid "Use the original save/load screens, instead of the ScummVM ones"
msgstr ""
-"Выкарыстоўваць арыгінальныя экраны запісу і захаванні гульні замест "
+"Выкарыстоўваць арыгінальныя экраны запісу і захавання гульні замест "
"зробленых у ScummVM"
#: engines/agi/saveload.cpp:816 engines/drascula/saveload.cpp:349
@@ -2192,7 +2189,7 @@ msgstr "Хуткі рэжым відэа"
#: engines/groovie/detection.cpp:313
msgid "Play movies at an increased speed"
-msgstr "Прайграваць відэа на павялічанай хуткасці"
+msgstr "Прайгравае відэа на павялічанай хуткасці"
#: engines/groovie/script.cpp:399
msgid "Failed to save game"
@@ -2315,51 +2312,51 @@ msgstr ""
"Здаецца, вы спрабуеце выкарыстоўваць прыладу\n"
"General MIDI, але гэтая гульня падтрымлівае толькі\n"
"Roland MT32 MIDI. Мы паспрабуем падабраць General\n"
-"MIDI прылады, падобныя на Roland MT32, але\n"
+"MIDI прылады, падобныя да Roland MT32, але\n"
"можа так атрымацца, што некаторыя трэкі будуць\n"
-"сыграны няправільна."
+"сыграныя няправільна."
#. I18N: Option for fast scene switching
#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167
msgid "~Z~ip Mode Activated"
-msgstr "Рэжым хуткага пераходу актываваны"
+msgstr "~Р~эжым хуткага пераходу актываваны"
#: engines/mohawk/dialogs.cpp:93
msgid "~T~ransitions Enabled"
-msgstr "Пераходы актываваны"
+msgstr "~П~ераходы актываваны"
#. I18N: Drop book page
#: engines/mohawk/dialogs.cpp:95
msgid "~D~rop Page"
-msgstr "Выкінуць старонку"
+msgstr "~В~ыкінуць старонку"
#: engines/mohawk/dialogs.cpp:99
msgid "~S~how Map"
-msgstr "Показать карту"
+msgstr "П~а~казаць карту"
#: engines/mohawk/dialogs.cpp:105
msgid "~M~ain Menu"
-msgstr "Галоўнае меню"
+msgstr "~Г~алоўнае меню"
#: engines/mohawk/dialogs.cpp:168
msgid "~W~ater Effect Enabled"
-msgstr "Эфекты вады ўключаны"
+msgstr "~Э~фекты вады ўключаны"
#: engines/neverhood/detection.cpp:167
msgid "Skip the Hall of Records storyboard scenes"
-msgstr ""
+msgstr "Прапусціць сцэны з Галерэі Гісторыі"
#: engines/neverhood/detection.cpp:168
msgid "Allows the player to skip past the Hall of Records storyboard scenes"
-msgstr ""
+msgstr "Дазваляе гульцу прапусціць усе сцэны ў Галерэі Гісторыі"
#: engines/neverhood/detection.cpp:174
msgid "Scale the making of videos to full screen"
-msgstr ""
+msgstr "Расцягнуць на ўвесь экран відэа пра стварэнне гульні"
#: engines/neverhood/detection.cpp:175
msgid "Scale the making of videos, so that they use the whole screen"
-msgstr ""
+msgstr "Расцягвае відэа пра стварэнне гульні так, што яно займае ўвесь экран"
#: engines/parallaction/saveload.cpp:133
#, c-format
@@ -2432,15 +2429,15 @@ msgstr "Паказаць/схаваць біячып"
#: engines/pegasus/pegasus.cpp:2513
msgid "Action/Select"
-msgstr "Дзеянне/Абраць"
+msgstr "Дзеянне/Выбар"
#: engines/pegasus/pegasus.cpp:2514
msgid "Toggle Center Data Display"
-msgstr "Пераключыць"
+msgstr "Уключыць паказ дадзеных у цэнтры экрана"
#: engines/pegasus/pegasus.cpp:2515
msgid "Display/Hide Info Screen"
-msgstr "Паказаць/схаваць інфармацыю"
+msgstr "Паказаць/схаваць інфаэкран"
#: engines/pegasus/pegasus.cpp:2516
msgid "Display/Hide Pause Menu"
@@ -2787,7 +2784,7 @@ msgstr "Даць"
#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:190
#: engines/scumm/help.cpp:208
msgid "Open"
-msgstr "Адкрыць"
+msgstr "Адчыніць"
#: engines/scumm/help.cpp:126
msgid "Go to"
@@ -2839,7 +2836,7 @@ msgstr "Што такое"
#: engines/scumm/help.cpp:146
msgid "Unlock"
-msgstr "Адкрыць"
+msgstr "Адчыніць"
#: engines/scumm/help.cpp:149
msgid "Put on"
@@ -3192,11 +3189,10 @@ msgstr ""
"Знойдзены застаўкі ў фармаце DXA, але ScummVM быў сабраны без падтрымкі zlib"
#: engines/sword1/animation.cpp:561
-#, fuzzy
msgid "MPEG-2 cutscenes found but ScummVM has been built without MPEG-2"
msgstr ""
-"Знойдзены застаўкі ў фармаце PSX, але ScummVM быў сабраны без падтрымкі RGB "
-"колераў"
+"Знойдзены застаўкі ў фармаце MPEG-2, але ScummVM быў сабраны без падтрымкі "
+"MPEG-2"
#: engines/sword1/animation.cpp:568 engines/sword2/animation.cpp:470
#, c-format
@@ -3249,11 +3245,11 @@ msgstr ""
"колераў"
#: engines/sword2/animation.cpp:461
-#, fuzzy
msgid ""
"MPEG-2 cutscenes found but ScummVM has been built without MPEG-2 support"
msgstr ""
-"Знойдзены застаўкі ў фармаце DXA, але ScummVM быў сабраны без падтрымкі zlib"
+"Знойдзены застаўкі ў фармаце MPEG-2, але ScummVM быў сабраны без падтрымкі "
+"MPEG-2"
#: engines/sword2/sword2.cpp:79
msgid "Show object labels"
diff --git a/po/de_DE.po b/po/de_DE.po
index 44bd5fc382..c16b8daf7e 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -1,14 +1,14 @@
# German translation for ScummVM.
# Copyright (C) 2010-2014 ScummVM Team
# This file is distributed under the same license as the ScummVM package.
-# Simon Sawatzki <SimSaw@gmx.de>, Lothar Serra Mari, 2013.
+# Simon Sawatzki <SimSaw@gmx.de>, Lothar Serra Mari, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.5.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
"POT-Creation-Date: 2014-06-07 23:06+0100\n"
-"PO-Revision-Date: 2013-04-24 22:01+0100\n"
+"PO-Revision-Date: 2014-06-14 19:34+0100\n"
"Last-Translator: Simon Sawatzki <SimSaw@gmx.de>\n"
"Language-Team: Simon Sawatzki <SimSaw@gmx.de>, Lothar Serra Mari (retired)\n"
"Language: Deutsch\n"
@@ -510,9 +510,8 @@ msgid "Do you really want to remove this game configuration?"
msgstr "Mіchten Sie wirklich diese Spielkonfiguration entfernen?"
#: gui/launcher.cpp:999
-#, fuzzy
msgid "Do you want to load savegame?"
-msgstr "Mіchten Sie ein Spiel laden oder speichern?"
+msgstr "Mіchten Sie einen Spielstand laden?"
#: gui/launcher.cpp:1048
msgid "This game does not support loading games from the launcher."
@@ -757,15 +756,14 @@ msgid "True Roland MT-32 (no GM emulation)"
msgstr "Echte Roland-MT-32-Emulation (kein GM)"
#: gui/options.cpp:891
-#, fuzzy
msgid "Roland GS Device (enable MT-32 mappings)"
-msgstr "Roland-GS-Modus (GM-Zuweisung deaktiviert)"
+msgstr "Roland-GS-Modus (MT-32-Zuweisungen aktivieren)"
#: gui/options.cpp:891
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
-msgstr ""
+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:900
msgid "Don't use Roland MT-32 music"
@@ -837,7 +835,7 @@ msgstr "Effektlautstфrke:"
#: gui/options.cpp:973 gui/options.cpp:975 gui/options.cpp:976
msgid "Special sound effects volume"
-msgstr "Lautstфrke spezieller Soundeffekte"
+msgstr "Lautstфrke spezieller Gerфusch-Effekte"
#: gui/options.cpp:975
msgctxt "lowres"
@@ -1034,23 +1032,20 @@ msgid "Disabled GFX"
msgstr "GFX ausgeschaltet"
#: gui/ThemeEngine.cpp:348
-#, fuzzy
msgid "Standard Renderer"
-msgstr "Standard-Renderer (16bpp)"
+msgstr "Standard-Renderer"
#: gui/ThemeEngine.cpp:348 engines/scumm/dialogs.cpp:659
msgid "Standard"
msgstr "Standard"
#: gui/ThemeEngine.cpp:350
-#, fuzzy
msgid "Antialiased Renderer"
-msgstr "Kantenglфttung (16bpp)"
+msgstr "Kantenglфttung"
#: gui/ThemeEngine.cpp:350
-#, fuzzy
msgid "Antialiased"
-msgstr "Kantenglфttung (16bpp)"
+msgstr "Kantenglфttung"
#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333
msgid "Clear value"
@@ -1687,13 +1682,12 @@ msgid "Windowed mode"
msgstr "Fenstermodus"
#: backends/graphics/opengl/opengl-graphics.cpp:118
-#, fuzzy
msgid "OpenGL"
-msgstr "жffne"
+msgstr "OpenGL"
#: backends/graphics/opengl/opengl-graphics.cpp:119
msgid "OpenGL (No filtering)"
-msgstr ""
+msgstr "OpenGL (ohne Filter)"
#: backends/platform/symbian/src/SymbianActions.cpp:38
#: backends/platform/wince/CEActionsSmartphone.cpp:39
@@ -2364,19 +2358,19 @@ msgstr "~W~assereffekt aktiviert"
#: engines/neverhood/detection.cpp:167
msgid "Skip the Hall of Records storyboard scenes"
-msgstr ""
+msgstr "Szenenbuch-Sequenz in der Chronikhalle ќberspringen"
#: engines/neverhood/detection.cpp:168
msgid "Allows the player to skip past the Hall of Records storyboard scenes"
-msgstr ""
+msgstr "Ermіglicht dem Spieler, die Szenenbuch-Sequenz in der Chronikhalle zu ќberspringen."
#: engines/neverhood/detection.cpp:174
msgid "Scale the making of videos to full screen"
-msgstr ""
+msgstr "Making-Of-Videos auf Vollbild skalieren"
#: engines/neverhood/detection.cpp:175
msgid "Scale the making of videos, so that they use the whole screen"
-msgstr ""
+msgstr "Skaliert die Making-Of-Videos, sodass sie den gesamten Bildschirm ausfќllen."
#: engines/parallaction/saveload.cpp:133
#, c-format
@@ -2478,11 +2472,11 @@ msgstr "Aktiviert die Aufhebung der Fehlerdiffusion in EGA-Spielen."
#: engines/sci/detection.cpp:384
msgid "Prefer digital sound effects"
-msgstr "Digitale Sound-Effekte bevorzugen"
+msgstr "Digitale Gerфusch-Effekte bevorzugen"
#: engines/sci/detection.cpp:385
msgid "Prefer digital sound effects instead of synthesized ones"
-msgstr "Bevorzugt digitale Sound-Effekte statt synthethisierter."
+msgstr "Bevorzugt digitale Gerфusch-Effekte statt synthethisierter."
#: engines/sci/detection.cpp:404
msgid "Use IMF/Yamaha FB-01 for MIDI output"
@@ -3215,11 +3209,10 @@ msgstr ""
"erstellt."
#: engines/sword1/animation.cpp:561
-#, fuzzy
msgid "MPEG-2 cutscenes found but ScummVM has been built without MPEG-2"
msgstr ""
-"PSX-Zwischensequenzen gefunden, aber ScummVM wurde ohne Unterstќtzung fќr "
-"RGB-Farben erstellt."
+"MPEG-2-Zwischensequenzen gefunden, aber ScummVM wurde ohne Unterstќtzung fќr "
+"MPEG-2-Videos erstellt."
#: engines/sword1/animation.cpp:568 engines/sword2/animation.cpp:470
#, c-format
@@ -3273,12 +3266,11 @@ msgstr ""
"RGB-Farben erstellt."
#: engines/sword2/animation.cpp:461
-#, fuzzy
msgid ""
"MPEG-2 cutscenes found but ScummVM has been built without MPEG-2 support"
msgstr ""
-"DXA-Zwischensequenzen gefunden, aber ScummVM wurde ohne Zlib-Unterstќtzung "
-"erstellt."
+"MPEG-2-Zwischensequenzen gefunden, aber ScummVM wurde ohne Unterstќtzung fќr "
+"MPEG-2-Videos erstellt."
#: engines/sword2/sword2.cpp:79
msgid "Show object labels"
diff --git a/po/gl_ES.po b/po/gl_ES.po
index f6fb04b619..30fb21471e 100644
--- a/po/gl_ES.po
+++ b/po/gl_ES.po
@@ -8,13 +8,14 @@ msgstr ""
"Project-Id-Version: ScummVM 1.6.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
"POT-Creation-Date: 2014-06-07 23:06+0100\n"
-"PO-Revision-Date: 2013-04-24 15:41+0100\n"
+"PO-Revision-Date: 2014-07-02 09:51+0100\n"
"Last-Translator: Santiago G. Sanz <s.sanz@uvigo.es>\n"
"Language-Team: Santiago G. Sanz <s.sanz@uvigo.es>\n"
"Language: Galego\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.6.5\n"
#: gui/about.cpp:94
#, c-format
@@ -65,7 +66,7 @@ msgstr "Cancelar"
#: gui/browser.cpp:76 gui/chooser.cpp:47 gui/themebrowser.cpp:56
msgid "Choose"
-msgstr "Elexir"
+msgstr "Elixir"
#: gui/gui-manager.cpp:117 backends/keymapper/remap-dialog.cpp:53
#: engines/scumm/help.cpp:125 engines/scumm/help.cpp:140
@@ -505,9 +506,8 @@ msgid "Do you really want to remove this game configuration?"
msgstr "Seguro que queres eliminar esta configuraciѓn de xogo?"
#: gui/launcher.cpp:999
-#, fuzzy
msgid "Do you want to load savegame?"
-msgstr "Queres cargar ou gardar a partida?"
+msgstr "Queres cargar a partida gardada?"
#: gui/launcher.cpp:1048
msgid "This game does not support loading games from the launcher."
@@ -604,11 +604,11 @@ msgstr "non se puido cambiar a proporciѓn."
#: gui/options.cpp:734
msgid "Graphics mode:"
-msgstr "Modo de grсficos:"
+msgstr "Grсficos:"
#: gui/options.cpp:748
msgid "Render mode:"
-msgstr "Modo de procesamento:"
+msgstr "Procesamento:"
#: gui/options.cpp:748 gui/options.cpp:749
msgid "Special dithering modes supported by some games"
@@ -747,15 +747,16 @@ msgid "True Roland MT-32 (no GM emulation)"
msgstr "Roland MT-32 (sen emulaciѓn de GM)"
#: gui/options.cpp:891
-#, fuzzy
msgid "Roland GS Device (enable MT-32 mappings)"
-msgstr "Modo Roland GS (desactivar mapeamento GM)"
+msgstr "Dispositivo Roland GS (activar atribuciѓn MT-32)"
#: gui/options.cpp:891
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
msgstr ""
+"Marcar para activar a atribuciѓn de parches e emular MT-32 nun dispositivo "
+"Roland GS"
#: gui/options.cpp:900
msgid "Don't use Roland MT-32 music"
@@ -1019,23 +1020,20 @@ msgid "Disabled GFX"
msgstr "Efectos desactivados"
#: gui/ThemeEngine.cpp:348
-#, fuzzy
msgid "Standard Renderer"
-msgstr "Procesamento estсndar (16 bpp)"
+msgstr "Procesamento estсndar"
#: gui/ThemeEngine.cpp:348 engines/scumm/dialogs.cpp:659
msgid "Standard"
msgstr "Estсndar"
#: gui/ThemeEngine.cpp:350
-#, fuzzy
msgid "Antialiased Renderer"
-msgstr "Procesamento antidistorsiѓn (16 bpp)"
+msgstr "Procesamento antidistorsiѓn"
#: gui/ThemeEngine.cpp:350
-#, fuzzy
msgid "Antialiased"
-msgstr "Antidistorsiѓn (16 bpp)"
+msgstr "Antidistorsiѓn"
#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333
msgid "Clear value"
@@ -1666,13 +1664,12 @@ msgid "Windowed mode"
msgstr "Modo en ventс"
#: backends/graphics/opengl/opengl-graphics.cpp:118
-#, fuzzy
msgid "OpenGL"
-msgstr "Abrir"
+msgstr "OpenGL"
#: backends/graphics/opengl/opengl-graphics.cpp:119
msgid "OpenGL (No filtering)"
-msgstr ""
+msgstr "OpenGL (Sen filtraxe)"
#: backends/platform/symbian/src/SymbianActions.cpp:38
#: backends/platform/wince/CEActionsSmartphone.cpp:39
@@ -2339,19 +2336,19 @@ msgstr "Efecto de ~a~uga activado"
#: engines/neverhood/detection.cpp:167
msgid "Skip the Hall of Records storyboard scenes"
-msgstr ""
+msgstr "Omitir as escenas do Salѓn dos rexistros"
#: engines/neverhood/detection.cpp:168
msgid "Allows the player to skip past the Hall of Records storyboard scenes"
-msgstr ""
+msgstr "Permite ao xogador saltar as escenas do Salѓn dos rexistros"
#: engines/neverhood/detection.cpp:174
msgid "Scale the making of videos to full screen"
-msgstr ""
+msgstr "Redimensionar vэdeos a pantalla completa"
#: engines/neverhood/detection.cpp:175
msgid "Scale the making of videos, so that they use the whole screen"
-msgstr ""
+msgstr "Redimensionar a creaciѓn de vэdeos en pantalla completa"
#: engines/parallaction/saveload.cpp:133
#, c-format
@@ -3185,11 +3182,8 @@ msgstr ""
"compatible con zlib"
#: engines/sword1/animation.cpp:561
-#, fuzzy
msgid "MPEG-2 cutscenes found but ScummVM has been built without MPEG-2"
-msgstr ""
-"Atopсronse secuencias de PSX. No entanto, a versiѓn de ScummVM non щ "
-"compatible con cores RGB"
+msgstr "Atopсronse secuencias MPEG-2, mais ScummVM foi compilado sen MPEG-2"
#: engines/sword1/animation.cpp:568 engines/sword2/animation.cpp:470
#, c-format
@@ -3243,12 +3237,11 @@ msgstr ""
"compatible con cores RGB"
#: engines/sword2/animation.cpp:461
-#, fuzzy
msgid ""
"MPEG-2 cutscenes found but ScummVM has been built without MPEG-2 support"
msgstr ""
-"Atopсronse secuencias de DXA. No entanto, esta versiѓn de ScummVM non щ "
-"compatible con zlib"
+"Atopсronse secuencias MPEG-2, mais ScummVM foi compilado sen compatibilidade "
+"con MPEG-2"
#: engines/sword2/sword2.cpp:79
msgid "Show object labels"
diff --git a/po/nb_NO.po b/po/nb_NO.po
index 72b95cdb56..5e86dd4e44 100644
--- a/po/nb_NO.po
+++ b/po/nb_NO.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: ScummVM 1.3.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
"POT-Creation-Date: 2014-06-07 23:06+0100\n"
-"PO-Revision-Date: 2013-04-24 14:05+0100\n"
+"PO-Revision-Date: 2014-07-01 07:06+0100\n"
"Last-Translator: Einar Johan Trјan Sјmхen <einarjohants@gmail.com>\n"
"Language-Team: somaen <einarjohants@gmail.com>\n"
"Language: Norsk (bokmaal)\n"
@@ -17,12 +17,12 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SourceCharset: iso-8859-1\n"
-"X-Generator: Poedit 1.5.5\n"
+"X-Generator: Poedit 1.6.5\n"
#: gui/about.cpp:94
#, c-format
msgid "(built on %s)"
-msgstr "(bygd den %s)"
+msgstr "(bygd %s)"
#: gui/about.cpp:101
msgid "Features compiled in:"
@@ -42,7 +42,7 @@ msgstr "Vis filer merket med ЋskjultЛ-attributten"
#: gui/browser.cpp:72
msgid "Go up"
-msgstr "Gх tilbake"
+msgstr "Opp et nivх"
#: gui/browser.cpp:72 gui/browser.cpp:74
msgid "Go to previous directory level"
@@ -510,9 +510,8 @@ msgid "Do you really want to remove this game configuration?"
msgstr "Vil du virkelig fjerne denne spillkonfigurasjonen?"
#: gui/launcher.cpp:999
-#, fuzzy
msgid "Do you want to load savegame?"
-msgstr "Vil du хpne eller lagre spillet?"
+msgstr "Vil du laste et lagret spill?"
#: gui/launcher.cpp:1048
msgid "This game does not support loading games from the launcher."
@@ -752,9 +751,8 @@ msgid "True Roland MT-32 (no GM emulation)"
msgstr "Ekte Roland MT-32 (deaktiver GM-emulering)"
#: gui/options.cpp:891
-#, fuzzy
msgid "Roland GS Device (enable MT-32 mappings)"
-msgstr "Roland GS Modus (deaktiver GM-mapping)"
+msgstr "Roland GS Modus (aktiver MT32-mapping)"
#: gui/options.cpp:891
msgid ""
@@ -1023,37 +1021,32 @@ msgid "Disabled GFX"
msgstr "Deaktivert GFX"
#: gui/ThemeEngine.cpp:348
-#, fuzzy
msgid "Standard Renderer"
-msgstr "Standard Tegner (16bpp)"
+msgstr "Standard tegner"
#: gui/ThemeEngine.cpp:348 engines/scumm/dialogs.cpp:659
msgid "Standard"
msgstr "Standard"
#: gui/ThemeEngine.cpp:350
-#, fuzzy
msgid "Antialiased Renderer"
-msgstr "Antialiased Tegner (16bpp)"
+msgstr "Kantutjevnet tegner"
#: gui/ThemeEngine.cpp:350
-#, fuzzy
msgid "Antialiased"
-msgstr "Antialiased (16bpp)"
+msgstr "Kantutjevnet"
#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333
msgid "Clear value"
msgstr "Tјm verdi"
#: gui/fluidsynth-dialog.cpp:68
-#, fuzzy
msgid "Reverb"
-msgstr "Aldri"
+msgstr "Romklang"
#: gui/fluidsynth-dialog.cpp:70 gui/fluidsynth-dialog.cpp:102
-#, fuzzy
msgid "Active"
-msgstr " (Aktiv)"
+msgstr "Aktiv"
#: gui/fluidsynth-dialog.cpp:72
msgid "Room:"
@@ -1065,11 +1058,11 @@ msgstr ""
#: gui/fluidsynth-dialog.cpp:86
msgid "Width:"
-msgstr ""
+msgstr "Bredde:"
#: gui/fluidsynth-dialog.cpp:93 gui/fluidsynth-dialog.cpp:111
msgid "Level:"
-msgstr ""
+msgstr "Nivх:"
#: gui/fluidsynth-dialog.cpp:100
msgid "Chorus"
@@ -1077,40 +1070,39 @@ msgstr ""
#: gui/fluidsynth-dialog.cpp:104
msgid "N:"
-msgstr ""
+msgstr "N:"
#: gui/fluidsynth-dialog.cpp:118
-#, fuzzy
msgid "Speed:"
-msgstr "Tale"
+msgstr "Hastighet:"
#: gui/fluidsynth-dialog.cpp:125
msgid "Depth:"
-msgstr ""
+msgstr "Dybde:"
#: gui/fluidsynth-dialog.cpp:132
msgid "Type:"
-msgstr ""
+msgstr "Type:"
#: gui/fluidsynth-dialog.cpp:135
msgid "Sine"
-msgstr ""
+msgstr "Sinus"
#: gui/fluidsynth-dialog.cpp:136
msgid "Triangle"
-msgstr ""
+msgstr "Trekant"
#: gui/fluidsynth-dialog.cpp:140
msgid "Interpolation:"
-msgstr ""
+msgstr "Interpolering:"
#: gui/fluidsynth-dialog.cpp:143
msgid "None (fastest)"
-msgstr ""
+msgstr "Ingen (raskest)"
#: gui/fluidsynth-dialog.cpp:144
msgid "Linear"
-msgstr ""
+msgstr "Linjцr"
#: gui/fluidsynth-dialog.cpp:145
msgid "Fourth-order"
@@ -1122,17 +1114,17 @@ msgstr ""
#: gui/fluidsynth-dialog.cpp:150
msgid "Reset"
-msgstr ""
+msgstr "Nullstill"
#: gui/fluidsynth-dialog.cpp:150
msgid "Reset all FluidSynth settings to their default values."
-msgstr ""
+msgstr "Nullstill alle FluidSynth-instillinger til standardverdier"
#: gui/fluidsynth-dialog.cpp:217
-#, fuzzy
msgid ""
"Do you really want to reset all FluidSynth settings to their default values?"
-msgstr "Vil du virkelig returnere til oppstarteren?"
+msgstr ""
+"Vil du virkelig nullstille alle FluidSynth-instillinger til standardverdier?"
#: base/main.cpp:228
#, c-format
@@ -1672,13 +1664,12 @@ msgid "Windowed mode"
msgstr "Vindusmodus"
#: backends/graphics/opengl/opengl-graphics.cpp:118
-#, fuzzy
msgid "OpenGL"
-msgstr "Хpne"
+msgstr "OpenGL"
#: backends/graphics/opengl/opengl-graphics.cpp:119
msgid "OpenGL (No filtering)"
-msgstr ""
+msgstr "OpenGL (Ingen filtrering)"
#: backends/platform/symbian/src/SymbianActions.cpp:38
#: backends/platform/wince/CEActionsSmartphone.cpp:39
@@ -2209,8 +2200,9 @@ msgstr "Aktiver studiopublikum"
#. I18N: This option allows the user to skip text and cutscenes.
#: engines/kyra/detection.cpp:73
+#, fuzzy
msgid "Skip support"
-msgstr ""
+msgstr "Hopp over"
#: engines/kyra/detection.cpp:74
msgid "Allow text and cutscenes to be skipped"
@@ -2345,19 +2337,19 @@ msgstr "~V~anneffekt aktivert"
#: engines/neverhood/detection.cpp:167
msgid "Skip the Hall of Records storyboard scenes"
-msgstr ""
+msgstr "Hopp over Hall of Records storyboard scenene."
#: engines/neverhood/detection.cpp:168
msgid "Allows the player to skip past the Hall of Records storyboard scenes"
-msgstr ""
+msgstr "Tillater spilleren х hoppe forbi Hall of Records storyboard scener. "
#: engines/neverhood/detection.cpp:174
msgid "Scale the making of videos to full screen"
-msgstr ""
+msgstr "Skaler Ћmaking ofЛ-videoer til fullskjerm"
#: engines/neverhood/detection.cpp:175
msgid "Scale the making of videos, so that they use the whole screen"
-msgstr ""
+msgstr "Skaler Ћmaking ofЛ-videoene, slik at de bruker hele skjermen."
#: engines/parallaction/saveload.cpp:133
#, c-format
@@ -3186,9 +3178,8 @@ msgid "DXA cutscenes found but ScummVM has been built without zlib support"
msgstr "DXA-cutscener funnet men ScummVM er bygd uten zlib-stјtte"
#: engines/sword1/animation.cpp:561
-#, fuzzy
msgid "MPEG-2 cutscenes found but ScummVM has been built without MPEG-2"
-msgstr "PSX-cutscener funnet, men ScummVM har blitt bygd uten RGB-fargestјtte"
+msgstr "MPEG2-cutscener funnet men ScummVM er bygd uten MPEG2-stјtte"
#: engines/sword1/animation.cpp:568 engines/sword2/animation.cpp:470
#, c-format
@@ -3240,10 +3231,9 @@ msgid ""
msgstr "PSX-cutscener funnet, men ScummVM har blitt bygd uten RGB-fargestјtte"
#: engines/sword2/animation.cpp:461
-#, fuzzy
msgid ""
"MPEG-2 cutscenes found but ScummVM has been built without MPEG-2 support"
-msgstr "DXA-cutscener funnet men ScummVM er bygd uten zlib-stјtte"
+msgstr "MPEG2-cutscener funnet men ScummVM er bygd uten MPEG2-stјtte"
#: engines/sword2/sword2.cpp:79
msgid "Show object labels"
diff --git a/po/nn_NO.po b/po/nn_NO.po
index ff5b51a093..c3227e81ed 100644
--- a/po/nn_NO.po
+++ b/po/nn_NO.po
@@ -8,17 +8,16 @@ msgstr ""
"Project-Id-Version: ScummVM 1.3.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
"POT-Creation-Date: 2014-06-07 23:06+0100\n"
-"PO-Revision-Date: 2011-04-25 23:07+0100\n"
-"Last-Translator: Einar Johan T. Sјmхen <einarjohants@gmail.com>\n"
+"PO-Revision-Date: 2014-07-01 07:43+0100\n"
+"Last-Translator: Einar Johan Trјan Sјmхen <einarjohants@gmail.com>\n"
"Language-Team: somaen <einarjohants@gmail.com>\n"
"Language: Norsk (nynorsk)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Norwegian Nynorsk\n"
"X-Poedit-SourceCharset: iso-8859-1\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-"X-Poedit-Country: NORWAY\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 1.6.5\n"
#: gui/about.cpp:94
#, c-format
@@ -34,13 +33,12 @@ msgid "Available engines:"
msgstr "Tilgjengelege motorar:"
#: gui/browser.cpp:68
-#, fuzzy
msgid "Show hidden files"
-msgstr "Vis / Skjul konsoll"
+msgstr "Vis skjulte filer"
#: gui/browser.cpp:68
msgid "Show files marked with the hidden attribute"
-msgstr ""
+msgstr "Syn filer markert med skjult-attributten"
#: gui/browser.cpp:72
msgid "Go up"
@@ -92,7 +90,6 @@ msgid "Remap keys"
msgstr "Omkople tastar"
#: gui/gui-manager.cpp:131 base/main.cpp:326
-#, fuzzy
msgid "Toggle FullScreen"
msgstr "Veksle fullskjerm"
@@ -210,9 +207,8 @@ msgid "Platform:"
msgstr "Plattform:"
#: gui/launcher.cpp:237
-#, fuzzy
msgid "Engine"
-msgstr "Undersјk"
+msgstr "Motor"
#: gui/launcher.cpp:245 gui/options.cpp:1073 gui/options.cpp:1090
msgid "Graphics"
@@ -358,8 +354,9 @@ msgid "Select directory with game data"
msgstr "Vel mappe med speldata"
#: gui/launcher.cpp:547
+#, fuzzy
msgid "Select additional game directory"
-msgstr ""
+msgstr "Vel mappe med speldata"
#: gui/launcher.cpp:559
msgid "Select directory for saved games"
@@ -512,9 +509,8 @@ msgid "Do you really want to remove this game configuration?"
msgstr "Vil du verkeleg fjerne denne spelkonfigurasjonen?"
#: gui/launcher.cpp:999
-#, fuzzy
msgid "Do you want to load savegame?"
-msgstr "Vil du хpne eller lagre spelet?"
+msgstr "Vil du laste det lagra spelet?"
#: gui/launcher.cpp:1048
msgid "This game does not support loading games from the launcher."
@@ -601,11 +597,11 @@ msgstr ""
#: gui/options.cpp:401
msgid "the video mode could not be changed."
-msgstr ""
+msgstr "Kunne ikkje endre videomodus."
#: gui/options.cpp:407
msgid "the fullscreen setting could not be changed"
-msgstr ""
+msgstr "Fullskjerminstillinga kunne ikkje endrast"
#: gui/options.cpp:413
msgid "the aspect ratio setting could not be changed"
@@ -642,7 +638,7 @@ msgstr "Fјretrukken eining:"
#: gui/options.cpp:771
msgid "Music Device:"
-msgstr ""
+msgstr "Musikkeining:"
#: gui/options.cpp:771 gui/options.cpp:773
msgid "Specifies preferred sound device or sound card emulator"
@@ -653,14 +649,16 @@ msgid "Specifies output sound device or sound card emulator"
msgstr ""
#: gui/options.cpp:773
+#, fuzzy
msgctxt "lowres"
msgid "Preferred Dev.:"
-msgstr ""
+msgstr "Fјretrukken eining:"
#: gui/options.cpp:773
+#, fuzzy
msgctxt "lowres"
msgid "Music Device:"
-msgstr ""
+msgstr "Ingen musikk"
#: gui/options.cpp:800
msgid "AdLib emulator:"
@@ -684,7 +682,7 @@ msgstr ""
#: gui/options.cpp:822
msgid "GM Device:"
-msgstr ""
+msgstr "GM Eining:"
#: gui/options.cpp:822
msgid "Specifies default sound device for General MIDI output"
@@ -696,7 +694,7 @@ msgstr "Ikkje nytt General MIDI musikk"
#: gui/options.cpp:844 gui/options.cpp:910
msgid "Use first available device"
-msgstr ""
+msgstr "Nytt fјrste tilgjengelege eining"
#: gui/options.cpp:856
msgid "SoundFont:"
@@ -725,11 +723,11 @@ msgstr "MIDI gain:"
#: gui/options.cpp:874
msgid "FluidSynth Settings"
-msgstr ""
+msgstr "FluidSynth instillingar"
#: gui/options.cpp:881
msgid "MT-32 Device:"
-msgstr ""
+msgstr "MT-32 Eining:"
#: gui/options.cpp:881
msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
@@ -908,9 +906,8 @@ msgid "Language of ScummVM GUI"
msgstr "Sprхk i ScummVM-GUIet"
#: gui/options.cpp:1366
-#, fuzzy
msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Du mх omstarte ScummVM for at endringane skal skje."
+msgstr "Du mх starte ScummVM pх nytt for at endringane skal tre i kraft."
#: gui/options.cpp:1379
msgid "Select directory for savegames"
@@ -942,11 +939,11 @@ msgstr ""
#: gui/saveload-dialog.cpp:167
msgid "List view"
-msgstr ""
+msgstr "Listevisning"
#: gui/saveload-dialog.cpp:168
msgid "Grid view"
-msgstr ""
+msgstr "Rutenettvisning"
#: gui/saveload-dialog.cpp:211 gui/saveload-dialog.cpp:360
msgid "No date saved"
@@ -986,24 +983,21 @@ msgstr "Ikkje navngjeven speltilstand"
#: gui/saveload-dialog.cpp:548
msgid "Next"
-msgstr ""
+msgstr "Neste"
#: gui/saveload-dialog.cpp:551
msgid "Prev"
-msgstr ""
+msgstr "Forrige"
#: gui/saveload-dialog.cpp:739
-#, fuzzy
msgid "New Save"
-msgstr "Lagre"
+msgstr "Ny Lagring"
#: gui/saveload-dialog.cpp:739
-#, fuzzy
msgid "Create a new save game"
-msgstr "Full speltittel:"
+msgstr "Lag eit nytt lagra spel"
#: gui/saveload-dialog.cpp:868
-#, fuzzy
msgid "Name: "
msgstr "Namn:"
@@ -1026,38 +1020,32 @@ msgid "Disabled GFX"
msgstr "Deaktivert GFX"
#: gui/ThemeEngine.cpp:348
-#, fuzzy
msgid "Standard Renderer"
-msgstr "Standard Teiknar (16bpp)"
+msgstr "Standardteiknar"
#: gui/ThemeEngine.cpp:348 engines/scumm/dialogs.cpp:659
-#, fuzzy
msgid "Standard"
-msgstr "Standard (16bpp)"
+msgstr "Standard"
#: gui/ThemeEngine.cpp:350
-#, fuzzy
msgid "Antialiased Renderer"
-msgstr "Antialiased Teiknar (16bpp)"
+msgstr "Kantutjevna teiknar"
#: gui/ThemeEngine.cpp:350
-#, fuzzy
msgid "Antialiased"
-msgstr "Antialiased (16bpp)"
+msgstr "Kantutjevna"
#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333
msgid "Clear value"
msgstr "Tјm verdi"
#: gui/fluidsynth-dialog.cpp:68
-#, fuzzy
msgid "Reverb"
-msgstr "Aldri"
+msgstr "Romklang"
#: gui/fluidsynth-dialog.cpp:70 gui/fluidsynth-dialog.cpp:102
-#, fuzzy
msgid "Active"
-msgstr " (Aktivt)"
+msgstr "Aktiv"
#: gui/fluidsynth-dialog.cpp:72
msgid "Room:"
@@ -1069,11 +1057,11 @@ msgstr ""
#: gui/fluidsynth-dialog.cpp:86
msgid "Width:"
-msgstr ""
+msgstr "Bredde:"
#: gui/fluidsynth-dialog.cpp:93 gui/fluidsynth-dialog.cpp:111
msgid "Level:"
-msgstr ""
+msgstr "Nivх:"
#: gui/fluidsynth-dialog.cpp:100
msgid "Chorus"
@@ -1081,40 +1069,39 @@ msgstr ""
#: gui/fluidsynth-dialog.cpp:104
msgid "N:"
-msgstr ""
+msgstr "N:"
#: gui/fluidsynth-dialog.cpp:118
-#, fuzzy
msgid "Speed:"
-msgstr "Tale"
+msgstr "Hastighet:"
#: gui/fluidsynth-dialog.cpp:125
msgid "Depth:"
-msgstr ""
+msgstr "Dybde:"
#: gui/fluidsynth-dialog.cpp:132
msgid "Type:"
-msgstr ""
+msgstr "Type:"
#: gui/fluidsynth-dialog.cpp:135
msgid "Sine"
-msgstr ""
+msgstr "Sinus"
#: gui/fluidsynth-dialog.cpp:136
msgid "Triangle"
-msgstr ""
+msgstr "Triangel"
#: gui/fluidsynth-dialog.cpp:140
msgid "Interpolation:"
-msgstr ""
+msgstr "Interpolering:"
#: gui/fluidsynth-dialog.cpp:143
msgid "None (fastest)"
-msgstr ""
+msgstr "Ingen (raskast)"
#: gui/fluidsynth-dialog.cpp:144
msgid "Linear"
-msgstr ""
+msgstr "Linjцr"
#: gui/fluidsynth-dialog.cpp:145
msgid "Fourth-order"
@@ -1126,11 +1113,11 @@ msgstr ""
#: gui/fluidsynth-dialog.cpp:150
msgid "Reset"
-msgstr ""
+msgstr "Nullstill"
#: gui/fluidsynth-dialog.cpp:150
msgid "Reset all FluidSynth settings to their default values."
-msgstr ""
+msgstr "Nullstill alle FluidSynth-instillingar til standardverdiar"
#: gui/fluidsynth-dialog.cpp:217
#, fuzzy
@@ -1175,9 +1162,8 @@ msgid "No error"
msgstr "Ingen feil"
#: common/error.cpp:40
-#, fuzzy
msgid "Game data not found"
-msgstr "Speldata ikkje funne"
+msgstr "Fant ikkje speldata"
#: common/error.cpp:42
msgid "Game id not supported"
@@ -1238,15 +1224,16 @@ msgstr "Ukjend feil"
#: engines/advancedDetector.cpp:317
#, c-format
msgid "The game in '%s' seems to be unknown."
-msgstr ""
+msgstr "Spelet i '%s' ser ut til х vere ukjend."
#: engines/advancedDetector.cpp:318
msgid "Please, report the following data to the ScummVM team along with name"
msgstr ""
+"Vennlegst rapporter fјlgjande data til ScummVM-teamet, saman med namnet"
#: engines/advancedDetector.cpp:320
msgid "of the game you tried to add and its version/language/etc.:"
-msgstr ""
+msgstr "pх spelet du prјvde х leggje til, samt versjon/sprхk/etc.:"
#: engines/dialogs.cpp:85
msgid "~R~esume"
@@ -1273,15 +1260,13 @@ msgid "~A~bout"
msgstr "~O~m"
#: engines/dialogs.cpp:105 engines/dialogs.cpp:181
-#, fuzzy
msgid "~R~eturn to Launcher"
-msgstr "~T~ilbake til oppstarter"
+msgstr "Tilbake til Oppsta~r~tar"
#: engines/dialogs.cpp:107 engines/dialogs.cpp:183
-#, fuzzy
msgctxt "lowres"
msgid "~R~eturn to Launcher"
-msgstr "~T~ilbake til oppstarter"
+msgstr "Tilbake til Oppsta~r~tar"
#: engines/dialogs.cpp:116 engines/agi/saveload.cpp:803
#: engines/cruise/menu.cpp:212 engines/drascula/saveload.cpp:336
@@ -1335,9 +1320,8 @@ msgid "Could not initialize color format."
msgstr ""
#: engines/engine.cpp:253
-#, fuzzy
msgid "Could not switch to video mode: '"
-msgstr "Gjeldende videomodus:"
+msgstr "Kunne ikkje veksle til videomodus: '"
#: engines/engine.cpp:262
#, fuzzy
@@ -1379,10 +1363,13 @@ msgid ""
"ScummVM. As such, it is likely to be unstable, and any saves you make might "
"not work in future versions of ScummVM."
msgstr ""
+"ХTVARING: Spelet du forsјker х starte er ikkje fullt ut stјtta av ScummVM "
+"ennх. Derfor er det sannsynleg at det er ustabilt, og det er mogleg at lagra "
+"spel ikkje vil fungere med fremtidige versjonar av ScummVM."
#: engines/engine.cpp:452
msgid "Start anyway"
-msgstr ""
+msgstr "Start allikevel"
#: audio/fmopl.cpp:50
msgid "MAME OPL emulator"
@@ -1448,7 +1435,7 @@ msgstr "C64 Lydemulator"
#: audio/softsynth/mt32.cpp:200
#, fuzzy
msgid "Initializing MT-32 Emulator"
-msgstr "Initialiserar MT-32-emulator"
+msgstr "MT-32 Emulator"
#: audio/softsynth/mt32.cpp:426
msgid "MT-32 Emulator"
@@ -1477,7 +1464,7 @@ msgstr " (Aktivt)"
#: backends/keymapper/remap-dialog.cpp:107
msgid " (Blocked)"
-msgstr ""
+msgstr " (Blokkert)"
#: backends/keymapper/remap-dialog.cpp:120
msgid " (Global)"
@@ -1546,11 +1533,11 @@ msgstr "Hovudskjermsskalering:"
#: backends/platform/ds/arm9/source/dsoptions.cpp:107
msgid "Hardware scale (fast, but low quality)"
-msgstr ""
+msgstr "Maskinvareskalering (rask, men lav kvalitet)"
#: backends/platform/ds/arm9/source/dsoptions.cpp:108
msgid "Software scale (good quality, but slower)"
-msgstr ""
+msgstr "Programvareskalering (god kvalitet, men treigare)"
#: backends/platform/ds/arm9/source/dsoptions.cpp:109
msgid "Unscaled (you must scroll left and right)"
@@ -1577,16 +1564,18 @@ msgid "Mouse-click-and-drag mode disabled."
msgstr ""
#: backends/platform/iphone/osys_events.cpp:313
+#, fuzzy
msgid "Touchpad mode enabled."
-msgstr ""
+msgstr "~O~vergangar aktivert"
#: backends/platform/iphone/osys_events.cpp:315
+#, fuzzy
msgid "Touchpad mode disabled."
-msgstr ""
+msgstr "Deaktivert GFX"
#: backends/platform/maemo/maemo.cpp:209
msgid "Click Mode"
-msgstr ""
+msgstr "Klikkmodus"
#: backends/platform/maemo/maemo.cpp:215
#: backends/platform/symbian/src/SymbianActions.cpp:42
@@ -1597,9 +1586,8 @@ msgid "Left Click"
msgstr "Venstreklikk"
#: backends/platform/maemo/maemo.cpp:218
-#, fuzzy
msgid "Middle Click"
-msgstr "Midtre venstre gjenstand"
+msgstr "Midtklikk"
#: backends/platform/maemo/maemo.cpp:221
#: backends/platform/symbian/src/SymbianActions.cpp:43
@@ -1609,26 +1597,25 @@ msgid "Right Click"
msgstr "Hјgreklikk"
#: backends/platform/sdl/macosx/appmenu_osx.mm:77
-#, fuzzy
msgid "Hide ScummVM"
-msgstr "Avslutt ScummVM"
+msgstr "Skjul ScummVM"
#: backends/platform/sdl/macosx/appmenu_osx.mm:82
msgid "Hide Others"
-msgstr ""
+msgstr "Skjul Andre"
#: backends/platform/sdl/macosx/appmenu_osx.mm:87
msgid "Show All"
-msgstr ""
+msgstr "Syn alle"
#: backends/platform/sdl/macosx/appmenu_osx.mm:109
#: backends/platform/sdl/macosx/appmenu_osx.mm:120
msgid "Window"
-msgstr ""
+msgstr "Vindu"
#: backends/platform/sdl/macosx/appmenu_osx.mm:114
msgid "Minimize"
-msgstr ""
+msgstr "Minimer"
#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:46
msgid "Normal (no scaling)"
@@ -1642,31 +1629,28 @@ msgstr "Normal (inga skalering)"
#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2148
#, fuzzy
msgid "Enabled aspect ratio correction"
-msgstr "Veksle aspekt-korrigering"
+msgstr "Aspekt-korrigering"
#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2154
#, fuzzy
msgid "Disabled aspect ratio correction"
-msgstr "Veksle aspekt-korrigering"
+msgstr "Aspekt-korrigering"
#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2209
-#, fuzzy
msgid "Active graphics filter:"
-msgstr "Veksle grafikkfiltre"
+msgstr "Aktivt grafikkfilter:"
#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2251
-#, fuzzy
msgid "Windowed mode"
-msgstr "Teiknemodus:"
+msgstr "Vindusmodus"
#: backends/graphics/opengl/opengl-graphics.cpp:118
-#, fuzzy
msgid "OpenGL"
-msgstr "Хpne"
+msgstr "OpenGL"
#: backends/graphics/opengl/opengl-graphics.cpp:119
msgid "OpenGL (No filtering)"
-msgstr ""
+msgstr "OpenGL (Ingen filtrering)"
#: backends/platform/symbian/src/SymbianActions.cpp:38
#: backends/platform/wince/CEActionsSmartphone.cpp:39
@@ -1704,8 +1688,9 @@ msgid "Swap character"
msgstr ""
#: backends/platform/symbian/src/SymbianActions.cpp:49
+#, fuzzy
msgid "Skip text"
-msgstr ""
+msgstr "Hopp over tekstlinje"
#: backends/platform/symbian/src/SymbianActions.cpp:51
msgid "Fast mode"
@@ -1730,7 +1715,7 @@ msgstr "Globalmeny"
#: backends/platform/symbian/src/SymbianActions.cpp:55
msgid "Virtual keyboard"
-msgstr ""
+msgstr "Virtuelt tastatur"
#: backends/platform/symbian/src/SymbianActions.cpp:56
msgid "Key mapper"
@@ -1765,8 +1750,9 @@ msgid "Input"
msgstr "Input"
#: backends/platform/wii/options.cpp:74
+#, fuzzy
msgid "GC Pad sensitivity:"
-msgstr ""
+msgstr "Sensitivitet"
#: backends/platform/wii/options.cpp:80
msgid "GC Pad acceleration:"
@@ -1801,8 +1787,9 @@ msgid "Server:"
msgstr "Teinar:"
#: backends/platform/wii/options.cpp:110
+#, fuzzy
msgid "Share:"
-msgstr ""
+msgstr ", delt ressurs ikkje montert"
#: backends/platform/wii/options.cpp:114
msgid "Username:"
@@ -1845,8 +1832,9 @@ msgid "Network up"
msgstr "Nettverket er oppe"
#: backends/platform/wii/options.cpp:166
+#, fuzzy
msgid ", error while mounting the share"
-msgstr ""
+msgstr "Feil under montering av DVD"
#: backends/platform/wii/options.cpp:168
msgid ", share not mounted"
@@ -1859,7 +1847,7 @@ msgstr "Nettverket er nede"
#: backends/platform/wii/options.cpp:178
#, fuzzy
msgid "Initializing network"
-msgstr "Initialiserer nettverk"
+msgstr "Init nettverk"
#: backends/platform/wii/options.cpp:182
#, fuzzy
@@ -1869,7 +1857,7 @@ msgstr "Initialiserer nettverk"
#: backends/platform/wii/options.cpp:186
#, fuzzy, c-format
msgid "Network not initialized (%d)"
-msgstr "Nettverk ikkje initialisert (%d)"
+msgstr "Init nettverk"
#: backends/platform/wince/CEActionsPocket.cpp:46
msgid "Hide Toolbar"
@@ -1987,31 +1975,30 @@ msgstr ""
"inventaret"
#: backends/events/default/default-events.cpp:196
-#, fuzzy
msgid "Do you really want to return to the Launcher?"
-msgstr "Vil du verkeleg slette det lagra spelet?"
+msgstr "Vil du verkeleg gх tilbake til oppstartaren?"
#: backends/events/default/default-events.cpp:196
-#, fuzzy
msgid "Launcher"
-msgstr "Slх"
+msgstr "Oppstartar"
#: backends/events/default/default-events.cpp:218
-#, fuzzy
msgid "Do you really want to quit?"
-msgstr "Vil du avslutte?"
+msgstr "Vil du verkeleg avslutte?"
#: backends/events/gph/gph-events.cpp:386
#: backends/events/gph/gph-events.cpp:429
#: backends/events/openpandora/op-events.cpp:168
+#, fuzzy
msgid "Touchscreen 'Tap Mode' - Left Click"
-msgstr ""
+msgstr "Tap for venstre-klikk, dobbelt-tap for hјgre-klikk"
#: backends/events/gph/gph-events.cpp:388
#: backends/events/gph/gph-events.cpp:431
#: backends/events/openpandora/op-events.cpp:170
+#, fuzzy
msgid "Touchscreen 'Tap Mode' - Right Click"
-msgstr ""
+msgstr "Tap for venstre-klikk, dobbelt-tap for hјgre-klikk"
#: backends/events/gph/gph-events.cpp:390
#: backends/events/gph/gph-events.cpp:433
@@ -2020,13 +2007,13 @@ msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
msgstr ""
#: backends/events/gph/gph-events.cpp:410
-#, fuzzy
msgid "Maximum Volume"
-msgstr "Volum"
+msgstr "Maks Volum"
#: backends/events/gph/gph-events.cpp:412
+#, fuzzy
msgid "Increasing Volume"
-msgstr ""
+msgstr "Volum"
#: backends/events/gph/gph-events.cpp:418
#, fuzzy
@@ -2034,8 +2021,9 @@ msgid "Minimal Volume"
msgstr "Volum"
#: backends/events/gph/gph-events.cpp:420
+#, fuzzy
msgid "Decreasing Volume"
-msgstr ""
+msgstr "Volum"
#: backends/events/openpandora/op-events.cpp:174
msgid "Touchscreen 'Tap Mode' - Hover (DPad Clicks)"
@@ -2043,7 +2031,7 @@ msgstr ""
#: backends/updates/macosx/macosx-updates.mm:67
msgid "Check for Updates..."
-msgstr ""
+msgstr "SJх etter oppdateringar..."
#: backends/platform/tizen/form.cpp:263
#, fuzzy
@@ -2057,35 +2045,35 @@ msgstr "Tale"
#: backends/platform/tizen/form.cpp:294
msgid "Escape Key"
-msgstr ""
+msgstr "Escape Tast"
#: backends/platform/tizen/form.cpp:299
-#, fuzzy
msgid "Game Menu"
-msgstr "Spel"
+msgstr "Spelmeny"
#: backends/platform/tizen/form.cpp:304
-#, fuzzy
msgid "Show Keypad"
-msgstr "Syn tastatur"
+msgstr "Syn taltastatur"
#: backends/platform/tizen/form.cpp:309
+#, fuzzy
msgid "Control Mouse"
-msgstr ""
+msgstr "Musklikk"
#: backends/events/maemosdl/maemosdl-events.cpp:192
+#, fuzzy
msgid "Clicking Enabled"
-msgstr ""
+msgstr "~O~vergangar aktivert"
#: backends/events/maemosdl/maemosdl-events.cpp:192
msgid "Clicking Disabled"
-msgstr ""
+msgstr "Klikking Deaktivert"
#: engines/agi/detection.cpp:142 engines/drascula/detection.cpp:302
#: engines/dreamweb/detection.cpp:47 engines/neverhood/detection.cpp:160
#: engines/sci/detection.cpp:394 engines/toltecs/detection.cpp:186
msgid "Use original save/load screens"
-msgstr ""
+msgstr "Nytt opprinnelege skjermar for lagring/lasting"
#: engines/agi/detection.cpp:143 engines/drascula/detection.cpp:303
#: engines/dreamweb/detection.cpp:48 engines/neverhood/detection.cpp:161
@@ -2157,15 +2145,15 @@ msgstr ""
#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1470
#: engines/tinsel/saveload.cpp:532
msgid "Failed to load game state from file."
-msgstr ""
+msgstr "Kunne ikkje laste lagra spel frх fil."
#: engines/gob/inter_v2.cpp:1540 engines/tinsel/saveload.cpp:545
msgid "Failed to save game state to file."
-msgstr ""
+msgstr "Klarte ikkje lagre speltilstand til fil."
#: engines/gob/inter_v5.cpp:107
msgid "Failed to delete file."
-msgstr ""
+msgstr "Klarte ikkje slette fil."
#: engines/groovie/detection.cpp:312
#, fuzzy
@@ -2174,27 +2162,28 @@ msgstr "Rask modus"
#: engines/groovie/detection.cpp:313
msgid "Play movies at an increased speed"
-msgstr ""
+msgstr "Spel filmar med auka hastighet"
#: engines/groovie/script.cpp:399
#, fuzzy
msgid "Failed to save game"
-msgstr "Full speltittel:"
+msgstr "Lagra spel:"
#. I18N: Studio audience adds an applause and cheering sounds whenever
#. Malcolm makes a joke.
#: engines/kyra/detection.cpp:62
msgid "Studio audience"
-msgstr ""
+msgstr "Studiopublikum"
#: engines/kyra/detection.cpp:63
msgid "Enable studio audience"
-msgstr ""
+msgstr "Aktiver studiopublikum"
#. I18N: This option allows the user to skip text and cutscenes.
#: engines/kyra/detection.cpp:73
+#, fuzzy
msgid "Skip support"
-msgstr ""
+msgstr "Hopp over"
#: engines/kyra/detection.cpp:74
msgid "Allow text and cutscenes to be skipped"
@@ -2202,13 +2191,14 @@ msgstr ""
#. I18N: Helium mode makes people sound like they've inhaled Helium.
#: engines/kyra/detection.cpp:84
+#, fuzzy
msgid "Helium mode"
-msgstr ""
+msgstr "Grafikkmodus:"
#: engines/kyra/detection.cpp:85
#, fuzzy
msgid "Enable helium mode"
-msgstr "Aktiver Roland GS-modus"
+msgstr "Grafikkmodus:"
#. I18N: When enabled, this option makes scrolling smoother when
#. changing from one screen to another.
@@ -2242,28 +2232,32 @@ msgid "Enable hit point bar graphs"
msgstr ""
#: engines/kyra/lol.cpp:478
+#, fuzzy
msgid "Attack 1"
-msgstr ""
+msgstr "byttast 7, 4, og 1 med"
#: engines/kyra/lol.cpp:479
msgid "Attack 2"
msgstr ""
#: engines/kyra/lol.cpp:480
+#, fuzzy
msgid "Attack 3"
-msgstr ""
+msgstr "9, 6, og 3, henhaldsvis."
#: engines/kyra/lol.cpp:481
msgid "Move Forward"
msgstr ""
#: engines/kyra/lol.cpp:482
+#, fuzzy
msgid "Move Back"
-msgstr ""
+msgstr "Bakoversteg"
#: engines/kyra/lol.cpp:483
+#, fuzzy
msgid "Slide Left"
-msgstr ""
+msgstr "Venstre"
#: engines/kyra/lol.cpp:484
#, fuzzy
@@ -2273,12 +2267,12 @@ msgstr "Hјgre"
#: engines/kyra/lol.cpp:485 engines/pegasus/pegasus.cpp:2509
#, fuzzy
msgid "Turn Left"
-msgstr "Slх av"
+msgstr "Slх pх"
#: engines/kyra/lol.cpp:486 engines/pegasus/pegasus.cpp:2510
#, fuzzy
msgid "Turn Right"
-msgstr "Peikar hјgre"
+msgstr "Slх pх"
#: engines/kyra/lol.cpp:487
#, fuzzy
@@ -2286,9 +2280,8 @@ msgid "Rest"
msgstr "Gjenopprett"
#: engines/kyra/lol.cpp:488
-#, fuzzy
msgid "Options"
-msgstr "~V~al"
+msgstr "Val"
#: engines/kyra/lol.cpp:489
#, fuzzy
@@ -2315,17 +2308,17 @@ msgstr "~O~vergangar aktivert"
#. I18N: Drop book page
#: engines/mohawk/dialogs.cpp:95
+#, fuzzy
msgid "~D~rop Page"
-msgstr ""
+msgstr "Sјkt i %d mappar ..."
#: engines/mohawk/dialogs.cpp:99
msgid "~S~how Map"
-msgstr ""
+msgstr "~S~yn Kart"
#: engines/mohawk/dialogs.cpp:105
-#, fuzzy
msgid "~M~ain Menu"
-msgstr "ScummVM Hovudmeny"
+msgstr "Hoved~m~eny"
#: engines/mohawk/dialogs.cpp:168
msgid "~W~ater Effect Enabled"
@@ -2353,16 +2346,16 @@ msgid ""
"Can't save game in slot %i\n"
"\n"
msgstr ""
+"Kan ikkje lagre spel i spor %i\n"
+"\n"
#: engines/parallaction/saveload.cpp:204
-#, fuzzy
msgid "Loading game..."
-msgstr "Хpne spel:"
+msgstr "Lastar spel..."
#: engines/parallaction/saveload.cpp:219
-#, fuzzy
msgid "Saving game..."
-msgstr "Lagra spel:"
+msgstr "Lagrar spel..."
#: engines/parallaction/saveload.cpp:272
msgid ""
@@ -2388,7 +2381,7 @@ msgstr ""
#: engines/pegasus/pegasus.cpp:714
msgid "Invalid save file name"
-msgstr ""
+msgstr "Ugyldig namn for lagra spel"
#: engines/pegasus/pegasus.cpp:2507
msgid "Up/Zoom In/Move Forward/Open Doors"
@@ -2397,7 +2390,7 @@ msgstr ""
#: engines/pegasus/pegasus.cpp:2508
#, fuzzy
msgid "Down/Zoom Out"
-msgstr "Zoom opp"
+msgstr "Zoom ned"
#: engines/pegasus/pegasus.cpp:2511
msgid "Display/Hide Inventory Tray"
@@ -2408,8 +2401,9 @@ msgid "Display/Hide Biochip Tray"
msgstr ""
#: engines/pegasus/pegasus.cpp:2513
+#, fuzzy
msgid "Action/Select"
-msgstr ""
+msgstr "Vel ei handling, og klikk 'Kople'"
#: engines/pegasus/pegasus.cpp:2514
msgid "Toggle Center Data Display"
@@ -2417,15 +2411,15 @@ msgstr ""
#: engines/pegasus/pegasus.cpp:2515
msgid "Display/Hide Info Screen"
-msgstr ""
+msgstr "Skjul/Vis infoskjerm"
#: engines/pegasus/pegasus.cpp:2516
msgid "Display/Hide Pause Menu"
-msgstr ""
+msgstr "Skjul/Vis pausemeny"
#: engines/pegasus/pegasus.cpp:2517
msgid "???"
-msgstr ""
+msgstr "???"
#: engines/sci/detection.cpp:374
msgid "EGA undithering"
@@ -2437,7 +2431,7 @@ msgstr ""
#: engines/sci/detection.cpp:384
msgid "Prefer digital sound effects"
-msgstr ""
+msgstr "Foretrekk digitale lydeffekter"
#: engines/sci/detection.cpp:385
msgid "Prefer digital sound effects instead of synthesized ones"
@@ -2445,7 +2439,7 @@ msgstr ""
#: engines/sci/detection.cpp:404
msgid "Use IMF/Yamaha FB-01 for MIDI output"
-msgstr ""
+msgstr "Nytt IMF/Yamaha FB-01 til MIDI-output"
#: engines/sci/detection.cpp:405
msgid ""
@@ -2455,30 +2449,29 @@ msgstr ""
#: engines/sci/detection.cpp:415
msgid "Use CD audio"
-msgstr ""
+msgstr "Nytt CD-lyd"
#: engines/sci/detection.cpp:416
msgid "Use CD audio instead of in-game audio, if available"
-msgstr ""
+msgstr "Nytt CD-lyd istaden for spellyd, om den er tilgjengeleg"
#: engines/sci/detection.cpp:426
msgid "Use Windows cursors"
-msgstr ""
+msgstr "Nytt Windospeikarar"
#: engines/sci/detection.cpp:427
msgid ""
"Use the Windows cursors (smaller and monochrome) instead of the DOS ones"
-msgstr ""
+msgstr "Nytt windowspeikarane (mindre og monokrome) istaden for DOS-peikarane"
#: engines/sci/detection.cpp:437
-#, fuzzy
msgid "Use silver cursors"
-msgstr "Vanleg peikar"
+msgstr "Nytt sјlvpeikarar"
#: engines/sci/detection.cpp:438
msgid ""
"Use the alternate set of silver cursors, instead of the normal golden ones"
-msgstr ""
+msgstr "Nytt det alternative settet med sјlvpeikarar, istaden for dei gylne"
#: engines/scumm/dialogs.cpp:176
#, c-format
@@ -2497,64 +2490,63 @@ msgstr ""
#: engines/scumm/dialogs.cpp:179
msgid "Game Paused. Press SPACE to Continue."
-msgstr ""
+msgstr "Spelet er pausa. Trykk MELLOMROM for х fortsette."
#. I18N: You may specify 'Yes' symbol at the end of the line, like this:
#. "Moechten Sie wirklich neu starten? (J/N)J"
#. Will react to J as 'Yes'
#: engines/scumm/dialogs.cpp:183
-#, fuzzy
msgid "Are you sure you want to restart? (Y/N)"
-msgstr "Er du sikker pх at du vil avslutte?"
+msgstr "Er du sikker pх at du vil starte pх nytt (Y/N)?"
#. I18N: you may specify 'Yes' symbol at the end of the line. See previous comment
#: engines/scumm/dialogs.cpp:185
-#, fuzzy
msgid "Are you sure you want to quit? (Y/N)"
-msgstr "Er du sikker pх at du vil avslutte?"
+msgstr "Er du sikker pх at du vil avslutte (Y/N)?"
#: engines/scumm/dialogs.cpp:190
msgid "Play"
-msgstr ""
+msgstr "Spel"
#: engines/scumm/dialogs.cpp:194
+#, fuzzy
msgid "Insert save/load game disk"
-msgstr ""
+msgstr "Vil du хpne eller lagre spelet?"
#: engines/scumm/dialogs.cpp:195
msgid "You must enter a name"
-msgstr ""
+msgstr "Du mх skrive eit namn"
#: engines/scumm/dialogs.cpp:196
+#, fuzzy
msgid "The game was NOT saved (disk full?)"
-msgstr ""
+msgstr "Full speltittel:"
#: engines/scumm/dialogs.cpp:197
msgid "The game was NOT loaded"
-msgstr ""
+msgstr "Spelet vart IKKJE lasta"
#: engines/scumm/dialogs.cpp:198
#, c-format
msgid "Saving '%s'"
-msgstr ""
+msgstr "Lagrar '%s'"
#: engines/scumm/dialogs.cpp:199
#, c-format
msgid "Loading '%s'"
-msgstr ""
+msgstr "Lastar '%s'"
#: engines/scumm/dialogs.cpp:200
msgid "Name your SAVE game"
-msgstr ""
+msgstr "Namngi det LAGRA spelet"
#: engines/scumm/dialogs.cpp:201
-#, fuzzy
msgid "Select a game to LOAD"
-msgstr "Vel eit tema"
+msgstr "Vel eit spel for LASTING"
#: engines/scumm/dialogs.cpp:202
msgid "Game title)"
-msgstr ""
+msgstr "Speltittel)"
#. I18N: Previous page button
#: engines/scumm/dialogs.cpp:288
@@ -2567,33 +2559,30 @@ msgid "~N~ext"
msgstr "~N~este"
#: engines/scumm/dialogs.cpp:598
-#, fuzzy
msgid "Speech Only"
-msgstr "Tale"
+msgstr "Berre Tale"
#: engines/scumm/dialogs.cpp:599
-#, fuzzy
msgid "Speech and Subtitles"
-msgstr "Teksting"
+msgstr "Tale og undertekstar"
#: engines/scumm/dialogs.cpp:600
-#, fuzzy
msgid "Subtitles Only"
-msgstr "Teksting"
+msgstr "Berre undertekstar"
#: engines/scumm/dialogs.cpp:608
-#, fuzzy
msgctxt "lowres"
msgid "Speech & Subs"
-msgstr "Tale"
+msgstr "Tekst & Tale"
#: engines/scumm/dialogs.cpp:654
+#, fuzzy
msgid "Select a Proficiency Level."
-msgstr ""
+msgstr "Gх til forrige mappenivх"
#: engines/scumm/dialogs.cpp:656
msgid "Refer to your Loom(TM) manual for help."
-msgstr ""
+msgstr "Sjх i Loom(TM)-manualen for hjelp."
#: engines/scumm/dialogs.cpp:660
msgid "Practice"
@@ -2601,7 +2590,7 @@ msgstr ""
#: engines/scumm/dialogs.cpp:661
msgid "Expert"
-msgstr ""
+msgstr "Ekspert"
#: engines/scumm/help.cpp:73
msgid "Common keyboard commands:"
@@ -2736,7 +2725,7 @@ msgstr " dei kan forхrsake krцsj og"
#: engines/scumm/help.cpp:110
#, fuzzy
msgid " or incorrect game behavior."
-msgstr " feilaktig speloppfјrsel."
+msgstr "Spel"
#: engines/scumm/help.cpp:114
msgid "Spinning drafts on the keyboard:"
@@ -3139,6 +3128,8 @@ msgid ""
"Unable to find \"sky.cpt\" file!\n"
"Please download it from www.scummvm.org"
msgstr ""
+"Kunne ikkje finne fila \"sky.cpt\"!\n"
+"Venlegst last den ned frх www.scummvm.org"
#: engines/sky/compact.cpp:141
msgid ""
@@ -3148,11 +3139,11 @@ msgstr ""
#: engines/sky/detection.cpp:44
msgid "Floppy intro"
-msgstr ""
+msgstr "Diskettintro"
#: engines/sky/detection.cpp:45
msgid "Use the floppy version's intro (CD version only)"
-msgstr ""
+msgstr "Nytt diskettversjonens хpning (Kun CD-versjon)"
#: engines/sword1/animation.cpp:524
#, c-format
@@ -3168,9 +3159,9 @@ msgid "MPEG-2 cutscenes found but ScummVM has been built without MPEG-2"
msgstr ""
#: engines/sword1/animation.cpp:568 engines/sword2/animation.cpp:470
-#, c-format
+#, fuzzy, c-format
msgid "Cutscene '%s' not found"
-msgstr ""
+msgstr "Hopp over cutscene"
#: engines/sword1/control.cpp:863
msgid ""
@@ -3192,15 +3183,15 @@ msgstr ""
#: engines/sword1/control.cpp:1235
msgid "Keep the old one"
-msgstr ""
+msgstr "Ta vare pх den gamle"
#: engines/sword1/control.cpp:1235
msgid "Keep the new one"
-msgstr ""
+msgstr "Ta vare pх den nye"
#: engines/sword1/logic.cpp:1633
msgid "This is the end of the Broken Sword 1 Demo"
-msgstr ""
+msgstr "Dette er slutten pх Broken Sword 1-demoen"
#: engines/sword2/animation.cpp:425
msgid ""
@@ -3213,8 +3204,9 @@ msgid ""
msgstr ""
#: engines/sword2/sword2.cpp:79
+#, fuzzy
msgid "Show object labels"
-msgstr ""
+msgstr "Objekt"
#: engines/sword2/sword2.cpp:80
msgid "Show labels for objects on mouse hover"
@@ -3223,7 +3215,7 @@ msgstr ""
#: engines/teenagent/resources.cpp:95
msgid ""
"You're missing the 'teenagent.dat' file. Get it from the ScummVM website"
-msgstr ""
+msgstr "Du mangler fila 'teenagent.dat'. Skaff den frх ScummVM-heimesida"
#: engines/teenagent/resources.cpp:116
msgid ""
diff --git a/po/pl_PL.po b/po/pl_PL.po
index e42a0a8356..9f193d36b4 100644
--- a/po/pl_PL.po
+++ b/po/pl_PL.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: ScummVM 1.3.0\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
"POT-Creation-Date: 2014-06-07 23:06+0100\n"
-"PO-Revision-Date: 2013-05-22 14:26+0100\n"
+"PO-Revision-Date: 2014-07-02 12:28+0100\n"
"Last-Translator: MichaГ ZiБbkowski <mziab@o2.pl>\n"
"Language-Team: Grajpopolsku.pl <grajpopolsku@gmail.com>\n"
"Language: Polski\n"
@@ -508,9 +508,8 @@ msgid "Do you really want to remove this game configuration?"
msgstr "Na pewno chcesz usunБц tъ grъ z konfiguracji?"
#: gui/launcher.cpp:999
-#, fuzzy
msgid "Do you want to load savegame?"
-msgstr "Chcesz wczytaц bБdМ zapisaц grъ?"
+msgstr "Chcesz wczytaц zapis stanu gry?"
#: gui/launcher.cpp:1048
msgid "This game does not support loading games from the launcher."
@@ -750,15 +749,16 @@ msgid "True Roland MT-32 (no GM emulation)"
msgstr "Prawdziwy Roland MT-32 (brak emulacji GM)"
#: gui/options.cpp:891
-#, fuzzy
msgid "Roland GS Device (enable MT-32 mappings)"
-msgstr "Roland w trybie GS (wyГБcz mapowanie GM)"
+msgstr "Roland w trybie GS (wГБcz mapowanie MT-32)"
#: gui/options.cpp:891
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
msgstr ""
+"Zaznacz, jeЖli chcesz wГБczyц Гatki mapowania pozwalajБce na emulacjъ MT-32 "
+"na urzБdzeniu Roland GS"
#: gui/options.cpp:900
msgid "Don't use Roland MT-32 music"
@@ -1021,23 +1021,20 @@ msgid "Disabled GFX"
msgstr "WyГБczona grafika"
#: gui/ThemeEngine.cpp:348
-#, fuzzy
msgid "Standard Renderer"
-msgstr "Standardowy renderer (16bpp)"
+msgstr "Standardowy renderer"
#: gui/ThemeEngine.cpp:348 engines/scumm/dialogs.cpp:659
msgid "Standard"
msgstr "Standardowy"
#: gui/ThemeEngine.cpp:350
-#, fuzzy
msgid "Antialiased Renderer"
-msgstr "WygГadzany renderer (16bpp)"
+msgstr "WygГadzany renderer"
#: gui/ThemeEngine.cpp:350
-#, fuzzy
msgid "Antialiased"
-msgstr "WygГadzany (16bpp)"
+msgstr "WygГadzany"
#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333
msgid "Clear value"
@@ -1662,13 +1659,12 @@ msgid "Windowed mode"
msgstr "Okno"
#: backends/graphics/opengl/opengl-graphics.cpp:118
-#, fuzzy
msgid "OpenGL"
-msgstr "Otwѓrz"
+msgstr "OpenGL"
#: backends/graphics/opengl/opengl-graphics.cpp:119
msgid "OpenGL (No filtering)"
-msgstr ""
+msgstr "OpenGL (bez filtrowania)"
#: backends/platform/symbian/src/SymbianActions.cpp:38
#: backends/platform/wince/CEActionsSmartphone.cpp:39
@@ -2330,19 +2326,19 @@ msgstr "~E~fekty wody wГБczone"
#: engines/neverhood/detection.cpp:167
msgid "Skip the Hall of Records storyboard scenes"
-msgstr ""
+msgstr "Pomiё scenki storyboardowe w Hali Rekordѓw"
#: engines/neverhood/detection.cpp:168
msgid "Allows the player to skip past the Hall of Records storyboard scenes"
-msgstr ""
+msgstr "Pozwala graczowi na pomijanie scenek storyboardowych w Hali Rekordѓw"
#: engines/neverhood/detection.cpp:174
msgid "Scale the making of videos to full screen"
-msgstr ""
+msgstr "Skaluj filmy making of na peГny ekran"
#: engines/neverhood/detection.cpp:175
msgid "Scale the making of videos, so that they use the whole screen"
-msgstr ""
+msgstr "Skaluj filmy making of, by wypeГniaГy caГy ekran"
#: engines/parallaction/saveload.cpp:133
#, c-format
@@ -3175,11 +3171,10 @@ msgstr ""
"obsГugi zlib"
#: engines/sword1/animation.cpp:561
-#, fuzzy
msgid "MPEG-2 cutscenes found but ScummVM has been built without MPEG-2"
msgstr ""
-"Znaleziono przerywniki PSX, ale ScummVM jest skompilowany bez obsГugi trybu "
-"RGB"
+"Znaleziono przerywniki w formacie MPEG-2, ale ScummVM jest skompilowany bez "
+"obsГugi tego formatu"
#: engines/sword1/animation.cpp:568 engines/sword2/animation.cpp:470
#, c-format
@@ -3233,12 +3228,11 @@ msgstr ""
"RGB"
#: engines/sword2/animation.cpp:461
-#, fuzzy
msgid ""
"MPEG-2 cutscenes found but ScummVM has been built without MPEG-2 support"
msgstr ""
-"Znaleziono przerywniki w formacie DXA, ale ScummVM jest skompilowany bez "
-"obsГugi zlib"
+"Znaleziono przerywniki w formacie MPEG-2, ale ScummVM jest skompilowany bez "
+"obsГugi tego formatu"
#: engines/sword2/sword2.cpp:79
msgid "Show object labels"
diff --git a/po/ru_RU.po b/po/ru_RU.po
index 4bade1e5e8..182ead66c5 100644
--- a/po/ru_RU.po
+++ b/po/ru_RU.po
@@ -1,14 +1,14 @@
# Russian translation for ScummVM.
# Copyright (C) 2010-2014 ScummVM Team
# This file is distributed under the same license as the ScummVM package.
-# Eugene Sandulenko <sev@scummvm.org>, 2010`
+# Eugene Sandulenko <sev@scummvm.org>, 2010-2014
#
msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.3.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
"POT-Creation-Date: 2014-06-07 23:06+0100\n"
-"PO-Revision-Date: 2013-05-08 22:24+0300\n"
+"PO-Revision-Date: 2014-07-02 17:20+0300\n"
"Last-Translator: Eugene Sandulenko <sev@scummvm.org>\n"
"Language-Team: Russian\n"
"Language: Russian\n"
@@ -426,7 +426,7 @@ msgstr "~У~далить игру"
#: gui/launcher.cpp:642 gui/launcher.cpp:649
msgid "Remove game from the list. The game data files stay intact"
-msgstr "Удалить игру из списка. Не удаляет игру с жесткого диска"
+msgstr "Удалить игру из списка. Не удаляет игру с носителя"
#: gui/launcher.cpp:645
msgctxt "lowres"
@@ -509,9 +509,8 @@ msgid "Do you really want to remove this game configuration?"
msgstr "Вы действительно хотите удалить настройки для этой игры?"
#: gui/launcher.cpp:999
-#, fuzzy
msgid "Do you want to load savegame?"
-msgstr "Вы хотите загрузить либо сохранить игру?"
+msgstr "Вы хотите загрузить игру?"
#: gui/launcher.cpp:1048
msgid "This game does not support loading games from the launcher."
@@ -592,7 +591,7 @@ msgstr "Не задан"
#: gui/options.cpp:389
msgid "Failed to apply some of the graphic options changes:"
-msgstr "Не удалось применить изменения некторых графических настроек:"
+msgstr "Не удалось применить изменения некоторых графических настроек:"
#: gui/options.cpp:401
msgid "the video mode could not be changed."
@@ -701,7 +700,8 @@ msgstr "SoundFont:"
#: gui/options.cpp:856 gui/options.cpp:858 gui/options.cpp:859
msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
msgstr ""
-"SoundFontы поддерживаются некоторыми звуковыми картами, Fluidsynth и Timidity"
+"SoundFont'ы поддерживаются некоторыми звуковыми картами, Fluidsynth и "
+"Timidity"
#: gui/options.cpp:858
msgctxt "lowres"
@@ -714,7 +714,7 @@ msgstr "Смешанный режим AdLib/MIDI"
#: gui/options.cpp:864
msgid "Use both MIDI and AdLib sound generation"
-msgstr "Использовать и MIDI и AdLib для генерации звука"
+msgstr "Использовать и MIDI, и AdLib для генерации звука"
#: gui/options.cpp:867
msgid "MIDI gain:"
@@ -752,15 +752,16 @@ msgid "True Roland MT-32 (no GM emulation)"
msgstr "Настоящий Roland MT-32 (без эмуляции GM)"
#: gui/options.cpp:891
-#, fuzzy
msgid "Roland GS Device (enable MT-32 mappings)"
-msgstr "Режим Roland GS (запретить маппинг GM)"
+msgstr "Устройство Roland GS (разрешить маппинг MT-32)"
#: gui/options.cpp:891
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
msgstr ""
+"Отметьте, если хотите разрешить маппинг для эмуляции MT-32 на устройстве "
+"Roland GS"
#: gui/options.cpp:900
msgid "Don't use Roland MT-32 music"
@@ -1025,23 +1026,20 @@ msgid "Disabled GFX"
msgstr "Без графики"
#: gui/ThemeEngine.cpp:348
-#, fuzzy
msgid "Standard Renderer"
-msgstr "Стандартный растеризатор (16bpp)"
+msgstr "Стандартный растеризатор"
#: gui/ThemeEngine.cpp:348 engines/scumm/dialogs.cpp:659
msgid "Standard"
msgstr "Стандартный"
#: gui/ThemeEngine.cpp:350
-#, fuzzy
msgid "Antialiased Renderer"
-msgstr "Растеризатор со сглаживанием (16bpp)"
+msgstr "Растеризатор со сглаживанием"
#: gui/ThemeEngine.cpp:350
-#, fuzzy
msgid "Antialiased"
-msgstr "Растеризатор со сглаживанием (16bpp)"
+msgstr "Со сглаживанием"
#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333
msgid "Clear value"
@@ -1052,7 +1050,6 @@ msgid "Reverb"
msgstr "Реверберация"
#: gui/fluidsynth-dialog.cpp:70 gui/fluidsynth-dialog.cpp:102
-#, fuzzy
msgid "Active"
msgstr "Активно"
@@ -1082,7 +1079,7 @@ msgstr "N:"
#: gui/fluidsynth-dialog.cpp:118
msgid "Speed:"
-msgstr "Озвучка"
+msgstr "Скорость:"
#: gui/fluidsynth-dialog.cpp:125
msgid "Depth:"
@@ -1126,7 +1123,7 @@ msgstr "Сброс"
#: gui/fluidsynth-dialog.cpp:150
msgid "Reset all FluidSynth settings to their default values."
-msgstr "Сбросить все установки FluidSynth в значения по умолчанию"
+msgstr "Сбросить все установки FluidSynth в значения по умолчанию."
#: gui/fluidsynth-dialog.cpp:217
msgid ""
@@ -1524,11 +1521,11 @@ msgstr "Главное меню ScummVM"
#: backends/platform/ds/arm9/source/dsoptions.cpp:63
msgid "~L~eft handed mode"
-msgstr "Леворукий режим"
+msgstr "~Л~еворукий режим"
#: backends/platform/ds/arm9/source/dsoptions.cpp:64
msgid "~I~ndy fight controls"
-msgstr "Управление боями в Indy"
+msgstr "~У~правление боями в Indy"
#: backends/platform/ds/arm9/source/dsoptions.cpp:65
msgid "Show mouse cursor"
@@ -1676,13 +1673,12 @@ msgid "Windowed mode"
msgstr "Оконный режим"
#: backends/graphics/opengl/opengl-graphics.cpp:118
-#, fuzzy
msgid "OpenGL"
-msgstr "Открыть"
+msgstr "OpenGL"
#: backends/graphics/opengl/opengl-graphics.cpp:119
msgid "OpenGL (No filtering)"
-msgstr ""
+msgstr "OpenGL (без фильтров)"
#: backends/platform/symbian/src/SymbianActions.cpp:38
#: backends/platform/wince/CEActionsSmartphone.cpp:39
@@ -2150,7 +2146,6 @@ msgid "Cutscene file '%s' not found!"
msgstr "Файл заставки '%s' не найден!"
#: engines/drascula/saveload.cpp:47
-#, fuzzy
msgid ""
"ScummVM found that you have old savefiles for Drascula that should be "
"converted.\n"
@@ -2160,9 +2155,10 @@ msgid ""
"Press OK to convert them now, otherwise you will be asked again the next "
"time you start the game.\n"
msgstr ""
-"ScummVM обнаружил у вас сохранения игры Drascula в старом формате.\n"
-"Старый формат больше не поддерживается, и, чтобы загрузить сохранения, они "
-"должны быть переведены в новый формат.\n"
+"ScummVM обнаружил у вас сохранения игры Drascula в старом формате, которые "
+"необходимо преобразовать.\n"
+"Старый формат больше не поддерживается, и вы не сможете загрузить сохранения "
+"если не преобразуете их.\n"
"\n"
"Нажмите ОК, чтобы перевести их в новый формат сейчас, в противном случае это "
"сообщение появится снова при следующем запуске игры.\n"
@@ -2324,44 +2320,44 @@ msgstr ""
#. I18N: Option for fast scene switching
#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:167
msgid "~Z~ip Mode Activated"
-msgstr "Режим быстрого перехода активирован"
+msgstr "~Р~ежим быстрого перехода активирован"
#: engines/mohawk/dialogs.cpp:93
msgid "~T~ransitions Enabled"
-msgstr "Переходы активированы"
+msgstr "~П~ереходы активированы"
#. I18N: Drop book page
#: engines/mohawk/dialogs.cpp:95
msgid "~D~rop Page"
-msgstr "Выбросить страницу"
+msgstr "~В~ыбросить страницу"
#: engines/mohawk/dialogs.cpp:99
msgid "~S~how Map"
-msgstr "Показать карту"
+msgstr "П~о~казать карту"
#: engines/mohawk/dialogs.cpp:105
msgid "~M~ain Menu"
-msgstr "Главное меню"
+msgstr "~Г~лавное меню"
#: engines/mohawk/dialogs.cpp:168
msgid "~W~ater Effect Enabled"
-msgstr "Эффекты воды включены"
+msgstr "~Э~ффекты воды включены"
#: engines/neverhood/detection.cpp:167
msgid "Skip the Hall of Records storyboard scenes"
-msgstr ""
+msgstr "Пропустить сцены из Галереи Истории"
#: engines/neverhood/detection.cpp:168
msgid "Allows the player to skip past the Hall of Records storyboard scenes"
-msgstr ""
+msgstr "Позволяет игроку пропустить все сцены в Галерее Истории"
#: engines/neverhood/detection.cpp:174
msgid "Scale the making of videos to full screen"
-msgstr ""
+msgstr "Растянуть на весь экран видео о создании игры"
#: engines/neverhood/detection.cpp:175
msgid "Scale the making of videos, so that they use the whole screen"
-msgstr ""
+msgstr "Растягивает видео о создании игры так, что оно занимает весь экран"
#: engines/parallaction/saveload.cpp:133
#, c-format
@@ -3195,11 +3191,9 @@ msgstr ""
"Найдены заставки в формате DXA, но ScummVM был собран без поддержки zlib"
#: engines/sword1/animation.cpp:561
-#, fuzzy
msgid "MPEG-2 cutscenes found but ScummVM has been built without MPEG-2"
msgstr ""
-"Найдены заставки в формате PSX, но ScummVM был собран без поддержки RGB "
-"цветов"
+"Найдены заставки в формате MPEG-2, но ScummVM был собран без поддержки MPEG-2"
#: engines/sword1/animation.cpp:568 engines/sword2/animation.cpp:470
#, c-format
@@ -3252,11 +3246,10 @@ msgstr ""
"цветов"
#: engines/sword2/animation.cpp:461
-#, fuzzy
msgid ""
"MPEG-2 cutscenes found but ScummVM has been built without MPEG-2 support"
msgstr ""
-"Найдены заставки в формате DXA, но ScummVM был собран без поддержки zlib"
+"Найдены заставки в формате MPEG-2, но ScummVM был собран без поддержки MPEG-2"
#: engines/sword2/sword2.cpp:79
msgid "Show object labels"
diff --git a/po/se_SE.po b/po/se_SE.po
index 3af34732f8..593b567378 100644
--- a/po/se_SE.po
+++ b/po/se_SE.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: ScummVM 1.5.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
"POT-Creation-Date: 2014-06-07 23:06+0100\n"
-"PO-Revision-Date: 2013-05-13 21:30+0100\n"
+"PO-Revision-Date: 2014-07-02 16:30+0100\n"
"Last-Translator: Hampus Flink <hampus.flink@gmail.com>\n"
"Language-Team: \n"
"Language: Svenska\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SourceCharset: iso-8859-1\n"
-"X-Generator: Poedit 1.5.5\n"
+"X-Generator: Poedit 1.6.5\n"
#: gui/about.cpp:94
#, c-format
@@ -510,9 +510,8 @@ msgid "Do you really want to remove this game configuration?"
msgstr "Vill du verkligen radera den hфr spelkonfigurationen?"
#: gui/launcher.cpp:999
-#, fuzzy
msgid "Do you want to load savegame?"
-msgstr "Vill du ladda eller spara spelet?"
+msgstr "Vill du ladda sparat spel?"
#: gui/launcher.cpp:1048
msgid "This game does not support loading games from the launcher."
@@ -751,15 +750,16 @@ msgid "True Roland MT-32 (no GM emulation)"
msgstr "Фkta Roland MT-32 (ingen GM-emulation)"
#: gui/options.cpp:891
-#, fuzzy
msgid "Roland GS Device (enable MT-32 mappings)"
-msgstr "Roland GS-lфge (avaktivera GM-mapping)"
+msgstr "Roland GS-enhet (aktivera MT-32 mappings)"
#: gui/options.cpp:891
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
msgstr ""
+"Aktivera om du vill anvфnda patch mapping fіr att emulera en MT-32 pх en "
+"Roland GS-enhet"
#: gui/options.cpp:900
msgid "Don't use Roland MT-32 music"
@@ -1024,23 +1024,20 @@ msgid "Disabled GFX"
msgstr "Inaktiverad GFX"
#: gui/ThemeEngine.cpp:348
-#, fuzzy
msgid "Standard Renderer"
-msgstr "Standard rendering (16 bpp)"
+msgstr "Standard rendering"
#: gui/ThemeEngine.cpp:348 engines/scumm/dialogs.cpp:659
msgid "Standard"
msgstr "Standard"
#: gui/ThemeEngine.cpp:350
-#, fuzzy
msgid "Antialiased Renderer"
-msgstr "Antialiserad rendering (16 bpp)"
+msgstr "Antialiserad rendering"
#: gui/ThemeEngine.cpp:350
-#, fuzzy
msgid "Antialiased"
-msgstr "Antialiserad (16 bpp)"
+msgstr "Antialiserad"
#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333
msgid "Clear value"
@@ -1672,13 +1669,12 @@ msgid "Windowed mode"
msgstr "Fіnsterlфge"
#: backends/graphics/opengl/opengl-graphics.cpp:118
-#, fuzzy
msgid "OpenGL"
-msgstr "жppna"
+msgstr "OpenGL"
#: backends/graphics/opengl/opengl-graphics.cpp:119
msgid "OpenGL (No filtering)"
-msgstr ""
+msgstr "OpenGL (ingen filtrering)"
#: backends/platform/symbian/src/SymbianActions.cpp:38
#: backends/platform/wince/CEActionsSmartphone.cpp:39
@@ -2345,19 +2341,19 @@ msgstr "~V~atteneffekt aktiverad"
#: engines/neverhood/detection.cpp:167
msgid "Skip the Hall of Records storyboard scenes"
-msgstr ""
+msgstr "Skippa Hall of Records storyboard-scenerna"
#: engines/neverhood/detection.cpp:168
msgid "Allows the player to skip past the Hall of Records storyboard scenes"
-msgstr ""
+msgstr "Lхter spelaren skippa Hall of Records storyboard-scenerna"
#: engines/neverhood/detection.cpp:174
msgid "Scale the making of videos to full screen"
-msgstr ""
+msgstr "Skala dokumentфrvideor till helskфrm"
#: engines/neverhood/detection.cpp:175
msgid "Scale the making of videos, so that they use the whole screen"
-msgstr ""
+msgstr "Skala dokumentфrvideorna sх att de anvфnder hela skфrmen"
#: engines/parallaction/saveload.cpp:133
#, c-format
@@ -3187,9 +3183,8 @@ msgid "DXA cutscenes found but ScummVM has been built without zlib support"
msgstr "DXA filmscener hittades men ScummVM har byggts utan stіd fіr zlib"
#: engines/sword1/animation.cpp:561
-#, fuzzy
msgid "MPEG-2 cutscenes found but ScummVM has been built without MPEG-2"
-msgstr "PSX-filmscener hittades men ScummVM har byggts utan stіd fіr RGB-fфrg"
+msgstr "MPEG-2-filmscener hittades men ScummVM har byggts utan MPEG-2"
#: engines/sword1/animation.cpp:568 engines/sword2/animation.cpp:470
#, c-format
@@ -3241,10 +3236,9 @@ msgid ""
msgstr "PSX-filmscener hittades men ScummVM har byggts utan stіd fіr RGB-fфrg"
#: engines/sword2/animation.cpp:461
-#, fuzzy
msgid ""
"MPEG-2 cutscenes found but ScummVM has been built without MPEG-2 support"
-msgstr "DXA filmscener hittades men ScummVM har byggts utan stіd fіr zlib"
+msgstr "MPEG-2-filmscener hittades men ScummVM har byggts utan stіd fіr MPEG-2"
#: engines/sword2/sword2.cpp:79
msgid "Show object labels"
diff --git a/po/uk_UA.po b/po/uk_UA.po
index 913d2a3ca4..ac7b441392 100644
--- a/po/uk_UA.po
+++ b/po/uk_UA.po
@@ -2,13 +2,14 @@
# Copyright (C) 2010-2014 ScummVM Team
# This file is distributed under the same license as the ScummVM package.
# Lubomyr Lisen, 2010.
+# Eugene Sandulenko <sev@scummvm.org>, 2010-2014
#
msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.3.0svn\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
"POT-Creation-Date: 2014-06-07 23:06+0100\n"
-"PO-Revision-Date: 2013-05-05 23:26+0200\n"
+"PO-Revision-Date: 2014-07-01 02:34+0300\n"
"Last-Translator: Eugene Sandulenko <sev@scummvm.org>\n"
"Language-Team: Ukrainian\n"
"Language: Ukrainian\n"
@@ -511,7 +512,7 @@ msgstr "Ви дійсно хочете видалити установки для цієї гри?"
#: gui/launcher.cpp:999
#, fuzzy
msgid "Do you want to load savegame?"
-msgstr "Ви хочете завантажити або зберегти гру?"
+msgstr "Ви хочете завантажити гру?"
#: gui/launcher.cpp:1048
msgid "This game does not support loading games from the launcher."
@@ -751,19 +752,19 @@ msgid "True Roland MT-32 (no GM emulation)"
msgstr "Справжній Roland MT-32 (вимкнути емуляцию GM)"
#: gui/options.cpp:891
-#, fuzzy
msgid "Roland GS Device (enable MT-32 mappings)"
-msgstr "Режим Roland GS (вимкнути маплення GM)"
+msgstr "Режим Roland GS (ввімкнути маплення MT-32)"
#: gui/options.cpp:891
msgid ""
"Check if you want to enable patch mappings to emulate an MT-32 on a Roland "
"GS device"
msgstr ""
+"Відмітьте, якщо хочете включити латки для іструментів для емуляції MT-32 на Roland"
#: gui/options.cpp:900
msgid "Don't use Roland MT-32 music"
-msgstr "Не використовувати Roland MT-32"
+msgstr "Не використовувати музику для Roland MT-32"
#: gui/options.cpp:927
msgid "Text and Speech:"
@@ -1024,23 +1025,20 @@ msgid "Disabled GFX"
msgstr "Без графіки"
#: gui/ThemeEngine.cpp:348
-#, fuzzy
msgid "Standard Renderer"
-msgstr "Стандартний растеризатор (16bpp)"
+msgstr "Стандартний растеризатор"
#: gui/ThemeEngine.cpp:348 engines/scumm/dialogs.cpp:659
msgid "Standard"
msgstr "Стандартний"
#: gui/ThemeEngine.cpp:350
-#, fuzzy
msgid "Antialiased Renderer"
-msgstr "Растеризатор зі згладжуванням (16bpp)"
+msgstr "Растеризатор зі згладжуванням"
#: gui/ThemeEngine.cpp:350
-#, fuzzy
msgid "Antialiased"
-msgstr "Растеризатор зі згладжуванням (16bpp)"
+msgstr "Зі згладжуванням"
#: gui/widget.cpp:323 gui/widget.cpp:325 gui/widget.cpp:331 gui/widget.cpp:333
msgid "Clear value"
@@ -1670,13 +1668,12 @@ msgid "Windowed mode"
msgstr "Віконний режим"
#: backends/graphics/opengl/opengl-graphics.cpp:118
-#, fuzzy
msgid "OpenGL"
-msgstr "Відкрити"
+msgstr "OpenGL"
#: backends/graphics/opengl/opengl-graphics.cpp:119
msgid "OpenGL (No filtering)"
-msgstr ""
+msgstr "OpenGL (без фільтрів)"
#: backends/platform/symbian/src/SymbianActions.cpp:38
#: backends/platform/wince/CEActionsSmartphone.cpp:39
@@ -2142,7 +2139,7 @@ msgstr ""
#: engines/agos/animation.cpp:557
#, c-format
msgid "Cutscene file '%s' not found!"
-msgstr "Файл заставки '%s' не знайдено!"
+msgstr "Файл ролику '%s' не знайдено!"
#: engines/drascula/saveload.cpp:47
msgid ""
@@ -2342,19 +2339,19 @@ msgstr "Ефекти води увімкнено"
#: engines/neverhood/detection.cpp:167
msgid "Skip the Hall of Records storyboard scenes"
-msgstr ""
+msgstr "Перескакувати Залу Рекордів"
#: engines/neverhood/detection.cpp:168
msgid "Allows the player to skip past the Hall of Records storyboard scenes"
-msgstr ""
+msgstr "Дозволяє гравцеві перескакувати через сцени у Залі Рекордів"
#: engines/neverhood/detection.cpp:174
msgid "Scale the making of videos to full screen"
-msgstr ""
+msgstr "Розтягувати відео про створення ігри"
#: engines/neverhood/detection.cpp:175
msgid "Scale the making of videos, so that they use the whole screen"
-msgstr ""
+msgstr "Розтягувати відео про створення ігри так, що воно займатиме весь екран"
#: engines/parallaction/saveload.cpp:133
#, c-format
@@ -2635,7 +2632,7 @@ msgstr "Esc"
#: engines/scumm/help.cpp:77
msgid "Skip cutscene"
-msgstr "Пропустити заставку"
+msgstr "Пропустити ролик"
#: engines/scumm/help.cpp:78
msgid "Space"
@@ -3180,17 +3177,16 @@ msgstr " ролик PSX потоку '%s' не можуть бути відтворені у режимі палітри"
#: engines/sword1/animation.cpp:545 engines/sword2/animation.cpp:445
msgid "DXA cutscenes found but ScummVM has been built without zlib support"
-msgstr "Знайдено заставки DXA, але ScummVM був побудований без підтримки zlib"
+msgstr "Знайдено ролики DXA, але ScummVM був побудований без підтримки zlib"
#: engines/sword1/animation.cpp:561
-#, fuzzy
msgid "MPEG-2 cutscenes found but ScummVM has been built without MPEG-2"
-msgstr "Знайдені PSX ролики, але ScummVM був зібраний без підтримки RGB коліру"
+msgstr "Знайдені ролики MPEG-2, але ScummVM був зібраний без підтримки MPEG-2"
#: engines/sword1/animation.cpp:568 engines/sword2/animation.cpp:470
#, c-format
msgid "Cutscene '%s' not found"
-msgstr "Заставку '%s' не знайдено"
+msgstr "Ролик '%s' не знайдено"
#: engines/sword1/control.cpp:863
msgid ""
@@ -3233,13 +3229,11 @@ msgstr "На цьому закінчується демо Broken Sword 1"
#: engines/sword2/animation.cpp:425
msgid ""
"PSX cutscenes found but ScummVM has been built without RGB color support"
-msgstr "Знайдені PSX ролики, але ScummVM був зібраний без підтримки RGB коліру"
+msgstr "Знайдені PSX ролики, але ScummVM був зібраний без підтримки RGB кольорів"
#: engines/sword2/animation.cpp:461
-#, fuzzy
-msgid ""
"MPEG-2 cutscenes found but ScummVM has been built without MPEG-2 support"
-msgstr "Знайдено заставки DXA, але ScummVM був побудований без підтримки zlib"
+msgstr "Знайдено ролики MPEG-2, але ScummVM був побудований без підтримки MPEG-2"
#: engines/sword2/sword2.cpp:79
msgid "Show object labels"
@@ -3285,7 +3279,7 @@ msgstr ""
#~ msgstr "Використовувати альтернативний вступ гри (тільки CD версія)"
#~ msgid "MPEG2 cutscenes are no longer supported"
-#~ msgstr "Заставки MPEG2 більше не підтримуються"
+#~ msgstr "Ролики MPEG2 більше не підтримуються"
#~ msgid "OpenGL Normal"
#~ msgstr "OpenGL нормальний"
diff --git a/ports.mk b/ports.mk
index 21ad738373..32b1e67b5c 100644
--- a/ports.mk
+++ b/ports.mk
@@ -341,33 +341,5 @@ ifdef DIST_FILES_ENGINEDATA
endif
cp $(DIST_FILES_DOCS) $(AOS4PATH)
-#
-# PlayStation 3 specific
-#
-ps3pkg: $(EXECUTABLE)
- $(STRIP) $(EXECUTABLE)
- sprxlinker $(EXECUTABLE)
- mkdir -p ps3pkg/USRDIR/data/
- mkdir -p ps3pkg/USRDIR/doc/
- mkdir -p ps3pkg/USRDIR/saves/
- make_self_npdrm "$(EXECUTABLE)" ps3pkg/USRDIR/EBOOT.BIN UP0001-SCUM12000_00-0000000000000000
- cp $(DIST_FILES_THEMES) ps3pkg/USRDIR/data/
-ifdef DIST_FILES_ENGINEDATA
- cp $(DIST_FILES_ENGINEDATA) ps3pkg/USRDIR/data/
-endif
- cp $(DIST_FILES_DOCS) ps3pkg/USRDIR/doc/
- cp $(srcdir)/dists/ps3/readme-ps3.md ps3pkg/USRDIR/doc/
- cp $(srcdir)/backends/vkeybd/packs/vkeybd_default.zip ps3pkg/USRDIR/data/
- cp $(srcdir)/dists/ps3/ICON0.PNG ps3pkg/
- cp $(srcdir)/dists/ps3/PIC1.PNG ps3pkg/
- sfo.py -f $(srcdir)/dists/ps3/sfo.xml ps3pkg/PARAM.SFO
- pkg.py --contentid UP0001-SCUM12000_00-0000000000000000 ps3pkg/ scummvm-ps3.pkg
-
-ps3run: $(EXECUTABLE)
- $(STRIP) $(EXECUTABLE)
- sprxlinker $(EXECUTABLE)
- make_self $(EXECUTABLE) $(EXECUTABLE).self
- ps3load $(EXECUTABLE).self
-
# Mark special targets as phony
-.PHONY: deb bundle osxsnap win32dist install uninstall ps3pkg ps3run
+.PHONY: deb bundle osxsnap win32dist install uninstall