diff options
108 files changed, 2702 insertions, 1532 deletions
@@ -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. @@ -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 Binary files differnew file mode 100644 index 0000000000..d1c7fc75e5 --- /dev/null +++ b/backends/vkeybd/packs/vkeybd_small.zip diff --git a/backends/vkeybd/packs/vkeybd_small/lowercase-symbols320x240.bmp b/backends/vkeybd/packs/vkeybd_small/lowercase-symbols320x240.bmp Binary files differnew file mode 100644 index 0000000000..08d40a0373 --- /dev/null +++ b/backends/vkeybd/packs/vkeybd_small/lowercase-symbols320x240.bmp diff --git a/backends/vkeybd/packs/vkeybd_small/lowercase320x240.bmp b/backends/vkeybd/packs/vkeybd_small/lowercase320x240.bmp Binary files differnew file mode 100644 index 0000000000..25579234bb --- /dev/null +++ b/backends/vkeybd/packs/vkeybd_small/lowercase320x240.bmp diff --git a/backends/vkeybd/packs/vkeybd_small/uppercase-symbols320x240.bmp b/backends/vkeybd/packs/vkeybd_small/uppercase-symbols320x240.bmp Binary files differnew file mode 100644 index 0000000000..76a7f51839 --- /dev/null +++ b/backends/vkeybd/packs/vkeybd_small/uppercase-symbols320x240.bmp diff --git a/backends/vkeybd/packs/vkeybd_small/uppercase320x240.bmp b/backends/vkeybd/packs/vkeybd_small/uppercase320x240.bmp Binary files differnew file mode 100644 index 0000000000..96ce1adbe4 --- /dev/null +++ b/backends/vkeybd/packs/vkeybd_small/uppercase320x240.bmp 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="&" /> + <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="<" /> + <area shape="rect" coords="223,110,241,128" target=">" /> + <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="&" 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="<" type="key" code="60" ascii="60" modifiers="" /> + <event name=">" 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="&" /> + <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="<" /> + <area shape="rect" coords="223,110,241,128" target=">" /> + <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="&" 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="<" type="key" code="60" ascii="60" modifiers="" /> + <event name=">" 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 @@ -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 & 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 Binary files differindex 1a7b49852d..d55544ba42 100644 --- a/gui/themes/translations.dat +++ b/gui/themes/translations.dat 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 нормальний" @@ -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 |